Good news: with three emulator-side fixes, the install now runs all the way to a fully interactive EXEC — banner, date prompt, @, DIR/DAYTIME/SYSTAT, ENABLE, SSAVE of <SYSTEM>EXEC.SAV, and DLUSER completing with its usual "CAN'T CREATE USER ... CONTINUING" chatter. Transcript tail:
TENEX IN OPERATION
NO EXEC
.INIT BIT TABLE.
READ BADSPOTS FROM FILE: TTY: [Confirm] ^Z
.GET FILE DTA0:EXEC.SAV [Confirm]
.START.
SUMEX-AIM Tenex 1.31.82, SUMEX-AIM EXEC 1.51
ENTER DATE AND TIME AS MM/DD/YY HH:MM -- 08/01/76 08:00
@DIR
<SYSTEM>
DIRECTORY.;1 / DSKBTTBL.;1 / EXEC.SAV;1 / INDEX.;1 / JOBPMF.;...
@SYSTAT
UP 0:20:27 ONE JOB
What was blocking it
-
The post-restart hang ("TENEX RESTARTING, WAIT... NO CHECKDSK" then silence forever): fork 0 blocks in the SKIPE TTOCT(line) wait for DC10 scanner line 0's output queue to drain — TTMSG sends "TENEX IN OPERATION" to all TTYs. The emulator's kx10_dc.c only consumes output when a TCP client is connected to the line, so with nobody attached the queue never drains. Workaround: keep a TCP client connected to the DC port (12345) throughout the boot — the instant it connects, the system unwedges. Reported with a suggested device fix at rcornwell/sims (kx10_dc should complete transmission on unconnected lines, as real hardware does).
-
GET FILE DTA0:EXEC.SAV crashing into a tight loop at absolute 45: the branch point of lars/tenex-patches predates Richard's upstream fixes for KI10 second-instruction interrupt dispatch. When the channel-2 vector's CONSZ does not skip, the emulator executed the "second instruction" from absolute 45 instead of EPT+45 (EB=050000). Cherry-picking upstream 62805b8 ("Fixed second instruction interrupt address") and 047beb0 ("Fix second interrupt instruction") on top of lars/tenex-patches + lars/dt fixes it.
-
Minor: current rcornwell/sims HEAD additionally SIGFPEs in kx10_tym.c (room() divides by a ring size read from uninitialized guest memory) with the stock hardware.do's set tym enabled — also reported upstream. Workaround: set tym disabled.
Working combination
- Emulator:
larsbrinkhoff/ka10-simh branch lars/tenex-patches + cherry-picks 5e8c0b9 (lars/dt), 62805b8, 047beb0 (upstream sims).
- Media regenerated with the repo's
install/media.sh (tendmp round-trips byte-identical, so the tooling is fine).
- Install dialogue exactly as in
simh/syslod.do, plus a socket client parked on the DC port.
- One timing note: mini-exec
GET FILE DTA0:EXEC.SAV takes ~4 minutes of realistic DECtape crawl; typing ahead during it can wedge things, so scripts should wait for the next . prompt before sending S.
The SYSGO$G reboot ("INTERRUPT AT 0") and MINI-DUMPER issues from the README are still there, and the sporadic *DISK ERROR: reports (error counter words show they're mostly recoverable retries; the non-rec ones cluster around the Tymnet-base code paths touching drives 4/5) are unchanged — but a fresh SYSLOD install now reliably reaches a usable TENEX in ~10 minutes of wall clock.
Thanks for rescuing this system — happy to share the scripted install (SIMH expect-driven, lands at @ unattended) if useful.
Good news: with three emulator-side fixes, the install now runs all the way to a fully interactive EXEC — banner, date prompt,
@, DIR/DAYTIME/SYSTAT, ENABLE, SSAVE of<SYSTEM>EXEC.SAV, and DLUSER completing with its usual "CAN'T CREATE USER ... CONTINUING" chatter. Transcript tail:What was blocking it
The post-restart hang ("TENEX RESTARTING, WAIT... NO CHECKDSK" then silence forever): fork 0 blocks in the
SKIPE TTOCT(line)wait for DC10 scanner line 0's output queue to drain — TTMSG sends "TENEX IN OPERATION" to all TTYs. The emulator'skx10_dc.conly consumes output when a TCP client is connected to the line, so with nobody attached the queue never drains. Workaround: keep a TCP client connected to the DC port (12345) throughout the boot — the instant it connects, the system unwedges. Reported with a suggested device fix at rcornwell/sims (kx10_dc should complete transmission on unconnected lines, as real hardware does).GET FILE DTA0:EXEC.SAVcrashing into a tight loop at absolute 45: the branch point oflars/tenex-patchespredates Richard's upstream fixes for KI10 second-instruction interrupt dispatch. When the channel-2 vector's CONSZ does not skip, the emulator executed the "second instruction" from absolute 45 instead of EPT+45 (EB=050000). Cherry-picking upstream62805b8("Fixed second instruction interrupt address") and047beb0("Fix second interrupt instruction") on top oflars/tenex-patches+lars/dtfixes it.Minor: current rcornwell/sims HEAD additionally SIGFPEs in
kx10_tym.c(room()divides by a ring size read from uninitialized guest memory) with the stockhardware.do'sset tym enabled— also reported upstream. Workaround:set tym disabled.Working combination
larsbrinkhoff/ka10-simhbranchlars/tenex-patches+ cherry-picks5e8c0b9(lars/dt),62805b8,047beb0(upstream sims).install/media.sh(tendmp round-trips byte-identical, so the tooling is fine).simh/syslod.do, plus a socket client parked on the DC port.GET FILE DTA0:EXEC.SAVtakes ~4 minutes of realistic DECtape crawl; typing ahead during it can wedge things, so scripts should wait for the next.prompt before sendingS.The
SYSGO$Greboot ("INTERRUPT AT 0") and MINI-DUMPER issues from the README are still there, and the sporadic*DISK ERROR:reports (error counter words show they're mostly recoverable retries; the non-rec ones cluster around the Tymnet-base code paths touching drives 4/5) are unchanged — but a fresh SYSLOD install now reliably reaches a usable TENEX in ~10 minutes of wall clock.Thanks for rescuing this system — happy to share the scripted install (SIMH expect-driven, lands at
@unattended) if useful.