[its-hackers] Discoveries in TECO archaeology

Lars Brinkhoff 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 source.

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 mailing list