diff --git a/Makefile b/Makefile index 07b032e..d2be937 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,10 @@ SYSDIR=sys CMDDIR=bin TESTDIR=tests -all: sys cmd others tests +all: sys cmd others tests build + +build: cmd others + cd build && make runsh: all cd bin && ../tools/a7out sh @@ -40,22 +43,20 @@ cmd: dirs # $(AS) $(ASARGS) -o $(CMDDIR)/dsksav src/cmd/dsksav.s # $(AS) $(ASARGS) -o $(CMDDIR)/dsw src/cmd/dsw.s $(AS) $(ASARGS) -o $(CMDDIR)/ed src/cmd/ed2.s src/cmd/ed1.s -# $(AS) $(ASARGS) -o $(CMDDIR)/init src/cmd/init.s + $(AS) $(ASARGS) -o $(CMDDIR)/init src/cmd/init.s others: dirs $(AS) $(ASARGS) -o $(CMDDIR)/sh src/other/pbsh.s - $(AS) $(ASARGS) -o $(CMDDIR)/ops src/other/ops.s # wkt apps - $(AS) $(ASARGS) -o $(CMDDIR)/wktls src/other/wktls.s + $(AS) $(ASARGS) -o $(CMDDIR)/ls src/other/wktls.s $(AS) $(ASARGS) -o $(CMDDIR)/wktcat src/other/wktcat.s $(AS) $(ASARGS) -o $(CMDDIR)/wktcp src/other/wktcp.s - $(AS) $(ASARGS) -o $(CMDDIR)/wktdate src/other/wktdate.s - $(AS) $(ASARGS) -o $(CMDDIR)/wktln src/other/wktln.s - $(AS) $(ASARGS) -o $(CMDDIR)/wktls src/other/wktls.s - $(AS) $(ASARGS) -o $(CMDDIR)/wktmv src/other/wktmv.s - $(AS) $(ASARGS) -o $(CMDDIR)/wktopr src/other/wktopr.s - $(AS) $(ASARGS) -o $(CMDDIR)/wktstat src/other/wktstat.s + $(AS) $(ASARGS) -o $(CMDDIR)/date src/other/wktdate.s + $(AS) $(ASARGS) -o $(CMDDIR)/ln src/other/wktln.s + $(AS) $(ASARGS) -o $(CMDDIR)/ls src/other/wktls.s + $(AS) $(ASARGS) -o $(CMDDIR)/mv src/other/wktmv.s + $(AS) $(ASARGS) -o $(CMDDIR)/stat src/other/wktstat.s tests: dirs $(AS) $(ASARGS) -o $(TESTDIR)/decimal_out src/tests/decimal_out.s @@ -75,3 +76,4 @@ clean: rm -rf $(SYSDIR)/* rm -rf $(CMDDIR)/* rm -rf $(TESTDIR)/* + cd build && make clean diff --git a/build/Makefile b/build/Makefile new file mode 100644 index 0000000..c8215c7 --- /dev/null +++ b/build/Makefile @@ -0,0 +1,20 @@ +# Build the kernel, the filesystem and run SimH + +AS=../tools/as7 +MKFS=../tools/mkfs7 +SYS=../src/sys + +all: a.rim image.fs + +run: a.rim image.fs + pdp7 unixv0.simh + +a.rim: + $(AS) -f rim -o a.rim $(SYS)/sop.s $(SYS)/s[1-8].s + $(AS) -f list -o a.lst $(SYS)/sop.s $(SYS)/s[1-8].s + +image.fs: + $(MKFS) --debug --format simh proto + +clean: + rm -f a.rim image.fs a.lst diff --git a/build/password b/build/password new file mode 100644 index 0000000..4ed5ecf --- /dev/null +++ b/build/password @@ -0,0 +1,2 @@ +ken:ken:ken:12 +dmr:dmr:dmr:14 diff --git a/build/proto b/build/proto new file mode 100644 index 0000000..f93dd2c --- /dev/null +++ b/build/proto @@ -0,0 +1,44 @@ +# Prototype file for PDP-7 Unix filesystem layout +# +# Entries are one of: +# filename f[r-][w-][r-][r-] uid local_file_to_insert +# dirname d[r-][w-][r-][r-] uid [inumber] +# device i[r-][w-][r-][r-] uid inumber +# link l---- inumber +# +# The top directory's name is ignored +# Numeric values are in decimal +# Contents of each directory ends with a $ on a line by itself +# Format was inspired by 6th Edition mkfs +# +dd drw-- -1 2 + system drw-- -1 3 + init frwr- -1 ../bin/init + password frw-- -1 password + ttyin irwr- -1 6 + keyboard irwr- -1 7 + pptin irwr- -1 8 + ttyout irwr- -1 10 + display irwr- -1 11 + pptout irwr- -1 12 + sh frwr- -1 ../bin/sh + $ + + as frwr- -1 ../bin/as + cat frwr- -1 ../bin/cat + chmod frwr- -1 ../bin/chmod + chown frwr- -1 ../bin/chown + chrm frwr- -1 ../bin/chrm + cp frwr- -1 ../bin/cp + date frwr- -1 ../bin/date + ds frwr- -1 ../bin/ds + ln frwr- -1 ../bin/ln + ls frwr- -1 ../bin/ls + mv frwr- -1 ../bin/mv + stat frwr- -1 ../bin/stat + ken drwr- 10 + system l---- 3 + $ + dmr drwr- 12 + system l---- 3 + $ diff --git a/build/unixv0.simh b/build/unixv0.simh new file mode 100644 index 0000000..79ff03c --- /dev/null +++ b/build/unixv0.simh @@ -0,0 +1,5 @@ +set rb ena +att rb image.fs +load -S a.rim +show dev +dep pc 0100