1
0
mirror of https://github.com/DoctorWkt/pdp7-unix.git synced 2026-01-13 15:27:39 +00:00

shell from 11-56-91.pdf; added ecla to as7

This commit is contained in:
Phil Budne 2019-10-18 18:12:42 -04:00
parent 37a3e77dee
commit cda071864e
2 changed files with 431 additions and 0 deletions

430
scans/sh.s Normal file
View File

@ -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:

View File

@ -133,6 +133,7 @@ usage() if ( @ARGV < 1 );
clls => 0641600, # lls but clear AC first
als => 0640700, # AC shift
lrs => 0640500, # long right shift
ecla => 0641000, # clear AC
lacs => 0641001, # load AC with SC
lacq => 0641002, # load AC with MQ
abs => 0644000, # absolute value