[its-hackers] Discoveries in TECO archaeology
lars at nocrew.org
Sun Oct 10 18:55:33 CEST 2021
I have been playing around with an @ TECO binary. It's presumably an
old standalone PDP-6 program. It runs quite well on emulators and can
optionally view text on a 340 display. But it holds some mysteries
Angelo and I have been discussing on and off.
I found some old TECO source code and edited it to match the binary. In
doing so I encountered some interesting facts about both the binary and
The binary @ TECO:
- Has some cruft in the range 20-37 and 776000-777177. Presumably the
first is a bootstrap loader, and the second ought to be part of DDT.
But why only half of DDT? Anyway, this cruft should be evidence the
binary was dumped from DSKDMP or MACDMP, not something cleanly out of
- Yeah, it needs linking with STINK from four relocatable files in this
order: TECO DUMMY (mainly global symbols providing parameters), LPT
routines (for which there was no source, but I cobbled something
together), MACTAP (DECtape I/O), and TECO itself.
- Now for the greatest mystery: its MACDMP address is inconsistent with
its DDT address. TECO sources all have the non-timesharing version
command ^G exit to MACDMP at address xx7400, and ^Z exit to DDT at
xx4000. But this binary has the MACDMP address set to 777700 which is
the DSKDMP entry point. Ok fine, someone patched the source or the
binary. But they forgot to change the DDT address, which is 174000.
So it's part 64K, part 256K. We know from AI memos 118 and 127 the
PDP-6 had 64K in early 1967, so maybe this @ TECO is (partly) from
that period but has been (partly) updated for 256K at a later time.
- Given it seems to be a memory image dump, maybe it has been binary
patched in DDT. If so, maybe it started out as a 64K TECO but was
reused later for a 256K machine with disk.
The source file I started from, TECO 10-106, is also interesting in
- It can be assembled to run in or out of timesharing depending on the
value of the assembly time switch TS. Later TECO sources from 1971 on
still has TS but TS=0 no longer assembles.
- Defines system call UUOs itself rather than getting them fro MIDAS,
and the definitions are somewhat odd. E.g. there's a TSOPEN macro
using a STOPEN UUO rather than .OPEN, and .VALUE is called TSVALRET.
- It uses the .GMEMT UUO which as far as I can see is not mentioned
anywhere else on tapes from 1971 forward. Probably a very early ITS
system call? It probably means "get memory top" i.e. return the
memory image size, IN WORDS. Seems to suggest a non-paging ITS.
- It has run time conditionals for GE consoles, "bagbiters". I don't
know how long those lasted but I do see 1969 text files formatted to
40-45 columns consistent with the GE displays.
- It uses the DD0 and DD1 DataDisc devices for disk access. They were
supplanted by the IBM 2311 DSK around 1969.
- It has commands for interacting with a PDP-7. I understand the
Project MAC kludge display was run off a PDP-7, and there would have
been one in the III Tech Square offices.
More information about the its-hackers