mirror of
https://github.com/DoctorWkt/pdp7-unix.git
synced 2026-01-13 07:20:05 +00:00
1060 lines
6.9 KiB
ArmAsm
1060 lines
6.9 KiB
ArmAsm
"** 04-cas.pdf page 1
|
|
" cas
|
|
|
|
narg = i 017777
|
|
|
|
lac 017777
|
|
tad d5
|
|
dac name1
|
|
tad d4
|
|
dac name2
|
|
lac narg
|
|
sad d4
|
|
jmp 1f
|
|
sad d8
|
|
jmp 2f
|
|
jmp 3f
|
|
1:
|
|
law ttyout
|
|
dac name1
|
|
2:
|
|
law ttyin
|
|
dac name2
|
|
3:
|
|
sys open; name2: 0; 0
|
|
sma
|
|
jmp 1f
|
|
lac name2
|
|
dac 2f
|
|
lac d1
|
|
sys write; 2: 0; 4
|
|
lac d1
|
|
sys write; mes; 2
|
|
sys exit
|
|
1:
|
|
sys open; name1: 0; 1
|
|
sma
|
|
jmp 1f
|
|
lac name1
|
|
dac 2f
|
|
lac o17
|
|
sys creat; 2: 0
|
|
sma
|
|
jmp 1f
|
|
lac name1
|
|
dac 2f
|
|
lac d1
|
|
sys write; 2: 0; 4
|
|
lac d1
|
|
sys write; mes; 2
|
|
sys exit
|
|
mes:
|
|
040077;012
|
|
1:
|
|
dzm nchar
|
|
dzm x
|
|
dzm y
|
|
dzm parflg
|
|
dzm nins
|
|
dzm nwds
|
|
lac bufp
|
|
dac 10
|
|
|
|
advanc:
|
|
"** 04-cas.pdf page 2
|
|
lac nchar
|
|
dzm nchar
|
|
sza
|
|
jmp adv1
|
|
lac d2
|
|
sys read; char; 1
|
|
sna
|
|
jmp done
|
|
lac char
|
|
and o777
|
|
dac nchar
|
|
lac char
|
|
lrss 9
|
|
|
|
adv1:
|
|
sna
|
|
jmp advanc
|
|
dac char
|
|
lac labflg
|
|
sna
|
|
jmp 2f
|
|
lac char
|
|
sad o12
|
|
skp
|
|
jmp 1f
|
|
dzm labflg
|
|
dac i 11
|
|
jmp advanc
|
|
1:
|
|
dac i 11
|
|
jmp advanc
|
|
2:
|
|
lac parflg
|
|
sza
|
|
jmp atoz
|
|
lac char
|
|
sad o12
|
|
jmp advanc
|
|
sad o72
|
|
skp
|
|
jmp 1f
|
|
-4
|
|
dac labflg
|
|
dac mod3
|
|
jms wbuf "???
|
|
lac lbufp
|
|
dac 11
|
|
lac o170072
|
|
dac i 10
|
|
lac o12
|
|
dac i 10
|
|
lac o60
|
|
dac i 10
|
|
isz nwds
|
|
isz nwds
|
|
isz nwds
|
|
jmp advanc
|
|
1:
|
|
sad o170
|
|
skp
|
|
jmp 1f
|
|
"** 04-cas.pdf page 3
|
|
dzm vis
|
|
jmp advanc
|
|
1:
|
|
sad o166
|
|
skp
|
|
jmp 1f
|
|
lac visbit
|
|
dac vis
|
|
jmp advanc
|
|
1:
|
|
sad o162
|
|
skp
|
|
jmp letr
|
|
isz mod3
|
|
skp
|
|
jmp 2f
|
|
lac o60060
|
|
1:
|
|
dac i 10
|
|
isz nwds
|
|
isz mod3
|
|
jmp 1b
|
|
2:
|
|
lac o12
|
|
dac i 10
|
|
isz nwds
|
|
lac lbufp
|
|
dac 11
|
|
1: "???
|
|
lac i 11
|
|
sad o12
|
|
jmp 1f
|
|
dac i 10
|
|
isz nwds
|
|
jmp 1b
|
|
1:
|
|
lac o75170
|
|
dac i 10
|
|
isz nwds
|
|
lac ob1
|
|
dac i 10
|
|
isz nwds
|
|
lac sp
|
|
dac i 10
|
|
isz nwds
|
|
lac nins
|
|
dzm nins
|
|
tad o100
|
|
lmq
|
|
llss 10
|
|
cla
|
|
llss 3
|
|
alss 6
|
|
llss 3
|
|
tad o60060
|
|
dac i 10
|
|
cla
|
|
llss 3
|
|
alss 6
|
|
llss 3
|
|
tad o60060
|
|
"** 04-cas.pdf page 4
|
|
dac i 10
|
|
cla
|
|
llss 3
|
|
alss 6
|
|
llss 3
|
|
tad o60060
|
|
dac i 10
|
|
lac nwds
|
|
tad d4
|
|
dac nwds
|
|
lac o12012
|
|
dac i 10
|
|
dzm x
|
|
dzm y
|
|
jmp advanc
|
|
letr:
|
|
tad om141 "???
|
|
spa
|
|
jmp error
|
|
tad dm16
|
|
sma "???
|
|
jmp error
|
|
cma "???
|
|
tad dm3
|
|
dac ny
|
|
-1
|
|
dac parflg
|
|
jmp advanc
|
|
|
|
atoz:
|
|
lac char
|
|
tad om141
|
|
spa
|
|
jmp error
|
|
tad dm14
|
|
sma
|
|
jmp error
|
|
tad d14
|
|
dac nx
|
|
|
|
loop:
|
|
-1
|
|
tad x
|
|
cma
|
|
tad nx
|
|
dac delx
|
|
-1
|
|
tad y
|
|
cma
|
|
tad ny
|
|
dac dely
|
|
" generate direction
|
|
|
|
lac delx
|
|
sna
|
|
jmp c1
|
|
spa
|
|
jmp c2
|
|
lac dely ;"dx ,gr, 0
|
|
sna
|
|
jmp c3
|
|
"** 04-cas.pdf page 5
|
|
spa
|
|
jmp c4
|
|
lac d1
|
|
jmp b
|
|
c3:
|
|
lac d2
|
|
jmp a
|
|
c4:
|
|
lac d3
|
|
jmp b
|
|
|
|
c1:
|
|
lac dely
|
|
sna
|
|
jmp out
|
|
spa
|
|
jmp c5
|
|
cla
|
|
jmp a
|
|
c5:
|
|
lac d4
|
|
jmp a
|
|
c2:
|
|
lac dely
|
|
sna
|
|
jmp c6
|
|
spa
|
|
jmp c7
|
|
lac d7
|
|
jmp b
|
|
c6:
|
|
lac d6
|
|
jmp a
|
|
c7:
|
|
lac d5
|
|
jmp b
|
|
"
|
|
"
|
|
a:
|
|
dac direc
|
|
lac delx
|
|
sma
|
|
jmp 1f
|
|
cma
|
|
tad d1
|
|
dac delx
|
|
1:
|
|
lac dely
|
|
sma
|
|
jmp 1f
|
|
cma
|
|
tad d1
|
|
1:
|
|
tad delx
|
|
tad dm4
|
|
sma
|
|
cla
|
|
tad d3
|
|
dac dist
|
|
tad incxp
|
|
dac tmp
|
|
"** 04-cas.pdf page 6
|
|
lac i tmp
|
|
dac incx
|
|
lac dist
|
|
tad incyp
|
|
dac tmp
|
|
lac i tmp
|
|
dac incy
|
|
jmp com
|
|
"
|
|
b:
|
|
dzm dist
|
|
dac direc
|
|
lac incxt
|
|
dac incx
|
|
lac incyt
|
|
dac incy
|
|
"
|
|
com:
|
|
isz nins
|
|
lac dist
|
|
alss 4
|
|
xor vis
|
|
xor direc
|
|
isz mod3
|
|
skp
|
|
jmp 1f
|
|
2:
|
|
lmq
|
|
llss 12
|
|
cla
|
|
llss 3
|
|
alss 6
|
|
llss 3
|
|
tad o60060
|
|
dac i 10
|
|
isz nwds
|
|
jmp 3f
|
|
1:
|
|
dac tmp
|
|
lac o12060
|
|
dac i 10
|
|
isz nwds
|
|
-3
|
|
dac mod3
|
|
lac tmp
|
|
jmp 2b
|
|
3:
|
|
lac direc
|
|
tad incx
|
|
dac tmp
|
|
lac i tmp
|
|
tad x
|
|
dac x
|
|
lac direc
|
|
tad incy
|
|
dac tmp
|
|
lac i tmp
|
|
tad y
|
|
dac y
|
|
jmp loop
|
|
"** 04-cas.pdf page 7
|
|
out:
|
|
lac nx
|
|
dac x
|
|
lac ny
|
|
dac y
|
|
dzm parflg
|
|
jmp advanc
|
|
|
|
done:
|
|
lac d2
|
|
sys close
|
|
jms wbuf
|
|
lac d3
|
|
sys close
|
|
sys exit
|
|
|
|
error:
|
|
lac d1
|
|
sys write; char; 1
|
|
lac d1
|
|
sys write; mes; 2
|
|
dzm parflg
|
|
dzm labflg
|
|
jmp advanc
|
|
|
|
wbuf: 0
|
|
lac nwds
|
|
dac 1f
|
|
lac d3
|
|
sys write; buf; 1f: 0; "???
|
|
dzm nwds
|
|
lac bufp
|
|
dac 10
|
|
jmp i wbuf
|
|
|
|
d1: 1
|
|
d2: 2
|
|
d3: 3
|
|
d4: 4
|
|
d5: 5
|
|
d6: 6
|
|
d7: 7
|
|
d8: 8
|
|
o12: 012
|
|
o75170: 075170
|
|
ob1: 055142
|
|
|
|
sp: 053060
|
|
o60: 060
|
|
o60060: 060060
|
|
o73: 073
|
|
d6: 6 "seems like a dupe
|
|
d14: 14
|
|
dm14: -14
|
|
dm16: -16
|
|
om141: -0141 "???
|
|
dm3: -3
|
|
dm4: -4
|
|
o162: 0162
|
|
o166: 0166
|
|
"** 04-cas.pdf page 8
|
|
o17: 017
|
|
o777: 0777
|
|
o72: 072
|
|
o170: 0170
|
|
o10000: 010000
|
|
o20000: 020000
|
|
o200000: 0200000
|
|
o41: 041
|
|
ttyin:
|
|
0164164;0171151;0156040;040040
|
|
ttyout:
|
|
0164164;0171157;0165164;040040
|
|
|
|
char: .=.+1
|
|
parflg: .=.+1
|
|
labflg: .=.+1
|
|
obuf: .=.+8
|
|
x: .=.+1
|
|
y: .=.+1
|
|
nx: .=.+1
|
|
ny: .=.+1
|
|
vis: .=.+1
|
|
nchar: .=.+1
|
|
"
|
|
incxp:incxt
|
|
incyp:incyt
|
|
incxt: x1;x2;x3;x4
|
|
incyt: y1;y2;y3;y4
|
|
"
|
|
x1: 0;1;1;1;0;-1;-1;-1
|
|
x2: 0;2;2;2;0;-2;-2;-2
|
|
x3: 0;3;3;3;0;-3;-3;-3
|
|
x4: 0;4;4;4;0;-4;-4;-4
|
|
y1: 1;1;0;-1;-1;-1;0;1
|
|
y2: 2;2;0;-2;-2;-2;0;2
|
|
y3: 3;3;0;-3;-3;-3;0;3
|
|
y4: 4;4;0;-4;-4;-4;0;4
|
|
delx: .=.+1
|
|
dely: .=.+1
|
|
incx: .=.+1
|
|
incy: .=.+1
|
|
direc: .=.+1
|
|
dist: .=.+1
|
|
visbit: 010
|
|
mod3: .=.+1
|
|
tmp: .=.+1
|
|
buf: .=.+500
|
|
bufp: buf-1
|
|
lbuf: .=.+10
|
|
lbufp: lbuf-1
|
|
nwds: .=.+1
|
|
o170072: 0170072
|
|
nins: .=.+1
|
|
o100: 0100
|
|
o12012: 012012
|
|
o12060: 012060
|
|
|
|
|
|
|
|
|
|
|
|
"** 04-cas.pdf page 9
|
|
:ca
|
|
v
|
|
af
|
|
nl "???
|
|
x
|
|
hd
|
|
v
|
|
hi
|
|
x
|
|
mn
|
|
r
|
|
|
|
:cb
|
|
x
|
|
ga
|
|
v
|
|
gi
|
|
ik
|
|
kk
|
|
mi "???
|
|
ma
|
|
aa
|
|
ai
|
|
ck
|
|
ek
|
|
gi
|
|
x
|
|
mn
|
|
r
|
|
|
|
:cc
|
|
x
|
|
kk
|
|
v
|
|
mi "???
|
|
mc
|
|
ka
|
|
ca
|
|
ac
|
|
ai
|
|
dl
|
|
x
|
|
mn
|
|
r
|
|
|
|
:cd
|
|
v
|
|
aa
|
|
ai
|
|
ck
|
|
kk
|
|
mi
|
|
ma
|
|
x
|
|
mn
|
|
r
|
|
|
|
:ce
|
|
x
|
|
mk
|
|
v
|
|
ma
|
|
"** 04-cas.pdf page 10
|
|
aa
|
|
ak
|
|
x
|
|
gh
|
|
v
|
|
ga
|
|
x
|
|
mn
|
|
r
|
|
|
|
:cf
|
|
v
|
|
aa
|
|
ak
|
|
x
|
|
gh
|
|
v
|
|
ga
|
|
x
|
|
mn
|
|
r
|
|
|
|
:cg
|
|
x
|
|
gf
|
|
v
|
|
gk
|
|
nk
|
|
x
|
|
kk
|
|
v
|
|
mi
|
|
mc
|
|
ka
|
|
ca
|
|
ac
|
|
ai
|
|
dl
|
|
x
|
|
mn
|
|
r
|
|
|
|
:ch
|
|
x
|
|
aa
|
|
v
|
|
na
|
|
x
|
|
gb "???
|
|
v
|
|
gk
|
|
x
|
|
ak
|
|
v
|
|
nk
|
|
x
|
|
mn
|
|
r
|
|
|
|
:ci
|
|
x
|
|
"** 04-cas.pdf page 11
|
|
md
|
|
v
|
|
mi
|
|
x
|
|
lf
|
|
v
|
|
af
|
|
x
|
|
ad
|
|
v
|
|
ai
|
|
x
|
|
mn
|
|
r
|
|
|
|
:cj
|
|
x
|
|
ka
|
|
v
|
|
mc
|
|
mg
|
|
ki
|
|
ai "???
|
|
x
|
|
ag
|
|
v
|
|
al "???
|
|
x
|
|
mn
|
|
r
|
|
|
|
:ck
|
|
x
|
|
aa
|
|
v
|
|
na
|
|
x
|
|
ak
|
|
v
|
|
ia
|
|
x
|
|
mk
|
|
v
|
|
fe
|
|
x
|
|
mn
|
|
r
|
|
|
|
:cl
|
|
x
|
|
aa
|
|
v
|
|
ma
|
|
mk
|
|
x
|
|
mn
|
|
r
|
|
|
|
:cm
|
|
v
|
|
aa
|
|
"** 04-cas.pdf page 12
|
|
hf
|
|
ak
|
|
nk
|
|
x
|
|
mn
|
|
r
|
|
|
|
:cn
|
|
x
|
|
ak
|
|
v
|
|
mk
|
|
aa
|
|
na
|
|
x
|
|
mn
|
|
r
|
|
|
|
:co
|
|
x "???
|
|
ai
|
|
v
|
|
ch
|
|
ei
|
|
ck
|
|
ai
|
|
ac
|
|
ca
|
|
ka
|
|
mc "???
|
|
mi
|
|
kk
|
|
ck
|
|
x
|
|
mn
|
|
r
|
|
|
|
:cp
|
|
v
|
|
aa
|
|
ai
|
|
ck
|
|
ek
|
|
gi
|
|
ga
|
|
x
|
|
mn
|
|
r
|
|
|
|
:cq
|
|
x
|
|
mc
|
|
v
|
|
ka
|
|
ca
|
|
ac
|
|
ai
|
|
ck
|
|
kk
|
|
mi
|
|
mc
|
|
"** 04-cas.pdf page 13
|
|
x
|
|
jh
|
|
v
|
|
nl
|
|
x
|
|
mn
|
|
r
|
|
|
|
:cr
|
|
v
|
|
aa
|
|
ai
|
|
ck
|
|
ek
|
|
gi
|
|
ga
|
|
x
|
|
mk
|
|
v
|
|
gf
|
|
x
|
|
mn
|
|
r
|
|
|
|
:cs
|
|
x
|
|
ka
|
|
v
|
|
mc
|
|
mi
|
|
kk
|
|
ik
|
|
gi
|
|
gc
|
|
ea
|
|
ca
|
|
ac
|
|
ai
|
|
dl
|
|
x
|
|
mn
|
|
r
|
|
|
|
:ct
|
|
x
|
|
aa
|
|
v
|
|
al
|
|
x
|
|
mf
|
|
v
|
|
af
|
|
x
|
|
mn
|
|
r
|
|
|
|
:cu
|
|
x
|
|
aa
|
|
v
|
|
ka
|
|
"** 04-cas.pdf page 14
|
|
mc
|
|
ml "???
|
|
kk
|
|
x
|
|
ak
|
|
v
|
|
lk
|
|
x
|
|
mn
|
|
r
|
|
|
|
:cv
|
|
x
|
|
aa
|
|
v
|
|
mf
|
|
x
|
|
ak
|
|
v
|
|
mf
|
|
x
|
|
mn
|
|
r
|
|
|
|
:cw
|
|
x
|
|
aa
|
|
v
|
|
mc
|
|
af
|
|
x
|
|
ak
|
|
v
|
|
mi
|
|
af
|
|
x
|
|
mn
|
|
r
|
|
|
|
:cx
|
|
v
|
|
gf
|
|
x
|
|
ak
|
|
v
|
|
gf
|
|
x
|
|
aa
|
|
v
|
|
nl
|
|
x
|
|
mn
|
|
r
|
|
|
|
:cy
|
|
x
|
|
aa
|
|
v
|
|
if
|
|
x
|
|
ak
|
|
"** 04-cas.pdf page 15
|
|
v
|
|
if
|
|
nf
|
|
x
|
|
mn
|
|
r
|
|
|
|
:cz
|
|
x
|
|
aa
|
|
v
|
|
ak
|
|
ma
|
|
ml
|
|
x
|
|
mn
|
|
r
|
|
|
|
:c0
|
|
x
|
|
ck
|
|
v
|
|
ai
|
|
ac
|
|
ca
|
|
ka
|
|
mc
|
|
mi
|
|
kk
|
|
ck
|
|
x
|
|
mn
|
|
r
|
|
|
|
:c1
|
|
x
|
|
ce
|
|
v
|
|
af
|
|
mf
|
|
x
|
|
md
|
|
v
|
|
mi
|
|
x
|
|
mn
|
|
r
|
|
|
|
:c2
|
|
x
|
|
ca
|
|
v
|
|
ac
|
|
ai
|
|
ck
|
|
ek
|
|
gi
|
|
gc
|
|
ia
|
|
ma
|
|
ml "???
|
|
"** 04-cas.pdf page 16
|
|
mc
|
|
mi
|
|
kk
|
|
hk
|
|
fi
|
|
fc
|
|
ha
|
|
x
|
|
mn
|
|
r
|
|
|
|
:c7
|
|
x
|
|
aa
|
|
v
|
|
ak
|
|
nb
|
|
x
|
|
mn
|
|
r
|
|
|
|
:c8
|
|
x
|
|
gc
|
|
v
|
|
ea
|
|
ca
|
|
ac
|
|
ai
|
|
ck
|
|
ek
|
|
gi
|
|
gc
|
|
ia
|
|
ka
|
|
mc
|
|
mi
|
|
kk
|
|
ik
|
|
gi
|
|
x
|
|
mn
|
|
r
|
|
|
|
:c9
|
|
x
|
|
ka
|
|
v
|
|
mc
|
|
mi
|
|
kk
|
|
ck
|
|
ai
|
|
ac
|
|
ca
|
|
fa
|
|
hc
|
|
hi
|
|
fk
|
|
x
|
|
mn
|
|
"** 04-cas.pdf page 17
|
|
x
|
|
mn
|
|
r
|
|
|
|
:c3
|
|
x
|
|
aa
|
|
v
|
|
ak
|
|
fe
|
|
fi
|
|
hk
|
|
kk
|
|
mi
|
|
mc
|
|
x
|
|
ka
|
|
v
|
|
nd
|
|
x
|
|
mn
|
|
r
|
|
|
|
:c4
|
|
x
|
|
mh
|
|
v
|
|
ah
|
|
ia
|
|
il
|
|
x
|
|
mn
|
|
r
|
|
|
|
:c5
|
|
x
|
|
ak
|
|
v
|
|
aa
|
|
fa
|
|
fi
|
|
hk
|
|
kk
|
|
mi
|
|
mc
|
|
x
|
|
ka
|
|
v
|
|
nd
|
|
x
|
|
mn
|
|
r
|
|
|
|
:c6
|
|
x
|
|
ck
|
|
v
|
|
ai
|
|
ac
|
|
ca
|
|
ka
|
|
|
|
" The end of file seems abrupt, every other :cX section ends with:
|
|
" x
|
|
" mn
|
|
" r
|