diff --git a/Makefile b/Makefile index 73aa2338..662def73 100644 --- a/Makefile +++ b/Makefile @@ -51,7 +51,7 @@ KA10=tools/sims/BIN/ka10 ITSTAR=tools/itstar/itstar WRITETAPE=tools/tapeutils/tapewrite MAGFRM=tools/dasm/magfrm -GT40=$(OUT)/bootvt.img +GT40=tools/simh/BIN/pdp11 $(OUT)/bootvt.img H3TEXT=$(shell cd build; ls h3text.*) SMF:=$(addprefix tools/,$(addsuffix /.gitignore,$(SUBMODULES))) @@ -192,6 +192,9 @@ tools/supdup/supdup: $(SMF): $(GIT) submodule update --init `dirname $@` +tools/simh/BIN/pdp11: + $(MAKE) -C tools/simh pdp11 + check-dirs: Makefile mkdir -p $(OUT)/check echo $(SRC) | tr ' ' '\n' | sort > $(OUT)/check/src1 diff --git a/README.md b/README.md index f3b32bef..7050be4a 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,10 @@ CONSOLE`. You are now ready to log in, so type Control-Z. See [doc/DDT.md](doc/DDT.md) for a list of useful commands. When done, shut down orderly by typing `:lock` and then `5down`. +ITS can optionally use some additional peripheral devices. To attach +a simulated GT40 graphics terminal, type `./start gt40` when booting +ITS. + To install your personal user files, add a subdirectory under `user` with your files inside. They will be copied to ITS. The directory name is limited to six characters, and file names must have two diff --git a/build/simh/gt40 b/build/simh/gt40 new file mode 100644 index 00000000..815f9dd7 --- /dev/null +++ b/build/simh/gt40 @@ -0,0 +1,16 @@ +set cpu 11/05 +set cpu 16k +set tti 8b +set dli enabled +set dlo enabled +set dli lines=1 +set dli address=17775610 +set dlo 8b +at dli 10005,connect=localhost:10004 +set vt enable +set vt crt=vr14 +set vt scale=1 +set vt address=17772000 +set rom enabled +at rom out/sims/bootvt.img +go 166000 diff --git a/build/simh/start b/build/simh/start index 79e88784..d3f3a218 100755 --- a/build/simh/start +++ b/build/simh/start @@ -1,3 +1,22 @@ #!/bin/sh +gt40() { + trap kill_gt40 0 + (sleep 3; tools/simh/BIN/pdp11 build/sims/gt40 >gt40.log 2>&1) & + GT40="$!" + echo "GT40 started, pid $GT40" +} + +kill_gt40() { + kill "$GT40" + sleep 1 + kill -9 "$GT40" + echo "GT40 stopped" +} + +while test -n "$1"; do + "$1" + shift +done + tools/simh/BIN/pdp10 build/simh/boot diff --git a/build/sims/gt40 b/build/sims/gt40 new file mode 100644 index 00000000..2381f869 --- /dev/null +++ b/build/sims/gt40 @@ -0,0 +1,17 @@ +set cpu 11/05 +set cpu 16k +set tti 8b +set dli enabled +set dlo enabled +set dli lines=1 +set dli address=17775610 +set dlo 8b +at dli 10005,connect=localhost:10000 +set vt enable +set vt crt=vr14 +set vt scale=1 +set vt address=17772000 +set rom enabled +set rom0 address=17766000 +at rom0 out/sims/bootvt.img +boot rom0 diff --git a/build/sims/start b/build/sims/start index 65085a5f..5bf042ed 100755 --- a/build/sims/start +++ b/build/sims/start @@ -1,3 +1,22 @@ #!/bin/sh +gt40() { + trap kill_gt40 0 + (sleep 3; tools/simh/BIN/pdp11 build/sims/gt40 >gt40.log 2>&1) & + GT40="$!" + echo "GT40 started, pid $GT40" +} + +kill_gt40() { + kill "$GT40" + sleep 1 + kill -9 "$GT40" + echo "GT40 stopped" +} + +while test -n "$1"; do + "$1" + shift +done + tools/sims/BIN/ka10 build/sims/run diff --git a/tools/simh b/tools/simh index 49911369..e1db7dec 160000 --- a/tools/simh +++ b/tools/simh @@ -1 +1 @@ -Subproject commit 49911369d0c7eebc802d8ee871292cd5357b5c6c +Subproject commit e1db7dec41098cc7e22d2b379a26a7c4561dfa14