1 ! FILE NAME: VT100.BAS ! AUTHOR: R.W.MCDOUGALL ! CREATION DATE: ! REVISION DATE: ! LOCATION: HSTC ! MAIN FRAME: VAX 11/780 ! SYSTEM: VAX/VMS V4.6 ! LANGUAGE: VAX BASIC V3.2 ! DESCRIPTION: Display mnemonic key values for terminal ! --------------------------------------------------------------------- DIM SCRN$(24) ! 123456789x123456789x123456789x123456789x123456789x123456789x123456789x RV1$ = ESC+"[7m" RV0$ = ESC+"[0m" R1=13 R2=15 R3=17 R4=19 R5=21 R6=23 SCRN$(R1-1) =" The McDougall Writer I " SCRN$(R1) =" --- UP DWNLFTRGT PF1PF2PF3PF4" SCRN$(R1+1)=" --- " SCRN$(R2) =" ! @ # $ % ^ & * ( ) _ + ~ 7 8 9 - " SCRN$(R2+1)=" ESC 1 2 3 4 5 6 7 8 9 0 - = ` " SCRN$(R3) =" tab Q W E R T Y U I O P { } del 4 5 6 , " SCRN$(R3+1)=" q w e r t y u i o p [ ] " SCRN$(R4) =' CTL -- A S D F G H J K L : " CR | 1 2 3 ENT' SCRN$(R4+1)=" -- a s d f g h j k l ; ' \ ER " SCRN$(R5) =" NS --- Z X C V B N M < > ? ---- LF 0 " SCRN$(R5+1)=" --- z x c v b n m , / ---- " SCRN$(R6) =" ----------SPACE---------- " SCRN$(R6+1)=" ------------------------- " ! 123456789x123456789x123456789x123456789x123456789x123456789x123456789x PRINT ESC;"[1;1H";ESC;"[2J"; PRINT ESC;"[1;10r" PRINT FNP$(I,1);RV1$;SPACE$(78);RV0$;CR;ESC;"7"; FOR I = 1 TO 10 PRINT FNP$(I,1);SCRN$(I) FOR I = R1-1 TO R6+1 DEF FNP$(Y,X) = ESC+"["+NUM1$(Y)+";"+NUM1$(X)+"H" WHEN ERROR IN WHILE -1% KEYSTROKE$ = INKEY$(0%) PRINT RV0$;FNP$(Y1,X1);MID(SCRN$(Y1),X1,L1) PRINT RV0$;FNP$(Y1+1,X1);MID(SCRN$(Y1+1),X1,L1) SELECT KEYSTROKE$ CASE "UP" \ X = 37 \ Y = R1 \ L = 3 CASE "DOWN" \ X = 40 \ Y = R1 \ L = 3 CASE "LEFT" \ X = 43 \ Y = R1 \ L = 3 CASE "RIGHT" \ X = 46 \ Y = R1 \ L = 3 CASE "PF1" \ X = 58 \ Y = R1 \ L = 3 CASE "PF2" \ X = 61 \ Y = R1 \ L = 3 CASE "PF3" \ X = 64 \ Y = R1 \ L = 3 CASE "PF4" \ X = 67 \ Y = R1 \ L = 3 CASE "!","1" \ X = 10 \ Y = R2 \ L = 3 CASE "@","2" \ X = 13 \ Y = R2 \ L = 3 CASE "#","3" \ X = 16 \ Y = R2 \ L = 3 CASE "$","4" \ X = 19 \ Y = R2 \ L = 3 CASE "%","5" \ X = 22 \ Y = R2 \ L = 3 CASE "^","6" \ X = 25 \ Y = R2 \ L = 3 CASE "&","7" \ X = 28 \ Y = R2 \ L = 3 CASE "*","8" \ X = 31 \ Y = R2 \ L = 3 CASE "(","9" \ X = 34 \ Y = R2 \ L = 3 CASE ")","0" \ X = 37 \ Y = R2 \ L = 3 CASE "_","-" \ X = 40 \ Y = R2 \ L = 3 CASE "+","=" \ X = 43 \ Y = R2 \ L = 3 CASE "~","`" \ X = 46 \ Y = R2 \ L = 3 CASE BS \ X = 49 \ Y = R2 \ L = 3 CASE "KP7" \ X = 58 \ Y = R2 \ L = 3 CASE "KP8" \ X = 61 \ Y = R2 \ L = 3 CASE "KP9" \ X = 64 \ Y = R2 \ L = 3 CASE "KP-" \ X = 67 \ Y = R2 \ L = 3 CASE HT,CHR$(9) \ X = 07 \ Y = R3 \ L = 4 CASE "Q","q" \ X = 11 \ Y = R3 \ L = 3 CASE "W","w" \ X = 14 \ Y = R3 \ L = 3 CASE "E","e" \ X = 17 \ Y = R3 \ L = 3 CASE "R","r" \ X = 20 \ Y = R3 \ L = 3 CASE "T","t" \ X = 23 \ Y = R3 \ L = 3 CASE "Y","y" \ X = 26 \ Y = R3 \ L = 3 CASE "U","u" \ X = 29 \ Y = R3 \ L = 3 CASE "I","i" \ X = 32 \ Y = R3 \ L = 3 CASE "O","o" \ X = 35 \ Y = R3 \ L = 3 CASE "P","p" \ X = 38 \ Y = R3 \ L = 3 CASE "{","[" \ X = 41 \ Y = R3 \ L = 3 CASE "}","]" \ X = 44 \ Y = R3 \ L = 3 CASE DEL \ X = 50 \ Y = R3 \ L = 3 CASE "KP4" \ X = 58 \ Y = R3 \ L = 3 CASE "KP5" \ X = 61 \ Y = R3 \ L = 3 CASE "KP6" \ X = 64 \ Y = R3 \ L = 3 CASE "KP," \ X = 67 \ Y = R3 \ L = 3 CASE "A","a" \ X = 12 \ Y = R4 \ L = 3 CASE "S","s" \ X = 15 \ Y = R4 \ L = 3 CASE "D","d" \ X = 18 \ Y = R4 \ L = 3 CASE "F","f" \ X = 21 \ Y = R4 \ L = 3 CASE "G","g" \ X = 24 \ Y = R4 \ L = 3 CASE "H","h" \ X = 27 \ Y = R4 \ L = 3 CASE "J","j" \ X = 30 \ Y = R4 \ L = 3 CASE "K","k" \ X = 33 \ Y = R4 \ L = 3 CASE "L","l" \ X = 36 \ Y = R4 \ L = 3 CASE ":",";" \ X = 39 \ Y = R4 \ L = 3 CASE '"',"'" \ X = 42 \ Y = R4 \ L = 3 CASE CR \ X = 45 \ Y = R4 \ L = 5 CASE '\',"|" \ X = 50 \ Y = R4 \ L = 3 CASE "KP1" \ X = 58 \ Y = R4 \ L = 3 CASE "KP2" \ X = 61 \ Y = R4 \ L = 3 CASE "KP3" \ X = 64 \ Y = R4 \ L = 3 CASE "ENTER" \ X = 67 \ Y = R4 \ L = 3 CASE "Z","z" \ X = 13 \ Y = R5 \ L = 3 CASE "X","x" \ X = 16 \ Y = R5 \ L = 3 CASE "C","c" \ X = 19 \ Y = R5 \ L = 3 CASE "V","v" \ X = 22 \ Y = R5 \ L = 3 CASE "B","b" \ X = 25 \ Y = R5 \ L = 3 CASE "N","n" \ X = 28 \ Y = R5 \ L = 3 CASE "M","m" \ X = 31 \ Y = R5 \ L = 3 CASE "<","," \ X = 34 \ Y = R5 \ L = 3 CASE ">","." \ X = 37 \ Y = R5 \ L = 3 CASE "?","/" \ X = 40 \ Y = R5 \ L = 3 CASE LF \ X = 49 \ Y = R5 \ L = 3 CASE "KP0" \ X = 58 \ Y = R5 \ L = 6 CASE "KP." \ X = 64 \ Y = R5 \ L = 3 CASE "ENTER" \ X = 67 \ Y = R5 \ L = 3 CASE " " \ X = 14 \ Y = R6 \ L = 27 !CASE "","" \ X = \ Y = \ L = 3 CASE ELSE X = 1 Y = 20 L = 0 END SELECT SELECT KEYSTROKE$ CASE CR PRINT ESC;"8";CR;LF;RV1$;SPACE$(78);RV0$;CR;ESC;"7"; CASE DEL PRINT ESC;"8";ESC;"[D";RV1$;" ";RV0$;ESC;"[D";ESC;"7"; CASE ELSE PRINT ESC;"8";RV1$;KEYSTROKE$;RV0$;ESC;"7"; END SELECT PRINT RV1$;FNP$(Y,X);MID(SCRN$(Y),X,L);RV0$ PRINT RV1$;FNP$(Y+1,X);MID(SCRN$(Y+1),X,L);RV0$ X1 = X Y1 = Y L1 = L NEXT USE !PRINT ERR;ERT$(ERR) RETRY END WHEN END