      PROGRAM VT2XX_KEYS
*
      CHARACTER START_SEQUENCE*6,END_SEQUENCE*2
      CHARACTER ASCII_KEY(256)*3,VT2XX_KEY(256)*4,KEYSTROKE(256)*20
      INTEGER   VT2XX_KEY_LENGTH(256)
*
      CHARACTER ANSWER*10,LINE*255
      INTEGER LINE_START
*
      COMMON /BLK001/ ASCII_KEY,VT2XX_KEY,VT2XX_KEY_LENGTH,KEYSTROKE
*
1     FORMAT(A1)
2     FORMAT(A2)
3     FORMAT(A3)
4     FORMAT(A4)
10    FORMAT(A10)
*
      WRITE(6,*) 'THIS PROGRAM WILL PROGRAM THE VT2XX FUNCTION KEYS'
      WRITE(6,*) 'IT WILL ALSO WORK ON THE VT241 TERMINALS'
      WRITE(6,*) ' '
      WRITE(6,*) 'THE KEYS THAT MAY BE PROGRAMMED ARE THE TOP ROW KEYS'
      WRITE(6,*) '   F6 THROUGH F20'
      WRITE(6,*) ' '
      WRITE(6,*) 'PRESS RETURN TO CONTINUE WITH THE PROGRAM OR'
      WRITE(6,*) 'ENTER   END   IF YOU DO NOT HAVE THE PROPER TERMINAL'
      WRITE(6,*) ' '
      READ(5,10) ANSWER
      IF ( ANSWER(1:3) .EQ. 'END' .OR. 
     C     ANSWER(1:3) .EQ. 'end' ) GO TO 999 
*
      OPEN(UNIT=7,FILE='VT2XX.LIS',CARRIAGECONTROL='NONE',STATUS='NEW')
      OPEN(UNIT=8,FILE='VT2XX.DOC',CARRIAGECONTROL='NONE',STATUS='NEW')
*
      ANSWER(1:1) = CHAR(13)
      ANSWER(2:2) = CHAR(10)
      WRITE(8,*) ANSWER(1:2)
*
      START_SEQUENCE(1:1) = CHAR(27)
      START_SEQUENCE(2:6) = 'P1;1|'
      END_SEQUENCE(1:1) = CHAR(27)
      END_SEQUENCE(2:2) = '\'
*
      CALL VT2XX_LOAD_KEYS
*
      LINE_START = 10
*
      LINE(1:6) = START_SEQUENCE
*
100   CONTINUE
      WRITE(6,*) 'ENTER THE KEY YOU WISH TO PROGRAM (F6-F20)'
      READ(5,10) ANSWER
*
      IF ( ANSWER(1:1) .EQ. 'H' .OR. ANSWER(1:1) .EQ. 'h' ) THEN
      WRITE(6,*) ' '
      WRITE(6,*) 'USE ONE OF THE ANSWERS SHOWN BELOW '
      WRITE(6,*) 'F6 F7 F8 F9 F10'
      WRITE(6,*) 'F11 F12 F13 F14 F15'
      WRITE(6,*) 'F16 F17 F18 F19 F20 '
      WRITE(6,*) ' '
      GO TO 100
      END IF
*
      IF ( ANSWER(1:3) .EQ. 'F21' .OR. ANSWER(1:3) .EQ. 'f21' ) THEN
      WRITE(8,10) ANSWER
      LINE(7:9) = '37/'
      GO TO 200
      END IF
      IF ( ANSWER(1:3) .EQ. 'F20' .OR. ANSWER(1:3) .EQ. 'f20' ) THEN
      WRITE(8,10) ANSWER
      LINE(7:9) = '34/'
      GO TO 200
      END IF
      IF ( ANSWER(1:3) .EQ. 'F19' .OR. ANSWER(1:3) .EQ. 'f19' ) THEN
      WRITE(8,10) ANSWER
      LINE(7:9) = '33/'
      GO TO 200
      END IF
      IF ( ANSWER(1:3) .EQ. 'F18' .OR. ANSWER(1:3) .EQ. 'f18' ) THEN
      WRITE(8,10) ANSWER
      LINE(7:9) = '32/'
      GO TO 200
      END IF
      IF ( ANSWER(1:3) .EQ. 'F17' .OR. ANSWER(1:3) .EQ. 'f17' ) THEN
      WRITE(8,10) ANSWER
      LINE(7:9) = '31/'
      GO TO 200
      END IF
      IF ( ANSWER(1:3) .EQ. 'F16' .OR. ANSWER(1:3) .EQ. 'f16' ) THEN
      WRITE(8,10) ANSWER
      LINE(7:9) = '29/'
      GO TO 200
      END IF
      IF ( ANSWER(1:3) .EQ. 'F15' .OR. ANSWER(1:3) .EQ. 'f15' ) THEN
      WRITE(8,10) ANSWER
      LINE(7:9) = '28/'
      GO TO 200
      END IF
      IF ( ANSWER(1:3) .EQ. 'F14' .OR. ANSWER(1:3) .EQ. 'f14' ) THEN
      WRITE(8,10) ANSWER
      LINE(7:9) = '26/'
      GO TO 200
      END IF
      IF ( ANSWER(1:3) .EQ. 'F13' .OR. ANSWER(1:3) .EQ. 'f13' ) THEN
      WRITE(8,10) ANSWER
      LINE(7:9) = '25/'
      GO TO 200
      END IF
      IF ( ANSWER(1:3) .EQ. 'F12' .OR. ANSWER(1:3) .EQ. 'f12' ) THEN
      WRITE(8,10) ANSWER
      LINE(7:9) = '24/'
      GO TO 200
      END IF
      IF ( ANSWER(1:3) .EQ. 'F11' .OR. ANSWER(1:3) .EQ. 'f11' ) THEN
      WRITE(8,10) ANSWER
      LINE(7:9) = '23/'
      GO TO 200
      END IF
      IF ( ANSWER(1:3) .EQ. 'F10' .OR. ANSWER(1:3) .EQ. 'f10' ) THEN
      WRITE(8,10) ANSWER
      LINE(7:9) = '21/'
      GO TO 200
      END IF
      IF ( ANSWER(1:2) .EQ. 'F9' .OR. ANSWER(1:2) .EQ. 'f9' ) THEN
      WRITE(8,10) ANSWER
      LINE(7:9) = '20/'
      GO TO 200
      END IF
      IF ( ANSWER(1:2) .EQ. 'F8' .OR. ANSWER(1:2) .EQ. 'f8' ) THEN
      WRITE(8,10) ANSWER
      LINE(7:9) = '19/'
      GO TO 200
      END IF
      IF ( ANSWER(1:2) .EQ. 'F7' .OR. ANSWER(1:2) .EQ. 'f7' ) THEN
      WRITE(8,10) ANSWER
      LINE(7:9) = '18/'
      GO TO 200
      END IF
      IF ( ANSWER(1:2) .EQ. 'F6' .OR. ANSWER(1:2) .EQ. 'f6' ) THEN
      WRITE(8,10) ANSWER
      LINE(7:9) = '17/'
      GO TO 200
      END IF
