Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site fortune.UUCP
Path: utzoo!linus!decvax!harpo!ulysses!mhuxl!ihnp4!fortune!rpw3
From: rpw3@fortune.UUCP
Newsgroups: net.misc
Subject: Re: Re: Nearly Prehistoric Computers - (nf)
Message-ID: <2507@fortune.UUCP>
Date: Sat, 11-Feb-84 04:03:52 EST
Article-I.D.: fortune.2507
Posted: Sat Feb 11 04:03:52 1984
Date-Received: Wed, 15-Feb-84 01:08:34 EST
Sender: notes@fortune.UUCP
Organization: Fortune Systems, Redwood City, CA
Lines: 83

#R:ihuxq:-58400:fortune:6700030:000:4043
fortune!rpw3    Feb 11 00:13:00 1984



"Ah, yezzzz... the LGP-30. I remember it well. Pesky little critter..."

    > The machine I learned to program on was an "LGP-30" with 4K
    > (24 bit) words of drum memory.

The LGP-30 had 4K words, all right, but of 31 bits, not 24. It was really
32 bits per sector, but one was used to allow the write gate time to turn
off. The accumulator, which constantly recirculated on the drum, actually
had all 32 bits. (You had to know that, when you did input, 'cause you
had to shift it over yourself.) There were only 15 bits of state in the
whole machine (outside of the drum); each bit took up a whole card with
2 vacuum tubes on it. The this-state/next-state table was (literally)
wired into a ROM made of discrete germanium diodes and resistors (zero
and -20 volt logic levels), the equations of which were printed in four
pages of the maintenance manual.

    > The only language available was machine
    > language (not assembler) though it was easy to learn as there were
    > only 16 machine language instructions.

Not only that, but the low-order bits of the first letter of the opcode
WAS the opcode value, and was what you typed when programming in "machine
language". E.g., "Bring [load AC with] loc. 3054" = "b3054" = "13064".

But there WERE other languages: JAZ, an interactive programmable
desk calculator (with user-defined formulas, like "bs"); and ACT-III
(ACT-3), sort of a FORTRAN 1 and 1/2. But you're right -- for the
serious work you just loaded the I/O package, the floating-point
routines, and the matrix algebra subroutines and coded the top level
program in machine language.

It was also MY first machine, and so I learned hexadecimal as being

	0 1 2 3 4 5 6 7 8 9 f g j k q w

Doesn't everybody know "all ones" is "wwwwwwwk"? (The 32nd "non-bit"
was on the right.) And since the address field was not right-adjusted
in the instruction word (it was two bits over), the 12-bit addresses
(64 tracks of 64 sectors) were counted from 0-3wwj in fours ("zero,
four, eight, jay, ten, fourteen eighteen, jayteen,...").

    > The hardest part was learning
    > the (now lost) art of optimising(sp?) drum accesses (NOT easy).

The difference between optimal and not was 7:1 performance. You either
caught the operand before the next instruction or you missed it and lost
a rev (nothing in between). Track 63 was reserved by convention as scratch
for temp variables, since that way you could almost always find a sector that
was optimal. Lost art? You should see how it helped my bit-slice coding!

    > I/O consisted of a terminal like thing called (I think) a flexowriter, and
    > a "high speed" paper tape reader and punch (also many buttons & lights).

The PC, IR, and AC were displayed on an oscilloscope (!), neatly set into
the front panel (recessed, sloped), with a little graticule mask over the
scope with slots for the three traces to shine through (the slots had bit
numbers screened under them), and hidden controls for height, width, etc.

But (getting to the point of this old boy's tale), we created an interface
that allowed up to 63 additional devices to appear on a parallel TTL bus
outside the machine. The height of "Rube Goldberg" was to dump an accumulated
NMR spectrum from a signal averager's "magtape" port via the TTL interface to
the LGP-30, there to punch a 5-level paper tape, carry the tape to the PDP-9
in the other building, translate it to 8-level roll tape (the PDP-9 preferred
fan-fold, but the next guy couldn't read it), carry it to the IBM 1620 for
matched-filter curve-sharpening and plotting on a Calcomp plotter (interfaced
as a card punch). Then you picked up the paper and carried it back to the NMR
lab to compare it to what the spectrometer had printed out on it's plotter.

I was almost sad when the PDP-10 came in and we wired it straight to
the NMR machine. :-)

Rob Warnock

UUCP:	{sri-unix,amd70,hpda,harpo,ihnp4,allegra}!fortune!rpw3
DDD:	(415)595-8444
USPS:	Fortune Systems Corp, 101 Twin Dolphins Drive, Redwood City, CA 94065