SUBROUTINE STATUS(ITRANS) C C PRINTS A STATUS OF CURRENT PROGRAM PARAMETERS C COMMON/CTRL/ CTRL(32),IBREAK LOGICAL*1 CTRL LOGICAL*1 OUTMSG(26),INMSG(28),ECHO(12),DUP(10) LOGICAL*1 COPY(12),PROMPT(24) LOGICAL*1 BITMOD(12),PARITY(10),BINARY(14) INTEGER NO(2),MARK(4),ODD(3),EVEN(4) LOGICAL*1 OUTPUT(8),ASCII(12),INPUT(6) LOGICAL*1 REDEF(16),BREAK(20),UNDEF(12),LINEFD(22) C DATA OUTMSG/'R','e','c','e','i','v','e',' ','F','i','l','e', C ' ','i','n',' ','p','r','o','g','r','e','s','s',"15,"12/ DATA INMSG /'T','r','a','n','s','m','i','t',' ','F','i','l','e', C ' ','i','n',' ','p','r','o','g','r','e','s','s',"15,"12,0/ C DATA ECHO /'E','C','H','O',' ','M','o','d','e',"15,"12,0/ DATA DUP /'D','u','p','l','e','x','e','d',"15,"12/ DATA COPY /'C','O','P','Y',' ','M','o','d','e',"15,"12,0/ DATA BITMOD/'-','B','i','t',' ','M','o','d','e',"15,"12,0/ C DATA NO /'N','O'/ DATA MARK /'M','A','R','K'/ DATA ODD /'O','D','D'/ DATA EVEN /'E','V','E','N'/ DATA PARITY/' ','P','a','r','i','t','y',"15,"12,0/ C DATA BINARY/'B','i','n','a','r','y',' ','F','i','l','e',"15,"12, C 0/ DATA OUTPUT/'O','u','t','p','u','t',' ',0/ DATA ASCII /'A','S','C','I','I',' ','F','i','l','e',"15,"12/ DATA INPUT /'I','n','p','u','t',' '/ C DATA PROMPT/'P','r','o','m','p','t','l','e','s','s',' ','F','i', C 'l','e',' ','O','u','t','p','u','t',"15,"12/ DATA REDEF /'R','e','d','e','f','i','n','e',' ','M','o','d','e', C "15,"12,0/ C DATA BREAK /'B','R','E','A','K',' ','c','h','a','r','a','c','t', C 'e','r',' ','i','s',':',' '/ DATA UNDEF /'U','n','d','e','f','i','n','e','d',"15,"12,0/ DATA LINEFD/'L','i','n','e',' ','f','e','e','d',' ','g' 1,'e','n','e','r','a','t','e','d',"15,"12,0/ C C WRITE(5,4) 4 FORMAT(' STATUS',/) C C CHECK IF ANY FILES OPEN C IF((ITRANS.AND.1).EQ.0) GOTO 10 DO 5 I=1,26 J=OUTMSG(I) 5 CALL ENQUE(J) 10 IF((ITRANS.AND.2).EQ.0) GOTO 20 DO 15 I=1,27 J=INMSG(I) 15 CALL ENQUE(J) C C CHECK IF IN ECHO MODE C 20 IF((ITRANS.AND.4).EQ.0) GOTO 30 DO 25 I=1,12 J=ECHO(I) 25 CALL ENQUE(J) C C CHECK IF DUPLEXED OR NOT C 30 IF((ITRANS.AND."10).EQ.0) GOTO 40 32 DO 35 I=1,10 J=DUP(I) 35 CALL ENQUE(J) GOTO 50 40 CALL ENQUE('U') CALL ENQUE('n') GOTO 32 C C SEE IF WE ARE IN COPY MODE C 50 IF((ITRANS.AND."20).EQ.0) GOTO 60 DO 55 I=1,11 J=COPY(I) 55 CALL ENQUE(J) C C SEE IF WE ARE IN 7-BIT MODE DATA C 60 IF((ITRANS.AND."40).NE.0) GOTO 70 CALL ENQUE('7') DO 61 I=1,11 J=BITMOD(I) 61 CALL ENQUE(J) C C IF IN 7-BIT MODE CHECK WHAT PARITY OPTION C IF((ITRANS.AND."6000).NE.0) GOTO 63 DO 62 I=1,2 62 CALL ENQUE(NO(I)) GOTO 68 63 IF((ITRANS.AND."6000).NE."6000) GOTO 65 DO 64 I=1,4 64 CALL ENQUE(MARK(I)) GOTO 68 65 IF((ITRANS.AND."6000).NE."4000) GOTO 67 DO 66 I=1,3 66 CALL ENQUE(ODD(I)) GOTO 68 67 DO 679 I=1,4 679 CALL ENQUE(EVEN(I)) 68 DO 69 I=1,9 J=PARITY(I) 69 CALL ENQUE(J) GOTO 80 C C 8-BIT MODE - NO PARITY CHECKS C 70 CALL ENQUE('8') DO 75 I=1,11 J=BITMOD(I) 75 CALL ENQUE(J) C C NOW PRINT WHAT THE OUTPUT FILE FORMAT IS C 80 DO 81 I=1,7 J=OUTPUT(I) 81 CALL ENQUE(J) K=0 IF((ITRANS.AND."100).EQ.0) GOTO 90 C C BINARY C 82 DO 85 I=1,14 J=BINARY(I) 85 CALL ENQUE(J) IF(K) 100,100,110 C C ASCII C 90 DO 95 I=1,12 J=ASCII(I) 95 CALL ENQUE(J) IF(K.NE.0) GOTO 110 C C NOW DO THE SAME FOR THE INPUT FILE C 100 K=1 DO 101 I=1,6 J=INPUT(I) 101 CALL ENQUE(J) IF((ITRANS.AND."200).EQ.0) GOTO 90 GOTO 82 C C PRINT IF WE ARE ADDING LINE FEEDS C 110 IF((ITRANS.AND."10000).EQ.0)GOTO 112 DO 111,I=1,22 J=LINEFD(I) 111 CALL ENQUE(J) C C SEE IF WE ARE IN PROMPTED OR PROMPTLESS MODE C 112 IF((ITRANS.AND."400).EQ.0) GOTO 120 DO 115 I=1,24 J=PROMPT(I) 115 CALL ENQUE(J) C C CHECK IF CONTROL CHARACTERS ARE REDEFINED OR NOT C 120 IF((ITRANS.AND."1000).EQ.0) GOTO 130 DO 125 I=1,15 J=REDEF(I) 125 CALL ENQUE(J) C C PRINT WHAT THE BREAK CHARACTER IS C 130 DO 131 I=1,20 J=BREAK(I) 131 CALL ENQUE(J) IF(IBREAK.GE.0) GOTO 135 DO 132 I=1,11 J=UNDEF(I) 132 CALL ENQUE(J) RETURN C C CHECK IF UNPRINTABLE - CTRL CHAR C 135 IF(IBREAK.GT."37) GOTO 137 CALL ENQUE('^') CALL ENQUE(IBREAK+"100) GOTO 139 137 CALL ENQUE(IBREAK) 139 CALL ENQUE("15) CALL ENQUE("12) RETURN END