;****************************************************************
;* *
;* 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