The 2500 bootstrap ROM expects to receive a block loader first, which
will run and recieve the actual payload which is the microcode and
font data divided into blocks.
The assembler will recieve a GC-OVERFLOW interrupt. Other TT2500
files set the GC-OVERFLOW variable to a dummy function, which seems to
appease the interrupt.
Since the TVDIS code was written before backquote was introduced to
Maclisp, it uses comma characters without quoting. To accomodate this
a call to SETSYNTAX overrides the new syntax for comma.
File names where compared against historical backup tapes, and time
stamps where listed in a text file. Before a tape image is made, all
files are updated with timestamps from the listing.
Where no historical timestamp can be determined, the latest git author
date is taken.
Both of these are from MIT's zork-1978-01 release. MADMAN; MADADV SAVE
is from 1978-01-28 (it's madadv.save_3 there), and TAA; ZORK 3 is from
an archive dated 1978-01-27. Unfortunately this isn't the final version
of Zork -- in particular, it doesn't have the endgame.
The launcher will also work with the other 1977/78 Zork images MIT have
released, provided you copy them to MADMAN; MADADV SAVE.
Note that we already have the non-DM fake Zork in SYS3; TS ZORK, but
the real Zork was in SYS2; on DM, so the recommended ZORK^K will find it
first.
These two files came from the Panda distribution. They appear to be the
most recent version of the documentation -- Rich Alderson found a
slightly earlier version from UChicago, and there's an even earlier
version in the 1978 Zork release.
This source was reconstructed to match MUDSAV; TS MUD54 from 1977-07-02,
using a combination of all the surviving Muddle source files. The memory
layout and pure code is the same.
No AGC MUD54 has survived, so the AGC code was adjusted to match the
TOPS-20 agc.mud104 from Chicago that Rich Alderson provided (the only
ITS conditional is the page size). There's a one-instruction difference
in the symbol positions, which I've converted into a patch at the end of
the code to maintain the original layout on ITS.
The INITM code, which doesn't appear in the final executable, is
a best guess but it's probably fairly close, since it generates objects
in the right order and locations, and the symbol locations match the
original.
The 1977 executable has a very large number of patches, which I've
replicated in MUD54 INIT. The code that the patches were replacing --
marked with "XXX patched" in the source -- is also a best guess.
I haven't checked that the TOPS-20 code is correct; it could be adjusted
to match mdl104.exe in the future. It would need STENEX, which could be
linked from MUDSYS;.
BLKLDR 1 is from the IMLAC; IML DEVICE archive file dated 1976-11-02.
The archive was found in three identical copies on ToTS tapes 7006990,
701351, and 90606; they were extracted by Brad Parker. The BLKLDR 1
timestamp inside the archive is 1975-01-26. Tape database records
from DM show a BLKLDR 4 dated 1974-08-19.
To build the IMLAC; IMLAC BLKLDR file, it's first assembled with
MIDAS. Regular IMTRAN writes the block loader format, but the block
loader itself is in the "special TTY" boostrap format. IMTRAN is
runtime patched to skip the block framing.
The PDP-6 must be attached. Type L and a file name to load it. Start
the PDP-6 from 0. Toggle switch 1 on. Set address switches to 0 to
play from the memory indicator lights.
On some hardware and/or software, console I/O will sometimes hang.
This is documented in a KLH10 makefile, with a workaround:
# This is a known problem on some Linux systems with high performance
# hardware. As far as I know, Ken has not found a fix for it.
#
# The workaround is to rebuild klh10 with a special configuration that
# avoids the esoteric real-time-interrupt mechanisms.
Having the .KLFE.; KLDCP (DIR) file first on the tape practically
guarantees SALV will make store it in contiguous sectors on disk,
which is required by the front end.