mirror of
https://github.com/livingcomputermuseum/pdp7-unix.git
synced 2026-05-01 14:06:17 +00:00
728 lines
7.7 KiB
ArmAsm
728 lines
7.7 KiB
ArmAsm
"** 14-148-165.pdf page 1
|
|
" ttt1.s
|
|
|
|
t = 0
|
|
lac 017777
|
|
tad d1
|
|
dac 9f+t
|
|
lac 9f+t i
|
|
sad qdt
|
|
skp
|
|
jmp loop
|
|
dac dspflg
|
|
law sbuf-1
|
|
dac blk1
|
|
dac blk2
|
|
jms dsboard
|
|
law dbuf
|
|
sys capt
|
|
law 16
|
|
sys sysloc
|
|
tad d1
|
|
dac lpadr
|
|
law 13
|
|
sys sysloc
|
|
dac pbadr
|
|
dzm lpadr i
|
|
loop:
|
|
jms move
|
|
jms must; jmp loop
|
|
lac imaxin
|
|
dac maxin
|
|
law stack-1
|
|
dac 10
|
|
jms try; jmp unwind
|
|
jms heur; jmp loop
|
|
|
|
unwind:
|
|
lac 12
|
|
dac 9f+t
|
|
1:
|
|
lac 9f+t i
|
|
jms mark; 1
|
|
-1
|
|
tad 9f+t
|
|
dac 9f+t
|
|
lac 9f+t i
|
|
spa
|
|
jmp done
|
|
jms mark; 512
|
|
-1
|
|
tad 9f+t
|
|
dac 9f+t
|
|
lac dspflg
|
|
sna
|
|
jmp 1b
|
|
jms getpb
|
|
sza
|
|
jmp .-2
|
|
jms getpb
|
|
sna
|
|
jmp .-2
|
|
jmp 1b
|
|
t = t+1
|
|
|
|
"** 14-148-165.pdf page 2
|
|
move: 0
|
|
lac dspflg
|
|
sza
|
|
jmp dspmove
|
|
jms messg; m>;o>;v>;e>;0
|
|
dzm 9f+t
|
|
1:
|
|
jms getc
|
|
sad o12
|
|
jmp 1f
|
|
tad om60
|
|
spa
|
|
jmp move+1
|
|
dac 9f+t+1
|
|
and o3
|
|
sad 9f+t+1
|
|
skp
|
|
jmp move+1
|
|
lac 9f+t
|
|
alss 2
|
|
xor 9f+t+1
|
|
dac 9f+t
|
|
jmp 1b
|
|
1:
|
|
lac 9f+t
|
|
spa
|
|
jmp move+1
|
|
and o77
|
|
sad 9f+t
|
|
skp
|
|
jmp move+1
|
|
tad boardp
|
|
dac 9f+t
|
|
lac 9f+t i
|
|
sza
|
|
jmp move+1
|
|
lac 9f+t
|
|
jms mark; 512
|
|
jmp move i
|
|
|
|
dspmove:
|
|
jms getpb
|
|
sza
|
|
jmp pbhit
|
|
lac lpadr i
|
|
sna
|
|
jmp dspmove
|
|
|
|
lphit:
|
|
lmq
|
|
lac blink
|
|
sna
|
|
jmp 1f
|
|
cma
|
|
tad boardp
|
|
cma
|
|
alss 4
|
|
tad sbufp
|
|
dac 9f+t
|
|
lac noblink
|
|
"** 14-148-165.pdf page 3
|
|
dac blk1 i
|
|
dac blk2 i
|
|
dac 9f+t i
|
|
1:
|
|
dzm lpadr i
|
|
lacq
|
|
cma
|
|
tad sbufp
|
|
cma
|
|
lrss 4
|
|
dac 9f+t
|
|
and o77
|
|
sad 9f+t
|
|
skp
|
|
jmp dspmove
|
|
tad boardp
|
|
dac blink
|
|
lac 9f+t
|
|
alss 4
|
|
tad sbufp
|
|
dac 9f+t
|
|
lac blinkpar
|
|
dac 9f+t i
|
|
jmp dspmove
|
|
|
|
pbhit:
|
|
lac blink
|
|
sna
|
|
jmp dspmove
|
|
jms mark; 512
|
|
dzm blink
|
|
jmp move i
|
|
t = t+2
|
|
|
|
must: 0
|
|
|
|
" check for 3g.4g.4b
|
|
|
|
law line-1
|
|
dac 8
|
|
-76
|
|
dac 9f+t
|
|
dzm 9f+t+1
|
|
dzm 9f+t+2
|
|
1:
|
|
cla
|
|
xct 8 i
|
|
xct 8 i
|
|
xct 8 i
|
|
xct 8 i
|
|
sad o4
|
|
jmp done
|
|
sad o4000
|
|
jmp done
|
|
sad o3
|
|
dac 9f+t+2
|
|
sad o3000
|
|
skp
|
|
jmp 2f
|
|
-4
|
|
tad 8
|
|
"** 14-148-165.pdf page 4
|
|
dac 9
|
|
cla
|
|
xct 9 i
|
|
sza cla
|
|
jmp .-2
|
|
-1
|
|
tad 9
|
|
dac 9
|
|
lac 9 i
|
|
dac 9f+t+1
|
|
2:
|
|
isz 9f+t
|
|
jmp 1b
|
|
lac 9f+t+2
|
|
sza
|
|
jmp 1f
|
|
lac 9f+t+1
|
|
sna
|
|
jmp 1f
|
|
jms mark; 1
|
|
jmp must i
|
|
1:
|
|
isz must
|
|
jmp must i
|
|
t = t+3
|
|
|
|
done:
|
|
lac dspflg
|
|
sza
|
|
jmp 1f
|
|
jms messg; e>;x>;i>;t>;0
|
|
sys exit
|
|
1:
|
|
law sbuf-1
|
|
dac blk1
|
|
dac blk2
|
|
jms dsboard
|
|
law line-1
|
|
dac 8
|
|
-76
|
|
dac 9f+t
|
|
1:
|
|
cla
|
|
xct 8 i
|
|
xct 8 i
|
|
xct 8 i
|
|
xct 8 i
|
|
sad o4
|
|
jmp 1f
|
|
sad o4000
|
|
jmp 1f
|
|
isz 9f+t
|
|
jmp 1b
|
|
sys exit
|
|
1:
|
|
-4
|
|
tad 8
|
|
dac 9
|
|
1:
|
|
lac 9 i
|
|
cma
|
|
"** 14-148-165.pdf page 5
|
|
tad boardp
|
|
cma
|
|
alss 4
|
|
tad sbufp
|
|
dac 9f+t
|
|
lac blinkpar
|
|
dac 9f+t i
|
|
lac 8
|
|
sad 9
|
|
skp
|
|
jmp 1b
|
|
jms getpb
|
|
sza
|
|
jmp .-2
|
|
jms getpb
|
|
sna
|
|
jmp .-2
|
|
sys exit
|
|
t = t+1
|
|
|
|
mark: 0
|
|
dac 9f+t
|
|
lac mark i
|
|
dac 9f+t i
|
|
isz mark
|
|
lac dspflg
|
|
sna
|
|
jmp 1f
|
|
lac blk1
|
|
dac blk2
|
|
lac 9f+t
|
|
cma
|
|
tad boardp
|
|
cma
|
|
alss 4
|
|
tad sbufp
|
|
dac blk1
|
|
jms dsboard
|
|
jmp mark i
|
|
1:
|
|
lac 9f+t i
|
|
sad d1
|
|
skp
|
|
jmp mark i
|
|
lac 9f+t
|
|
cma
|
|
tad boardp
|
|
cma
|
|
dac 9f+t
|
|
lrs 4
|
|
and o3
|
|
tad o60
|
|
dac 0f
|
|
lac 9f+t
|
|
lrs 2
|
|
and o3
|
|
tad o60
|
|
dac 0f+1
|
|
lac 9f+t
|
|
and o3
|
|
tad o60
|
|
"** 14-148-165.pdf page 6
|
|
dac 0f+2
|
|
jms messg; 0:0;0;0;0
|
|
jmp mark i
|
|
t = t+1
|
|
|
|
try: 0
|
|
|
|
" check 3g or 3b
|
|
|
|
law line-1
|
|
dac 9
|
|
-76
|
|
dac 9f+t+3
|
|
dzm 9f+t+4
|
|
1:
|
|
cla
|
|
xct 9 i
|
|
xct 9 i
|
|
xct 9 i
|
|
xct 9 i
|
|
sad o3000
|
|
dac 9f+t+4
|
|
sad o3
|
|
skp
|
|
jmp 2f
|
|
lac 10
|
|
dac 12
|
|
-1
|
|
dac 12 i
|
|
-4
|
|
tad 9
|
|
dac 9
|
|
cla
|
|
xct 9 i
|
|
sza cla
|
|
jmp .-2
|
|
-1
|
|
tad 9
|
|
dac 9
|
|
lac 9 i
|
|
dac 12 i
|
|
lac dspflg
|
|
sza
|
|
jmp try i
|
|
jms messg; i>;040;w>;i>;n>;0
|
|
jmp try i
|
|
2:
|
|
isz 9f+t+3
|
|
jmp 1b
|
|
lac 9f+t+4
|
|
sna
|
|
jmp 1f
|
|
isz try
|
|
jmp try i
|
|
|
|
" save
|
|
|
|
1:
|
|
isz maxin
|
|
jmp 1f
|
|
-1
|
|
"** 14-148-165.pdf page 7
|
|
dac maxin
|
|
isz try
|
|
jmp try i
|
|
1:
|
|
lac try
|
|
dac 10 i
|
|
lac 8
|
|
dac 10 i
|
|
lac 9f+t
|
|
dac 10 i
|
|
lac 9f+t+1
|
|
dac 10 i
|
|
lac 9f+t+2
|
|
dac 10 i
|
|
|
|
" check 2g
|
|
|
|
law line-1
|
|
dac 8
|
|
-76
|
|
dac 9f+t
|
|
1:
|
|
cla
|
|
xct 8 i
|
|
xct 8 i
|
|
xct 8 i
|
|
xct 8 i
|
|
sad o2
|
|
skp
|
|
jmp 2f
|
|
-4
|
|
tad 8
|
|
dac 9
|
|
cla
|
|
xct 9 i
|
|
sza cla
|
|
jmp .-2
|
|
lac 9
|
|
dac 9f+t+1
|
|
lac 9f+t+1 i
|
|
dac 9f+t+1
|
|
cla
|
|
xct 9 i
|
|
sza cla
|
|
jmp .-2
|
|
lac 9
|
|
dac 9f+t+2
|
|
lac 9f+t+2 i
|
|
dac 9f+t+2
|
|
|
|
" recurse
|
|
|
|
lac d1
|
|
dac 9f+t+1 i
|
|
lac o1000
|
|
dac 9f+t+2 i
|
|
jms try; jmp prnt
|
|
lac d1
|
|
dac 9f+t+2 i
|
|
lac o1000
|
|
dac 9f+t+1 i
|
|
"** 14-148-165.pdf page 8
|
|
jms try; jmp prnt
|
|
dzm 9f+t+1 i
|
|
dzm 9f+t+2 i
|
|
2:
|
|
isz 9f+t
|
|
jmp 1b
|
|
|
|
" restore
|
|
|
|
-5
|
|
tad 10
|
|
dac 10
|
|
dac 9
|
|
lac 9 i
|
|
dac try
|
|
lac 9 i
|
|
dac 8
|
|
lac 9 i
|
|
dac 9f+t
|
|
lac 9 i
|
|
dac 9f+t+1
|
|
lac 9 i
|
|
dac 9f+t+2
|
|
isz try
|
|
jmp try i
|
|
|
|
prnt:
|
|
lac 9f+t+1 i
|
|
sad d1
|
|
jmp 1f
|
|
lac 9f+t+1
|
|
dac 12 i
|
|
lac 9f+t+2
|
|
jmp 2f
|
|
1:
|
|
lac 9f+t+2
|
|
dac 12 i
|
|
lac 9f+t+1
|
|
2:
|
|
dac 12 i
|
|
dzm 9f+t+1 i
|
|
dzm 9f+t+2 i
|
|
-5
|
|
tad 10
|
|
dac 10
|
|
dac 9
|
|
lac 9 i
|
|
dac try
|
|
lac 9 i
|
|
dac 8
|
|
lac 9 i
|
|
dac 9f+t
|
|
lac 9 i
|
|
dac 9f+t+1
|
|
lac 9 i
|
|
dac 9f+t+2
|
|
jmp try i
|
|
t = t+5
|
|
|
|
heur: 0
|
|
jms addpri
|
|
"** 14-148-165.pdf page 9
|
|
-2
|
|
tad force
|
|
dac lforce
|
|
-1000
|
|
dac lpri
|
|
-64
|
|
dac 9f+t
|
|
lac boardp
|
|
dac 9f+t+1
|
|
1:
|
|
lac 9f+t+1 i
|
|
sza
|
|
jmp 3f
|
|
lac d1
|
|
dac 9f+t+1 i
|
|
jms addpri
|
|
lac force
|
|
sad lforce
|
|
jmp 4f
|
|
lac pri
|
|
cma
|
|
tad lpri
|
|
sma cma
|
|
jmp 3f-1
|
|
sza
|
|
jmp 2f
|
|
isz prob
|
|
-1
|
|
cll; idiv; prob:..
|
|
lacq
|
|
lrss 6
|
|
dac force
|
|
sys time
|
|
lacq
|
|
tad rand
|
|
cll; mul; 37111
|
|
lacq
|
|
dac rand
|
|
cll; lrs 6
|
|
cma
|
|
tad force
|
|
spa
|
|
jmp 3f-1
|
|
jmp 2f+2
|
|
2:
|
|
lac d1
|
|
dac prob
|
|
lac pri
|
|
dac lpri
|
|
lac 9f+t+1
|
|
dac lmov
|
|
dzm 9f+t+1 i
|
|
3:
|
|
isz 9f+t+1
|
|
isz 9f+t
|
|
jmp 1b
|
|
lac lmov
|
|
jms mark; 1
|
|
jmp heur i
|
|
4:
|
|
lac 9f+t+1
|
|
"** 14-148-165.pdf page 10
|
|
jms mark; 1
|
|
jmp heur i
|
|
t = t+2
|
|
|
|
addpri: 0
|
|
clq
|
|
law line-1
|
|
dac 8
|
|
-76
|
|
dac 9f+t
|
|
dzm force
|
|
1:
|
|
cla
|
|
xct 8 i
|
|
xct 8 i
|
|
xct 8 i
|
|
xct 8 i
|
|
sad o2000
|
|
isz force
|
|
dac 9f+t+1
|
|
rtr;rtr;rtr;rar
|
|
xor 9f+t+1
|
|
and o77
|
|
tad 2f
|
|
dac .+2
|
|
lacq
|
|
tad ..
|
|
lmq
|
|
isz 9f+t
|
|
jmp 1b
|
|
law plane-1
|
|
dac 8
|
|
-18
|
|
dac 9f+t
|
|
1:
|
|
-16
|
|
dac 9f+t+1
|
|
cla
|
|
0:
|
|
xct 8 i
|
|
isz 9f+t+1
|
|
jmp 0b
|
|
pstrat:
|
|
jms 3f; 04002; 1
|
|
jms 3f; 03001; 15
|
|
jms 3f; 04001; 20
|
|
jms 3f; 1; 1
|
|
isz 9f+t
|
|
jmp 1b
|
|
lacq
|
|
dac pri
|
|
jmp addpri i
|
|
2: tad pritab
|
|
3: 0
|
|
sad 3b i
|
|
jmp 1f
|
|
isz 3b
|
|
isz 3b
|
|
jmp 3b i
|
|
1:
|
|
isz 3b
|
|
"** 14-148-165.pdf page 11
|
|
lacq
|
|
tad 3b i
|
|
lmq
|
|
cla
|
|
isz 3b
|
|
jmp 3b i
|
|
t = t+2
|
|
|
|
dsboard: 0
|
|
-64
|
|
dac 9f+t
|
|
dzm 9f+t+2
|
|
law board-1
|
|
dac 8
|
|
law sbuf-1
|
|
dac 11
|
|
|
|
8:
|
|
lac noblink
|
|
dac 11 i
|
|
lac 9f+t+2
|
|
and o3
|
|
alss 6
|
|
dac 9f+t+3
|
|
alss 1
|
|
tad 9f+t+3
|
|
dac 9f+t+3
|
|
lac 9f+t+2
|
|
and o14
|
|
alss 4
|
|
tad 9f+t+3
|
|
xor setxv
|
|
dac 11 i
|
|
lac 9f+t+2
|
|
and o74
|
|
alss 4
|
|
xor setyv
|
|
dac 11 i
|
|
lac 8 i
|
|
sna
|
|
jmp 4f
|
|
sad d1
|
|
jmp 3f
|
|
law ex-1
|
|
jmp 2f
|
|
3: law oh-1
|
|
jmp 2f
|
|
4: law dot-1
|
|
2: dac 9
|
|
-12
|
|
dac 9f+t+1
|
|
1:
|
|
lac 9 i
|
|
dac 11 i
|
|
isz 9f+t+1
|
|
jmp 1b
|
|
lac noblink
|
|
dac 11 i
|
|
isz 9f+t+2
|
|
isz 9f+t
|
|
jmp 8b
|
|
"** 14-148-165.pdf page 12
|
|
-1
|
|
dac 11 i
|
|
lac blinkpar
|
|
dac blk1 i
|
|
dac blk2 i
|
|
jmp dsboard i
|
|
t = t+4
|
|
|
|
getc: 0
|
|
cla
|
|
sys read; 9f+t; 1
|
|
sna spa
|
|
sys save
|
|
lac 9f+t
|
|
lrss 9
|
|
jmp getc i
|
|
|
|
messg: 0
|
|
-1
|
|
tad messg
|
|
dac 9
|
|
1:
|
|
lac 9 i
|
|
sna
|
|
jmp 1f
|
|
dac 9f+t
|
|
lac d1
|
|
sys write; 9f+t; 1
|
|
jmp 1b
|
|
1:
|
|
lac d1
|
|
sys write; o12; 1
|
|
jmp 9 i
|
|
t = t+1
|
|
|
|
getpb: 0
|
|
sys time
|
|
lac pbadr i
|
|
and o2000
|
|
sza
|
|
sys exit
|
|
lac pbadr i
|
|
jmp getpb i
|