mirror of
https://github.com/livingcomputermuseum/pdp7-unix.git
synced 2026-01-12 00:02:47 +00:00
Merge pull request #167 from philbudne/noc
use original commands, add tmg, use octal in proto file, fsck7 output
This commit is contained in:
commit
be3f9de0e2
285
build/Makefile
285
build/Makefile
@ -8,7 +8,7 @@ ASARGS=--format=ptr
|
||||
MKFS=../tools/mkfs7
|
||||
A7OUT=../tools/a7out
|
||||
FSCK=../tools/fsck7
|
||||
CCARGS=-Wno-multichar
|
||||
CCARGS=-Wno-multichar -Wno-implicit
|
||||
PDP7=pdp7
|
||||
|
||||
# source dirs
|
||||
@ -51,16 +51,20 @@ dist: all alt
|
||||
cp alt/unixv0.simh $(BINARIES)/alt
|
||||
|
||||
# Warm boot Unix kernel: boots into init and a login prompt
|
||||
a.out:
|
||||
$(AS) -f ptr -o a.out $(SYSSRC)/sop.s $(SYSSRC)/s[1-8].s
|
||||
$(AS) -n -f list -o a.lst $(SYSSRC)/sop.s $(SYSSRC)/s[1-8].s
|
||||
SYS= $(SYSSRC)/sop.s $(SYSSRC)/s1.s $(SYSSRC)/s2.s \
|
||||
$(SYSSRC)/s3.s $(SYSSRC)/s4.s $(SYSSRC)/s5.s \
|
||||
$(SYSSRC)/s6.s $(SYSSRC)/s7.s $(SYSSRC)/s8.s
|
||||
a.out: $(SYS)
|
||||
$(AS) -f ptr -o a.out $(SYSSRC)/sop.s $(SYS)
|
||||
$(AS) -n -f list -o a.lst $(SYSSRC)/sop.s $(SYS)
|
||||
|
||||
# Alternative kernel: no dd, but . and ..
|
||||
alt/a.out:
|
||||
$(AS) -f ptr -o alt/a.out $(SYSSRC)/sop.s $(SYSSRC)/s1.s \
|
||||
$(ALTSRC)/s2.s $(SYSSRC)/s[3-8].s
|
||||
$(AS) -n -f list -o alt/a.lst $(SYSSRC)/sop.s $(SYSSRC)/s1.s \
|
||||
$(ALTSRC)/s2.s $(SYSSRC)/s[3-8].s
|
||||
ALTSYS= $(SYSSRC)/sop.s $(SYSSRC)/s1.s $(ALTSRC)/s2.s \
|
||||
$(SYSSRC)/s3.s $(SYSSRC)/s4.s $(SYSSRC)/s5.s \
|
||||
$(SYSSRC)/s6.s $(SYSSRC)/s7.s $(SYSSRC)/s8.s
|
||||
alt/a.out: $(ALTSYS)
|
||||
$(AS) -f ptr -o alt/a.out $(ALTSYS)
|
||||
$(AS) -n -f list -o alt/a.lst $(ALTSYS)
|
||||
|
||||
# Phil's bootstrap code
|
||||
boot.rim: $(SYSSRC)/sop.s $(OTHERSRC)/pbboot.s
|
||||
@ -68,9 +72,10 @@ boot.rim: $(SYSSRC)/sop.s $(OTHERSRC)/pbboot.s
|
||||
|
||||
# Cold boot Unix kernel: attempts to build a minimal filesystem.
|
||||
# Don't use this one!
|
||||
coldboot:
|
||||
$(AS) -f rim -o boot.rim $(SYSSRC)/sop.s $(SYSSRC)/s[1-9].s
|
||||
$(AS) -n -f list -o a.lst $(SYSSRC)/sop.s $(SYSSRC)/s[1-9].s
|
||||
COLDBOOT=$(SYS) $(SYSSRC)/s9.s
|
||||
coldboot.rim: $(COLDBOOT)
|
||||
$(AS) -f rim -o coldboot.rim $(COLDBOOT)
|
||||
$(AS) -n -f list -o a.lst $(COLDBOOT)
|
||||
|
||||
# Filesystem image
|
||||
image.fs: cmd others
|
||||
@ -92,22 +97,56 @@ dirs:
|
||||
mkdir -p $(BINDIR)
|
||||
|
||||
# The commands that came from the original scans
|
||||
cmd: dirs $(BINDIR)/as $(BINDIR)/cat $(BINDIR)/check $(BINDIR)/chmod \
|
||||
$(BINDIR)/chown $(BINDIR)/chrm $(BINDIR)/cp $(BINDIR)/ds \
|
||||
$(BINDIR)/dskres $(BINDIR)/dsksav $(BINDIR)/ed $(BINDIR)/init \
|
||||
$(BINDIR)/db $(BINDIR)/nstat $(BINDIR)/tm $(BINDIR)/dsw $(BINDIR)/apr \
|
||||
$(BINDIR)/cas $(BINDIR)/rm $(BINDIR)/rn $(BINDIR)/pd $(BINDIR)/nm \
|
||||
$(BINDIR)/roff $(BINDIR)/p $(BINDIR)/apr $(BINDIR)/salv $(BINDIR)/moo \
|
||||
$(BINDIR)/nsh $(BINDIR)/nls $(BINDIR)/nstat $(BINDIR)/un $(BINDIR)/adm
|
||||
# PLEASE KEEP IN ALPHABETICAL ORDER!
|
||||
cmd: dirs \
|
||||
$(BINDIR)/adm \
|
||||
$(BINDIR)/apr \
|
||||
$(BINDIR)/as \
|
||||
$(BINDIR)/cas \
|
||||
$(BINDIR)/cat \
|
||||
$(BINDIR)/check \
|
||||
$(BINDIR)/chmod \
|
||||
$(BINDIR)/chown \
|
||||
$(BINDIR)/chrm \
|
||||
$(BINDIR)/cp \
|
||||
$(BINDIR)/db \
|
||||
$(BINDIR)/ds \
|
||||
$(BINDIR)/dskres \
|
||||
$(BINDIR)/dsksav \
|
||||
$(BINDIR)/dsw \
|
||||
$(BINDIR)/ed \
|
||||
$(BINDIR)/init \
|
||||
$(BINDIR)/ln \
|
||||
$(BINDIR)/ls \
|
||||
$(BINDIR)/moo \
|
||||
$(BINDIR)/nm \
|
||||
$(BINDIR)/p \
|
||||
$(BINDIR)/rm \
|
||||
$(BINDIR)/rn \
|
||||
$(BINDIR)/roff \
|
||||
$(BINDIR)/salv \
|
||||
$(BINDIR)/sh \
|
||||
$(BINDIR)/stat \
|
||||
$(BINDIR)/tm \
|
||||
$(BINDIR)/ttt \
|
||||
$(BINDIR)/un
|
||||
|
||||
# Alternate commands: no dd, but . and ..
|
||||
altcmd: dirs $(BINDIR)/as $(BINDIR)/cat $(BINDIR)/check $(BINDIR)/chmod \
|
||||
$(BINDIR)/chown $(BINDIR)/altchrm $(BINDIR)/cp $(BINDIR)/ds \
|
||||
$(BINDIR)/ed $(BINDIR)/altinit $(BINDIR)/altmkdir
|
||||
altcmd: dirs cmd \
|
||||
$(BINDIR)/altchrm $(BINDIR)/cp $(BINDIR)/altinit $(BINDIR)/altmkdir
|
||||
|
||||
$(BINDIR)/adm: $(CMDSRC)/adm.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/adm $(CMDSRC)/adm.s
|
||||
|
||||
$(BINDIR)/apr: $(CMDSRC)/apr.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/apr $(CMDSRC)/apr.s
|
||||
|
||||
$(BINDIR)/as: $(CMDSRC)/as.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/as $(CMDSRC)/as.s
|
||||
|
||||
$(BINDIR)/bc: $(CMDSRC)/bc.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/bc $(CMDSRC)/bc.s
|
||||
|
||||
$(BINDIR)/cat: $(CMDSRC)/cat.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/cat $(CMDSRC)/cat.s
|
||||
|
||||
@ -126,110 +165,116 @@ $(BINDIR)/chrm: $(CMDSRC)/chrm.s
|
||||
$(BINDIR)/altchrm: $(ALTSRC)/chrm.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/altchrm $(ALTSRC)/chrm.s
|
||||
|
||||
$(BINDIR)/cas: $(CMDSRC)/cas.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/cas $(CMDSRC)/cas.s
|
||||
|
||||
$(BINDIR)/cp: $(CMDSRC)/cp.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/cp $(CMDSRC)/cp.s
|
||||
|
||||
$(BINDIR)/ds: $(CMDSRC)/ds.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/ds $(CMDSRC)/ds.s
|
||||
|
||||
$(BINDIR)/dskres: $(CMDSRC)/dskres.s $(CMDSRC)/dskio.s $(SYSSRC)/sop.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/dskres $(CMDSRC)/dskres.s $(CMDSRC)/dskio.s $(SYSSRC)/sop.s
|
||||
|
||||
$(BINDIR)/dsksav: $(CMDSRC)/dsksav.s $(CMDSRC)/dskio.s $(SYSSRC)/sop.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/dsksav $(CMDSRC)/dsksav.s $(CMDSRC)/dskio.s $(SYSSRC)/sop.s
|
||||
|
||||
$(BINDIR)/ed: $(CMDSRC)/ed1.s $(CMDSRC)/ed2.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/ed $(CMDSRC)/ed1.s $(CMDSRC)/ed2.s
|
||||
|
||||
$(BINDIR)/init: $(CMDSRC)/init.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/init $(CMDSRC)/init.s
|
||||
|
||||
$(BINDIR)/db: $(CMDSRC)/db.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/db $(CMDSRC)/db.s
|
||||
|
||||
# -- new stat from the scans
|
||||
$(BINDIR)/nstat: $(CMDSRC)/stat.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/nstat $(CMDSRC)/stat.s
|
||||
|
||||
$(BINDIR)/tm: $(CMDSRC)/tm.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/tm $(CMDSRC)/tm.s
|
||||
|
||||
$(BINDIR)/cas: $(CMDSRC)/cas.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/cas $(CMDSRC)/cas.s
|
||||
|
||||
# -- compile errors
|
||||
$(BINDIR)/dmabs: $(CMDSRC)/dmabs.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/dmabs $(CMDSRC)/dmabs.s
|
||||
|
||||
# -- new bc from the scans
|
||||
$(BINDIR)/nbc: $(CMDSRC)/bc.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/nbc $(CMDSRC)/bc.s
|
||||
$(BINDIR)/ds: $(CMDSRC)/ds.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/ds $(CMDSRC)/ds.s
|
||||
|
||||
DSKRES=$(CMDSRC)/dskres.s $(CMDSRC)/dskio.s $(SYSSRC)/sop.s
|
||||
$(BINDIR)/dskres: $(DSKRES)
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/dskres $(DSKRES)
|
||||
|
||||
DSKSAV=$(CMDSRC)/dsksav.s $(CMDSRC)/dskio.s $(SYSSRC)/sop.s
|
||||
$(BINDIR)/dsksav: $(DSKSAV)
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/dsksav $(DSKSAV)
|
||||
|
||||
$(BINDIR)/dsw: $(CMDSRC)/dsw.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/dsw $(CMDSRC)/dsw.s
|
||||
|
||||
$(BINDIR)/apr: $(CMDSRC)/apr.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/apr $(CMDSRC)/apr.s
|
||||
ED=$(CMDSRC)/ed1.s $(CMDSRC)/ed2.s
|
||||
$(BINDIR)/ed: $(ED)
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/ed $(ED)
|
||||
|
||||
# -- compile errors
|
||||
$(BINDIR)/adm: $(CMDSRC)/adm.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/adm $(CMDSRC)/adm.s
|
||||
$(BINDIR)/init: $(CMDSRC)/init.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/init $(CMDSRC)/init.s
|
||||
|
||||
# -- new sh from the scans
|
||||
$(BINDIR)/nsh: $(CMDSRC)/sh.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/nsh $(CMDSRC)/sh.s
|
||||
$(BINDIR)/ln: $(CMDSRC)/ln.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/ln $(CMDSRC)/ln.s
|
||||
|
||||
$(BINDIR)/rn: $(CMDSRC)/rn.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/rn $(CMDSRC)/rn.s
|
||||
|
||||
$(BINDIR)/rm: $(CMDSRC)/rm.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/rm $(CMDSRC)/rm.s
|
||||
|
||||
$(BINDIR)/pd: $(CMDSRC)/pd.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/pd $(CMDSRC)/pd.s
|
||||
|
||||
# -- new ls from the scans
|
||||
$(BINDIR)/nls: $(CMDSRC)/ls.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/nls $(CMDSRC)/ls.s
|
||||
|
||||
$(BINDIR)/nm: $(CMDSRC)/nm.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/nm $(CMDSRC)/nm.s
|
||||
|
||||
$(BINDIR)/roff: $(CMDSRC)/roff.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/roff $(CMDSRC)/roff.s
|
||||
|
||||
$(BINDIR)/p: $(CMDSRC)/p1.s $(CMDSRC)/p2.s $(CMDSRC)/p3.s $(CMDSRC)/p4.s $(CMDSRC)/p5.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/p $(CMDSRC)/p1.s $(CMDSRC)/p2.s $(CMDSRC)/p3.s $(CMDSRC)/p4.s $(CMDSRC)/p5.s
|
||||
|
||||
$(BINDIR)/salv: $(CMDSRC)/salv.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/salv $(CMDSRC)/salv.s
|
||||
$(BINDIR)/ls: $(CMDSRC)/ls.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/ls $(CMDSRC)/ls.s
|
||||
|
||||
$(BINDIR)/moo: $(CMDSRC)/moo.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/moo $(CMDSRC)/moo.s
|
||||
|
||||
$(BINDIR)/nm: $(CMDSRC)/nm.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/nm $(CMDSRC)/nm.s
|
||||
|
||||
P=$(CMDSRC)/p1.s $(CMDSRC)/p2.s $(CMDSRC)/p3.s $(CMDSRC)/p4.s $(CMDSRC)/p5.s
|
||||
$(BINDIR)/p: $(P)
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/p $(P)
|
||||
|
||||
$(BINDIR)/rm: $(CMDSRC)/rm.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/rm $(CMDSRC)/rm.s
|
||||
|
||||
$(BINDIR)/rn: $(CMDSRC)/rn.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/rn $(CMDSRC)/rn.s
|
||||
|
||||
$(BINDIR)/pd: $(CMDSRC)/pd.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/pd $(CMDSRC)/pd.s
|
||||
|
||||
$(BINDIR)/roff: $(CMDSRC)/roff.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/roff $(CMDSRC)/roff.s
|
||||
|
||||
$(BINDIR)/salv: $(CMDSRC)/salv.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/salv $(CMDSRC)/salv.s
|
||||
|
||||
$(BINDIR)/sh: $(CMDSRC)/sh.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/sh $(CMDSRC)/sh.s
|
||||
|
||||
$(BINDIR)/stat: $(CMDSRC)/stat.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/stat $(CMDSRC)/stat.s
|
||||
|
||||
$(BINDIR)/tm: $(CMDSRC)/tm.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/tm $(CMDSRC)/tm.s
|
||||
|
||||
TTT=$(CMDSRC)/ttt1.s $(CMDSRC)/ttt2.s
|
||||
$(BINDIR)/ttt: $(TTT)
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/ttt $(TTT)
|
||||
|
||||
$(BINDIR)/un: $(CMDSRC)/un.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/un $(CMDSRC)/un.s
|
||||
|
||||
# Alternative init: no dd directory
|
||||
$(BINDIR)/altinit: $(ALTSRC)/init.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/altinit $(ALTSRC)/init.s
|
||||
|
||||
$(BINDIR)/altmkdir: $(ALTSRC)/wktmkdir.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/altmkdir $(ALTSRC)/wktmkdir.s
|
||||
|
||||
|
||||
################
|
||||
# The commands that did not come from the scans
|
||||
others: dirs $(BINDIR)/sh $(BINDIR)/wktcat $(BINDIR)/wktcp $(BINDIR)/date \
|
||||
$(BINDIR)/ln $(BINDIR)/ls $(BINDIR)/mv $(BINDIR)/stat $(BINDIR)/od \
|
||||
$(BINDIR)/bc $(BINDIR)/lsd $(BINDIR)/lsl
|
||||
|
||||
# Alternative other commands: no dd, but . and ..
|
||||
altothers: dirs $(BINDIR)/sh $(BINDIR)/wktcat $(BINDIR)/wktcp $(BINDIR)/date \
|
||||
$(BINDIR)/ln $(BINDIR)/altls $(BINDIR)/mv $(BINDIR)/stat $(BINDIR)/od
|
||||
others: dirs \
|
||||
$(BINDIR)/b \
|
||||
$(BINDIR)/date \
|
||||
$(BINDIR)/mv \
|
||||
$(BINDIR)/od
|
||||
|
||||
# B compiler
|
||||
$(BINDIR)/b: $(CMDSRC)/bl.s $(CMDSRC)/bi.s ../tools/b.c $(OTHERSRC)/b.b
|
||||
$(CC) $(CCARGS) -o b ../tools/b.c
|
||||
./b $(OTHERSRC)/b.b b.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/b $(CMDSRC)/bl.s b.s $(CMDSRC)/bi.s
|
||||
rm b b.s
|
||||
|
||||
$(BINDIR)/sh: $(OTHERSRC)/pbsh.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/sh $(OTHERSRC)/pbsh.s
|
||||
$(BINDIR)/date: $(OTHERSRC)/wktdate.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/date $(OTHERSRC)/wktdate.s
|
||||
|
||||
$(BINDIR)/mv: $(OTHERSRC)/wktmv.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/mv $(OTHERSRC)/wktmv.s
|
||||
|
||||
$(BINDIR)/od: $(OTHERSRC)/wktod.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/od $(OTHERSRC)/wktod.s
|
||||
|
||||
################
|
||||
# replacement programs (no longer in build)
|
||||
|
||||
$(BINDIR)/pbsh: $(OTHERSRC)/pbsh.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/pbsh $(OTHERSRC)/pbsh.s
|
||||
|
||||
$(BINDIR)/wktcat: $(OTHERSRC)/wktcat.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/wktcat $(OTHERSRC)/wktcat.s
|
||||
@ -237,39 +282,37 @@ $(BINDIR)/wktcat: $(OTHERSRC)/wktcat.s
|
||||
$(BINDIR)/wktcp: $(OTHERSRC)/wktcp.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/wktcp $(OTHERSRC)/wktcp.s
|
||||
|
||||
$(BINDIR)/date: $(OTHERSRC)/wktdate.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/date $(OTHERSRC)/wktdate.s
|
||||
$(BINDIR)/wktln: $(OTHERSRC)/wktln.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/wktln $(OTHERSRC)/wktln.s
|
||||
|
||||
$(BINDIR)/ln: $(OTHERSRC)/wktln.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/ln $(OTHERSRC)/wktln.s
|
||||
|
||||
$(BINDIR)/ls: $(OTHERSRC)/wktls.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/ls $(OTHERSRC)/wktls.s
|
||||
$(BINDIR)/wktls: $(OTHERSRC)/wktls.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/wktls $(OTHERSRC)/wktls.s
|
||||
|
||||
$(BINDIR)/lsd: $(OTHERSRC)/pblsd.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/lsd $(OTHERSRC)/pblsd.s
|
||||
|
||||
$(BINDIR)/altls: $(ALTSRC)/wktls.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/altls $(ALTSRC)/wktls.s
|
||||
|
||||
$(BINDIR)/lsl: $(OTHERSRC)/pblsd.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/lsl $(OTHERSRC)/pblsd.s
|
||||
|
||||
$(BINDIR)/mv: $(OTHERSRC)/wktmv.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/mv $(OTHERSRC)/wktmv.s
|
||||
$(BINDIR)/wktstat: $(OTHERSRC)/wktstat.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/wktstat $(OTHERSRC)/wktstat.s
|
||||
|
||||
$(BINDIR)/stat: $(OTHERSRC)/wktstat.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/stat $(OTHERSRC)/wktstat.s
|
||||
################
|
||||
# Alternative init: no dd directory
|
||||
$(BINDIR)/altinit: $(ALTSRC)/init.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/altinit $(ALTSRC)/init.s
|
||||
|
||||
$(BINDIR)/od: $(OTHERSRC)/wktod.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/od $(OTHERSRC)/wktod.s
|
||||
$(BINDIR)/altmkdir: $(ALTSRC)/wktmkdir.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/altmkdir $(ALTSRC)/wktmkdir.s
|
||||
|
||||
# B compiler
|
||||
$(BINDIR)/bc: $(CMDSRC)/bl.s $(CMDSRC)/bi.s ../tools/b.c $(OTHERSRC)/b.b
|
||||
$(CC) $(CCARGS) -o b ../tools/b.c
|
||||
./b $(OTHERSRC)/b.b b.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/bc $(CMDSRC)/bl.s b.s $(CMDSRC)/bi.s
|
||||
rm b b.s
|
||||
# Alternative other commands: no dd, but . and ..
|
||||
altothers: dirs cmd $(BINDIR)/wktcat $(BINDIR)/wktcp $(BINDIR)/date \
|
||||
$(BINDIR)/altls $(BINDIR)/mv $(BINDIR)/od
|
||||
|
||||
$(BINDIR)/altls: $(ALTSRC)/wktls.s
|
||||
$(AS) $(ASARGS) -o $(BINDIR)/altls $(ALTSRC)/wktls.s
|
||||
|
||||
################################################################
|
||||
|
||||
tests:
|
||||
mkdir -p $(TESTDIR)
|
||||
|
||||
@ -9,7 +9,8 @@
|
||||
# link l---- inumber
|
||||
#
|
||||
# The top directory's name is ignored
|
||||
# Numeric values are in decimal
|
||||
# inumbers are in decimal (-1 means previous file)
|
||||
# uids are in octal
|
||||
# Contents of each directory ends with a $ on a line by itself
|
||||
# Format was inspired by 6th Edition mkfs
|
||||
#
|
||||
@ -41,10 +42,10 @@
|
||||
sh frwr- -1 bin/sh
|
||||
stat frwr- -1 bin/stat
|
||||
$
|
||||
ken drwr- 10
|
||||
ken drwr- 12
|
||||
system l---- 3
|
||||
hello frwr- 10 fs/hello
|
||||
hello frwr- 12 fs/hello
|
||||
$
|
||||
dmr drwr- 12
|
||||
dmr drwr- 14
|
||||
system l---- 3
|
||||
$
|
||||
|
||||
@ -12,8 +12,7 @@ set tti unix
|
||||
set rb ena
|
||||
att rb alt/image.fs
|
||||
|
||||
# uncomment to TELNET in GRAPHICS-2 keyboard/display(!!)
|
||||
# (requires github.com/philbudne/simh)
|
||||
# enable TELNET in GRAPHICS-2 keyboard/display(!!)
|
||||
set g2in ena
|
||||
att -U g2in 12345
|
||||
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
system:system:system:777777
|
||||
ken:ken:ken:12
|
||||
dmr:dmr:dmr:14
|
||||
doug:doug:doug:15
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
chrm ken ops.s
|
||||
ln dmr ops.s ops.s
|
||||
as sop.s ops.s maksys.s
|
||||
mv a.out maksys
|
||||
as sop.s ops.s trysys.s
|
||||
mv a.out trysys
|
||||
chrm ken ops.s
|
||||
rm op.s
|
||||
ln dmr op.s
|
||||
as sop.s op.s maksys.s
|
||||
rn a.out maksys
|
||||
as sop.s op.s trysys.s
|
||||
rn a.out trysys
|
||||
rm op.s
|
||||
as sop.s s1.s s2.s s3.s s4.s s5.s s6.s s7.s s8.s
|
||||
|
||||
87
build/proto
87
build/proto
@ -7,7 +7,8 @@
|
||||
# link l---- inumber
|
||||
#
|
||||
# The top directory's name is ignored
|
||||
# Numeric values are in decimal
|
||||
# inumbers are in decimal (-1 means previous file)
|
||||
# uids are in octal
|
||||
# Contents of each directory ends with a $ on a line by itself
|
||||
# Format was inspired by 6th Edition mkfs
|
||||
#
|
||||
@ -21,9 +22,11 @@ dd drwr- -1 4
|
||||
display irwr- -1 12
|
||||
pptout irwr- -1 13
|
||||
adm frwr- -1 bin/adm
|
||||
password frw-- -1 fs/password
|
||||
adm frwr- -1 bin/adm
|
||||
apr frwr- -1 bin/apr
|
||||
as frwr- -1 bin/as
|
||||
bc frwr- -1 bin/bc
|
||||
b frwr- -1 bin/b
|
||||
cas frwr- -1 bin/cas
|
||||
cat frwr- -1 bin/cat
|
||||
check frwr- -1 bin/check
|
||||
@ -40,57 +43,59 @@ dd drwr- -1 4
|
||||
ed frwr- -1 bin/ed
|
||||
init frwr- -1 bin/init
|
||||
ln frwr- -1 bin/ln
|
||||
link l---- -1
|
||||
ls frwr- -1 bin/ls
|
||||
lsd frwr- -1 bin/lsd
|
||||
lsl frwr- -1 bin/lsd
|
||||
list l---- -1
|
||||
moo frwr- -1 bin/moo
|
||||
mv frwr- -1 bin/mv
|
||||
nm frwr- -1 bin/nm
|
||||
od frwr- -1 bin/od
|
||||
p frwr- -1 bin/p
|
||||
pd frwr- -1 bin/pd
|
||||
mv frwr- -1 bin/mv
|
||||
password frw-- -1 fs/password
|
||||
roff frwr- -1 bin/roff
|
||||
rn frwr- -1 bin/rn
|
||||
rm frwr- -1 bin/rm
|
||||
rn frwr- -1 bin/rn
|
||||
roff frwr- -1 bin/roff
|
||||
salv frwr- -1 bin/salv
|
||||
sh frwr- -1 bin/sh
|
||||
stat frwr- -1 bin/stat
|
||||
tm frwr- -1 bin/tm
|
||||
ttt frwr- -1 bin/ttt
|
||||
dttt l---- -1
|
||||
un frwr- -1 bin/un
|
||||
|
||||
# new versions, from the scans
|
||||
|
||||
nsh frwr- -1 bin/nsh
|
||||
nls frwr- -1 bin/nls
|
||||
list l---- -1
|
||||
# nbc frwr- -1 bin/nbc
|
||||
nstat frwr- -1 bin/nstat
|
||||
|
||||
|
||||
$
|
||||
ken drwr- 10
|
||||
$
|
||||
ken drwr- 12
|
||||
system l---- 3
|
||||
sop.s frwr- 10 ../src/sys/sop.s
|
||||
s1.s frwr- 10 ../src/sys/s1.s
|
||||
s2.s frwr- 10 ../src/sys/s2.s
|
||||
s3.s frwr- 10 ../src/sys/s3.s
|
||||
s4.s frwr- 10 ../src/sys/s4.s
|
||||
s5.s frwr- 10 ../src/sys/s5.s
|
||||
s6.s frwr- 10 ../src/sys/s6.s
|
||||
s7.s frwr- 10 ../src/sys/s7.s
|
||||
s8.s frwr- 10 ../src/sys/s8.s
|
||||
maksys.s frwr- 10 ../src/sys/maksys.s
|
||||
trysys.s frwr- 10 ../src/sys/trysys.s
|
||||
sys.rc frwr- 10 fs/sys.rc
|
||||
sop.s frwr- 12 ../src/sys/sop.s
|
||||
s1.s frwr- 12 ../src/sys/s1.s
|
||||
s2.s frwr- 12 ../src/sys/s2.s
|
||||
s3.s frwr- 12 ../src/sys/s3.s
|
||||
s4.s frwr- 12 ../src/sys/s4.s
|
||||
s5.s frwr- 12 ../src/sys/s5.s
|
||||
s6.s frwr- 12 ../src/sys/s6.s
|
||||
s7.s frwr- 12 ../src/sys/s7.s
|
||||
s8.s frwr- 12 ../src/sys/s8.s
|
||||
maksys.s frwr- 12 ../src/sys/maksys.s
|
||||
trysys.s frwr- 12 ../src/sys/trysys.s
|
||||
sys.rc frwr- 12 fs/sys.rc
|
||||
$
|
||||
dmr drwr- 12
|
||||
dmr drwr- 14
|
||||
system l---- 3
|
||||
as.s frwr- 12 ../src/cmd/as.s
|
||||
b_readme frwr- 12 fs/b_readme
|
||||
bi.s frwr- 12 ../src/cmd/bi.s
|
||||
bl.s frwr- 12 ../src/cmd/bl.s
|
||||
db.s frwr- 12 ../src/cmd/db.s
|
||||
hello.b frwr- 12 ../src/other/hello.b
|
||||
ops.s frwr- 12 ../src/other/ops.s
|
||||
as.s frwr- 14 ../src/cmd/as.s
|
||||
op.s frwr- 14 ../src/cmd/op.s
|
||||
b_readme frwr- 14 fs/b_readme
|
||||
bi.s frwr- 14 ../src/cmd/bi.s
|
||||
bl.s frwr- 14 ../src/cmd/bl.s
|
||||
db.s frwr- 14 ../src/cmd/db.s
|
||||
hello.b frwr- 14 ../src/other/hello.b
|
||||
b.b frwr- 14 ../src/other/b.b
|
||||
$
|
||||
doug drwr- 15
|
||||
system l---- 3
|
||||
t1.s frwr- 15 ../src/cmd/t1.s
|
||||
t2.s frwr- 15 ../src/cmd/t2.s
|
||||
t3.s frwr- 15 ../src/cmd/t3.s
|
||||
t4.s frwr- 15 ../src/cmd/t4.s
|
||||
t5.s frwr- 15 ../src/cmd/t5.s
|
||||
t6.s frwr- 15 ../src/cmd/t6.s
|
||||
t7.s frwr- 15 ../src/cmd/t7.s
|
||||
t8.s frwr- 15 ../src/cmd/t8.s
|
||||
$
|
||||
|
||||
@ -12,8 +12,7 @@ set tti unix
|
||||
set rb ena
|
||||
att rb image.fs
|
||||
|
||||
# uncomment to TELNET in GRAPHICS-2 keyboard/display(!!)
|
||||
# (requires github.com/philbudne/simh)
|
||||
# enable TELNET in GRAPHICS-2 keyboard/display(!!)
|
||||
set g2in ena
|
||||
att -U g2in 12345
|
||||
|
||||
|
||||
101
src/cmd/op.s
Normal file
101
src/cmd/op.s
Normal file
@ -0,0 +1,101 @@
|
||||
"** 09-1-35.pdf page 35
|
||||
" op
|
||||
|
||||
sys = 0020000
|
||||
dac = 0040000
|
||||
jms = 0100000
|
||||
dzm = 0140000
|
||||
lac = 0200000
|
||||
xor = 0240000
|
||||
add = 0300000
|
||||
tad = 0340000
|
||||
xct = 0400000
|
||||
isz = 0440000
|
||||
and = 0500000
|
||||
sad = 0540000
|
||||
jmp = 0600000
|
||||
law = 0760000
|
||||
|
||||
nop = 0740000
|
||||
cma = 0740001
|
||||
cml = 0740002
|
||||
oas = 0740004
|
||||
ral = 0740010
|
||||
rar = 0740020
|
||||
hlt = 0740040
|
||||
sma = 0740100
|
||||
sza = 0740200
|
||||
snl = 0740400
|
||||
skp = 0741000
|
||||
spa = 0741100
|
||||
sna = 0741200
|
||||
szl = 0741400
|
||||
rtl = 0742010
|
||||
rtr = 0742020
|
||||
cll = 0744000
|
||||
stl = 0744002
|
||||
rcl = 0744010
|
||||
rcr = 0744020
|
||||
cla = 0750000
|
||||
clc = 0750001
|
||||
las = 0750004
|
||||
glk = 0750010
|
||||
lrs = 0640500
|
||||
lrss= 0660500
|
||||
lls = 0640600
|
||||
llss= 0660600
|
||||
als = 0640700
|
||||
alss= 0660700
|
||||
norm= 0640444
|
||||
norms=0660444
|
||||
mul = 0653122
|
||||
muls= 0657122
|
||||
div = 0640323
|
||||
divs= 0644323
|
||||
idiv= 0653323
|
||||
idivs=0657323
|
||||
frdiv = 0650323
|
||||
frdivs = 0654323
|
||||
lacq = 0641002
|
||||
lacs = 0641001
|
||||
clq = 0650000
|
||||
ads = 0644000
|
||||
gsm = 0664000
|
||||
|
||||
"** 10-36-55.pdf page 1
|
||||
osc = 0640001
|
||||
omq = 0640002
|
||||
otq = 0642000
|
||||
cmq = 0640004
|
||||
lmq = 0652000
|
||||
ecla = 0641000
|
||||
|
||||
i = 020000
|
||||
|
||||
save = 1
|
||||
getuid = 2
|
||||
open = 3
|
||||
read = 4
|
||||
write = 5
|
||||
creat = 6
|
||||
seek = 7
|
||||
tell = 8
|
||||
close = 9
|
||||
link = 10
|
||||
unlink = 11
|
||||
setuid = 12
|
||||
rename = 13
|
||||
exit = 14
|
||||
time = 15
|
||||
intrp = 16
|
||||
chdir = 17
|
||||
chmode = 18
|
||||
chowner = 19
|
||||
sysloc = 21
|
||||
capt = 23
|
||||
rele = 24
|
||||
status = 25
|
||||
sleep = 26
|
||||
smes = 27
|
||||
rmes = 28
|
||||
fork = 29
|
||||
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);
|
||||
|
||||
@ -213,8 +213,8 @@ sub print_direntry {
|
||||
# Warn about empty filename
|
||||
$name= "EMPTY FILENAME" if ($name=~ m{/$});
|
||||
|
||||
printf( "%4d %s%s%s%s%s %2d %3d %5d %s\n",
|
||||
$inum, $p1, $p2, $p3, $p4, $p5, $links, $uid, $size, $name );
|
||||
printf( "%4d %s%s%s%s%s %2d %3o %5d %s\n",
|
||||
$inum, $p1, $p2, $p3, $p4, $p5, $links, $uid & 0777, $size, $name );
|
||||
}
|
||||
|
||||
# Given a directory's i-num and name, check it
|
||||
|
||||
12
tools/mkfs7
12
tools/mkfs7
@ -513,6 +513,12 @@ sub parse_perms {
|
||||
return ( $filetype, $perms );
|
||||
}
|
||||
|
||||
sub uid {
|
||||
my $uid = shift;
|
||||
return -1 if ($uid eq '-1');
|
||||
return oct($uid);
|
||||
}
|
||||
|
||||
# Open the named proto file and parse it
|
||||
sub parse_proto_file {
|
||||
my $file = shift;
|
||||
@ -543,17 +549,17 @@ sub parse_proto_file {
|
||||
|
||||
if ( $type eq I_DIRECTORY ) {
|
||||
my ( $name, $permstr, $uid, $inum ) = @words;
|
||||
make_dir( $name, $perms, $uid, $inum );
|
||||
make_dir( $name, $perms, uid($uid), $inum );
|
||||
next;
|
||||
}
|
||||
if ( $type eq I_FILE ) {
|
||||
my ( $name, $permstr, $uid, $extfile, $inum ) = @words;
|
||||
add_file( $name, $perms, $uid, $extfile, $inum );
|
||||
add_file( $name, $perms, uid($uid), $extfile, $inum );
|
||||
next;
|
||||
}
|
||||
if ( $type eq I_SPECIAL ) {
|
||||
my ( $name, $permstr, $uid, $inum ) = @words;
|
||||
add_special( $name, $perms, $uid, $inum );
|
||||
add_special( $name, $perms, uid($uid), $inum );
|
||||
next;
|
||||
}
|
||||
if ( $type eq I_LINK ) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user