Merge pull request #55 from teverett/master

Incremental makefile changes on top of TRUNK
This commit is contained in:
Warren
2016-03-20 20:40:14 +10:00
7 changed files with 137 additions and 51 deletions
+2
View File
@@ -5,3 +5,5 @@
build/a.lst build/a.lst
build/a.rim build/a.rim
build/image.fs build/image.fs
build/bin
build/n.out
+4 -24
View File
@@ -1,31 +1,11 @@
# Top level makefile to build the tests and everything else
AS=tools/as7
ASARGS=--format=ptr
TESTDIR=tests
all: buildit testit all: buildit
buildit: buildit:
cd build && make cd build && make all
runsh: all run:
cd bin && ../tools/a7out sh cd build && make run
testit:
mkdir -p $(TESTDIR)
$(AS) $(ASARGS) -o $(TESTDIR)/decimal_out src/tests/decimal_out.s
$(AS) $(ASARGS) -o $(TESTDIR)/fork_test src/tests/fork_test.s
$(AS) $(ASARGS) -o $(TESTDIR)/octal_test src/tests/octal_test.s
$(AS) $(ASARGS) -o $(TESTDIR)/testmul src/tests/testmul.s
$(AS) $(ASARGS) -o $(TESTDIR)/write_test src/tests/write_test.s
runtests: tests
cd tests && ../tools/a7out decimal_out
cd tests && ../tools/a7out fork_test
cd tests && ../tools/a7out octal_test
# cd tests && ../tools/a7out testmul
# cd tests && ../tools/a7out write_test
clean: clean:
rm -rf $(TESTDIR)/*
cd build && make clean cd build && make clean
+76 -3
View File
@@ -25,19 +25,92 @@ system fully up on a PDP-7 system, fix any bugs and document everything.
We have a [real PDP-7](http://physics.uoregon.edu/outreach/movies/pdplives/) We have a [real PDP-7](http://physics.uoregon.edu/outreach/movies/pdplives/)
and [SimH](http://simh.trailing-edge.com/) as target platforms. and [SimH](http://simh.trailing-edge.com/) as target platforms.
## Running pdp7-unix
You will need [simh](http://simh.trailing-edge.com/) 4.0 to run pdp7-unix. You can get the source code [here](https://github.com/simh/simh). To compile it:
`make pdp7`
to run pdp-unix from the pdp7-unix source tree
`make run`
Press `ctl-e` to break out the simulator into simh
A typical pdp7-unix on simh looks like:
<pre>
pdp7 unixv0.simh
PDP-7 simulator V4.0-0 Beta git commit id: e153b7f2
CPU idle disabled
8192W, EAE
RB: buffering file in memory
PDP-7 simulator configuration
CPU idle disabled
CLK 60Hz, devno=00
PTR devno=01
PTP devno=02
TTI devno=03
TTO devno=04
LPT devno=65-66
DRM disabled
RB devno=71
DT devno=75-76, 8 units
login: ken
password: ken
@ ln dd ken .
@ ls
dd
system
hello
.
@ ls system
dd
ttyin
keyboard
pptin
ttyout
display
pptout
as
cat
chmod
chown
chrm
cp
date
ds
ed
init
ln
ls
mv
password
sh
stat
@ cat hello
Hello, world
@
</pre>
## Source Tree ## Source Tree
The code in the original scans are (c) Novell who own the rights to the Unix The code in the original scans are (c) Novell who own the rights to the Unix
source code. Everything that didn't come from the scanned files is GPLv3. source code. Everything that didn't come from the scanned files is GPLv3.
* /build is an area to build the kernel & filesystem and run them
* /man holds man pages
* /misc holds miscellaneous notes and information
* /scans holds the unmodified OCR versions of the scanned files * /scans holds the unmodified OCR versions of the scanned files
* /src/cmd holds the modified source code of the user-mode programs * /src/cmd holds the modified source code of the user-mode programs
* /src/sys holds the modified source code of the kernel * /src/sys holds the modified source code of the kernel
* /src/other holds PDP-7 source code which did not come from the scanned files * /src/other holds PDP-7 source code which did not come from the scanned files
* /tools holds the source for the tools written to assist the project * /tools holds the source for the tools written to assist the project
* /build is an area to build the kernel & filesystem and run them
* /misc holds miscellaneous notes and information
* /pdp7parse holds a Java parser for pdp7 source code
## Travis Status ## Travis Status
+38 -7
View File
@@ -1,19 +1,29 @@
# Build the kernel, the utilities, the filesystem and run SimH # Build the kernel, the utilities, the filesystem and run SimH
# tools
AS=../tools/as7 AS=../tools/as7
ASARGS=--format=ptr ASARGS=--format=ptr
MKFS=../tools/mkfs7 MKFS=../tools/mkfs7
A7OUT=../tools/a7out
FSCK=../tools/fsck7
PDP7=pdp7
# source dirs
SYSSRC=../src/sys SYSSRC=../src/sys
CMDSRC=../src/cmd CMDSRC=../src/cmd
OTHERSRC=../src/other OTHERSRC=../src/other
BINDIR=../bin TESTSRC=../src/tests
all: cmd others a.rim image.fs # targets
BINDIR=bin
TESTDIR=tests
IMAGEFILE=image.fs
all: cmd others a.rim image
# Manually make all before make run # Manually make all before make run
run: run: clean all
pdp7 unixv0.simh $(PDP7) unixv0.simh
a.rim: a.rim:
$(AS) -f rim -o a.rim $(SYSSRC)/sop.s $(SYSSRC)/s[1-8].s $(AS) -f rim -o a.rim $(SYSSRC)/sop.s $(SYSSRC)/s[1-8].s
@@ -23,11 +33,14 @@ coldboot:
$(AS) -f rim -o a.rim $(SYSSRC)/sop.s $(SYSSRC)/s[1-9].s $(AS) -f rim -o a.rim $(SYSSRC)/sop.s $(SYSSRC)/s[1-9].s
$(AS) -n -f list -o a.lst $(SYSSRC)/sop.s $(SYSSRC)/s[1-9].s $(AS) -n -f list -o a.lst $(SYSSRC)/sop.s $(SYSSRC)/s[1-9].s
image.fs: image:
$(MKFS) --format simh proto $(MKFS) --format simh proto
$(FSCK) $(IMAGEFILE)
clean: clean:
rm -f a.rim image.fs a.lst n.out $(BINDIR)/* rm -f a.rim $(IMAGEFILE) a.lst n.out
rm -rf $(BINDIR)
rm -rf $(TESTDIR)
dirs: dirs:
mkdir -p $(BINDIR) mkdir -p $(BINDIR)
@@ -55,6 +68,8 @@ cmd: dirs
# $(AS) $(ASARGS) -o $(BINDIR)/dsw $(CMDSRC)/dsw.s # $(AS) $(ASARGS) -o $(BINDIR)/dsw $(CMDSRC)/dsw.s
$(AS) $(ASARGS) -o $(BINDIR)/ed $(CMDSRC)/ed1.s $(CMDSRC)/ed2.s $(AS) $(ASARGS) -o $(BINDIR)/ed $(CMDSRC)/ed1.s $(CMDSRC)/ed2.s
$(AS) $(ASARGS) -o $(BINDIR)/init $(CMDSRC)/init.s $(AS) $(ASARGS) -o $(BINDIR)/init $(CMDSRC)/init.s
$(AS) $(ASARGS) -o $(BINDIR)/maksys $(CMDSRC)/maksys.s
$(AS) $(ASARGS) -o $(BINDIR)/trysys $(CMDSRC)/trysys.s
others: dirs others: dirs
$(AS) $(ASARGS) -o $(BINDIR)/sh $(OTHERSRC)/pbsh.s $(AS) $(ASARGS) -o $(BINDIR)/sh $(OTHERSRC)/pbsh.s
@@ -63,6 +78,22 @@ others: dirs
$(AS) $(ASARGS) -o $(BINDIR)/wktcp $(OTHERSRC)/wktcp.s $(AS) $(ASARGS) -o $(BINDIR)/wktcp $(OTHERSRC)/wktcp.s
$(AS) $(ASARGS) -o $(BINDIR)/date $(OTHERSRC)/wktdate.s $(AS) $(ASARGS) -o $(BINDIR)/date $(OTHERSRC)/wktdate.s
$(AS) $(ASARGS) -o $(BINDIR)/ln $(OTHERSRC)/wktln.s $(AS) $(ASARGS) -o $(BINDIR)/ln $(OTHERSRC)/wktln.s
$(AS) $(ASARGS) -o $(BINDIR)/ls $(OTHERSRC)/wktls.s
$(AS) $(ASARGS) -o $(BINDIR)/mv $(OTHERSRC)/wktmv.s $(AS) $(ASARGS) -o $(BINDIR)/mv $(OTHERSRC)/wktmv.s
$(AS) $(ASARGS) -o $(BINDIR)/stat $(OTHERSRC)/wktstat.s $(AS) $(ASARGS) -o $(BINDIR)/stat $(OTHERSRC)/wktstat.s
tests:
mkdir -p $(TESTDIR)
$(AS) $(ASARGS) -o $(TESTDIR)/decimal_out $(TESTSRC)/decimal_out.s
$(AS) $(ASARGS) -o $(TESTDIR)/fork_test $(TESTSRC)/fork_test.s
$(AS) $(ASARGS) -o $(TESTDIR)/octal_test $(TESTSRC)/octal_test.s
$(AS) $(ASARGS) -o $(TESTDIR)/testmul $(TESTSRC)/testmul.s
$(AS) $(ASARGS) -o $(TESTDIR)/write_test $(TESTSRC)/write_test.s
runtests: tests
$(A7OUT) $(TESTDIR)/decimal_out
$(A7OUT) $(TESTDIR)/fork_test
$(A7OUT) $(TESTDIR)/octal_test
# $(A7OUT) $(TESTDIR)/testmul
# $(A7OUT) $(TESTDIR)/write_test
View File
+17 -17
View File
@@ -19,26 +19,26 @@ dd drwr- -1 4
ttyout irwr- -1 11 ttyout irwr- -1 11
display irwr- -1 12 display irwr- -1 12
pptout irwr- -1 13 pptout irwr- -1 13
as frwr- -1 ../bin/as as frwr- -1 bin/as
cat frwr- -1 ../bin/cat cat frwr- -1 bin/cat
chmod frwr- -1 ../bin/chmod chmod frwr- -1 bin/chmod
chown frwr- -1 ../bin/chown chown frwr- -1 bin/chown
chrm frwr- -1 ../bin/chrm chrm frwr- -1 bin/chrm
cp frwr- -1 ../bin/cp cp frwr- -1 bin/cp
date frwr- -1 ../bin/date date frwr- -1 bin/date
ds frwr- -1 ../bin/ds ds frwr- -1 bin/ds
ed frwr- -1 ../bin/ed ed frwr- -1 bin/ed
init frwr- -1 ../bin/init init frwr- -1 bin/init
ln frwr- -1 ../bin/ln ln frwr- -1 bin/ln
ls frwr- -1 ../bin/ls ls frwr- -1 bin/ls
mv frwr- -1 ../bin/mv mv frwr- -1 bin/mv
password frw-- -1 password password frw-- -1 fs/password
sh frwr- -1 ../bin/sh sh frwr- -1 bin/sh
stat frwr- -1 ../bin/stat stat frwr- -1 bin/stat
$ $
ken drwr- 10 ken drwr- 10
system l---- 3 system l---- 3
hello frwr- 10 hello hello frwr- 10 fs/hello
$ $
dmr drwr- 12 dmr drwr- 12
system l---- 3 system l---- 3