	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
