mirror of
https://github.com/PDP-10/its.git
synced 2026-01-11 23:53:12 +00:00
Build on classic SIMH v3.
This commit is contained in:
parent
4db8d276ae
commit
85c3f4fa33
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@ -14,7 +14,7 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-22.04]
|
||||
emulator: [simh, klh10, pdp10-ka, pdp10-kl, pdp10-ks]
|
||||
emulator: [simh, klh10, pdp10-ka, pdp10-kl, pdp10-ks, simhv3]
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Install dependencies
|
||||
|
||||
31
Makefile
31
Makefile
@ -83,6 +83,7 @@ SIMH=tools/simh/BIN/pdp10
|
||||
KA10=tools/sims/BIN/pdp10-ka
|
||||
KL10=tools/sims/BIN/pdp10-kl
|
||||
KS10=tools/sims/BIN/pdp10-ks
|
||||
SIMHV3=tools/simhv3/BIN/pdp10
|
||||
ITSTAR=tools/itstar/itstar
|
||||
WRITETAPE=tools/tapeutils/tapewrite
|
||||
MAGFRM=tools/dasm/magfrm
|
||||
@ -163,8 +164,16 @@ out/pdp10-ks/stamp/emulators: $(GT40) $(VT52)
|
||||
$(MKDIR) $(OUT)/stamp
|
||||
$(TOUCH) $@
|
||||
|
||||
out/simhv3/stamp/its: $(OUT)/rp0.dsk
|
||||
$(MKDIR) $(OUT)/stamp
|
||||
$(TOUCH) $@
|
||||
|
||||
out/simhv3/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)
|
||||
PATH="$(CURDIR)/tools/$(EMULATOR)/BIN:$$PATH" expect -f build/$(EMULATOR)/build.tcl $(IP) $(GW)
|
||||
|
||||
$(OUT)/rp03.2 $(OUT)/rp03.3: $(OUT)/ka-minsys.tape $(OUT)/minsrc.tape $(OUT)/magdmp.tap $(OUT)/sources.tape
|
||||
$(EXPECT) -f build/$(EMULATOR)/build.tcl $(IP) $(GW)
|
||||
@ -256,6 +265,8 @@ out/pdp10-kl/stamp/test:
|
||||
|
||||
out/pdp10-ks/stamp/test:
|
||||
|
||||
out/simhv3/stamp/test:
|
||||
|
||||
start: build/$(EMULATOR)/start
|
||||
$(LN) -s $< $*
|
||||
|
||||
@ -279,6 +290,10 @@ out/pdp10-ks/stamp/pdp10: $(KS10) start
|
||||
$(MKDIR) $(OUT)/stamp
|
||||
$(TOUCH) $@
|
||||
|
||||
out/simhv3/stamp/pdp10: $(SIMHV3) start
|
||||
$(MKDIR) $(OUT)/stamp
|
||||
$(TOUCH) $@
|
||||
|
||||
out/klh10/system:
|
||||
$(MKDIR) $(OUT)/system
|
||||
x=`echo $(IP) | tr . ,`; \
|
||||
@ -301,6 +316,10 @@ out/pdp10-ks/system:
|
||||
$(MKDIR) $(OUT)/system
|
||||
cp build/pdp10-ks/config.* $(OUT)/system
|
||||
|
||||
out/simhv3/system:
|
||||
$(MKDIR) $(OUT)/system
|
||||
cp build/simhv3/config.* $(OUT)/system
|
||||
|
||||
out/klh10/dskdmp.ini: build/mchn/$(MCHN)/dskdmp.txt Makefile
|
||||
$(MKDIR) $(OUT)/stamp
|
||||
$(SED) -e 's/%IP%/$(IP)/' \
|
||||
@ -343,6 +362,16 @@ $(KL10):
|
||||
$(KS10):
|
||||
$(MAKE) -C tools/sims pdp10-ks
|
||||
|
||||
$(SIMHV3): tools/simhv3
|
||||
$(MAKE) -C tools/simhv3 pdp10
|
||||
|
||||
tools/simhv3: simhv312-4.zip
|
||||
unzip $<
|
||||
mv sim $@
|
||||
|
||||
simhv312-4.zip:
|
||||
$(WGET) http://simh.trailing-edge.com/sources/$@
|
||||
|
||||
$(ITSTAR):
|
||||
$(MAKE) -C tools/itstar
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@ install_linux() {
|
||||
# For GitLab CI
|
||||
sudo apt-get install -my git make gcc libncurses-dev autoconf
|
||||
case "$EMULATOR" in
|
||||
simh) sudo apt-get install -y libegl1-mesa-dev libgles2-mesa-dev
|
||||
simh*) sudo apt-get install -y libegl1-mesa-dev libgles2-mesa-dev
|
||||
sudo apt-get install -y libsdl2-dev;;
|
||||
pdp10-k?) sudo apt-get install -y libegl1-mesa-dev libgles2-mesa-dev
|
||||
sudo apt-get install -y libx11-dev libxt-dev libsdl2-dev
|
||||
@ -33,7 +33,7 @@ install_freebsd() {
|
||||
install_osx() {
|
||||
brew update
|
||||
case "$EMULATOR" in
|
||||
simh) brew install sdl2;;
|
||||
simh*) brew install sdl2;;
|
||||
pdp10-*) brew install sdl2;;
|
||||
klh10) brew install automake;;
|
||||
esac
|
||||
|
||||
19
build/simhv3/boot
Normal file
19
build/simhv3/boot
Normal file
@ -0,0 +1,19 @@
|
||||
set console wru=034
|
||||
set cpu its
|
||||
set cpu idle
|
||||
set tim y2k
|
||||
set ch enabled
|
||||
set ch node=177002
|
||||
set ch peer=localhost:44041
|
||||
att ch 44042
|
||||
set dz 8b lines=8
|
||||
at -u dz0 10004
|
||||
# VT52
|
||||
at -u dz0 line=7,10018
|
||||
# GT40
|
||||
at -u dz0 line=6,10019
|
||||
# Dial-up
|
||||
at -u dz0 line=5,10015
|
||||
set rp0 rp06
|
||||
at rp0 out/simhv3/rp0.dsk
|
||||
b rp0
|
||||
64
build/simhv3/build.tcl
Normal file
64
build/simhv3/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 pdp10 build/simhv3/init}
|
||||
setup_timeout
|
||||
|
||||
respond "sim>" "show ver\r"
|
||||
respond "sim>" "b tu1\r"
|
||||
expect "MTBOOT"
|
||||
}
|
||||
|
||||
proc restart_nsalv {} {
|
||||
respond "sim>" "b tu1\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 tu0 $tape\r"
|
||||
respond "sim>" "at tu2 $out/dskdmp.tape\r"
|
||||
respond "sim>" "b tu2\r"
|
||||
respond "MTBOOT" "\033g"
|
||||
}
|
||||
|
||||
proc start_its {} {
|
||||
uplevel #0 {spawn pdp10 build/simhv3/boot}
|
||||
setup_timeout
|
||||
}
|
||||
|
||||
proc mount_tape {file} {
|
||||
respond "sim>" "at tu0 $file\r"
|
||||
respond "sim>" "c\r"
|
||||
}
|
||||
|
||||
proc create_tape {file} {
|
||||
respond "sim>" "at tu0 $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
|
||||
1177
build/simhv3/config.202
Normal file
1177
build/simhv3/config.202
Normal file
File diff suppressed because it is too large
Load Diff
9
build/simhv3/init
Normal file
9
build/simhv3/init
Normal file
@ -0,0 +1,9 @@
|
||||
set console wru=034
|
||||
set cpu its
|
||||
set tim y2k
|
||||
set ch enabled
|
||||
set ch node=177002
|
||||
at tu0 out/simhv3/minsys.tape
|
||||
at tu1 out/simhv3/salv.tape
|
||||
set rp0 rp06
|
||||
at rp0 out/simhv3/rp0.dsk
|
||||
60
build/simhv3/start
Executable file
60
build/simhv3/start
Executable file
@ -0,0 +1,60 @@
|
||||
#!/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/simh/BIN/pdp11 build/simh/gt40 >gt40.log 2>&1) &
|
||||
started GT40 "$!"
|
||||
}
|
||||
|
||||
vt52() {
|
||||
(sleep 2; tools/vt05/vt52 $VT52 telnet localhost 10018 >vt52.log 2>&1) &
|
||||
started "VT52" "$!"
|
||||
}
|
||||
|
||||
chaosnet() {
|
||||
(sleep 2; tools/cbridge/cbridge -c build/cbridge.conf >cbridge.log 2>&1) &
|
||||
started "Chaosnet bridge" "$!"
|
||||
}
|
||||
|
||||
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.
|
||||
chaosnet - Start a local Chaosnet.
|
||||
|
||||
EOF
|
||||
|
||||
touch out/simh/nohelp
|
||||
}
|
||||
|
||||
test -f out/simh/nohelp || help
|
||||
|
||||
while test -n "$1"; do
|
||||
"$1"
|
||||
shift
|
||||
done
|
||||
|
||||
tools/simh/BIN/pdp10 out/simh/boot
|
||||
exit 0
|
||||
Loading…
x
Reference in New Issue
Block a user