mirror of
https://github.com/PDP-10/its.git
synced 2026-01-11 23:53:12 +00:00
Build ITS with Cornwell's KS10.
This commit is contained in:
parent
a43521e001
commit
8db6735d72
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@ -13,7 +13,7 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-18.04]
|
||||
emulator: [simh, klh10, pdp10-ka, pdp10-kl]
|
||||
emulator: [simh, klh10, pdp10-ka, pdp10-kl, pdp10-ks]
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Install dependencies
|
||||
|
||||
20
Makefile
20
Makefile
@ -77,6 +77,7 @@ KLH10=tools/klh10/tmp/bld-ks-its/kn10-ks-its
|
||||
SIMH=tools/simh/BIN/pdp10
|
||||
KA10=tools/sims/BIN/pdp10-ka
|
||||
KL10=tools/sims/BIN/pdp10-kl
|
||||
KS10=tools/sims/BIN/pdp10-ks
|
||||
ITSTAR=tools/itstar/itstar
|
||||
WRITETAPE=tools/tapeutils/tapewrite
|
||||
MAGFRM=tools/dasm/magfrm
|
||||
@ -146,6 +147,14 @@ out/pdp10-kl/stamp/emulators: $(VT52) $(TEK)
|
||||
$(MKDIR) $(OUT)/stamp
|
||||
$(TOUCH) $@
|
||||
|
||||
out/pdp10-ks/stamp/its: $(OUT)/rp0.dsk
|
||||
$(MKDIR) $(OUT)/stamp
|
||||
$(TOUCH) $@
|
||||
|
||||
out/pdp10-ks/stamp/emulators: $(GT40) $(VT52)
|
||||
$(MKDIR) $(OUT)/stamp
|
||||
$(TOUCH) $@
|
||||
|
||||
$(OUT)/rp0.dsk: build/simh/init $(OUT)/minsys.tape $(OUT)/minsrc.tape $(OUT)/salv.tape $(OUT)/dskdmp.tape build/build.tcl $(OUT)/sources.tape $(OUT)/stamp/pdp10
|
||||
PATH="$(CURDIR)/tools/simh/BIN:$$PATH" expect -f build/$(EMULATOR)/build.tcl $(IP) $(GW)
|
||||
|
||||
@ -246,6 +255,10 @@ out/pdp10-kl/stamp/pdp10: $(KL10) start
|
||||
$(MKDIR) $(OUT)/stamp
|
||||
$(TOUCH) $@
|
||||
|
||||
out/pdp10-ks/stamp/pdp10: $(KS10) start
|
||||
$(MKDIR) $(OUT)/stamp
|
||||
$(TOUCH) $@
|
||||
|
||||
out/klh10/system:
|
||||
$(MKDIR) $(OUT)/system
|
||||
cp=0; ca=0; \
|
||||
@ -268,6 +281,10 @@ out/pdp10-kl/system:
|
||||
$(MKDIR) $(OUT)/system
|
||||
cp build/pdp10-kl/config.* $(OUT)/system
|
||||
|
||||
out/pdp10-ks/system:
|
||||
$(MKDIR) $(OUT)/system
|
||||
cp build/pdp10-ks/config.* $(OUT)/system
|
||||
|
||||
out/klh10/dskdmp.ini: build/mchn/$(MCHN)/dskdmp.txt Makefile
|
||||
cp=';'; ca=''; \
|
||||
$(TEST) $(CHAOS) != no && cp='' && ca='myaddr=$(CHAOS) $(CHAFRIENDS)'; \
|
||||
@ -310,6 +327,9 @@ $(KA10):
|
||||
$(KL10):
|
||||
$(MAKE) -C tools/sims pdp10-kl
|
||||
|
||||
$(KS10):
|
||||
$(MAKE) -C tools/sims pdp10-ks
|
||||
|
||||
$(ITSTAR):
|
||||
$(MAKE) -C tools/itstar
|
||||
|
||||
|
||||
29
README.md
29
README.md
@ -52,9 +52,9 @@ we'd be delighted to test this on a real KS10.
|
||||
To build ITS with this repository, you need some tools installed; see
|
||||
the table below. Ensure all submodules are checked out, and then type
|
||||
`make EMULATOR=simh`, `make EMULATOR=pdp10-ka`, `make
|
||||
EMULATOR=pdp10-kl`, or `make EMULATOR=klh10`. This will leave built
|
||||
files in the `out` directory, some of which are disk images with ITS
|
||||
installed.
|
||||
EMULATOR=pdp10-kl`, `make EMULATOR=pdp10-ks`, or `make
|
||||
EMULATOR=klh10`. This will leave built files in the `out` directory,
|
||||
some of which are disk images with ITS installed.
|
||||
|
||||
| Emulator | Dependencies |
|
||||
| --- | --- |
|
||||
@ -62,6 +62,7 @@ installed.
|
||||
| simh | git, c compiler, make, expect, curses, autoconf, sdl2
|
||||
| pdp10-ka | git, c compiler, make, expect, curses, autoconf, sdl2, sdl2-image, sdl2-net, gtk3
|
||||
| pdp10-kl | git, c compiler, make, expect, curses, autoconf, sdl2, sdl2-image, gtk3
|
||||
| pdp10-ks | git, c compiler, make, expect, curses, autoconf, sdl2
|
||||
|
||||
### Usage
|
||||
|
||||
@ -108,17 +109,17 @@ along with ITS. They can be started conveniently with the `start`
|
||||
script, or separately. Not all terminal emulators are set up to work
|
||||
with all PDP-10 emulators by default.
|
||||
|
||||
| Name | Description | Type | klh10 | pdp10-ka | pdp10-kl | simh
|
||||
| ------- | ----------------- | ------ | ----- | -------- | -------- | ----
|
||||
| type340 | Type 340 | vector | no | yes | no | no
|
||||
| gt40 | GT40 PDP-11 | vector | no | yes | no | yes
|
||||
| imlac | Imlac PDS-1 | vector | no | yes | no | no
|
||||
| simh_imlac | Imlac PDS-1 | vector | no | yes | no | no
|
||||
| tv11 | Knight TV PDP-11 | cpu | no | yes | no | no
|
||||
| tvcon | Knight TV console | raster | no | yes | no | no
|
||||
| datapoint | Datapoint 3300 | text | no | yes | no | no
|
||||
| vt52 | VT52 | text | no | yes | yes | yes
|
||||
| tek | Tektronix 4010 | vector | no | yes | yes | no
|
||||
| Name | Description | Type | klh10 | pdp10-ka | pdp10-kl | pdp10-ks | simh
|
||||
| ------- | ----------------- | ------ | ----- | -------- | -------- | -------- | ----
|
||||
| type340 | Type 340 | vector | no | yes | no | no | no
|
||||
| gt40 | GT40 PDP-11 | vector | no | yes | no | yes | yes
|
||||
| imlac | Imlac PDS-1 | vector | no | yes | no | no | no
|
||||
| simh_imlac | Imlac PDS-1 | vector | no | yes | no | no | no
|
||||
| tv11 | Knight TV PDP-11 | cpu | no | yes | no | no | no
|
||||
| tvcon | Knight TV console | raster | no | yes | no | no | no
|
||||
| datapoint | Datapoint 3300 | text | no | yes | no | no | no
|
||||
| vt52 | VT52 | text | no | yes | yes | yes | yes
|
||||
| tek | Tektronix 4010 | vector | no | yes | yes | no | no
|
||||
|
||||
### Documentation
|
||||
|
||||
|
||||
12
build/pdp10-ks/boot
Normal file
12
build/pdp10-ks/boot
Normal file
@ -0,0 +1,12 @@
|
||||
set console wru=034
|
||||
set cpu its
|
||||
set cpu idle
|
||||
set dz 8b lines=8
|
||||
at dz0 10004
|
||||
# VT52
|
||||
at dz0 line=7,10018
|
||||
# GT40
|
||||
at dz0 line=6,10019
|
||||
set rpa0 rp06
|
||||
at rpa0 out/pdp10-ks/rp0.dsk
|
||||
b rpa0
|
||||
64
build/pdp10-ks/build.tcl
Normal file
64
build/pdp10-ks/build.tcl
Normal file
@ -0,0 +1,64 @@
|
||||
set build [pwd]/build
|
||||
set out "out/$env(EMULATOR)"
|
||||
set emulator_escape "\034"
|
||||
|
||||
proc start_salv {} {
|
||||
uplevel #0 {spawn ./tools/sims/BIN/pdp10-ks build/pdp10-ks/init}
|
||||
setup_timeout
|
||||
|
||||
respond "sim>" "show ver\r"
|
||||
respond "sim>" "b tua1\r"
|
||||
expect "MTBOOT"
|
||||
}
|
||||
|
||||
proc restart_nsalv {} {
|
||||
respond "sim>" "b tua1\r"
|
||||
expect "MTBOOT"
|
||||
}
|
||||
|
||||
proc start_dskdmp args {
|
||||
global out
|
||||
set tape ""
|
||||
if {[llength $args] == 1} {
|
||||
set tape [lindex $args 0]
|
||||
} {
|
||||
set tape "$out/sources.tape"
|
||||
}
|
||||
respond "sim>" "at tua0 $tape\r"
|
||||
respond "sim>" "at tua2 $out/dskdmp.tape\r"
|
||||
respond "sim>" "b tua2\r"
|
||||
respond "MTBOOT" "\033g"
|
||||
}
|
||||
|
||||
proc start_its {} {
|
||||
uplevel #0 {spawn ./tools/sims/BIN/pdp10-ks build/pdp10-ks/boot}
|
||||
setup_timeout
|
||||
}
|
||||
|
||||
proc mount_tape {file} {
|
||||
respond "sim>" "at tua0 $file\r"
|
||||
respond "sim>" "c\r"
|
||||
}
|
||||
|
||||
proc create_tape {file} {
|
||||
respond "sim>" "at tua0 $file\r"
|
||||
respond "sim>" "c\r"
|
||||
}
|
||||
|
||||
proc quit_emulator {} {
|
||||
respond "sim>" "q\r"
|
||||
expect eof
|
||||
}
|
||||
|
||||
proc initialize_comsat {} {
|
||||
# commented out because you cannot run COMSAT initialization without network
|
||||
# support
|
||||
#respond "*" ":job comsat\r"
|
||||
#respond "*" ":load .mail.;comsat launch\r"
|
||||
#respond "*" "debug/-1\r"
|
||||
#type "mfinit\033g"
|
||||
}
|
||||
|
||||
source build/ks10/include.tcl
|
||||
source build/mchn/$mchn/mchn.tcl
|
||||
source build/build.tcl
|
||||
1176
build/pdp10-ks/config.202
Normal file
1176
build/pdp10-ks/config.202
Normal file
File diff suppressed because it is too large
Load Diff
7
build/pdp10-ks/init
Normal file
7
build/pdp10-ks/init
Normal file
@ -0,0 +1,7 @@
|
||||
set console wru=034
|
||||
set cpu its
|
||||
set tim y2k
|
||||
at tua0 out/pdp10-ks/minsys.tape
|
||||
at tua1 out/pdp10-ks/salv.tape
|
||||
set rpa0 rp06
|
||||
at rpa0 out/pdp10-ks/rp0.dsk
|
||||
54
build/pdp10-ks/start
Executable file
54
build/pdp10-ks/start
Executable file
@ -0,0 +1,54 @@
|
||||
#!/bin/sh
|
||||
|
||||
#Defaults.
|
||||
VT52=${VT52:--B -b 9600}
|
||||
|
||||
EXIT=:
|
||||
trap "" QUIT INT TERM
|
||||
|
||||
started() {
|
||||
EXIT="$EXIT;stop $1 $2"
|
||||
trap "$EXIT" EXIT
|
||||
echo "$1 started, pid $2"
|
||||
}
|
||||
|
||||
stop() {
|
||||
echo -n "Stopping $1... "
|
||||
kill "$2" 2> /dev/null
|
||||
sleep 2
|
||||
kill -9 "$2" 2> /dev/null
|
||||
echo "OK"
|
||||
}
|
||||
|
||||
gt40() {
|
||||
(sleep 3; tools/sim-h/BIN/pdp11 build/pdp10-ks/gt40 >gt40.log 2>&1) &
|
||||
started GT40 "$!"
|
||||
}
|
||||
|
||||
vt52() {
|
||||
(sleep 2; tools/vt05/vt52 $VT52 telnet localhost 10018 >vt52.log 2>&1) &
|
||||
started "VT52" "$!"
|
||||
}
|
||||
|
||||
help() {
|
||||
cat <<EOF
|
||||
This start script takes several command line arguments:
|
||||
|
||||
help - Display this help text.
|
||||
gt40 - Start a GT40 emulator.
|
||||
vt52 - Start a VT52 emulator.
|
||||
|
||||
EOF
|
||||
|
||||
touch out/pdp10-ks/nohelp
|
||||
}
|
||||
|
||||
test -f out/pdp10-ks/nohelp || help
|
||||
|
||||
while test -n "$1"; do
|
||||
"$1"
|
||||
shift
|
||||
done
|
||||
|
||||
tools/sims/BIN/pdp10-ks build/pdp10-ks/boot
|
||||
exit 0
|
||||
@ -1 +1 @@
|
||||
Subproject commit 39ff585eea3ce5833ed4c9a22602fd92c053b5e1
|
||||
Subproject commit a5c53fd2f80c0f2b78367090fb6c38789fe939d2
|
||||
Loading…
x
Reference in New Issue
Block a user