*
      WRITE(6,*) 'FOLLOW DIRECTIONS'
      GO TO 100
*
***
*
200   CONTINUE
      WRITE(6,*) 'ENTER THE KEYSTROKES 1 CHARACTER AT A TIME'
      WRITE(6,*) 'FOLLOWED BY THE RETURN KEY'
      WRITE(6,*) 'ENTER   END   TO FINISH .... SPELL OUT SPECIAL KEYS'
      WRITE(6,*) ' I.E. BS=BACKSPACE ... CR=CARRIAGE RETURN...PF1=PF1'
      WRITE(6,*) 'ENTER    HELP   TO FIND THE NAMES OF ALL THE KEYS'
      READ(5,10) ANSWER
*
      IF (ANSWER(1:3) .EQ. 'END' .OR. ANSWER(1:3) .EQ. 'end') GO TO 900
*
      IF ( ANSWER(1:4) .EQ. 'HELP' .OR. ANSWER(1:4) .EQ. 'help' ) THEN
      DO 888 I=1,148
      WRITE(6,887) ASCII_KEY(I)(1:3),KEYSTROKE(I),VT2XX_KEY(I)(1:4)
887   FORMAT(1X,'ENTER =',A3,'     KEYSTROKE = ',A20,'    HEX=',A4)
888   CONTINUE
      GO TO 200
      END IF
*
210   CONTINUE
      FLAG = 'N'
      DO 299 I=1,148
      IF ( ANSWER(1:3) .EQ. ASCII_KEY(I)) THEN
      FLAG = 'Y'
      WRITE(8,3) ANSWER(1:3)
      LINE(LINE_START:(LINE_START + VT2XX_KEY_LENGTH(I) - 1)) =
     C VT2XX_KEY(I)(1:VT2XX_KEY_LENGTH(I))
      LINE_START = LINE_START + VT2XX_KEY_LENGTH(I)
      END IF
299   CONTINUE
      IF ( FLAG .EQ. 'N' ) THEN
      WRITE(6,*) 'THAT KEY NOT ON LIST'
      END IF
*
      GO TO 200
*
900   CONTINUE
      LINE(LINE_START:(LINE_START + 1)) = END_SEQUENCE
      WRITE(7,*) LINE(1:LINE_START + 1)
      LINE_START = 10
      ANSWER(1:1) = CHAR(13)
      ANSWER(2:2) = CHAR(10)
      WRITE(8,*) ANSWER(1:2)
*
      WRITE(6,*) 'ANOTHER KEY (Y,N)'
      READ(5,10) ANSWER
      IF ( ANSWER(1:1) .EQ. 'Y' ) GO TO 100
*
      WRITE(6,*) ' '
      WRITE(6,*) 'USE THE SHIFT KEY WITH THE PROGRAMMED FUNCTION KEY'
      WRITE(6,*) 'TO USE THESE PROGRAMMED FUNCTION KEYS '
      WRITE(6,*) ' '
      WRITE(6,*) 'THE FILE  VT2XX.LIS'
      WRITE(6,*) ' CONTAINS THE CHARACTERS TO PROGRAM THE KEYS '
      WRITE(6,*) 'THE FILE  VT2XX.DOC'
      WRITE(6,*) ' SHOWS WHAT THE PROGRAMMED KEY WILL DO'
      WRITE(6,*) ' '
      WRITE(6,*) 'YOU MAY SAVE THESE FILES FOR LATER USE IF YOU WISH'
      WRITE(6,*) 'OTHERWISE YOU MAY DELETE THEM NOW WITH A'
      WRITE(6,*) '    Y    AT EACH PROMPT'
      WRITE(6,*) ' '
      WRITE(6,*) 'THE KEYS WILL STAY PROGRAMMED'
      WRITE(6,*) 'UNTIL THE TERMINAL IS POWERED OFF'
      WRITE(6,*) ' '
*
999   STOP ' '
      END
