mirror of
https://github.com/PDP-10/its.git
synced 2026-01-26 12:12:12 +00:00
Build script for KL ITS.
This commit is contained in:
@@ -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