Research PDP7 development
[unix-history] / as.s
" as
jms init1
assm1:
lac eofflg
sza
jmp assm2
lac passno
sza
jmp finis
jms init2
assm2:
jms gchar
sad d4
jmp assm1
sad d5
jmp assm1
lac char
dac savchr
jms gpair
lac rator
jms betwen; d1; d6
jmp assm3
jms expr
lac passno
sza
jms process
isz dot+1
nop
lac dot+1
and o17777
sad dot+1
jmp assm1
jms error; >>
dzm dot+1
jmp assm1
assm3:
lac rand
sad d2
jmp assm4
sza
jmp assm6
lac rator
sza
jmp assm6
lac rand+1
jms betwen; dm1; d10
jmp assm6
dac name
tad fbxp
dac lvrand
lac i lvrand
dac name+1
isz i lvrand
lac o146
dac name+2
dzm name+3
jms tlookup
-1
dac fbflg
assm4:
lac rand+1
tad d4
dac lvrand
lac rator
sza
jmp assm5
lac dot
dac r
lac dot+1
dac r+1
jmp 1f
assm5:
jms gpair
jms expr
1:
lac r
dac i lvrand
isz lvrand
lac r+1
dac i lvrand
lac fbflg
sna
jmp assm1
dzm fbflg
dzm name+1
lac o142
dac name+2
jms lookup
jmp assm4
assm6:
jms error; x>
jmp assm1
init1: 0
lac d1
sys write; 1f; 2f-1f
dzm passno
lac o56040
dac dot-4
lac o56056
dac cmflx-4
lac o40040
dac dot-3
dac dot-2
dac dot-1
dac cmflx-3
dac cmflx-2
dac cmflx-1
dzm iof
jms init
jmp i init1
1:
0111012
2:
init2: 0
lac d1
dac passno
sys write; 1f; 2f-1f
jms init
lac o17
sys creat; 2f
dac bfo
sys open; 2f; 0
dac bfi
dzm bufadd
jms copyz; buf; 64
jmp i init2
1:
0111111;012000
2:
0141056;0157165;0164040;040040
init: 0
lac i 017777
dac narg
lac 017777
tad d1
dac fname
-1
dac eofflg
jms nextfil
jms ioinit
dzm savchr
dzm comflg
lac d1
dac dot
dzm dot+1
dzm cmflx
lac d4096
dac cmflx+1
dzm fbflg
jms copyz; fbxp: fbx; 10
jmp i init
finis:
lac iof
sys close
jms bufwr
lac bfi
sys close
lac bfo
sys close
-1
tad namsiz
cma
rcl
dac char
rcl
tad char
dac 1f
lac o17
sys creat; n.out
dac bfi
sys write; namlst; 1: 0
lac bfi
sys close
sys exit
n.out:
0156056;0157165;0164040;040040
process: 0
lac dot+1
dac lvrand
lac dot
sad d3
jmp proc4
sza
jmp proc1
-1
tad cmflx+1
cma
tad lvrand
dac lvrand
proc1:
lac lvrand
spa
jmp proc4
and o17700
sad bufadd
jmp proc2
jms bufwr
jms copyz; buf; 64
lac lvrand
and o17700
dac bufadd
dac 1f
lac bfi
sys seek; 1: 0; 0
spa
jmp proc2
lac bfi
sys read; buf; 64
proc2:
lac lvrand
and o77
jms betwen; dm1; maxsto
dac maxsto
tad bufp
dac lvrand
lac r
sna
jmp proc3
sad d3
jmp proc5
lac cmflx+1
tad r+1
dac r+1
proc3:
lac r+1
dac i lvrand
jmp i process
proc4:
jms error; .>
lac d1
dac dot
dzm dot+1
jmp skip
proc5:
jms error; u>
jmp proc3
bufwr: 0
lac bfo
sys seek; bufadd: 0; 0
isz maxsto
lac bfo
sys write; bufp: buf; maxsto: -1
-1
dac maxsto
jmp i bufwr
:number: 0
dac 3f
lac d1000
dac 2f
1:
lac 3f
cll
idiv; 2: 0
dac 3f
lacq
tad o60
dac i 8
lac 2b
cll
idiv; 10
lacq
dac 2b
sza
jmp 1b
jmp i number
3: 0
getsc: 0
lac i getsc
dac sctalp
isz getsc
lac i sctalp
dac sctal
add o400000
dac i sctalp
ral
lac i sctal
szl
lrss 9
and o177
jmp i getsc
putsc: 0
and o177
lmq
lac i putsc
dac sctalp
isz putsc
lac i sctalp
dac sctal
add o400000
dac i sctalp
sma cla
jmp 1f
llss 27
dac i sctal
lrss 9
jmp i putsc
1:
lac i sctal
omq
dac i sctal
lacq
jmp i putsc
sctalp: 0
sctal: 0
betwen: 0
dac 2f
lac i betwen
dac 3f
isz betwen
lac i 3f
cma
tad 2f
spa
jmp 1f
lac i betwen
dac 3f
isz betwen
lac i 3f
cma
tad d1
tad 2f
spa
1:
isz betwen
lac 2f
jmp i betwen
2: 0
3: 0
copyz: 0
-1
tad i copyz
dac 8
isz copyz
lac i copyz
cma
tad d1
dac 2f
isz copyz
1:
dzm i 8
isz 2f
jmp 1b
jmp i copyz
2: 0
error: 0
lac passno
sza
jmp 1f
isz error
jmp i error
1:
-1
tad mesp
dac 8
lac i error
dac i 8
lac o40
dac i 8
lac rator
sad d5
jmp 1f
lac savchr
sad o12
jmp 1f
lac lineno
jmp 2f
1:
-1
tad lineno
2:
jms number
lac o12
dac i 8
-2
tad mesp
cma
tad 8
dac 1f
lac d1
sys write; mesp: mes; 1: 0
isz error
jmp i error
skip:
lac rator
sad d5
jmp assm1
1:
jms gchar
sad d5
jmp assm1
jmp 1b
ioinit: 0
jms copyz; iobuf; 64
lac iof
sys read; iobufp: iobuf; 64
sna
jms nextfil
lac iobufp
dac tal
-129
dac talc
jmp i ioinit
nextfil: 0
lac d1
dac lineno
lac iof
sza
sys close
nf1:
lac narg
sad d4
skp
jmp 1f
dzm eofflg
jmp i nextfil
1:
tad dm4
dac narg
lac fname
tad d4
dac fname
sys open; fname: 0; 0
dac iof
sma
lac passno
sna
jmp nextfil i
lac fname
dac 1f
lac d1
sys write; 1; 0; 4
lac iof
sma
jmp 1f
lac d1
sys write; emes; 2
sys exit
1:
lac d1
sys write; emes+1; 1
jmp i nextfil
emes:
040077;012000
gchar: 0
lac savchr
dzm savchr
sza
jmp gch3
lac eofflg
sza
jmp 1f
lac o12
jmp gch3
1:
isz talc
skp
jms ioinit
jms getsc; tal
sna
jmp gchar+1
sad o177
jmp gchar+1
sad o12
skp
jmp 1f
dzm comflg
isz lineno
1:
sad o42
dac comflg
dac char
lac comflg
sza
jmp gchar+1
lac char
gch3:
dac char
jms betwen; d0; o200
cla
tad lactab
dac .+1
lac 0
jmp i gchar
gsymb: 0
jms gchar
dac rator
tad jmpsw1
dac 1f
lac char
sad o74
jmp lqot
dac namc
jms gchar
lac char
sad o76
jmp rqot
dac savchr
lac namc
dac char
1:
jmp 0
jmpsw1:
jmp .+1
jmp i gsymb
jmp i gsymb
jmp i gsymb
jmp i gsymb
jmp gs1
jmp i gsymb
jmp gs2
jmp gs3
badchr:
jms error; g>
1:
jms gchar
lac char
sad o12
skp
jmp 1b
dac savchr
jmp gsymb+1
lqot:
jms gchar
lac o40
dac savchr
lac char
alss 9
jmp 1f
rqot:
lac namc
1:
dac rand+1
lac d7
dac rator
jmp i gsymb
gs1:
jms gchar
sad d4
jmp gs1
lac char
dac savchr
jmp i gsymb
gs2:
lac namep
dac tal1
-7
dac tal1c
lac char
jms putsc; tal1
gnam1:
jms gchar
jms betwen; d5; d8
jmp gnam3
lac char
jms putsc; tal1
isz tal1c
jmp gnam1
gnam2:
jms gchar
jms betwen; d5; d8
skp
jmp gnam2
lac char
dac savchr
jms lookup
jmp i gsymb
gnam3:
lac char
dac savchr
1:
lac o40
jms putsc; tal1
isz tal1c
jmp 1b
jms lookup
jmp i gsymb
gs3:
dzm rand+1
lac char
sad o60
jmp 1f
lac d10
jmp 2f
1:
lac d8
2:
dac num2
num1:
lac rand+1
cll
mul
num2: 0
lacq
tad char
tad dm48
dac rand+1
jms gchar
sad d7
jmp num1
lac char
dac savchr
lac rand+1
jms betwen; dm1; d10
jmp i gsymb
dac name
tad fbxp
dac name+1
lac i name+1
dac name+1
lac savchr
sad o146
jmp 1f
sad o142
skp
jmp i gsymb
dzm name+1
1:
dac name+2
dzm name+3
lac d6
dac rator
jms lookup
dzm savchr
jmp i gsymb
tlookup: 0
jmp 1f
lookup: 0
dzm tlookup
1:
-1
tad namlstp
dac 8
lac namsiz
dac namc
lu1:
lac i 8
sad name
jmp 1f
lac d5
lu2:
tad 8
dac 8
isz namc
jmp lu1
lac tlookup
sna
jmp 2f
lac fnamep
dac rand+1
jmp i tlookup
2:
lac name
dac i 8
lac 8
dac rand+1
lac name+1
dac i 8
lac name+2
dac i 8
lac name+3
dac i 8
lac d3
dac i 8
dzm i 8
-1
tad namsiz
dac namsiz
jmp i lookup
1:
lac i 8
sad name+1
jmp 1f
lac d4
jmp lu2
1:
lac i 8
sad name+2
jmp 1f
lac d3
jmp lu2
1:
lac i 8
sad name+3
jmp 1f
lac d2
jmp lu2
1:
-3
tad 8
dac rand+1
lac tlookup
sza
jmp i tlookup
jmp i lookup
namep: name
gpair: 0
jms gsymb
lac rator
sad d4
jmp gpair+1
jms betwen; dm1; d6
jmp gp1
dzm rand
dzm rand+1
jmp i gpair
gp1:
sad d7
lac d4
tad dm4
dac rand
jms gsymb
lac rator
sad d4
jmp gp2
jms betwen; dm1; d6
skp
jmp i gpair
jms error; x>
jmp skip
gp2:
jms gchar
jms betwen; d5; d8
jmp gp3
lac char
dac savchr
jmp i gpair
gp3:
lac char
dac savchr
jms gsymb
jmp i gpair
expr: 0
jms grand
-1
dac srand
exp5:
lac rand
dac r
lac rand+1
dac r+1
exp1:
lac rator
jms betwen; d1; d5
jmp exp3
dac orator
jms gpair
jms grand
lac orator
sad d4
jmp exp2
jms oper; rand
jmp exp1
exp2:
jms pickup
lac r
dac srand
lac r+1
dac srand+1
jmp exp5
exp3:
sad d5
jmp exp4
jms error; x>
jmp skip
exp4:
jms pickup
jmp i expr
pickup: 0
lac srand
spa
jmp i pickup
lac d4
jms oper; srand
jmp i pickup
grand: 0
lac rand
sad d2
skp
jmp i grand
lac rand+1
tad d4
dac rand+1
lac i rand+1
dac rand
isz rand+1
lac i rand+1
dac rand+1
jmp i grand
oper: 0
tad opsw
dac oper1
-1
tad i oper
dac 8
isz oper
lac r
sad d3
jmp oper2
lac i 8
sad d3
jmp oper2
oper1:
jmp 0
opsw:
jmp .-1
jmp oplus
jmp ominus
tad r
dac r
lac r+1
lmq
lac i 8
omq
jmp oret
oplus:
tad r
dac r
lac r+1
tad i 8
jmp oret
ominus:
cma
tad d1
tad r
dac r
-1
tad i 8
cma
tad r+1
oret:
dac r+1
lac r
jms betwen; dm1; d2
skp
jmp i oper
jms error; r>
lac d1
dac r
jmp i oper
oper2:
dac r
dzm r+1
jmp i oper
d0: 0
d1: 1
d4096: 4096
d2: 2
d3: 3
d4: 4
d5: 5
d6: 6
d7: 7
d8: 8
o12: d10: 10
dm1: -1
o40: 040
o60: 060
dm48: -48
o400000: 0400000
o177: 0177
dm4: -4
o200: 0200
o42: 042
o142: 0142
o40040: 040040
o56056: 056056
o56040: 056040
o146: 0146
o17777: 017777
d1000: 1000
o17: 017
o17700: 017700
o77: 077
o74: 074
o76: 076
namsiz: -2
namlstp: namlst
fnamep: fakename
lactab: lac .+1
8;8;8;8;8;8;8;8
8;4;5;8;8;8;8;8
8;8;8;8;8;8;8;8
8;8;8;8;8;8;8;8
4;8;8;8;8;8;8;8
8;8;6;2;4;3;6;8
7;7;7;7;7;7;7;7
7;7;0;5;8;1;8;8
8;6;6;6;6;6;6;6
6;6;6;6;6;6;6;6
6;6;6;6;6;6;6;6
6;6;6;8;8;8;8;8
8;6;6;6;6;6;6;6
6;6;6;6;6;6;6;6
6;6;6;6;6;6;6;6
6;6;6;8;8;8;8;8
fbflg: .=.+1
tal: .=.+1
talc: .=.+1
tal1: .=.+1
tal1c: .=.+1
narg: .=.+1
lvrand: .=.+1
eofflg: .=.+1
namc: .=.+1
passno: .=.+1
char: .=.+1
savchr: .=.+1
comflg: .=.+1
rator: .=.+1
orator: .=.+1
rand: .=.+2
srand: .=.+2
r: .=.+2
name: .=.+4
buf: .=.+64
iobuf: .=.+64
fbx: .=.+10
mes: .=.+20
iof: .=.+1
bfi: .=.+1
bfo: .=.+1
lineno: .=.+1
fakename: .=.+6
namlst:
.=.+4
dot:
.=.+6
cmflx: