OBJNAM RDONLY.VUX ; 1.1(2)  Created 21-Jan-87, last modified 18-Mar-87
if eq,1

AlphaVUE keycode translation file for READ-ONLY viewing
by Irv Bromberg, MD, Mount Sinai Hospital, Toronto, CANADA

Usage:  Before invoking VUE, COPY MEM:TDVNAM=RDONLY.VUX where TDVNAM is
the name of the user's terminal driver. Using this module as the .VUX
file prevents the user from typing anything into the text or using
destructive control codes. After the VUE session is over DEL *.VUX to
restore normal VUE features.  The only alpha character which can be
typed is "Q" or "F" which cause switch to command mode, Q<cr> to occur
forcing a QUIT from VUE.  All function keys are ignored except for the
following conversions:  F1->^U  F2->^A  F3->^W  F4->^N

DO NOT LOAD this module into SYSTEM memory!  (the first longword is impure)

endc

RADIX 10
CR=13
ESC=27
ESK=27+128      ; Escape to force command mode
Ctrl=-64
Ignore=Ctrl+']

       BLKL    1 ; storage used by VUE, next are first 128 keyboard keys:
; Ctrl  @ A B C D E F G H I J K L M   N O P Q R S T U V W X Y Z [ \ ] ^ _
WORD    X,Z,X,X,X,Z,X,X,Z,X,Z,Z,Z,RTN,Z,X,X,X,Z,Z,Z,Z,X,Z,Z,X,X,Z,X,X,Z,X
WORD    X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
; Alpha @ A B C D E F    G H I J K L M N O P Q    R S T U V W X Y Z [ \ ] ^ _
WORD    X,X,X,X,X,X,Quit,X,X,X,X,X,X,X,X,X,X,Quit,X,X,X,X,X,X,X,X,X,X,X,X,X,X
WORD    X,X,X,X,X,X,Quit,X,X,X,X,X,X,X,X,X,X,Quit,X,X,X,X,X,X,X,X,X,X,X,X,X,X
; function keys  X=ignore
; Terminal driver has to convert function keycodes so F1-->CHR(128)
; and shifted function keys are contiguous with unshifted keys.
WORD    U,A,W,N,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
WORD    X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
WORD    X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
WORD    X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X

X:      BYTE    Ignore          ; key to be ignored --> US not used by VUE
Z:      BYTE    0               ; not to be converted

; key conversion sequences

RTN:    ; convert CR to move cursor to beginning of line followed by move
       ; cursor down one line so ENTRY ON won't insert line on CR and so no
       ; blank lines can be added at the end of the document
       BYTE    Ctrl+'U,Ctrl+'J,0

Quit:   BYTE    ESK,'Q,CR,0     ; convert Q and F to command QUIT

U:      BYTE    Ctrl+'U,0       ; convert F1->^U
A:      BYTE    Ctrl+'A,0       ; convert F2->^A
W:      BYTE    Ctrl+'W,0       ; convert F3->^W
N:      BYTE    Ctrl+'N,0       ; convert F4->^N

       EVEN
       RAD50   "RDONLY"        ; signature at end used by RDONLY.LIT

       END