mirror of
https://github.com/PDP-10/its.git
synced 2026-01-15 16:07:01 +00:00
219 lines
4.4 KiB
Tcl
219 lines
4.4 KiB
Tcl
#Default ITS name for KL10.
|
|
set mchn "KL"
|
|
|
|
set salv "salv"
|
|
|
|
proc start_dskdmp_its {} {
|
|
global salv
|
|
|
|
start_dskdmp build/pdp10-kl/boot
|
|
|
|
sleep 3
|
|
respond "\n" "\033l"
|
|
respond " " "its bin\r"
|
|
sleep 2
|
|
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"
|
|
expect -timeout 300 "VERIFICATION BEGINS"
|
|
respond "ALLOC =" "3000\r"
|
|
respond "PACK ID =" "0\r"
|
|
|
|
respond "\n" "mark\033g"
|
|
respond "UNIT #" "1"
|
|
respond "#1?" "y"
|
|
respond "NO =" "1\r"
|
|
expect -timeout 300 "VERIFICATION BEGINS"
|
|
respond "ALLOC =" "3000\r"
|
|
respond "PACK ID =" "1\r"
|
|
|
|
respond "\n" "mark\033g"
|
|
respond "UNIT #" "2"
|
|
respond "#2?" "y"
|
|
respond "NO =" "2\r"
|
|
expect -timeout 300 "VERIFICATION BEGINS"
|
|
respond "ALLOC =" "3000\r"
|
|
respond "PACK ID =" "2\r"
|
|
}
|
|
|
|
proc prepare_frontend {} {
|
|
}
|
|
|
|
proc frontend_bootstrap {} {
|
|
}
|
|
|
|
proc its_switches {} {
|
|
global mchn
|
|
|
|
respond "MACHINE NAME =" "$mchn\r"
|
|
}
|
|
|
|
proc make_ntsddt {} {
|
|
# KL10 NTSDDT.
|
|
respond "*" ":midas dsk0:.;@ ddt_system;ddt\r"
|
|
respond "cpusw=" "2\r"
|
|
respond "ndsk=" "3\r"
|
|
respond "dsksw=" "3\r"
|
|
respond "dsktp=" "0\r"
|
|
respond "1PRSW=" "0\r"
|
|
expect ":KILL"
|
|
}
|
|
|
|
proc make_salv {} {
|
|
global mchn
|
|
|
|
respond "*" ":midas dsk0:.;_system;salv\r"
|
|
respond "time-sharing?" "n\r"
|
|
respond "machine?" "$mchn\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 "R11R6P=" "N\r"
|
|
respond "R11R7P=" "N\r"
|
|
respond "RM03P=" "N\r"
|
|
respond "RM80P=" "N\r"
|
|
respond "RH10P=" "Y\r"
|
|
respond "R10R6P=" "N\r"
|
|
respond "NUDSL=" "500.\r"
|
|
respond "KS10P=" "N\r"
|
|
respond "KL10P=" "Y\r"
|
|
expect ":KILL"
|
|
}
|
|
|
|
proc dump_switches {} {
|
|
global mchn
|
|
|
|
respond "WHICH MACHINE?" "$mchn\r"
|
|
}
|
|
|
|
proc peek_switches {} {
|
|
respond "with ^C" "\003"
|
|
}
|
|
|
|
proc dump_nits {} {
|
|
global salv
|
|
|
|
sleep 3
|
|
|
|
# Dump an executable @ SALV.
|
|
respond "\n" "\033l"
|
|
respond " " "$salv bin\r"
|
|
respond "\n" "\033y"
|
|
respond " " "$salv\r"
|
|
|
|
# Since we bootstrap with a 1-pack ITS, we need to copy the MFD to
|
|
# the fresh packs.
|
|
respond "\n" "ucop\033g"
|
|
respond "UNIT #" "0"
|
|
respond "UNIT #" "1"
|
|
respond "OK?" "Y"
|
|
respond "DDT" "ucop\033g"
|
|
respond "UNIT #" "0"
|
|
respond "UNIT #" "2"
|
|
respond "OK?" "Y"
|
|
expect "DDT"
|
|
|
|
# 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=" "y\r"
|
|
respond "TM10BP=" "y\r"
|
|
respond "340P=" "n\r"
|
|
}
|
|
|
|
proc bootable_tapes {} {
|
|
global emulator_escape
|
|
global out
|
|
global mchn
|
|
|
|
respond "*" ":midas .;magdmp bin.${mchn}_syseng;magdmp\r"
|
|
respond "PTRHRI=" "n\r"
|
|
magdmp_switches
|
|
expect ":KILL"
|
|
|
|
respond "*" $emulator_escape
|
|
create_tape "$out/magdmp.tape"
|
|
|
|
type ":magfrm\r"
|
|
respond "?" "$mchn\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 {} {
|
|
copy_to_klfe "ucode;u1 ram"
|
|
}
|
|
|
|
proc clib_switches {} {
|
|
### UFA or FIX?!? Probably the latter.
|
|
respond "with ^C" "\003"
|
|
}
|
|
|
|
proc patch_lisp {} {
|
|
}
|
|
|
|
proc translate_diagnostics {} {
|
|
# KL10 doesn't need any translations.
|
|
}
|
|
|
|
proc patch_clib_16 {} {
|
|
respond "*" ":job clib\r"
|
|
respond "*" "\033\060l"
|
|
respond " " "c; \[clib\] 16\r"
|
|
respond "*" "23237/"
|
|
respond "FIX" "ufa 1,775763\n"
|
|
respond "JRST" "tlo 2,777000\r"
|
|
respond "\n" "23244/"
|
|
respond "FIX" "ufa 1,775763\n"
|
|
respond "MOVN" "tlo 2,777000\n"
|
|
respond "JRST" "movn 2,2\r"
|
|
respond "\n" "\033\060y"
|
|
respond " " "c; \[clib\] 16\r"
|
|
respond "*" ":kill\r"
|
|
}
|
|
|
|
proc copy_to_klfe {file} {
|
|
respond "*" ":klfedr write $file\r"
|
|
expect ":KILL"
|
|
}
|
|
|
|
proc comsat_switches {} {
|
|
respond "Limit to KA-10 instructions" "n\r"
|
|
}
|
|
|
|
proc dqxdev_switches {} {
|
|
respond "Limit to KA-10 instructions" "n\r"
|
|
}
|