mirror of
https://github.com/DoctorWkt/pdp7-unix.git
synced 2026-01-13 15:27:39 +00:00
add tmg to src/cmd and image
add doug user to image, put tmg sources there fix an as7 bug found by tmg
This commit is contained in:
parent
ab38b0e263
commit
4ffabd8bdf
@ -1,3 +1,4 @@
|
||||
system:system:system:777777
|
||||
ken:ken:ken:12
|
||||
dmr:dmr:dmr:14
|
||||
doug:doug:doug:15
|
||||
|
||||
11
build/proto
11
build/proto
@ -94,3 +94,14 @@ dd drwr- -1 4
|
||||
hello.b frwr- 014 ../src/other/hello.b
|
||||
ops.s frwr- 014 ../src/other/ops.s
|
||||
$
|
||||
doug drwr- 015
|
||||
system l---- 3
|
||||
t1.s frwr- 015 ../src/cmd/t1.s
|
||||
t2.s frwr- 015 ../src/cmd/t2.s
|
||||
t3.s frwr- 015 ../src/cmd/t3.s
|
||||
t4.s frwr- 015 ../src/cmd/t4.s
|
||||
t5.s frwr- 015 ../src/cmd/t5.s
|
||||
t6.s frwr- 015 ../src/cmd/t6.s
|
||||
t7.s frwr- 015 ../src/cmd/t7.s
|
||||
t8.s frwr- 015 ../src/cmd/t8.s
|
||||
$
|
||||
|
||||
69
src/cmd/t1.s
Normal file
69
src/cmd/t1.s
Normal file
@ -0,0 +1,69 @@
|
||||
"** 13-120-147.pdf page 5
|
||||
t=0
|
||||
main:
|
||||
lac 017777 i
|
||||
sad d4
|
||||
jmp 2f
|
||||
sad d8
|
||||
jmp 1f
|
||||
law 9
|
||||
tad 017777
|
||||
dac 0f
|
||||
law 017
|
||||
sys creat;0:0
|
||||
dac output
|
||||
1:law 5
|
||||
tad 017777
|
||||
dac 0f
|
||||
sys open;0:0;0
|
||||
dac input
|
||||
spa
|
||||
sys exit
|
||||
2:
|
||||
jms advance; jmp 1f
|
||||
jmp rinterp
|
||||
|
||||
0:lac 2f
|
||||
jms obuild
|
||||
1:lac owrite
|
||||
spa
|
||||
jmp 0b
|
||||
jms oflush
|
||||
las
|
||||
spa
|
||||
sys exit
|
||||
sys save
|
||||
2:o777
|
||||
|
||||
|
||||
"special machine language code
|
||||
|
||||
"puts out and octal strin g from symtab entry
|
||||
|
||||
symoct:
|
||||
lac equ
|
||||
add equbot
|
||||
dac 9f+t
|
||||
lac 1f
|
||||
jms twoktab; lac 9f+t i
|
||||
1:gf .+1 x
|
||||
lac ii
|
||||
dac 8
|
||||
lac 8 i
|
||||
add symbot
|
||||
dac 9f+t
|
||||
|
||||
2:lac 9f+t i
|
||||
jms putoct
|
||||
lac onenl
|
||||
jms obuild
|
||||
lac 9f+t i
|
||||
and o600600
|
||||
sza "skip unless word contained eof (0777)
|
||||
jmp ggoon
|
||||
|
||||
"** 13-120-147.pdf page 6
|
||||
isz 9f+t
|
||||
jmp 2b
|
||||
t=t+1
|
||||
o600600:0600600
|
||||
411
src/cmd/t2.s
Normal file
411
src/cmd/t2.s
Normal file
@ -0,0 +1,411 @@
|
||||
"** 13-120-147.pdf page 7
|
||||
" recognition stack frame advance
|
||||
|
||||
advance:0
|
||||
lac frame
|
||||
dac 8
|
||||
lac advance i
|
||||
dac 8 i
|
||||
lac ii
|
||||
dac 8 i
|
||||
lac ignore
|
||||
dac 8 i
|
||||
lac j
|
||||
dac 8 i
|
||||
lac k
|
||||
dac 8 i
|
||||
lac frame
|
||||
dac nframe i
|
||||
lac nframe
|
||||
dac frame
|
||||
add dffrmsz
|
||||
dac nframe
|
||||
dac nframe
|
||||
jms between; add rbot; add rtop
|
||||
jms halt
|
||||
isz advance
|
||||
jmp advance i
|
||||
|
||||
retreat:
|
||||
dzm junk
|
||||
lac gflag
|
||||
sza
|
||||
jmp 1f
|
||||
jms bundlep
|
||||
dac junk
|
||||
1:lac frame
|
||||
dac nframe
|
||||
lac frame i
|
||||
dac frame
|
||||
dac 8
|
||||
lac 8 i
|
||||
dac 3f "retrun address
|
||||
lac 8 i
|
||||
dac ii
|
||||
lac 8 i
|
||||
dac ignore
|
||||
lac fflag
|
||||
sna
|
||||
jmp 2f
|
||||
lac 8 i "restore j and k on failure
|
||||
dac j
|
||||
lac 8 i
|
||||
dac k
|
||||
2:lac junk
|
||||
sna
|
||||
jmp 3f
|
||||
dac nframe i "stass reslts
|
||||
isz nframe
|
||||
3:jmp
|
||||
|
||||
" bundle up results and return single pointer to them in ac
|
||||
" return 0 if no results
|
||||
|
||||
"** 13-120-147.pdf page 8
|
||||
bundlep:0
|
||||
lac fflag
|
||||
sza
|
||||
jmp 2f "no results on failure
|
||||
jms nframe0
|
||||
dac 9f+t
|
||||
cma
|
||||
tad nframe
|
||||
cma
|
||||
dac 9f+t+1
|
||||
sma
|
||||
jmp 2f
|
||||
sad m1
|
||||
jmp 3f "only one result, no bundling necessary
|
||||
lac 9f+t
|
||||
tad m1
|
||||
dac 8
|
||||
|
||||
1:lac 8 i
|
||||
jms kput
|
||||
isz 9f+t+1
|
||||
jmp 1b
|
||||
lac k "make up result pointer
|
||||
add l.gk
|
||||
jmp bundlep i
|
||||
|
||||
2:cla
|
||||
jmp bundlep i
|
||||
3:lac 9f+t i
|
||||
jmp bundlep i
|
||||
t=t+1 "where to find results
|
||||
t=t+1 "negative of result count
|
||||
|
||||
" the main interpreter loop
|
||||
" locate original value of nframe for present stack level.
|
||||
nframe0:0
|
||||
jms s1get; add d.ii
|
||||
dac junk
|
||||
lac junk i
|
||||
dac junk
|
||||
lac junk i
|
||||
and opmask
|
||||
sad l.rw
|
||||
jmp 1f
|
||||
lac refrsz
|
||||
jmp 2f
|
||||
1:lac junk i
|
||||
and o17777
|
||||
2:add frame
|
||||
jmp nframe0 i
|
||||
|
||||
halt:0
|
||||
lac 1f
|
||||
jms obuild
|
||||
lac halt
|
||||
jms putoct
|
||||
lac onenl
|
||||
jms obuild
|
||||
xct rstack+1
|
||||
1:.+1;012077;end
|
||||
|
||||
"** 13-120-147.pdf page 9
|
||||
rinterp:
|
||||
las "trace check
|
||||
and d5
|
||||
sna
|
||||
jmp .+3
|
||||
lac bugr
|
||||
jms bug
|
||||
|
||||
lac fflag
|
||||
ral
|
||||
lac ii i
|
||||
and opmask
|
||||
sad l.ra
|
||||
jmp rera
|
||||
sad l.rb
|
||||
jmp rerb
|
||||
szl
|
||||
jmp retreat
|
||||
lrs 14
|
||||
and o17
|
||||
add rbranch
|
||||
dac .+1
|
||||
jmp
|
||||
|
||||
rbranch:
|
||||
jmp .+1 i
|
||||
reno
|
||||
rerx
|
||||
rerc
|
||||
regc
|
||||
rerf
|
||||
rerw
|
||||
rera
|
||||
reuu
|
||||
rero
|
||||
rerm
|
||||
rers
|
||||
rerv
|
||||
reuu
|
||||
reuu
|
||||
reuu
|
||||
reuu
|
||||
|
||||
reuu:
|
||||
jms halt
|
||||
|
||||
rerb:
|
||||
cml
|
||||
rera:
|
||||
dzm fflag
|
||||
snl
|
||||
jmp goon
|
||||
jms aget
|
||||
dac ii
|
||||
jmp rinterp
|
||||
|
||||
backup:
|
||||
lac jsav
|
||||
dac j
|
||||
nuts:
|
||||
law
|
||||
|
||||
"** 13-120-147.pdf page 10
|
||||
dac fflag
|
||||
|
||||
reno:
|
||||
goon:
|
||||
lac ii i
|
||||
isz ii
|
||||
and exitmask
|
||||
sza
|
||||
jmp retreat
|
||||
jmp rinterp
|
||||
|
||||
|
||||
rerw:
|
||||
jms aget
|
||||
add frame
|
||||
dac nframe
|
||||
jmp goon
|
||||
|
||||
rerc:
|
||||
jms advance; jmp goon
|
||||
jms aget
|
||||
dac ii
|
||||
jmp rinterp
|
||||
|
||||
|
||||
gegf:
|
||||
rerf:
|
||||
jms aget
|
||||
add ljmp
|
||||
dac .+1
|
||||
jmp
|
||||
|
||||
rerx:
|
||||
lac j
|
||||
dac jsav
|
||||
jms aget
|
||||
1:dac 9f+t
|
||||
jms lchar
|
||||
sad o777
|
||||
jmp goon
|
||||
dac 9f+t+1
|
||||
jms getj
|
||||
sad 9f+t+1
|
||||
jmp 2f
|
||||
jmp backup
|
||||
2:lac 9f+t
|
||||
add o400000
|
||||
jmp 1b
|
||||
t=t+1 "address of next comparison char
|
||||
t=t+1 "character itself
|
||||
|
||||
aget:0
|
||||
lac ii i
|
||||
and o17777
|
||||
jmp aget i
|
||||
|
||||
regc:
|
||||
lac ii i
|
||||
and o757777
|
||||
xor exitmask
|
||||
dac nframe i
|
||||
|
||||
"** 13-120-147.pdf page 11
|
||||
isz nframe
|
||||
jmp goon
|
||||
|
||||
kput:0
|
||||
isz k
|
||||
dac junk1
|
||||
lac k
|
||||
jms between; add d0; add kmax
|
||||
jms halt
|
||||
add kbot
|
||||
dac junk
|
||||
lac junk1
|
||||
dac junk i
|
||||
jmp kput i
|
||||
|
||||
s0get:0
|
||||
lac frame
|
||||
xct s0get i
|
||||
dac junk
|
||||
lac junk i
|
||||
isz s0get
|
||||
jmp s0get i
|
||||
|
||||
s1get:0
|
||||
lac frame i
|
||||
xct s1get i
|
||||
dac junk
|
||||
lac junk i
|
||||
isz s1get
|
||||
jmp s1get i
|
||||
|
||||
s0put:0
|
||||
lmq
|
||||
lac frame
|
||||
xct s0put i
|
||||
dac junk
|
||||
lacq
|
||||
dac junk i
|
||||
isz s0put
|
||||
jmp s0put i
|
||||
" here is the generaion interpreter
|
||||
" the k table cant move while its active
|
||||
|
||||
geno:
|
||||
ggoon:
|
||||
lac ii i
|
||||
isz ii
|
||||
and exitmask
|
||||
sza
|
||||
jmp retreat
|
||||
ginterp:
|
||||
las "trace check
|
||||
and d6
|
||||
sna
|
||||
jmp .+3
|
||||
lac bugg
|
||||
jms bug
|
||||
|
||||
lac ii i
|
||||
lrss 14
|
||||
and o7
|
||||
|
||||
"** 13-120-147.pdf page 12
|
||||
add gbranch
|
||||
dac .+1
|
||||
jmp
|
||||
|
||||
gbranch:
|
||||
jmp .+1 i
|
||||
geno
|
||||
gegx
|
||||
geuu
|
||||
gegc
|
||||
gegf
|
||||
gegk
|
||||
gegp
|
||||
gegq
|
||||
|
||||
geuu:
|
||||
jms halt
|
||||
|
||||
gegx:
|
||||
lac ii i
|
||||
and o417777
|
||||
jms obuild
|
||||
jmp ggoon
|
||||
|
||||
gegq:
|
||||
jms advance; jmp ggoon
|
||||
lac env
|
||||
add d.ii
|
||||
dac junk
|
||||
jms aget
|
||||
add junk i
|
||||
dac junk
|
||||
lac junk i
|
||||
dac ii
|
||||
lac env
|
||||
add d.env
|
||||
dac junk
|
||||
lac junk i
|
||||
dac env
|
||||
jmp ginterp
|
||||
|
||||
gegp:
|
||||
jms advance; jmp ggoon
|
||||
lac env
|
||||
add d.ii
|
||||
dac junk
|
||||
lac frame i
|
||||
dac env
|
||||
jms aget
|
||||
cma
|
||||
add junk i
|
||||
dac ii
|
||||
jmp ginterp
|
||||
|
||||
gegk:
|
||||
lac ii i
|
||||
jms aget
|
||||
add kbot
|
||||
dac ii
|
||||
jms s0put; add d.ii
|
||||
lac frame
|
||||
|
||||
"** 13-120-147.pdf page 13
|
||||
dac env
|
||||
jmp ginterp
|
||||
|
||||
gegc:
|
||||
jms advance; jmp ggoon
|
||||
jms aget
|
||||
dac ii
|
||||
jmp ginterp
|
||||
|
||||
bug:0
|
||||
dac 1f+2
|
||||
lac onenl
|
||||
jms obuild
|
||||
lac ii
|
||||
jms putoct
|
||||
lac ii i
|
||||
lrs 14
|
||||
and o17
|
||||
add 1f+2
|
||||
dac 1f+2
|
||||
lac 1f+2 i
|
||||
dac 1f+2
|
||||
lac 1f
|
||||
jms obuild
|
||||
lac ii i
|
||||
jms putoct
|
||||
las
|
||||
and d4
|
||||
sza
|
||||
jms halt
|
||||
jmp bug i
|
||||
|
||||
1:0400000 .+1; 040; 0; 040777
|
||||
263
src/cmd/t3.s
Normal file
263
src/cmd/t3.s
Normal file
@ -0,0 +1,263 @@
|
||||
"** 13-120-147.pdf page 14
|
||||
move: 0
|
||||
dac 9f+t
|
||||
lac move i
|
||||
1:dac 2f
|
||||
lac 9f+t
|
||||
jms lchar
|
||||
dac 9f+t+1
|
||||
jms dchar
|
||||
2: 0
|
||||
lac 9f+t+1
|
||||
sad o777
|
||||
jmp 3f
|
||||
lac o400000
|
||||
add 9f+t
|
||||
dac 9f+t
|
||||
lac o400000
|
||||
add 2b
|
||||
jmp 1b
|
||||
|
||||
3:isz move
|
||||
lac 2b
|
||||
jmp move i
|
||||
t=t+1 "source address
|
||||
t=t+1 "source character
|
||||
|
||||
lchar:0
|
||||
dac junk
|
||||
ral
|
||||
lac junk i
|
||||
snl
|
||||
lrs 9
|
||||
and o777
|
||||
jmp lchar i
|
||||
|
||||
dchar:0
|
||||
lmq
|
||||
lac dchar i
|
||||
dac junk
|
||||
spa
|
||||
jmp 1f
|
||||
llss 9
|
||||
lac o777
|
||||
jmp .+2
|
||||
1:0777000
|
||||
and junk i
|
||||
omq
|
||||
dac junk i
|
||||
isz dchar
|
||||
jmp dchar i
|
||||
|
||||
|
||||
" gets designated character from input
|
||||
jget:0
|
||||
1:lac j
|
||||
jms cbetween; add jmin; add jmax
|
||||
jmp jmore
|
||||
cma
|
||||
add jmin
|
||||
cma
|
||||
add jbot
|
||||
jms lchar
|
||||
jms class; add ignore
|
||||
|
||||
"** 13-120-147.pdf page 15
|
||||
jmp jget i
|
||||
lac j
|
||||
add o400000
|
||||
dac j
|
||||
jmp 1b
|
||||
|
||||
" read more input - filthy code, enough to make disk &
|
||||
" terminal input work. Theae only deliver full count
|
||||
" except at eof or 1 word
|
||||
|
||||
jmore:
|
||||
and o377700
|
||||
dac jmin
|
||||
add ljsiz
|
||||
dac 9f+t
|
||||
lac jmax
|
||||
jms cbetween; add jmin; add 9f+t
|
||||
lac jmin
|
||||
dac jmax
|
||||
dac 1f
|
||||
cma
|
||||
add jmin
|
||||
cma
|
||||
add jbot
|
||||
dac 2f
|
||||
lac input
|
||||
sys seek
|
||||
1:0;0
|
||||
-1
|
||||
dac 2f i
|
||||
lac input
|
||||
sys read
|
||||
2:0;jsiz
|
||||
sna
|
||||
lac d1
|
||||
add jmax
|
||||
dac jmax
|
||||
jmp jget+1
|
||||
t=t+1
|
||||
|
||||
" gets next character from input
|
||||
|
||||
getj:0
|
||||
lac j
|
||||
jms jget
|
||||
dac junk
|
||||
lac j
|
||||
add o400000
|
||||
dac j
|
||||
lac junk
|
||||
jmp getj i
|
||||
|
||||
" compare two strings - assume both left justified
|
||||
|
||||
comp:0
|
||||
dac 9f+t
|
||||
lac comp i
|
||||
dac 9f+t+1
|
||||
isz comp
|
||||
1:lac 9f+t i
|
||||
sad 9f+t+1 i
|
||||
|
||||
"** 13-120-147.pdf page 16
|
||||
jmp 3f
|
||||
and 9f+t+1 i "do both start with eof?
|
||||
spa
|
||||
2:isz comp
|
||||
jmp comp i
|
||||
3:and o600600 "is there an eof?
|
||||
sza
|
||||
jmp 2b
|
||||
isz 9f+t
|
||||
isz 9f+t+1
|
||||
jmp 1b
|
||||
t=t+1 "address of string 1
|
||||
t=t+1 "address of string 2
|
||||
|
||||
|
||||
obuild:0
|
||||
lmq
|
||||
lac owrite
|
||||
add obot
|
||||
dac 2f
|
||||
lacq
|
||||
1:jms move
|
||||
2:0
|
||||
cma
|
||||
add obot
|
||||
cma
|
||||
dac owrite
|
||||
jms cbetween; add d0; add omax
|
||||
skp
|
||||
jmp obuild i
|
||||
|
||||
lac lochunk
|
||||
jms oflush
|
||||
lac obot
|
||||
dac 2b
|
||||
add lochunk
|
||||
jmp 1b
|
||||
|
||||
oflush:0
|
||||
dac 2f
|
||||
lac obot
|
||||
dac 1f
|
||||
lac output
|
||||
sys write
|
||||
1:0
|
||||
2:0
|
||||
jmp oflush i
|
||||
|
||||
" outputs octal string from sesignated value
|
||||
|
||||
octal:
|
||||
isz ii
|
||||
lac ii i
|
||||
dac 2f
|
||||
lac 1f
|
||||
jms twoktab
|
||||
lac 2f i
|
||||
|
||||
1:gf geoctal x
|
||||
2:0
|
||||
|
||||
"** 13-120-147.pdf page 17
|
||||
geoctal:
|
||||
lac ii
|
||||
dac 8
|
||||
lac 8 i
|
||||
jms putoct
|
||||
jmp ggoon
|
||||
|
||||
|
||||
" converts word in ac into ocatl on output stream
|
||||
|
||||
putoct:0
|
||||
dac 9f+t
|
||||
lac 7f
|
||||
jms obuild
|
||||
dzm 9f+t+2
|
||||
-6
|
||||
dac 9f+t+1
|
||||
|
||||
1:lac 9f+t
|
||||
cll
|
||||
lrs 15
|
||||
add o60
|
||||
dac 8f+1
|
||||
lls 18
|
||||
dac 9f+t
|
||||
lac 9f+t+2 "have nonzero digits been seen?
|
||||
sza
|
||||
jmp 2f
|
||||
lac 8f+1 "no,is this nonzero?
|
||||
sad o60
|
||||
jmp 3f "no
|
||||
2:lac 8f
|
||||
jms obuild
|
||||
law
|
||||
dac 9f+t+2
|
||||
3:isz 9f+t+1
|
||||
jmp 1b
|
||||
jmp putoct i
|
||||
t=t+1 "value to convert
|
||||
t=t+1 "digit count
|
||||
t=t+1 "nonzero digit flag
|
||||
7: .+1; 060777
|
||||
8:0400000 .+1;0;end
|
||||
|
||||
|
||||
eof:
|
||||
lac j
|
||||
dac jsav
|
||||
jms jget
|
||||
sad o777
|
||||
jmp goon
|
||||
jmp backup
|
||||
class:0
|
||||
dac junk1
|
||||
lrss 7
|
||||
sza
|
||||
jmp 2f
|
||||
lls 3
|
||||
xct class i
|
||||
isz class
|
||||
dac junk
|
||||
|
||||
"** 13-120-147.pdf page 18
|
||||
cla
|
||||
llss 4
|
||||
add l.llss
|
||||
dac 1f
|
||||
lac junk i
|
||||
1:llss
|
||||
spa
|
||||
2:isz class
|
||||
lac junk1
|
||||
jmp class i
|
||||
112
src/cmd/t4.s
Normal file
112
src/cmd/t4.s
Normal file
@ -0,0 +1,112 @@
|
||||
"** 13-120-147.pdf page 19
|
||||
" put symbuf symbol into table
|
||||
|
||||
table:
|
||||
lac equwrite
|
||||
dac equ
|
||||
jms between; add d0; add equmax
|
||||
jms halt
|
||||
add delta
|
||||
dac equwrite
|
||||
lac equ
|
||||
add equbot
|
||||
tad m1
|
||||
dac 8
|
||||
lac symwrite
|
||||
dac 8 i
|
||||
add symbot
|
||||
dac 2f
|
||||
lac mdelta
|
||||
1:dzm 8 i
|
||||
tad d1
|
||||
spa
|
||||
jmp 1b
|
||||
lac sbbot
|
||||
jms move
|
||||
2:0
|
||||
add o400000
|
||||
cma
|
||||
add symbot
|
||||
cma
|
||||
add o400000
|
||||
and o17777
|
||||
dac symwrite
|
||||
jms between; add d0; add symmax
|
||||
jms halt
|
||||
jmp goon
|
||||
|
||||
" find occurrence of symbuf symbol in equtab
|
||||
|
||||
prev:
|
||||
lac equ
|
||||
jmp find+1
|
||||
find:
|
||||
lac equwrite
|
||||
dac 9f+t
|
||||
lac o777
|
||||
jms sbput
|
||||
lac sbbot
|
||||
dac 2f
|
||||
1:lac 9f+t
|
||||
tad mdelta
|
||||
dac 9f+t
|
||||
spa
|
||||
jmp nuts
|
||||
add equbot
|
||||
dac junk
|
||||
lac junk i
|
||||
add symbot
|
||||
jms comp
|
||||
2:0
|
||||
jmp 1b
|
||||
lac 9f+t
|
||||
dac equ
|
||||
|
||||
"** 13-120-147.pdf page 20
|
||||
jmp goon
|
||||
t=t+1 "next equtab location to test
|
||||
|
||||
sbput:0
|
||||
lmq
|
||||
lac sbwrite
|
||||
add sbbot
|
||||
dac 1f
|
||||
lacq
|
||||
jms dchar
|
||||
1:0
|
||||
lac sbwrite
|
||||
add o400000
|
||||
dac sbwrite
|
||||
jms cbetween; add d0; add sbmax
|
||||
jms halt
|
||||
jmp sbput i
|
||||
|
||||
getname:
|
||||
lac equ
|
||||
add equbot
|
||||
dac 9f+t
|
||||
lac 1f
|
||||
jms twoktab; lac 9f+t i
|
||||
|
||||
1:gf .+1 x
|
||||
lac ii
|
||||
dac 8
|
||||
lac 8 i
|
||||
add symbot
|
||||
and o17777
|
||||
jms obuild
|
||||
jmp ggoon
|
||||
t=t+1 "equtable entry
|
||||
|
||||
" puts double word entries in ktab and gives
|
||||
"pointer to first as result
|
||||
|
||||
twoktab:0
|
||||
jms kput
|
||||
lac l.gk
|
||||
add k
|
||||
dac nframe i
|
||||
isz nframe
|
||||
xct twoktab i
|
||||
jms kput
|
||||
jmp goon
|
||||
118
src/cmd/t5.s
Normal file
118
src/cmd/t5.s
Normal file
@ -0,0 +1,118 @@
|
||||
"** 13-120-147.pdf page 21
|
||||
char:
|
||||
lac j
|
||||
dac jsav
|
||||
isz ii
|
||||
jms ctest
|
||||
jmp backup
|
||||
jmp goon
|
||||
|
||||
string:
|
||||
isz ii
|
||||
jms ctest
|
||||
jmp goon
|
||||
jmp string+1
|
||||
|
||||
ctest:0
|
||||
jms jget
|
||||
jms class; add ii i
|
||||
jmp ctest i
|
||||
jms sbput
|
||||
lac j
|
||||
add o400000
|
||||
dac j
|
||||
isz ctest
|
||||
jmp ctest i
|
||||
|
||||
mark:
|
||||
jms jget
|
||||
dzm sbwrite
|
||||
jmp goon
|
||||
|
||||
parsedo:
|
||||
isz ii
|
||||
jms advance; jmp 3f
|
||||
jms advance; jmp 1f
|
||||
jms aget
|
||||
dac ii
|
||||
jmp rinterp
|
||||
|
||||
1:lac frame
|
||||
add refrsz
|
||||
dac ii
|
||||
sad nframe
|
||||
jmp retreat
|
||||
dac gflag
|
||||
lac gefrsz
|
||||
dac dffrmsz
|
||||
jms advance; jmp 2f
|
||||
jmp ginterp
|
||||
|
||||
2:lac refrsz
|
||||
dac dffrmsz
|
||||
add frame
|
||||
dac nframe
|
||||
dzm gflag
|
||||
jmp retreat
|
||||
|
||||
3:jms s0get; add d.k
|
||||
dac k
|
||||
jmp goon
|
||||
|
||||
bundle:
|
||||
jms bundlep
|
||||
|
||||
"** 13-120-147.pdf page 22
|
||||
dac 9f+t
|
||||
sna
|
||||
jmp goon
|
||||
jms nframe0
|
||||
dac nframe
|
||||
lac 9f+t
|
||||
dac nframe i
|
||||
isz nframe
|
||||
jmp goon
|
||||
t=t+1
|
||||
|
||||
" jms between;add a; add b; skip if a<=ac<b
|
||||
|
||||
between:0
|
||||
dac 9f+t
|
||||
cma
|
||||
xct between i
|
||||
isz between
|
||||
sma
|
||||
jmp 1f
|
||||
lac 9f+t
|
||||
cma
|
||||
xct between i
|
||||
isz between
|
||||
sma
|
||||
1:isz between
|
||||
lac 9f+t
|
||||
jmp between i
|
||||
t=t+0 "shared with next temporary
|
||||
|
||||
|
||||
|
||||
" jms cbetween; add a; add b; skip if a<=ac<b where ac
|
||||
" contains a character address
|
||||
|
||||
cbetween:0
|
||||
dac 9f+t
|
||||
cma
|
||||
xct cbetween i
|
||||
isz cbetween
|
||||
ral
|
||||
sma
|
||||
jmp 1f
|
||||
lac 9f+t
|
||||
cma
|
||||
xct cbetween i
|
||||
isz cbetween
|
||||
ral
|
||||
sma
|
||||
1:isz cbetween
|
||||
lac 9f+t
|
||||
jmp cbetween i
|
||||
t=t+1 "ac contents
|
||||
165
src/cmd/t6.s
Normal file
165
src/cmd/t6.s
Normal file
@ -0,0 +1,165 @@
|
||||
"** 13-120-147.pdf page 23
|
||||
rerm:
|
||||
jms aget
|
||||
jmp 1f
|
||||
rers:
|
||||
jms aget
|
||||
add frame
|
||||
1:dac holdlv
|
||||
lac holdlv i
|
||||
jmp 2f
|
||||
rerv:
|
||||
jms aget
|
||||
lls 6
|
||||
lrs 6
|
||||
2:dac nframe i
|
||||
isz nframe
|
||||
jmp goon
|
||||
|
||||
rero:
|
||||
jms decnf
|
||||
dac rand1
|
||||
jms aget
|
||||
and o77
|
||||
add obranch
|
||||
dac 2f
|
||||
cma
|
||||
tad unary
|
||||
spa
|
||||
jmp 1f
|
||||
jms decnf
|
||||
dac rand2
|
||||
1:lac rand1
|
||||
2:xct
|
||||
jmp result
|
||||
|
||||
obranch:
|
||||
xct .+1
|
||||
opr ;op=0400000+1
|
||||
jmp rorel ;le=op;op=op+1
|
||||
jmp rorel ;ne=op;op=op+1
|
||||
jmp rorel ;lt=op;op=op+1
|
||||
jmp rorel ;ge=op;op=op+1
|
||||
jmp rorel ;eq=op;op=op+1
|
||||
jmp rorel ;gt=op;op=op+1
|
||||
tad rand2 ;ad=op;op=op+1
|
||||
jms sub ;sb=op;op=op+1
|
||||
and rand2 ;an=op;op=op+1
|
||||
jmp roor ;or=op;op=op+1
|
||||
xor rand2 ;xo=op;op=op+1
|
||||
jmp rosr ;sr=op;op=op+1
|
||||
jmp rosl ;sl=op;op=op+1
|
||||
jmp romn ;mn=op;op=op+1
|
||||
jmp romx ;mx=op;op=op+1
|
||||
lac rand2 ;as=op;op=op+1
|
||||
|
||||
opr ;pl=op;op=op+1
|
||||
jmp romi ;mi=op;op=op+1
|
||||
cma ;cm=op;op=op+1
|
||||
jmp roindir;indir=op;op=op+1
|
||||
lac holdlv ;addr=op;op=op+1
|
||||
unary:xct obranch+1+pl
|
||||
|
||||
rorel: "<= 001
|
||||
|
||||
"** 13-120-147.pdf page 24
|
||||
jms sub "!= 010
|
||||
sna "< 011
|
||||
jmp 2f ">= 100
|
||||
spa "= 101
|
||||
jmp 1f "> 110
|
||||
lac d1 "a>b, code 001
|
||||
jmp 3f
|
||||
1:lac d2 "a<b, code 100
|
||||
2:add d2 "a=b, code 010
|
||||
3:and ii i
|
||||
sza
|
||||
-1
|
||||
cma
|
||||
jmp result
|
||||
|
||||
sub:0
|
||||
cma
|
||||
tad rand2
|
||||
cma
|
||||
jmp sub i
|
||||
|
||||
roor:
|
||||
lmq
|
||||
lac rand2
|
||||
omq
|
||||
jmp result
|
||||
|
||||
rosr:
|
||||
lac rand2
|
||||
add l.lrs
|
||||
cll
|
||||
jmp 1f
|
||||
rosl:
|
||||
lac rand2
|
||||
add l.lls
|
||||
clq
|
||||
1:dac .+2
|
||||
lac rand1
|
||||
0
|
||||
jmp result
|
||||
|
||||
romn:
|
||||
jms sub
|
||||
cma
|
||||
jmp .+2
|
||||
romx:
|
||||
jms sub
|
||||
ral
|
||||
lac rand1
|
||||
szl
|
||||
lac rand2
|
||||
jmp result
|
||||
|
||||
romi:
|
||||
cma
|
||||
tad d1
|
||||
jmp result
|
||||
|
||||
roindir:
|
||||
dac holdlv
|
||||
lac holdlv i
|
||||
|
||||
"** 13-120-147.pdf page 25
|
||||
jmp result
|
||||
|
||||
result:
|
||||
dac junk
|
||||
dac nframe i
|
||||
isz nframe
|
||||
lac ii i
|
||||
and stbit
|
||||
sna
|
||||
jmp exprtest
|
||||
lac junk
|
||||
dac holdlv i
|
||||
lac ii i
|
||||
and fibit
|
||||
sza
|
||||
jms decnf
|
||||
jmp goon
|
||||
|
||||
exprtest:
|
||||
lac ii i
|
||||
and fibit
|
||||
sna
|
||||
jmp goon
|
||||
jms decnf
|
||||
lac nframe i
|
||||
sza
|
||||
-1
|
||||
cma
|
||||
dac fflag
|
||||
jmp goon
|
||||
|
||||
decnf:0
|
||||
-1
|
||||
tad nframe
|
||||
dac nframe
|
||||
lac nframe i
|
||||
jmp decnf i
|
||||
126
src/cmd/t7.s
Normal file
126
src/cmd/t7.s
Normal file
@ -0,0 +1,126 @@
|
||||
"** 13-120-147.pdf page 26
|
||||
9:.=.+t
|
||||
|
||||
end = -1
|
||||
|
||||
no = 0000000
|
||||
rx = 0040000; gx = rx
|
||||
rc = 0100000
|
||||
rt = 0140000; gc = rt
|
||||
rf = 0200000; gf = rf
|
||||
rw = 0240000; gk = rw
|
||||
ra = 0300000; gp = ra
|
||||
rb = 0340000;gq = rb
|
||||
ro = 0400000
|
||||
rm = 0440000
|
||||
rs = 0500000
|
||||
rv = 0540000
|
||||
|
||||
|
||||
ljmp:jmp
|
||||
l.llss:llss
|
||||
l.lrs:lrs
|
||||
l.lls:lls
|
||||
l.ra:ra
|
||||
l.rb:rb
|
||||
l.rw:rw
|
||||
l.gk:gk
|
||||
l.gcx:gc x
|
||||
|
||||
x = 020000
|
||||
st = 0100
|
||||
fi = 0200
|
||||
opmask:0740000
|
||||
exitmask: x
|
||||
|
||||
m1:0-1
|
||||
d0:o0:0
|
||||
d1:o1:1
|
||||
d2:o2:2
|
||||
d3:o3:3
|
||||
d4:o4:4
|
||||
d5:o5:5
|
||||
d6:o6:6
|
||||
d7:o7:7
|
||||
d8:o10:8
|
||||
asciisp:040
|
||||
asciinl:012
|
||||
nl:012777
|
||||
onenl:nl
|
||||
bugr:.+1;<rn>;<rx>;<rc>;<rt>;<rf>;<rw>;<ra>;<rb>
|
||||
<ro>;<rm>;<rs>;<rv>
|
||||
bugg:.+1;<gn>;<gx>;<gz>;<gc>;<gf>;<gk>;<gp>;<gq>
|
||||
|
||||
o17:017
|
||||
o60:060
|
||||
o77:077
|
||||
o777:0777
|
||||
|
||||
o417777:0417777
|
||||
o400000:0400000
|
||||
o740000:0740000
|
||||
o377700:0377700
|
||||
o17777:017777
|
||||
|
||||
"** 13-120-147.pdf page 27
|
||||
o757777:0757777
|
||||
o600600:0600600
|
||||
|
||||
junk:0
|
||||
junk1:0
|
||||
|
||||
output:1
|
||||
input:0
|
||||
|
||||
stbit:st
|
||||
fibit:fi
|
||||
holdlv:0
|
||||
rand1:0
|
||||
rand2:0
|
||||
|
||||
|
||||
symwrite:0
|
||||
symbot: symtab
|
||||
symsiz = 500
|
||||
symmax:symsiz
|
||||
|
||||
equwrite:0
|
||||
equread:0
|
||||
equ = equread
|
||||
equbot: equtab
|
||||
equsiz = 500
|
||||
equmax: equsiz
|
||||
delta: 2
|
||||
mdelta:0-2
|
||||
|
||||
sbsiz=50
|
||||
sbmax:sbsiz
|
||||
sbwrite:0
|
||||
sbbot:sbbuf
|
||||
|
||||
fflag:0
|
||||
gflag:0
|
||||
ignore:.+1;0400000;0;0;0;0;0;0;4
|
||||
frame:rstack
|
||||
nframe:rstack+6
|
||||
env = ignore
|
||||
d.ii = d2
|
||||
d.env = d3
|
||||
d.blkmod = d3
|
||||
d.j = d4
|
||||
d.k = d5
|
||||
dffrmsz:6
|
||||
framsiz:4
|
||||
refrsz = d6
|
||||
gefrsz = d4
|
||||
ii: start
|
||||
k:0
|
||||
|
||||
rsiz = 500
|
||||
rmax: rsiz
|
||||
rbot:rstack
|
||||
rtop:rstack+rsiz
|
||||
|
||||
owrite:0
|
||||
obot:obuf
|
||||
osiz=64
|
||||
58
src/cmd/t8.s
Normal file
58
src/cmd/t8.s
Normal file
@ -0,0 +1,58 @@
|
||||
"** 13-120-147.pdf page 28
|
||||
" op.s is the op code defination file
|
||||
" for the assembler
|
||||
" no iot ops are defined
|
||||
" system cal entries are defined
|
||||
"
|
||||
dac = 0040000
|
||||
jms = 0100000
|
||||
dzm = 0140000
|
||||
lac = 0200000
|
||||
xor = 0240000
|
||||
add = 0300000
|
||||
tad = 0340000
|
||||
xct = 0400000
|
||||
isz = 0440000
|
||||
and = 0500000
|
||||
sad = 0540000
|
||||
jmp = 0600000
|
||||
eae = 0640000
|
||||
i = 020000
|
||||
opr = 0740000
|
||||
law = opr i
|
||||
cma = opr 1
|
||||
cml = opr 2
|
||||
ral = opr 010
|
||||
rar = opr 020
|
||||
sma = opr 0100
|
||||
sza = opr 0200
|
||||
snl = opr 0400
|
||||
skp = opr 01000
|
||||
spa = opr 01100
|
||||
sna = opr 01200
|
||||
szl = opr 01400
|
||||
cll = opr 04000
|
||||
cla = opr 010000
|
||||
las = opr 010004
|
||||
lrs = eae 0500
|
||||
lrss = i lrs
|
||||
lls = eae 0600
|
||||
llss = i lls
|
||||
als = eae 0700
|
||||
alss = i als
|
||||
lacq = eae 01002
|
||||
lacs = eae 01001
|
||||
clq = eae 010000
|
||||
omq = eae 2
|
||||
cmq = eae 4
|
||||
lmq = eae 012000
|
||||
|
||||
sys = i
|
||||
save = 1
|
||||
open = 3
|
||||
read = 4
|
||||
write = 5
|
||||
creat = 6
|
||||
seek = 7
|
||||
close = 9
|
||||
exit = 14
|
||||
@ -294,7 +294,7 @@ sub set_label
|
||||
# An error to have different values
|
||||
if ( defined( $Glabel{$label} ) && $Glabel{$label} != $loc ) {
|
||||
# non-fatal: as.s doesn't even warn!!!!
|
||||
print STDERR "$file:$lineno: Global label $label multiply defined\n"
|
||||
print STDERR "$file:$lineno: NOTE: Global label $label multiply defined (not an error)\n"
|
||||
if ($stage == 2);
|
||||
}
|
||||
else {
|
||||
@ -398,7 +398,7 @@ sub parse_line {
|
||||
|
||||
return if (eol());
|
||||
|
||||
if ( $line =~ s{^(\S+)\s*=}{}) { # assignment
|
||||
if ( $line =~ s{^([^;= \t]+)\s*=}{}) { # assignment
|
||||
my $lhs = $1;
|
||||
my $word = parse_expression();
|
||||
printf( "Setting variable %s to 0%o\n", $lhs, $word ) if ($debug);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user