SUBROUTINE CTLSUB(ITRANS) COMMON/INPFIL/IPTR,IEND,INPSUM,INYBBL,IDELAY,IPRMPT,ISENT, C LINE(512),ICHECK,LENI,IFLAGI,NIREC COMMON/OUTFIL/ ILINE(512),IPOS,IOTSUM,IONYBL,NOREC,IFLAGO,LENO LOGICAL*1 ILINE,LINE BYTE DIALLN(15) DIMENSION IDUPMS(8) DATA IDUPMS/'D','u','p','l','e','x',"15,"12/ C C ASK WHICH OPTION THE USER WANTS C WRITE(5,6)"15 6 FORMAT('$',A1,'XMT>') C C NOW READ A CHARACTER FROM THE KEYBOARD C 20 ICHAR=ITTINR(IDUMMY) IF(ICHAR.LT.0) GOTO 20 C C 'A' - ASCII/BINARY FORMAT? IF(ICHAR.EQ."101.OR.ICHAR.EQ."141) CALL FORMAT(ITRANS) C 'B' - TRANSMIT BREAK CHARACTER? IF(ICHAR.EQ."102.OR.ICHAR.EQ."142) CALL BREAK C 'C' - COPY MODE? IF(ICHAR.EQ."103.OR.ICHAR.EQ."143) CALL COPYMD(ITRANS) C 'D' - DELAY? IF(ICHAR.EQ."104.OR.ICHAR.EQ."144) CALL DELAY(IDELAY) C 'E' - ECHO? IF(ICHAR.EQ."105.OR.ICHAR.EQ."145) CALL ECHO(ITRANS) C 'F' - MAKE A FILE? IF(ICHAR.EQ."106.OR.ICHAR.EQ."146) CALL OPNPUT(ITRANS,ICHAR) C 'H' OR A '?' - HELP? IF(ICHAR.EQ."110.OR.ICHAR.EQ."77.OR.ICHAR.EQ."150) CALL HELP C 'I' - TERMINATE THE INPUT FILE TRANSMISSION? IF(ICHAR.EQ."111.OR.ICHAR.EQ."151) 1CALL INPFIL(IDUMMY,ITRANS,3) C 'O' - TERMINATE THE OUTPUT FILE GENERATION? IF(ICHAR.EQ."117.OR.ICHAR.EQ."157) 1CALL OUTFIL(IDUMMY,ITRANS,3) C 'P' - CHANGE PROMPTING MODE? IF(ICHAR.EQ."120.OR.ICHAR.EQ."160) CALL PROMPT(ITRANS) C 'Q' - DIAL THE PHONE? IF(ICHAR.EQ."121.OR.ICHAR.EQ."161)THEN DIALLN(1)=' ' CALL DIAL(DIALLN) END IF C 'R' - REDEFINE? IF(ICHAR.EQ."122.OR.ICHAR.EQ."162) CALL REDEF(ITRANS) C 'S' - STATUS? IF(ICHAR.EQ."123.OR.ICHAR.EQ."163) CALL STATUS(ITRANS) C 'T' - TRANSMIT A FILE? IF(ICHAR.EQ."124.OR.ICHAR.EQ."164) CALL OPNGET(ITRANS) C 'X' - TURN OFF MODEM; THAT IS ALL FOR NOW? IF(ICHAR.EQ."130.OR.ICHAR.EQ."170)CALL STOPIT(ITRANS) C 'CTRL/C' - EXIT TO SYSTEM? IF(ICHAR.EQ."3)CALL STOPEX(ITRANS) C '8' - CHANGE TO 8 BIT? IF(ICHAR.EQ."70) CALL ASCII8(ITRANS) C AN UP-ARROW (^)? IF(ICHAR.EQ."136) CALL CTLCHR C '' MEANS ADD LINE FEEDS ON FILE TRANSMISSION. IF(ICHAR.EQ."12) ITRANS=IEOR(ITRANS,"10000) C CHECK FOR DUPLEX/UNDUPLEX IF(ICHAR.NE."125) GOTO 25 IF((ITRANS.AND."10).EQ.0) GOTO 30 CALL ENQUE('U') CALL ENQUE('n') ITRANS=(ITRANS.AND."177767) GOTO 35 30 ITRANS=(ITRANS.AND."177767) + "10 35 DO 45 I=1,8 45 CALL ENQUE(IDUPMS(I)) RETURN C C ECHO CARRIAGE-RETURN/LINE-FEED 25 I=ITTINR(IDUMMY) CALL ENQUE("15) CALL ENQUE("12) RETURN END