;**************************************************************** ;* * ;* FREEDOM 200 SuperVUE TERMINAL TABLE * ;* * ;* by * ;* * ;* ULTRASCIENCE DIVISION OF GIBBS LABORATORIES * ;* * ;* Copyright Ultrascience 1985 (C) * ;* * ;* 1824 WILMETTE AVE, WILMETTE, IL 60091 * ;* * ;* 312/256-0080 * ;* * ;* REV. 5.1 LAST UPDATE 01/26/85 * ;* * ;**************************************************************** ; ; IMPORTANT MESSAGE: ; ; THIS PROGRAM OR ANY PART OF THIS PROGRAM MAY NOT BE COPIED FOR ; PROFIT BY ANYONE OTHER THAN ULTRASCIENCE. ANYONE WISHING TO ; USE THE PROGRAM MAY DO SO AT NO CHARGE, PROVIDED THEY NOTIFY ; ULTRASCIENCE THAT THEY ARE USING THE PROGRAM AND AGREE TO SEND ; INFORMATION ABOUT BUGS OR IMPROVEMENTS TO ULTRASCIENCE. THIS ; BUG AND IMPROVEMENT INFORMATION WILL BE AVAILABLE TO ALL USERS ; OF THE PROGRAM. ; ; ; NOTE: The FRE200.SVX generated from assembling this file must be placed ; in DVR: (DSK0:[1,6]) otherwise SuperVue cannot find it. This file ; will only work if the FRE200.TDV is version 5.1 or later. ; ; ; Edit history: ; ; 01-june-84 ; conversion table modified for more logical lay-out. ; OBJNAM FRE200.SVX SEARCH SYS SEARCH TRM ; entry points (jump table) BR FKPROC ; function key processing BR FKOPEN ; called on SuperVUE entry BR FKCLSE ; called on SuperVUE exit ; Function key enable (set translation flag for driver and disable XON/XOFF) FKOPEN: JOBIDX ; index our job MOV JOBTRM(A6),A6 ; get terminal definition pointer ORW #T$XLT,@A6 ; set translation flag TTYI ; disable XON/XOFF BYTE 'N-100,0 ; handshaking RTN ; get back to SuperVue ; Reset translation flag and enable XON/XOFF when SuperVue is done. FKCLSE: JOBIDX ; index our job MOV JOBTRM(A6),A6 ; get terminal definition area ANDW #^CT$XLT,@A6 ; clear translation flag TTYI ; re-enable XON/XOFF BYTE 'O-100,0 ; handshaking RTN ; back to SuperVue for exit ; on entry ; D0, D2, D3, D4, D5 and A5 must be preserved ; A4 points to impure memory ; A3 points to a routine which inputs one byte from keyboard into D1 ; on exit ; D1 contains input character (possibly translated) FKPROC: TST @A4 ; do we have char waiting for output? BEQ KBDIT ; no, get fresh one from keyboard MOV @A4,A1 ; yes, get pointer TSTB @A1 ; end of string? BEQ KBDIT ; yes, start fresh from keyboard MOVB (A1)+,D1 ; pick up the character JMP UPDPTR ; update string pointer KBDIT: CALL @A3 ; input a byte CMPB D1,#']-100 ; dummy character ? BNE TBLOAD ; no, go process valid character CLR D1 ; kill character CLR @A4 ; clear out string pointer RTN ; get back to SuperVue TBLOAD: LEA A1,FCXLT ; index translation table FLP: TSTB @A1 ; end of table ? BEQ KBDIT ; yes, unused function so get another CMPB D1,(A1)+ ; have we found a match ? BEQ XLAT ; yes, go do translation CHKLP: TSTB (A1)+ ; skip this function BNE CHKLP ; " " " BR FLP ; check next table entry for match XLAT: MOVB (A1)+,D1 ; pick up a translated byte UPDPTR: MOV A1,@A4 ; save updated index to xlat string RTN ; get back to SuperVue ; TRANSLATION TABLE FCXLT: ; Pre-labeled keys BYTE 321,'F-100,0 ; insert character BYTE 327,'D-100,0 ; delete character BYTE 305,'B-100,0 ; insert line BYTE 322,'Z-100,0 ; delete line BYTE 361,'Q-100,0 ; toggle insert char. mode BYTE 324,'V-100,0 ; CLR EOL delete word BYTE 331,'Y-100,0 ; CLR EOP erase to end of line BYTE 311,'S-100,'O-100,0 ; BACKTAB (recall text) BYTE 320,'S-100,33,'P,'R,'I,'N,'T,15,0; PRINT (print text) BYTE 314,'S-100,33,'P,'R,'I,'N,'T,'?,15,0; Shift PRINT (spooler status) ; Function keys BYTE 200,33,0 ; (F1) Escape BYTE 240,33,0 ; (SHIFT F1) Escape BYTE 201,'S-100,'F-100,0 ; (F2) Reformat BYTE 241,'S-100,'.,0 ; (SHIFT F2) Ruler BYTE 202,'S-100,'P-100,0 ; (F3) Clear Block BYTE 242,'S-100,'Z-100,0 ; (SHIFT F3) Delete Block BYTE 203,'S-100,'G-100,0 ; (F4) Move Block BYTE 243,'S-100,'D-100,0 ; (SHIFT F4) Copy Block BYTE 204,'X-100,0 ; (F5) Next Match BYTE 244,'P-100,'P-100,0 ; (SHIFT F5) Mark BYTE 205,'O-100,0 ; (F6) Concatenate Line BYTE 245,'S-100,'C-100,0 ; (SHIFT F6) Center Line BYTE 206,'E-100,0 ; (F7) Page Last BYTE 246,'S-100,'S-100,0 ; (SHIFT F7) Page Center BYTE 207,'T-100,0 ; (F8) Page Next BYTE 247,'R-100,0 ; (SHIFT F8) Page Previous BYTE 210,'N-100,0 ; (F9) End of Line BYTE 250,'U-100,0 ; (SHIFT F9) Beggining of line BYTE 211,'W-100,0 ; (F10) Next Word BYTE 251,'A-100,0 ; (SHIFT F10) Previous Word EVEN BYTE 0 ; function table terminator END .