OBJNAM IBAM60.VUX ; 1.4(5)  19-Sept-84
; New AlphaVUE keycode translation file for AM-60 terminal
; Install the assembled VUX file to LIB: account.  Then log into DVR:
; and COPY IBAM60=ALPHA.TDV.  Then log into SYS: and change AMOSL.INI
; so that the appropriate TRMDEF lines are changed to use IBAM60 instead
; of ALPHA or AM60 terminal driver.
; Written by Irv Bromberg, Medic/OS Consultants, Toronto, CANADA
; Note:  It was not easy dreaming up things for 32 different function keys
; to do!  The definitions contained herein are intended as examples only.
RADIX 10
CR=13
ESC=27
CTRL=-64

       BLKL    1 ; storage used by VUE, next are 128 unconverted keys:
WORD    Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z
WORD    Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z
WORD    Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z
WORD    Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z,Z
; function keys F5-F12 (lead-in = SOH)  X=ignore
;       @  A  B  C  D  E   F   G   H   I   J   K   L   M    N    O
WORD    F5,F6,F7,F8,F9,F10,F11,F12,sF5,sF6,sF7,sF8,sF9,sF10,sF11,sF12
;       P Q R S T U V W X Y Z [ \ ] ^ _ space
WORD    X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X ; there are no keys for these codes
; editing keys (lead-in = ESCAPE)
;       New-Line, shifted numeric keypad:
;       !     "      #  $  %  &      '  (  )  *      +  ,  -  .  /
WORD    NewLn,sNewLn,N7,N8,N9,Nminus,N4,N5,N6,Ncomma,N1,N2,N3,N0,Ndecimal
;       0 1       2       3       4  5  6   7   8     9    : ;
WORD    X,WORDins,WORDdel,sScroll,F2,F1,sF2,sF1,sHelp,Help,X,X
;       <    = >     ? @  A B       C D E   F G H I    J K       L
WORD    Exec,X,sExec,X,F4,X,sCancel,X,X,F13,X,X,X,sTab,X,LINEdel,Cancel
;       M N       O       P   Q        R   S  T   U V
WORD    X,CHARins,CHARdel,sF4,WORDprev,F14,F3,F15,X,sNxtScr
;       W X Y   Z [     \      ] ^   _     ` a b c d e f g h
WORD    X,X,F16,X,sLeft,sRight,X,sUp,sDown,X,X,X,X,X,X,X,X,LINEins
;       i j k l m n o p q       r      s   t    u v      w
WORD    X,X,X,X,X,X,X,X,sPrvScr,PrvScr,sF3,sF15,X,NxtScr,WORDnext
;       x y    z {     |    } ~    rubout
WORD    X,sF16,X,sHome,sF13,X,sF14,X

X:      BYTE    CTRL+'_         ; key to be ignored --> US not used by VUE
Z:      BYTE    0               ; not to be converted

; shifted numeric keypad conversion to unshifted values
N0:     BYTE    '0,0
N1:     BYTE    '1,0
N2:     BYTE    '2,0
N3:     BYTE    '3,0
N4:     BYTE    '4,0
N5:     BYTE    '5,0
N6:     BYTE    '6,0
N7:     BYTE    '7,0
N8:     BYTE    '8,0
N9:     BYTE    '9,0
Ncomma: BYTE    ',,0
Ndecimal:BYTE   '.,0
Nminus: BYTE    '-,0

; editing keys conversion sequences
; Note WORD insert does something -- inserts 5 spaces, allows for a 4-letter
; word plus a space, also useful for indenting paragraphs.
WORDins:BYTE    CTRL+'F,CTRL+'F,CTRL+'F,CTRL+'F,CTRL+'F,0
sScroll:BYTE    CTRL+'S,0       ; shift scroll = center page
sTab:   BYTE    CTRL+'I,0       ; shift tab = unshifted tab
sCancel:
Cancel: BYTE    CTRL+'C,0       ; cancel command = ^C
sHome:  BYTE    CTRL+'E,0       ; last page
sNxtScr:
NxtScr: BYTE    CTRL+'T,0       ; next page
sPrvScr:
PrvScr: BYTE    CTRL+'R,0       ; prev page
CHARins:BYTE    CTRL+'F,0       ; insert a space
CHARdel:BYTE    CTRL+'D,0       ; delete char
LINEins:BYTE    CTRL+'B,0       ; insert line
LINEdel:BYTE    CTRL+'Z,0       ; delete line
ClrEol: BYTE    CTRL+'Y,0       ; clear to end of line
sLeft:  BYTE    CTRL+'U,0       ; shifted left arrow = beginning of line
sRight: BYTE    CTRL+'N,0       ; shifted right arrow = end of line
sUp:    BYTE    CTRL+'O,0       ; shifted up arrow = concatenate
sDown:  BYTE    CTRL+'J,0       ; shifted down arrow = linefeed
sExec:                          ; shifted execute = RETURN
Exec:                           ; execute = RETURN
sNewLn:                         ; shifted new line = RETURN
NewLn:  BYTE    CTRL+'M,0       ; new line = RETURN
WORDdel:BYTE    CTRL+'V,0       ; delete word
WORDprev:BYTE   CTRL+'A,0       ; previous word
WORDnext:BYTE   CTRL+'W,0       ; next word
sHelp:  BYTE    ESC             ; shifted help = ESC help
Help:   ASCIZ   |help |         ; help = help

; function keys conversion sequences
; (C) means use only in Command Mode, (T) means use only in Text Mode
F1:     ASCII   |dir|           ; (C)
       BYTE    CR,0
sF1:    BYTE    ESC
       ASCII   |save|          ; (T)
       BYTE    CR,ESC,0
F2:     ASCII   |fold off|      ; (C)
       BYTE    CR,0
sF2:    ASCII   |fold on|       ; (C)
       BYTE    CR,0
F3:     ASCII   |modem off|     ; (C)
       BYTE    CR,0
sF3:    ASCII   |modem on|      ; (C)
       BYTE    CR,0
F4:     ASCII   |smart on|      ; (C)
       BYTE    CR,0
sF4:    ASCII   |smart off|     ; (C)
       BYTE    CR,0

F5:     ASCII   |text off|      ; (C)
       BYTE    CR,0
sF5:    ASCII   |text on|       ; (C)
       BYTE    CR,0
F6:     ASCII   |wrap off|      ; (C)
       BYTE    CR,0
sF6:    ASCII   |wrap on|       ; (C)
       BYTE    CR,0
F7:     ASCII   |searchfold off|; (C)
       BYTE    CR,0
sF7:    ASCII   |searchfold on| ; (C)
       BYTE    CR,0
F8:     BYTE    CTRL+'X,0       ; F8 = next match during search
sF8:    BYTE    CTRL+'_,0       ; ignore

F9:     BYTE    ESC
       ASCII   |sblk off|      ; (T)
       BYTE    CR,ESC,0
sF9:    BYTE    ESC
       ASCII   |sblk on|       ; (T)
       BYTE    CR,ESC,0
F10:    BYTE    CTRL+'P,0       ; F10 = set block markers
sF10:   BYTE    ESC
       ASCII   |clear|         ; (T)
       BYTE    CR,ESC,0
F11:    BYTE    ESC
       ASCII   |copy|          ; (T)
       BYTE    CR,ESC,0
sF11:   BYTE    ESC
       ASCII   |move|          ; (T)
       BYTE    CR,0
F12:    BYTE    CTRL+'Y,0       ; F12 = clear to end of line
sF12:   BYTE    ESC
       ASCII   |delete|        ; (T)
       BYTE    CR,0

F13:    BYTE    ESC
       ASCII   |format|        ; (T)
       BYTE    CR,0
sF13:   BYTE    ESC
       ASCII   |center|        ; (T)
       BYTE    CR,0
F14:    BYTE    ESC
       ASCII   |split|         ; (T)
       BYTE    CR,ESC,0
sF14:   BYTE    ESC
       ASCII   |unsplit|       ; (T)
       BYTE    CR,ESC,0
F15:    BYTE    ESC
       ASCII   |push|          ; (T)
       BYTE    CR,0
sF15:   BYTE    ESC
       ASCII   |pop|           ; (T)
       BYTE    CR,0
; note F16 is near INS/DEL keys, convenient for related functions
F16:    BYTE    CTRL+'Q,0       ; insert character mode on/off
sF16:   BYTE    CTRL+'\,0       ; entry mode on/off

       END