Ausam/sys/conf/other/l45.s
/ low core
.globl dump, start, pirqi
.globl code00, code01, code02, code03, code04, code05
.globl code06, call
br4 = 200
br5 = 240
br6 = 300
br7 = 340
. = 0^.
br 1f / Replaced later with trap
br7+15 / Spurious interrupt through 0
/ trap vectors
code05; br7+7 / bus error
code02; br7+2 / illegal instruction
code02; br7+3 / bpt/trace trap
code01; br7+5 / iot trap
code03; br7+11 / power fail
code04; br7+6 / emt
code02; br7+4 / system entry
. = 40^.
1: jmp start
jmp dump
. = 52^.
0 / rotating pattern for display by swr = 52
. = 54^.
0;0 / clock ticks since system start !!
/ see clock service routine below
/ see display in m45.s
. = 60^.
klin; br4+0. / KL #0 input
klou; br4+0. / KL #0 output
. = 100^.
kwlp; br6+1 / Clock ** NOTE +1 ==> c-bit set ** SEE kwlp
kwlp; br6 / Clock
. = 114^.
code03; br7+12 / 11/45 parity
. = 170^.
.globl _idle,diswflag
_idle:
inc diswflag
1 /* wait *
rts pc
. = 220^.
rkio; br5+0.
. = 224^.
tmio; br5+0.
. = 240^.
pirqi; br7 / programmed interrupt request
code00; br7+0 / floating point interrupt
code06; br7+10 / segmentation violation
/ floating vectors
. = 300^.
klin; br4+1.
klou; br4+1.
klin; br4+2.
klou; br4+2.
klin; br4+3.
klou; br4+3.
klin; br4+4.
klou; br4+4.
. = 340^.
dhin; br5+0.
dhou; br5+0.
//////////////////////////////////////////////////////
/ interface code to C
//////////////////////////////////////////////////////
.globl call
.globl _klrint
klin: jsr r0,call; _klrint
.globl _klxint
klou: jsr r0,call; _klxint
.globl _clock
kwlp:
adc *$56 / low word count of clock ticks
adc *$54 / high word count of clock ticks
jsr r0,call; _clock
.globl _rkintr
rkio: jsr r0,call; _rkintr
.globl _tmintr
tmio: jsr r0,call; _tmintr
.globl _dhrint
dhin: jsr r0,call; _dhrint
.globl _dhxint
dhou: jsr r0,call; _dhxint