        section respr

mt.inf  equ     0

sv_chtop equ    $7C
sv_caps equ     $88
sv_ichar equ    $145
sv_trtab equ    $146
sv_mgtab equ    $14A (N.B. one above trtab)

sx_kbenc equ    $10
sx_trn  equ     $20
sx_msg  equ     $24  (N.B. one above trn)
sx_kbste equ    $34
sx_qdos equ     $40

        moveq   #mt.inf,d0
        trap    #1
        move.l  sv_chtop(a0),a4
        move.b  #qdos,sx_qdos+1(a4) make ourselves this system type
        lea     tb_kbenc,a2
        move.l  a2,sx_kbenc(a4) bend keyboard encoder to here
        lea     sv_mgtab+4(a0),a1
        lea     sx_msg+4(a4),a4
        lea     tb_msg,a2       change default messages
        bsr.s   setdef
        lea     tb_trn,a2       change default serial translate
setdef
        move.l  -(a1),d1        get current setting for this table
        cmp.l   -(a4),d1        compare to extant default
        bne.s   notdef
        move.l  a2,(a1)         if the same, slot in this as current setting
notdef
        move.l  a2,(a4)         always set new default
        rts

* Macros for generating message table

msghead macro
[.lab]  dc.w    $4AFB
m setnum 0
hloop maclab
m setnum [m]+1
        dc.w    x[m]-[.lab]
 ifnum [m] < 29 goto hloop
m setnum 0
 endm

msg macro
m setnum [m]+1
x[m]    dc.w    y[m]-*-2
i setnum 0
mloop maclab
i setnum [i]+1
        dc.b    [.parm([i])]
 ifnum [i] < [.nparms] goto mloop
y[m]
 endm

* Macros for generating serial translate table

trtab macro
trtl setstr [.lab]
trtn setnum 0
trtf setstr n
 endm

trs macro f,t
f setnum [f]
trs[f] setnum [t]
trtf setstr y
 endm

trt macro f,t,u,v
 trs [f],0
trt[trtn] setstr {[f],[t],[u],[v]}
trtn setnum [trtn]+1
 endm

tro macro f,t,u
 trt [f],[t],8,[u]
 endm

batrt macro i
[trtl] dc.w $4AFB
 goto [trtf]
n maclab
 dc.w 0
 goto x
y maclab
 dc.w trs-[trtl],trt-[trtl]
trs
i setnum 0
l maclab
 ifstr [.def(trs[i])] = TRUE goto d
 dc.b [i]
 goto a
d maclab
 dc.b [trs[i]]
a maclab
i setnum [i]+1
 ifnum [i] < 256 goto l
trt dc.b [trtn]
 ifnum [trtn] = 0 goto x
i setnum 0
m maclab
 dc.b [trt[i]]
i setnum [i]+1
 ifnum [i] < [trtn] goto m
x maclab
 endm

