Merge branch 'master' of https://github.com/DoctorWkt/pdp7-unix
This commit is contained in:
+430
@@ -0,0 +1,430 @@
|
|||||||
|
" ** 11-45-91.pdf page 30
|
||||||
|
" sh
|
||||||
|
|
||||||
|
clear:
|
||||||
|
jmp shell
|
||||||
|
|
||||||
|
1:
|
||||||
|
dzm i 8
|
||||||
|
isz clear
|
||||||
|
jms 1b
|
||||||
|
lacq
|
||||||
|
jmp 017771
|
||||||
|
zerop: .-1
|
||||||
|
|
||||||
|
comerr:
|
||||||
|
lac d1
|
||||||
|
sys write; errmes; 1
|
||||||
|
|
||||||
|
shell:
|
||||||
|
lac d1
|
||||||
|
sys write; ready; 1
|
||||||
|
shell1:
|
||||||
|
lac delim
|
||||||
|
sad newln
|
||||||
|
jms rline
|
||||||
|
jms getcom
|
||||||
|
lac narg
|
||||||
|
sna
|
||||||
|
jmp comretrn
|
||||||
|
lac args
|
||||||
|
sad chcom
|
||||||
|
skp
|
||||||
|
jmp 3f
|
||||||
|
lac args+1
|
||||||
|
sad spsp
|
||||||
|
jmp doch
|
||||||
|
3:
|
||||||
|
sys fork
|
||||||
|
skp
|
||||||
|
jmp loadcom
|
||||||
|
spa
|
||||||
|
jmp comerr
|
||||||
|
lmq
|
||||||
|
lac delim
|
||||||
|
sad amper
|
||||||
|
jmp shell1
|
||||||
|
lacq " hand written
|
||||||
|
clq " send mesg to child
|
||||||
|
sys smes
|
||||||
|
comretrn:
|
||||||
|
lac delim
|
||||||
|
sad newln
|
||||||
|
jmp shell
|
||||||
|
jmp shell1
|
||||||
|
|
||||||
|
loadcom:
|
||||||
|
sys open; args; 0
|
||||||
|
sma
|
||||||
|
jmp 1f
|
||||||
|
sys link; system; args; args
|
||||||
|
spa
|
||||||
|
|
||||||
|
" ** 11-45-91.pdf page 30
|
||||||
|
|
||||||
|
jmp 2f
|
||||||
|
-1
|
||||||
|
dac lnkflg
|
||||||
|
jmp loadcom
|
||||||
|
|
||||||
|
2:
|
||||||
|
lac lnkflg
|
||||||
|
sna
|
||||||
|
jmp 3f
|
||||||
|
sys unlink; args
|
||||||
|
3:
|
||||||
|
lac d1
|
||||||
|
sys write; args; 4
|
||||||
|
lac d1
|
||||||
|
sys write; errmes; 1
|
||||||
|
sys exit
|
||||||
|
|
||||||
|
1:
|
||||||
|
lac lnkflg
|
||||||
|
sna
|
||||||
|
jmp 1f
|
||||||
|
sys unlink; args
|
||||||
|
1:
|
||||||
|
lac in
|
||||||
|
sna
|
||||||
|
jmp 2f
|
||||||
|
cla
|
||||||
|
sys close
|
||||||
|
sys open; in; 0
|
||||||
|
sma
|
||||||
|
jmp 2f
|
||||||
|
lac d1
|
||||||
|
sys write; in; 4
|
||||||
|
sys write; errmes; 1
|
||||||
|
sys exit
|
||||||
|
2:
|
||||||
|
lac out
|
||||||
|
sna
|
||||||
|
jmp 1f
|
||||||
|
lac d1
|
||||||
|
sys close
|
||||||
|
lac o17
|
||||||
|
sys creat; out
|
||||||
|
spa
|
||||||
|
sys exit
|
||||||
|
1:
|
||||||
|
lac narg
|
||||||
|
cma
|
||||||
|
dac t1
|
||||||
|
tad o17771
|
||||||
|
dac 017777
|
||||||
|
tad dm1
|
||||||
|
dac 8
|
||||||
|
and o7777
|
||||||
|
dac boot+2
|
||||||
|
cma
|
||||||
|
tad d7
|
||||||
|
dac close
|
||||||
|
lac nargp
|
||||||
|
dac 9
|
||||||
|
|
||||||
|
" ** 11-45-91.pdf page 32
|
||||||
|
|
||||||
|
2:
|
||||||
|
lac i 9
|
||||||
|
dac i 8
|
||||||
|
isz t1
|
||||||
|
jmp 2b
|
||||||
|
lac bootp
|
||||||
|
dac 9
|
||||||
|
-6
|
||||||
|
dac t1
|
||||||
|
2:
|
||||||
|
lac i 9
|
||||||
|
dac i 8
|
||||||
|
isz t1
|
||||||
|
jmp 2b
|
||||||
|
lac d2
|
||||||
|
lmq
|
||||||
|
lac zerop
|
||||||
|
dac 8
|
||||||
|
jmp clear+1
|
||||||
|
|
||||||
|
boot:
|
||||||
|
sys read; 4096; ..
|
||||||
|
lacq
|
||||||
|
sys close
|
||||||
|
jmp 4096
|
||||||
|
|
||||||
|
getcom: 0
|
||||||
|
law args-1
|
||||||
|
dac 10
|
||||||
|
dzm in
|
||||||
|
dzm out
|
||||||
|
dzm narg
|
||||||
|
dzm lnkflg
|
||||||
|
|
||||||
|
jms get
|
||||||
|
nparm:
|
||||||
|
sad gr
|
||||||
|
jmp cgr
|
||||||
|
sad ls
|
||||||
|
jmp cls
|
||||||
|
sad amper
|
||||||
|
jmp endcom
|
||||||
|
sad semic
|
||||||
|
jmp endcom
|
||||||
|
sad newln
|
||||||
|
jmp endcom
|
||||||
|
sad space
|
||||||
|
jmp nparm-1
|
||||||
|
lmq
|
||||||
|
lac narg
|
||||||
|
tad d4
|
||||||
|
dac narg
|
||||||
|
lacq
|
||||||
|
jms getparm
|
||||||
|
jmp nparm
|
||||||
|
|
||||||
|
endcom:
|
||||||
|
dac delim
|
||||||
|
jmp getcom i
|
||||||
|
|
||||||
|
cls:
|
||||||
|
|
||||||
|
" ** 11-45-91.pdf page 33
|
||||||
|
|
||||||
|
jms get
|
||||||
|
jms getparm
|
||||||
|
dac t1
|
||||||
|
law in-1
|
||||||
|
jmp cpio
|
||||||
|
cgr:
|
||||||
|
jms get
|
||||||
|
jms getparm
|
||||||
|
dac t1
|
||||||
|
law out-1
|
||||||
|
cpio:
|
||||||
|
dac 11
|
||||||
|
lac 10
|
||||||
|
tad dm4
|
||||||
|
dac 10
|
||||||
|
lmq
|
||||||
|
-4
|
||||||
|
dac c1
|
||||||
|
1:
|
||||||
|
lac i 10
|
||||||
|
dac i 11
|
||||||
|
isz c1
|
||||||
|
jmp 1b
|
||||||
|
lacq
|
||||||
|
dac 10
|
||||||
|
lac t1
|
||||||
|
jmp nparm
|
||||||
|
|
||||||
|
getparm:0
|
||||||
|
lmq
|
||||||
|
-8
|
||||||
|
dac c1
|
||||||
|
lacq
|
||||||
|
skp
|
||||||
|
1:
|
||||||
|
jms get
|
||||||
|
sad space
|
||||||
|
jmp 1b
|
||||||
|
jms checkdlm
|
||||||
|
jmp comerr
|
||||||
|
jmp 2f
|
||||||
|
1:
|
||||||
|
jmp get
|
||||||
|
jms checkdlm
|
||||||
|
jmp fill1
|
||||||
|
2:
|
||||||
|
alss 9
|
||||||
|
isz c1
|
||||||
|
lmq
|
||||||
|
jms get
|
||||||
|
jms checkdlm
|
||||||
|
jmp fill
|
||||||
|
omq
|
||||||
|
dac i 10
|
||||||
|
isz c1
|
||||||
|
jmp 1b
|
||||||
|
1:
|
||||||
|
jms get
|
||||||
|
jms checkdlm
|
||||||
|
jmp i getparm
|
||||||
|
jmp 1b
|
||||||
|
|
||||||
|
" ** 11-45-91.pdf page 34
|
||||||
|
|
||||||
|
fill:
|
||||||
|
dac t1
|
||||||
|
lac space
|
||||||
|
omq
|
||||||
|
dac i 10
|
||||||
|
isz c1
|
||||||
|
nop
|
||||||
|
lac t1
|
||||||
|
fill1:
|
||||||
|
lmq
|
||||||
|
lac c1
|
||||||
|
spa
|
||||||
|
jmp 1f
|
||||||
|
lacq
|
||||||
|
jmp i getparm
|
||||||
|
1:
|
||||||
|
lac spsp
|
||||||
|
dac i 10
|
||||||
|
isz c1
|
||||||
|
isz c1
|
||||||
|
jmp 1b
|
||||||
|
lacq
|
||||||
|
jmp i getparm
|
||||||
|
|
||||||
|
checkdlm: 0
|
||||||
|
sad space
|
||||||
|
jmp i checkdlm
|
||||||
|
sad newln
|
||||||
|
jmp i checkdlm
|
||||||
|
sad amper
|
||||||
|
jmp i checkdlm
|
||||||
|
sad semic
|
||||||
|
jmp i checkdlm
|
||||||
|
isz checkdlm
|
||||||
|
jmp i checkdlm
|
||||||
|
|
||||||
|
get: 0
|
||||||
|
lac i 8
|
||||||
|
sad slash
|
||||||
|
skp
|
||||||
|
jmp i get
|
||||||
|
lac i 8
|
||||||
|
sad newln
|
||||||
|
skp
|
||||||
|
jmp comerr
|
||||||
|
lacq
|
||||||
|
dac 1f
|
||||||
|
jms rline
|
||||||
|
lac 1f
|
||||||
|
lmq
|
||||||
|
lac space
|
||||||
|
jmp i get
|
||||||
|
|
||||||
|
1: 0
|
||||||
|
rline:0
|
||||||
|
2:
|
||||||
|
law lineb-1
|
||||||
|
dac 15
|
||||||
|
dac 8
|
||||||
|
1:
|
||||||
|
jms getcha
|
||||||
|
|
||||||
|
" ** 11-45-91.pdf page 35
|
||||||
|
dac i 15
|
||||||
|
sad newln
|
||||||
|
jmp i rline
|
||||||
|
sad sharp
|
||||||
|
jmp psharp
|
||||||
|
sad atsign
|
||||||
|
jmp 2b
|
||||||
|
jmp 1b
|
||||||
|
psharp:
|
||||||
|
-1
|
||||||
|
tad 15
|
||||||
|
sad 2b
|
||||||
|
jmp 2b
|
||||||
|
tad dm1
|
||||||
|
dac 15
|
||||||
|
jmp 1b
|
||||||
|
|
||||||
|
getcha: 0
|
||||||
|
lac char
|
||||||
|
dzm char
|
||||||
|
sza
|
||||||
|
jmp i getcha
|
||||||
|
isz nread
|
||||||
|
jmp 1f
|
||||||
|
cla
|
||||||
|
sys read; inbuf; 64
|
||||||
|
spa sna
|
||||||
|
jmp lgout
|
||||||
|
cma
|
||||||
|
tad d1
|
||||||
|
dac nread
|
||||||
|
law inbuf-1
|
||||||
|
dac 14
|
||||||
|
1:
|
||||||
|
lac i 14
|
||||||
|
lmq
|
||||||
|
and o777
|
||||||
|
dac char
|
||||||
|
ecla llss 9
|
||||||
|
jmp i getcha
|
||||||
|
|
||||||
|
doch:
|
||||||
|
lac narg
|
||||||
|
lrss 2
|
||||||
|
cma
|
||||||
|
tad d1
|
||||||
|
dac narg
|
||||||
|
law args+4
|
||||||
|
dac 1f
|
||||||
|
2:
|
||||||
|
isz narg
|
||||||
|
skp
|
||||||
|
jmp comretrn
|
||||||
|
sys chdir; 1:0
|
||||||
|
spa
|
||||||
|
jmp cherr
|
||||||
|
lac 1b
|
||||||
|
tad d4
|
||||||
|
dac 1b
|
||||||
|
jmp 2b
|
||||||
|
cherr:
|
||||||
|
|
||||||
|
" ** 11-45-91.pdf page 36
|
||||||
|
lac 1b
|
||||||
|
dac .+3
|
||||||
|
lac d1
|
||||||
|
sys write; ..; 4
|
||||||
|
jmp comerr
|
||||||
|
|
||||||
|
lgout:
|
||||||
|
clq
|
||||||
|
lac d1
|
||||||
|
sys smes
|
||||||
|
sys exit
|
||||||
|
|
||||||
|
d1: 1
|
||||||
|
dm1: -1
|
||||||
|
d4: 4
|
||||||
|
dm4: -5
|
||||||
|
d2: 2
|
||||||
|
d7: 7
|
||||||
|
o17: 017
|
||||||
|
o17771: 017771
|
||||||
|
o7777: 07777
|
||||||
|
o777: 0777
|
||||||
|
gr: 076
|
||||||
|
ls: 074
|
||||||
|
amper: &>
|
||||||
|
semic: 073
|
||||||
|
space: 040
|
||||||
|
sharp: 043
|
||||||
|
atsign: 0100
|
||||||
|
newln: 012
|
||||||
|
slash: 057
|
||||||
|
in: 0;0;0;0
|
||||||
|
out: 0;0;0;0
|
||||||
|
errmes: 077012
|
||||||
|
chcom: <ch>
|
||||||
|
ready: 0100040
|
||||||
|
delim: 012
|
||||||
|
system: <sy>; <st>; <em>; spsp: 040040
|
||||||
|
nargp: narg-1
|
||||||
|
bootp: boot-1
|
||||||
|
char: 0
|
||||||
|
nread: -1
|
||||||
|
lineb: .=.+128
|
||||||
|
inbuf: .=.+64
|
||||||
|
c1: .=.+1
|
||||||
|
t1: .=.+1
|
||||||
|
lnkflg: .=.+1
|
||||||
|
narg: .=.+1
|
||||||
|
args:
|
||||||
@@ -133,6 +133,7 @@ usage() if ( @ARGV < 1 );
|
|||||||
clls => 0641600, # lls but clear AC first
|
clls => 0641600, # lls but clear AC first
|
||||||
als => 0640700, # AC shift
|
als => 0640700, # AC shift
|
||||||
lrs => 0640500, # long right shift
|
lrs => 0640500, # long right shift
|
||||||
|
ecla => 0641000, # clear AC
|
||||||
lacs => 0641001, # load AC with SC
|
lacs => 0641001, # load AC with SC
|
||||||
lacq => 0641002, # load AC with MQ
|
lacq => 0641002, # load AC with MQ
|
||||||
abs => 0644000, # absolute value
|
abs => 0644000, # absolute value
|
||||||
|
|||||||
Reference in New Issue
Block a user