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 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,"12 6 FORMAT($,1X,2A1,'Option: (ABCDEF H(Help) IOPRSTUX8^)?') C C NOW READ A CHARACTER FROM THE KEYBOARD C 20 ICHAR=ITTING(IDUMMY) IF(ICHAR.LT.0) GOTO 20 C C CHECK FOR 'A' - ASCII/BINARY FORMAT IF(ICHAR.EQ."101) CALL FORMAT(ITRANS) IF(ICHAR.EQ."102) CALL BREAK IF(ICHAR.EQ."103) CALL COPYMD(ITRANS) C WAS IT AN 'F'? IF(ICHAR.EQ."106) CALL OPNPUT(ITRANS,ICHAR) C 'E' - ECHO? IF(ICHAR.EQ."105) CALL ECHO(ITRANS) C 'D' - DELAY? IF(ICHAR.EQ."104) CALL DELAY(IDELAY) C 'H'? IF(ICHAR.EQ."110) CALL HELP C SEE IF HE WANTED TO TERMINATE FILE I/O IF(ICHAR.EQ."117) CALL OUTFIL(IDUMMY,ITRANS,3) IF(ICHAR.EQ."111) CALL INPFIL(IDUMMY,ITRANS,3) C CHANGE PROMPTING MODES (P)? IF(ICHAR.EQ."120) CALL PROMPT(ITRANS) C AN 'X' OR CTRL/C? IF(ICHAR.EQ."130.OR.ICHAR.EQ."3) CALL STOPIT(ITRANS) C 'R'? IF(ICHAR.EQ."122) CALL REDEF(ITRANS) C AN 'S'? IF(ICHAR.EQ."123) CALL STATUS(ITRANS) C A 'T'? IF(ICHAR.EQ."124) CALL OPNGET(ITRANS) C AN '8'? IF(ICHAR.EQ."70) CALL ASCII8(ITRANS) C AN UP-ARROW (^)? IF(ICHAR.EQ."136) CALL CTLCHR C 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