SUBROUTINE SETUP_BAUDRATE (SPEED) C C Get and set the baud rate for the remote. C INCLUDE 'COM.INC/NOLIST' INCLUDE '($TTDEF)/NOLIST' CHARACTER*(*) BAUDQ, SPEED_DEFAULT, SPEED PARAMETER (BAUDQ = 'Enter the baud rate for the remote port (') PARAMETER (SPEED_DEFAULT = '9600') C C The remote speed can be defined at startup time by defining the C symbol REMOTE_SPEED or the symbol REMOTE_SPEED_n (where 'n' is C the modem slot). The list of remote speeds is normally used in C conjunction with a list of remote ports to access multiple ports C with different speeds. C IF (STARTUP) THEN STATUS = GET_SYMBOL ('REMOTE_SPEED', REMOTE_BAUD, SPEED_SIZE) ENDIF IF (SPEED_SIZE .EQ. 0) THEN REMOTE_BAUD = SPEED_DEFAULT ! Default remote baud rate SPEED_SIZE = LEN(SPEED_DEFAULT) ! and the baud rate size. ENDIF IF (STARTUP) THEN IF (STATUS) THEN GO TO 230 ! Go parse the baud rate. ELSE CALL SYS$FAO ('REMOTE_SPEED_!UL', 1 SIZE, SCRATCH, %VAL(MODEM_SLOT)) IF ( GET_SYMBOL (SCRATCH(1:SIZE), 1 REMOTE_BAUD, SPEED_SIZE) ) GO TO 230 ENDIF ELSE IF (LEN(SPEED) .GT. 0) THEN REMOTE_BAUD = SPEED ! Copy specified speed. SPEED_SIZE = LEN(SPEED) ! and the speed size. GO TO 230 ! Go parse the speed. ENDIF ENDIF 200 CALL PROMPT_USER (BAUDQ//REMOTE_BAUD(1:SPEED_SIZE)//'): ' 1 ,%REF(SCRATCH),LEN(REMOTE_BAUD)) IF (BACKUP) RETURN IF (WANTS_HELP) THEN 225 CALL GET_HELP ('SET SPEED') GOTO 200 ENDIF C C See if the baud rate is acceptable. C IF (LBYTE_COUNT .GT. 0) THEN REMOTE_BAUD = SCRATCH(1:LBYTE_COUNT) SPEED_SIZE = LBYTE_COUNT ENDIF 230 IF (REMOTE_BAUD(1:SPEED_SIZE) .EQ. '50') THEN BAUD_RATE = TT$C_BAUD_50 ELSEIF (REMOTE_BAUD(1:SPEED_SIZE) .EQ. '75') THEN BAUD_RATE = TT$C_BAUD_75 ELSEIF (REMOTE_BAUD(1:SPEED_SIZE) .EQ. '110') THEN BAUD_RATE = TT$C_BAUD_110 ELSEIF (REMOTE_BAUD(1:SPEED_SIZE) .EQ. '134') THEN BAUD_RATE = TT$C_BAUD_134 ELSEIF (REMOTE_BAUD(1:SPEED_SIZE) .EQ. '150') THEN BAUD_RATE = TT$C_BAUD_150 ELSEIF (REMOTE_BAUD(1:SPEED_SIZE) .EQ. '300') THEN BAUD_RATE = TT$C_BAUD_300 ELSEIF (REMOTE_BAUD(1:SPEED_SIZE) .EQ. '600') THEN BAUD_RATE = TT$C_BAUD_600 ELSEIF (REMOTE_BAUD(1:SPEED_SIZE) .EQ. '1200') THEN BAUD_RATE = TT$C_BAUD_1200 ELSEIF (REMOTE_BAUD(1:SPEED_SIZE) .EQ. '1800') THEN BAUD_RATE = TT$C_BAUD_1800 ELSEIF (REMOTE_BAUD(1:SPEED_SIZE) .EQ. '2000') THEN BAUD_RATE = TT$C_BAUD_2000 ELSEIF (REMOTE_BAUD(1:SPEED_SIZE) .EQ. '2400') THEN BAUD_RATE = TT$C_BAUD_2400 ELSEIF (REMOTE_BAUD(1:SPEED_SIZE) .EQ. '3600') THEN BAUD_RATE = TT$C_BAUD_3600 ELSEIF (REMOTE_BAUD(1:SPEED_SIZE) .EQ. '4800') THEN BAUD_RATE = TT$C_BAUD_4800 ELSEIF (REMOTE_BAUD(1:SPEED_SIZE) .EQ. '7200') THEN BAUD_RATE = TT$C_BAUD_7200 ELSEIF (REMOTE_BAUD(1:SPEED_SIZE) .EQ. '9600') THEN BAUD_RATE = TT$C_BAUD_9600 ELSEIF (REMOTE_BAUD(1:SPEED_SIZE) .EQ. '19200') THEN BAUD_RATE = TT$C_BAUD_19200 ELSE CALL WRITE_USER ('*** Invalid remote SPEED "'// 1 REMOTE_BAUD(1:SPEED_SIZE)//'" ***'//SS) IF (UNIX_MODE) THEN GO TO 200 ! Request system type again. ELSE GO TO 225 ! Invalid, give some help. ENDIF ENDIF CALL SETUP_REMOTE(.TRUE.) ! Setup remote characteristics. RETURN END