;****************************************************************
;* *
;* FREEDOM 200 DataVUE TERMINAL TABLE *
;* *
;* by *
;* *
;* ULTRASCIENCE DIVISION OF GIBBS LABORATORIES *
;* *
;* Copyright Ultrascience 1984 (C) *
;* *
;* 1824 WILMETTE AVE, WILMETTE, IL 60091 *
;* *
;* 312/256-0080 *
;* *
;* REV. 5.1 LAST UPDATE 01/28/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:
;
; 19-july-84
; modified from FRE100.M76 (DataVUE table)
; Operates a Freedom 200 terminal (running
; under driver 5.1 or later) in DataVue.
;
OBJNAM FRE200.DVX
SEARCH SYS
SEARCH TRM
; entry points (jump table)
BR FKPROC ; function key processing
BR FKOPEN ; called on DataVUE entry
BR FKCLSE ; called on DataVUE 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 DataVue
; Reset translation flag and enable XON/XOFF when DataVue 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 DataVue 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 it
CLR D1 ; kill dummy
CLR @A4 ; clear out string pointer
RTN ; get back to DataVue
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 DataVue
; 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,0 ; CLR EOL (not used)
BYTE 331,0 ; CLR EOP (not used)
BYTE 311,'S-100,'O-100,0 ; BACKTAB (recall text)
BYTE 320,0 ; PRINT (not used)
BYTE 314,0 ; Shift PRINT (not used)
; Function keys
BYTE 200,33,0 ; (F1) Escape
BYTE 240,33,0 ; (SHIFT F1) Escape
BYTE 201,'S-100,'<,0 ; (F2) Row Lock
BYTE 241,'S-100,54,0 ; (SHIFT F2) Row Limit
BYTE 202,'S-100,'J-100,0 ; (F3) Vertical Advance
BYTE 242,'S-100,'L-100,0 ; (SHIFT F3) Horizontal Advance
BYTE 203,'S-100,'A-100,0 ; (F4) Scrap Cell Store
BYTE 243,'S-100,'B-100,0 ; (SHIFT F4) Scrap Cell Restore
BYTE 204,'X-100,0 ; (F5) Next Match
BYTE 244,0 ; (SHIFT F5) (not used)
BYTE 205,'G-100,0 ; (F6) Insert Field
BYTE 245,'O-100,0 ; (SHIFT F6) Insert all fields
BYTE 206,'E-100,0 ; (F7) Screen Last
BYTE 246,0 ; (SHIFT F7) (not used)
BYTE 207,'T-100,0 ; (F8) Screen Next
BYTE 247,'R-100,0 ; (SHIFT F8) Screen 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