mirror of
https://github.com/PDP-10/its.git
synced 2026-04-26 04:07:36 +00:00
Build on classic SIMH v3.
This commit is contained in:
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@@ -14,7 +14,7 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-22.04]
|
os: [ubuntu-22.04]
|
||||||
emulator: [simh, klh10, pdp10-ka, pdp10-kl, pdp10-ks]
|
emulator: [simh, klh10, pdp10-ka, pdp10-kl, pdp10-ks, simhv3]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
|
|||||||
31
Makefile
31
Makefile
@@ -83,6 +83,7 @@ SIMH=tools/simh/BIN/pdp10
|
|||||||
KA10=tools/sims/BIN/pdp10-ka
|
KA10=tools/sims/BIN/pdp10-ka
|
||||||
KL10=tools/sims/BIN/pdp10-kl
|
KL10=tools/sims/BIN/pdp10-kl
|
||||||
KS10=tools/sims/BIN/pdp10-ks
|
KS10=tools/sims/BIN/pdp10-ks
|
||||||
|
SIMHV3=tools/simhv3/BIN/pdp10
|
||||||
ITSTAR=tools/itstar/itstar
|
ITSTAR=tools/itstar/itstar
|
||||||
WRITETAPE=tools/tapeutils/tapewrite
|
WRITETAPE=tools/tapeutils/tapewrite
|
||||||
MAGFRM=tools/dasm/magfrm
|
MAGFRM=tools/dasm/magfrm
|
||||||
@@ -163,8 +164,16 @@ out/pdp10-ks/stamp/emulators: $(GT40) $(VT52)
|
|||||||
$(MKDIR) $(OUT)/stamp
|
$(MKDIR) $(OUT)/stamp
|
||||||
$(TOUCH) $@
|
$(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
|
$(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
|
$(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)
|
$(EXPECT) -f build/$(EMULATOR)/build.tcl $(IP) $(GW)
|
||||||
@@ -256,6 +265,8 @@ out/pdp10-kl/stamp/test:
|
|||||||
|
|
||||||
out/pdp10-ks/stamp/test:
|
out/pdp10-ks/stamp/test:
|
||||||
|
|
||||||
|
out/simhv3/stamp/test:
|
||||||
|
|
||||||
start: build/$(EMULATOR)/start
|
start: build/$(EMULATOR)/start
|
||||||
$(LN) -s $< $*
|
$(LN) -s $< $*
|
||||||
|
|
||||||
@@ -279,6 +290,10 @@ out/pdp10-ks/stamp/pdp10: $(KS10) start
|
|||||||
$(MKDIR) $(OUT)/stamp
|
$(MKDIR) $(OUT)/stamp
|
||||||
$(TOUCH) $@
|
$(TOUCH) $@
|
||||||
|
|
||||||
|
out/simhv3/stamp/pdp10: $(SIMHV3) start
|
||||||
|
$(MKDIR) $(OUT)/stamp
|
||||||
|
$(TOUCH) $@
|
||||||
|
|
||||||
out/klh10/system:
|
out/klh10/system:
|
||||||
$(MKDIR) $(OUT)/system
|
$(MKDIR) $(OUT)/system
|
||||||
x=`echo $(IP) | tr . ,`; \
|
x=`echo $(IP) | tr . ,`; \
|
||||||
@@ -301,6 +316,10 @@ out/pdp10-ks/system:
|
|||||||
$(MKDIR) $(OUT)/system
|
$(MKDIR) $(OUT)/system
|
||||||
cp build/pdp10-ks/config.* $(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
|
out/klh10/dskdmp.ini: build/mchn/$(MCHN)/dskdmp.txt Makefile
|
||||||
$(MKDIR) $(OUT)/stamp
|
$(MKDIR) $(OUT)/stamp
|
||||||
$(SED) -e 's/%IP%/$(IP)/' \
|
$(SED) -e 's/%IP%/$(IP)/' \
|
||||||
@@ -343,6 +362,16 @@ $(KL10):
|
|||||||
$(KS10):
|
$(KS10):
|
||||||
$(MAKE) -C tools/sims pdp10-ks
|
$(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):
|
$(ITSTAR):
|
||||||
$(MAKE) -C tools/itstar
|
$(MAKE) -C tools/itstar
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ install_linux() {
|
|||||||
# For GitLab CI
|
# For GitLab CI
|
||||||
sudo apt-get install -my git make gcc libncurses-dev autoconf
|
sudo apt-get install -my git make gcc libncurses-dev autoconf
|
||||||
case "$EMULATOR" in
|
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;;
|
sudo apt-get install -y libsdl2-dev;;
|
||||||
pdp10-k?) sudo apt-get install -y libegl1-mesa-dev libgles2-mesa-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
|
sudo apt-get install -y libx11-dev libxt-dev libsdl2-dev
|
||||||
@@ -33,7 +33,7 @@ install_freebsd() {
|
|||||||
install_osx() {
|
install_osx() {
|
||||||
brew update
|
brew update
|
||||||
case "$EMULATOR" in
|
case "$EMULATOR" in
|
||||||
simh) brew install sdl2;;
|
simh*) brew install sdl2;;
|
||||||
pdp10-*) brew install sdl2;;
|
pdp10-*) brew install sdl2;;
|
||||||
klh10) brew install automake;;
|
klh10) brew install automake;;
|
||||||
esac
|
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
|
||||||
Reference in New Issue
Block a user