1
0
mirror of https://github.com/PDP-10/its.git synced 2026-03-09 12:30:45 +00:00

Silence the system job by patching ITS on boot.

Since we're interacting with ITS through the system console, one cause
of build failures is the messages the system job prints to the console
at unpredictable times -- for example, periodic timestamps and
notifications of changes to files in system directories. If one of these
gets printed while we're expecting something else, it's hard for the
Expect script to recover.

Avoid this by patching STYO, the system job's character-printing
routine, to return without doing anything if this system is up.
Adjust the pdset routine so it's matching PDSET's output rather than the
system job's to tell when the time has been set.
This commit is contained in:
Adam Sampson
2018-08-04 18:31:19 +01:00
committed by Adam Sampson
parent b915907499
commit 7a23f23902
4 changed files with 19 additions and 10 deletions

View File

@@ -1,6 +1,6 @@
log_progress "ENTERING BUILD SCRIPT: BASICS"
expect "\n"; type "\033g"
patch_its_and_go
pdset
respond "*" ":login db\r"

View File

@@ -37,8 +37,19 @@ proc respond { w r } {
type $r
}
proc patch_its_and_go {} {
expect "\n"
# Disable SYSJOB output (e.g. "IT IS NOW ...") that appears at random
# places during the build process.
type "styo+2/popj p,\r"
expect "\n"
type "\033g"
}
proc pdset {} {
expect "SYSTEM JOB USING THIS CONSOLE"
expect "IN OPERATION"
sleep 1
type "\032"
@@ -50,12 +61,10 @@ proc pdset {} {
type "!."
expect "DAYLIGHT SAVINGS" {
type "N"
respond "IT IS NOW" "Q"
} "IT IS NOW" {
type "Q"
} "ITS revived" {
type "Q"
expect "\n"
} "\n" {
}
type "Q"
expect ":KILL"
}

View File

@@ -2,7 +2,7 @@ proc start_dskdmp_its {} {
start_dskdmp build/sims/boot
respond "DSKDMP" "its\r"
expect "\n"; type "\033g"
patch_its_and_go
}
proc mark_packs {} {

View File

@@ -7,7 +7,7 @@ proc start_dskdmp_its {} {
respond "DSKDMP" "m\033salv rp06\r"
expect "\n"; type "d\033its\r"
expect "\n"; type "its\r"
expect "\n"; type "\033g"
patch_its_and_go
}
proc mark_packs {} {
@@ -56,7 +56,7 @@ proc prepare_frontend {} {
start_its
respond "DSKDMP" "its\r"
type "\033g"
patch_its_and_go
pdset
respond "*" ":login db\r"