diff --git a/build/Makefile b/build/Makefile index ebd95ea..ea6438f 100644 --- a/build/Makefile +++ b/build/Makefile @@ -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) diff --git a/build/alt/proto b/build/alt/proto index 6d21b0d..54aba46 100644 --- a/build/alt/proto +++ b/build/alt/proto @@ -9,7 +9,8 @@ # link l---- inumber # # The top directory's name is ignored -# numbers are in decimal (-1 for inode means last) +# 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- 012 + ken drwr- 12 system l---- 3 - hello frwr- 012 fs/hello + hello frwr- 12 fs/hello $ - dmr drwr- 014 + dmr drwr- 14 system l---- 3 $ diff --git a/build/fs/sys.rc b/build/fs/sys.rc index 368f409..e98c34d 100644 --- a/build/fs/sys.rc +++ b/build/fs/sys.rc @@ -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 diff --git a/build/proto b/build/proto index 05c3b13..dc07759 100644 --- a/build/proto +++ b/build/proto @@ -7,7 +7,8 @@ # link l---- inumber # # The top directory's name is ignored -# numbers are in decimal (-1 for inode means last) +# 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,68 +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- 012 + $ + ken drwr- 12 system l---- 3 - sop.s frwr- 012 ../src/sys/sop.s - s1.s frwr- 012 ../src/sys/s1.s - s2.s frwr- 012 ../src/sys/s2.s - s3.s frwr- 012 ../src/sys/s3.s - s4.s frwr- 012 ../src/sys/s4.s - s5.s frwr- 012 ../src/sys/s5.s - s6.s frwr- 012 ../src/sys/s6.s - s7.s frwr- 012 ../src/sys/s7.s - s8.s frwr- 012 ../src/sys/s8.s - maksys.s frwr- 012 ../src/sys/maksys.s - trysys.s frwr- 012 ../src/sys/trysys.s - sys.rc frwr- 012 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- 014 + dmr drwr- 14 system l---- 3 - as.s frwr- 014 ../src/cmd/as.s - b_readme frwr- 014 fs/b_readme - bi.s frwr- 014 ../src/cmd/bi.s - bl.s frwr- 014 ../src/cmd/bl.s - db.s frwr- 014 ../src/cmd/db.s - hello.b frwr- 014 ../src/other/hello.b - ops.s frwr- 014 ../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- 015 + doug drwr- 15 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 + 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 $ diff --git a/tools/mkfs7 b/tools/mkfs7 index ac6775e..12782b2 100755 --- a/tools/mkfs7 +++ b/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 ) {