mirror of
https://github.com/PDP-10/its.git
synced 2026-02-28 17:29:10 +00:00
Build script for KL ITS.
This commit is contained in:
@@ -15,6 +15,21 @@ jobs:
|
||||
timeout: 120m
|
||||
- store_artifacts:
|
||||
path: out
|
||||
build_kl10:
|
||||
docker:
|
||||
- image: debian
|
||||
environment:
|
||||
EMULATOR: "pdp10-kl"
|
||||
steps:
|
||||
- checkout
|
||||
- run: sh -ex build/dependencies.sh install_linux
|
||||
- run:
|
||||
name: build
|
||||
command: "make check-dirs all EMULATOR=$EMULATOR"
|
||||
no_output_timeout: 30m
|
||||
timeout: 120m
|
||||
- store_artifacts:
|
||||
path: out
|
||||
build_klh10:
|
||||
docker:
|
||||
- image: debian
|
||||
|
||||
@@ -8,12 +8,15 @@ env:
|
||||
- EMULATOR=simh BASICS=yes
|
||||
- EMULATOR=klh10 BASICS=yes
|
||||
- EMULATOR=pdp10-ka BASICS=yes
|
||||
- EMULATOR=pdp10-kl BASICS=yes
|
||||
matrix:
|
||||
exclude:
|
||||
- os: osx
|
||||
env: EMULATOR=klh10 BASICS=yes
|
||||
- os: osx
|
||||
env: EMULATOR=pdp10-ka BASICS=yes
|
||||
- os: osx
|
||||
env: EMULATOR=pdp10-kl BASICS=yes
|
||||
install: sh -ex build/dependencies.sh install_${TRAVIS_OS_NAME:-linux}
|
||||
script: make check-dirs all
|
||||
deploy:
|
||||
|
||||
27
Makefile
27
Makefile
@@ -43,7 +43,7 @@ MINSRC = midas system $(DDT) $(SALV) $(KSFEDR) $(DUMP)
|
||||
# These are not included on the tape.
|
||||
DOCIGNORE=-e '\.(jpeg|pdf|info|md)$$' -e '^(dcg|github)$$'
|
||||
# These are on the minsys tape.
|
||||
BINIGNORE=-e '^(ka10|ks10|minsys)$$'
|
||||
BINIGNORE=-e '^(ka10|kl10|ks10|minsys)$$'
|
||||
# These are on the minsrc tape.
|
||||
SRCIGNORE=-e '^(system|midas)$$'
|
||||
|
||||
@@ -57,6 +57,7 @@ DSKDMP = bin/ks10/boot/dskdmp.rp06
|
||||
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-ka
|
||||
ITSTAR=tools/itstar/itstar
|
||||
WRITETAPE=tools/tapeutils/tapewrite
|
||||
MAGFRM=tools/dasm/magfrm
|
||||
@@ -85,15 +86,24 @@ out/simh/stamp: $(OUT)/rp0.dsk $(GT40)
|
||||
out/pdp10-ka/stamp: $(OUT)/rp03.2 $(OUT)/rp03.3 $(GT40) $(TV11) $(PDP6)
|
||||
$(TOUCH) $@
|
||||
|
||||
out/pdp10-kl/stamp: $(OUT)/rp04.1
|
||||
$(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 build/$(EMULATOR)/stamp
|
||||
PATH="$(CURDIR)/tools/simh/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)
|
||||
|
||||
$(OUT)/rp04.1: $(OUT)/kl-minsys.tape $(OUT)/minsrc.tape $(OUT)/kl-magdmp.tap $(OUT)/sources.tape
|
||||
$(EXPECT) -f build/$(EMULATOR)/build.tcl $(IP) $(GW)
|
||||
|
||||
$(OUT)/magdmp.tap: $(MAGFRM)
|
||||
cd bin/ka10/boot; ../../../$(MAGFRM) magdmp.bin @.ddt @.salv > ../../../$@
|
||||
|
||||
$(OUT)/kl-magdmp.tap: $(MAGFRM)
|
||||
cd bin/kl10/boot; ../../../$(MAGFRM) magdmp.bin @.ddt salv.bin > ../../../$@
|
||||
|
||||
$(OUT)/minsrc.tape: $(ITSTAR)
|
||||
$(MKDIR) $(OUT)
|
||||
$(ITSTAR) -cf $@ -C src $(MINSRC)
|
||||
@@ -109,6 +119,11 @@ $(OUT)/ka-minsys.tape: $(ITSTAR) $(OUT)/system
|
||||
$(ITSTAR) -cf $@ -C bin/ka10 _ sys
|
||||
$(ITSTAR) -rf $@ -C bin/minsys sys
|
||||
|
||||
$(OUT)/kl-minsys.tape: $(ITSTAR) $(OUT)/system
|
||||
$(MKDIR) $(OUT)
|
||||
$(ITSTAR) -cf $@ -C bin/kl10 _ sys
|
||||
$(ITSTAR) -rf $@ -C bin/minsys sys
|
||||
|
||||
$(OUT)/sources.tape: $(ITSTAR) build/$(EMULATOR)/stamp $(OUT)/syshst/$(H3TEXT)
|
||||
$(MKDIR) $(OUT)
|
||||
$(RM) -f src/*/*~
|
||||
@@ -156,6 +171,9 @@ build/simh/stamp: $(SIMH) start
|
||||
build/pdp10-ka/stamp: $(KA10) start
|
||||
$(TOUCH) $@
|
||||
|
||||
build/pdp10-kl/stamp: $(KL10) start
|
||||
$(TOUCH) $@
|
||||
|
||||
out/klh10/system:
|
||||
$(MKDIR) $(OUT)/system
|
||||
cp=0; ca=0; \
|
||||
@@ -174,6 +192,10 @@ out/pdp10-ka/system:
|
||||
$(MKDIR) $(OUT)/system
|
||||
cp build/pdp10-ka/config.* $(OUT)/system
|
||||
|
||||
out/pdp10-kl/system:
|
||||
$(MKDIR) $(OUT)/system
|
||||
cp build/pdp10-kl/config.* $(OUT)/system
|
||||
|
||||
build/klh10/dskdmp.ini: build/klh10/dskdmp.txt Makefile
|
||||
cp=';'; ca=''; \
|
||||
$(TEST) $(CHAOS) != no && cp='' && ca='myaddr=$(CHAOS) $(CHAFRIENDS)'; \
|
||||
@@ -207,6 +229,9 @@ $(SIMH):
|
||||
$(KA10):
|
||||
$(MAKE) -C tools/sims pdp10-ka TYPE340=y
|
||||
|
||||
$(KL10):
|
||||
$(MAKE) -C tools/sims pdp10-ka
|
||||
|
||||
$(ITSTAR):
|
||||
$(MAKE) -C tools/itstar
|
||||
|
||||
|
||||
@@ -1,9 +1,161 @@
|
||||
make_ntsddt {} {
|
||||
proc start_dskdmp_its {} {
|
||||
start_dskdmp build/pdp10-kl/boot
|
||||
|
||||
respond "DSKDMP" "ddt\r"
|
||||
respond "\n" "\033l"
|
||||
respond " " "its bin\r"
|
||||
respond "\n" "\033\033l"
|
||||
respond " " "salv bin\r"
|
||||
respond "\n" "\033y"
|
||||
respond " " "its\r"
|
||||
patch_its_and_go
|
||||
}
|
||||
|
||||
proc mark_packs {} {
|
||||
respond "\n" "mark\033g"
|
||||
respond "UNIT #" "0"
|
||||
respond "#0?" "y"
|
||||
respond "NO =" "0\r"
|
||||
respond "ALLOC =" "3000\r"
|
||||
respond "PACK ID =" "0\r"
|
||||
}
|
||||
|
||||
proc prepare_frontend {} {
|
||||
}
|
||||
|
||||
proc frontend_bootstrap {} {
|
||||
}
|
||||
|
||||
proc its_switches {} {
|
||||
respond "MACHINE NAME =" "KL\r"
|
||||
}
|
||||
|
||||
proc make_ntsddt {} {
|
||||
# KL10 NTSDDT.
|
||||
respond "*" ":midas dsk0:.;@ ntsddt_system;ddt\r"
|
||||
respond "cpusw=" "2\r"
|
||||
respond "*" ":midas dsk0:.;@ ddt_system;ddt\r"
|
||||
respond "cpusw=" "0\r"
|
||||
respond "ndsk=" "1\r"
|
||||
respond "dsksw=" "3\r"
|
||||
respond "1PRSW=" "1\r"
|
||||
respond "1PRSW=" "0\r"
|
||||
expect ":KILL"
|
||||
}
|
||||
|
||||
proc make_salv {} {
|
||||
respond "*" ":midas dsk0:.;_system;salv\r"
|
||||
respond "time-sharing?" "n\r"
|
||||
respond "machine?" "KL\r"
|
||||
expect ":KILL"
|
||||
}
|
||||
|
||||
proc make_dskdmp {} {
|
||||
respond "*" ":midas dsk0:.;@ dskdmp_system;dskdmp\r"
|
||||
expect "Configuration"
|
||||
respond "?" "ASK\r"
|
||||
respond "HRIFLG=" "N\r"
|
||||
respond "BOOTSW=" "N\r"
|
||||
respond "RP06P=" "N\r"
|
||||
respond "RP07P=" "N\r"
|
||||
respond "RM03P=" "N\r"
|
||||
respond "RM80P=" "N\r"
|
||||
respond "RH10P=" "Y\r"
|
||||
respond "NUDSL=" "500.\r"
|
||||
respond "KS10P=" "N\r"
|
||||
respond "KL10P=" "N\r"
|
||||
expect ":KILL"
|
||||
}
|
||||
|
||||
proc dump_switches {} {
|
||||
respond "WHICH MACHINE?" "KL\r"
|
||||
}
|
||||
|
||||
proc peek_switches {} {
|
||||
respond "with ^C" "\003"
|
||||
}
|
||||
|
||||
proc dump_nits {} {
|
||||
# Run the new DSKDMP from disk here, to check that it works.
|
||||
respond "DSKDMP" "dskdmp\r"
|
||||
|
||||
respond "DSKDMP" "l\033ddt\r"
|
||||
|
||||
# Dump an executable @ SALV.
|
||||
respond "\n" "t\033salv bin\r"
|
||||
respond "\n" "\033y"
|
||||
respond " " "salv\r"
|
||||
|
||||
# Now dump the new ITS.
|
||||
respond "\n" "\033l"
|
||||
respond " " "its bin\r"
|
||||
respond "\n" "\033\033l"
|
||||
respond " " "salv bin\r"
|
||||
respond "\n" "\033y"
|
||||
respond " " "nits\r"
|
||||
}
|
||||
|
||||
proc magdmp_switches {} {
|
||||
respond "KL10P=" "n\r"
|
||||
respond "TM10BP=" "y\r"
|
||||
respond "340P=" "n\r"
|
||||
}
|
||||
|
||||
proc bootable_tapes {} {
|
||||
global emulator_escape
|
||||
global out
|
||||
|
||||
respond "*" ":midas .;magdmp bin.kl_syseng;magdmp\r"
|
||||
respond "PTRHRI=" "n\r"
|
||||
magdmp_switches
|
||||
expect ":KILL"
|
||||
|
||||
respond "*" $emulator_escape
|
||||
create_tape "$out/magdmp.tape"
|
||||
|
||||
type ":magfrm\r"
|
||||
respond "?" "KL\r"
|
||||
respond "?" "Y"
|
||||
respond "_" "W"
|
||||
respond "FROM" ".; @ DDT\r"
|
||||
respond "FILE" "@ DDT\r"
|
||||
respond "_" "W"
|
||||
respond "FROM" ".; @ SALV\r"
|
||||
respond "FILE" "@ SALV\r"
|
||||
respond "_" "W"
|
||||
respond "FROM" ".; @ DSKDMP\r"
|
||||
respond "FILE" "@ DSKDMP\r"
|
||||
respond "_" "Q"
|
||||
expect ":KILL"
|
||||
}
|
||||
|
||||
proc update_microcode {} {
|
||||
}
|
||||
|
||||
proc clib_switches {} {
|
||||
### UFA or FIX?!? Probably the latter.
|
||||
respond "with ^C" "\003"
|
||||
}
|
||||
|
||||
proc patch_lisp {} {
|
||||
respond "*" ":job lisp\r"
|
||||
respond "*" ":load .; @ lisp\r"
|
||||
respond "*" "33777//\031"
|
||||
respond "*" "\033q\033,777777\033\033z"
|
||||
respond "*" "pitele+13/"
|
||||
respond "FSC" "push p,b\n"
|
||||
respond "FSC" "jrst patch\r"
|
||||
respond "\n" "patch/"
|
||||
respond "0" "move b,echocc\n"
|
||||
respond "0" "add b,ticc\n"
|
||||
respond "0" "dpb b,.+3\n"
|
||||
respond "0" "pop p,b\n"
|
||||
respond "0" "jrst pitele+15\n"
|
||||
respond "0" "331000,,a\r"
|
||||
respond "\n" "\033y"
|
||||
respond " " "dsk0:.;@ lisp\r"
|
||||
respond "*" ":kill\r"
|
||||
}
|
||||
|
||||
proc translate_diagnostics {} {
|
||||
}
|
||||
|
||||
proc patch_clib_16 {} {
|
||||
}
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
set console wru=034
|
||||
set cpu its
|
||||
set cpu 512k
|
||||
set pd off
|
||||
dis rpa
|
||||
dis rpb
|
||||
dis tua
|
||||
dis fha
|
||||
dis dpb
|
||||
at ptr bin/ka10/boot/dskdmp.rim
|
||||
at mta0 out/pdp10-ka/minsrc.tape
|
||||
at dpa0 out/pdp10-ka/rp03.2
|
||||
|
||||
@@ -3,7 +3,11 @@ set cpu its
|
||||
set cpu 1024k
|
||||
set cpu mpx
|
||||
set cpu ten11
|
||||
set pd off
|
||||
dis rpa
|
||||
dis rpb
|
||||
dis tua
|
||||
dis fha
|
||||
dis dpb
|
||||
at ptr bin/ka10/boot/dskdmp.rim
|
||||
at mta0 out/pdp10-ka/sources.tape
|
||||
set mta mpx=7
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
set console wru=034
|
||||
set cpu its
|
||||
set cpu 512k
|
||||
dis rpa
|
||||
dis rpb
|
||||
dis tua
|
||||
dis fha
|
||||
dis dpb
|
||||
at mta0 out/pdp10-ka/magdmp.tap
|
||||
at mta5 out/pdp10-ka/ka-minsys.tape
|
||||
at dpa0 out/pdp10-ka/rp03.2
|
||||
|
||||
@@ -3,6 +3,11 @@ set cpu its
|
||||
set cpu 1024k
|
||||
set cpu idle
|
||||
set cpu mpx
|
||||
dis rpa
|
||||
dis rpb
|
||||
dis tua
|
||||
dis fha
|
||||
dis dpb
|
||||
set pd enabled
|
||||
set pd on
|
||||
set dpy enabled
|
||||
|
||||
8
build/pdp10-kl/boot
Normal file
8
build/pdp10-kl/boot
Normal file
@@ -0,0 +1,8 @@
|
||||
set console wru=034
|
||||
set cpu its
|
||||
set cpu 512k
|
||||
set pd off
|
||||
at ptr bin/kl10/boot/dskdmp.rim
|
||||
at mta0 out/pdp10-kl/minsrc.tape
|
||||
at rpa0 out/pdp10-kl/rp04.1
|
||||
b ptr
|
||||
8
build/pdp10-kl/boot2
Normal file
8
build/pdp10-kl/boot2
Normal file
@@ -0,0 +1,8 @@
|
||||
set console wru=034
|
||||
set cpu its
|
||||
set cpu 512k
|
||||
set pd off
|
||||
at ptr bin/kl10/boot/dskdmp.rim
|
||||
at mta0 out/pdp10-kl/sources.tape
|
||||
at rpa0 out/pdp10-kl/rp04.1
|
||||
b ptr
|
||||
60
build/pdp10-kl/build.tcl
Normal file
60
build/pdp10-kl/build.tcl
Normal file
@@ -0,0 +1,60 @@
|
||||
set build [pwd]/build
|
||||
set out "out/$env(EMULATOR)"
|
||||
set emulator_escape "\034"
|
||||
|
||||
proc start_salv {} {
|
||||
uplevel #0 {spawn ./tools/sims/BIN/pdp10-ka build/pdp10-kl/init}
|
||||
setup_timeout
|
||||
respond "MAGDMP\r\n" "l\033ddt\r"
|
||||
respond "\n" "t\033salv bin\r"
|
||||
}
|
||||
|
||||
proc start_dskdmp args {
|
||||
quit_emulator
|
||||
set ini ""
|
||||
if {[llength $args] == 1} {
|
||||
set ini [lindex $args 0]
|
||||
} {
|
||||
set ini "build/pdp10-kl/boot2"
|
||||
}
|
||||
set foo "spawn ./tools/sims/BIN/pdp10-ka $ini"
|
||||
uplevel #0 $foo
|
||||
setup_timeout
|
||||
}
|
||||
|
||||
proc mount_tape {file} {
|
||||
respond "sim>" "at mta0 $file\r"
|
||||
respond "sim>" "c\r"
|
||||
expect -timeout 2 "BUGPC/" {
|
||||
type "\033P"
|
||||
} timeout {
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
proc create_tape {file} {
|
||||
respond "sim>" "at mta0 $file\r"
|
||||
respond "sim>" "c\r"
|
||||
expect -timeout 2 "BUGPC/" {
|
||||
type "\033P"
|
||||
} timeout {
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
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/kl10/include.tcl
|
||||
source build/build.tcl
|
||||
8
build/pdp10-kl/init
Normal file
8
build/pdp10-kl/init
Normal file
@@ -0,0 +1,8 @@
|
||||
set console wru=034
|
||||
set cpu its
|
||||
set cpu 512k
|
||||
at mta0 out/pdp10-kl/kl-magdmp.tap
|
||||
at mta5 out/pdp10-kl/kl-minsys.tape
|
||||
set rpa rp04
|
||||
at rpa0 out/pdp10-kl/rp04.1
|
||||
b mta0
|
||||
9
build/pdp10-kl/run
Normal file
9
build/pdp10-kl/run
Normal file
@@ -0,0 +1,9 @@
|
||||
set console wru=034
|
||||
set cpu its
|
||||
set cpu 512k
|
||||
at ptr bin/kl10/boot/dskdmp.rim
|
||||
set rpa rp04
|
||||
at rpa0 out/pdp10-kl/rp04.0
|
||||
at rpa1 out/pdp10-kl/rp04.1
|
||||
at rpa2 out/pdp10-kl/rp04.2
|
||||
b ptr
|
||||
43
build/pdp10-kl/start
Executable file
43
build/pdp10-kl/start
Executable file
@@ -0,0 +1,43 @@
|
||||
#!/bin/sh
|
||||
|
||||
TVCON=${TVCON:--2}
|
||||
|
||||
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/pdp10-ka/gt40 >gt40.log 2>&1) &
|
||||
started GT40 "$!"
|
||||
}
|
||||
|
||||
tv11() {
|
||||
(sleep 3; tools/tv11/tv11 -p 10011 localhost >tv11.log 2>&1) &
|
||||
started TV-11 "$!"
|
||||
}
|
||||
|
||||
tvcon() {
|
||||
(sleep 4; tools/tv11/tvcon/tvcon $TVCON localhost >tvcon.log 2>&1) &
|
||||
started "TV-console" "$!"
|
||||
}
|
||||
|
||||
while test -n "$1"; do
|
||||
"$1"
|
||||
shift
|
||||
done
|
||||
|
||||
tools/sims/BIN/pdp10-ka build/pdp10-ka/run
|
||||
exit 0
|
||||
Reference in New Issue
Block a user