Allison wrote;
I envy the chance to restore a LGP-30 or for that fact
play with one.
Many of the things I remember
mid sixties on are now gone or were rare then. Like small desk sized drum computers using
transistors or first generation IC (RTL and RDTL).
I so regret not having rescued an old computer that I played with through all four years
of high school.
The machine was made by Minnesota Mining and Manufacturing (aka 3M Corporation). Today,
there seems to be no record that 3M ever was in the computer business. But...it was.
The system was designed expressly for process control. Kind of makes sense for 3M to
develop a system like this, since most of the manufacturing they did needed process
controls, and at the time, computers were getting to into that role in place of
electromechanical systems.
The system was given to our high school by the local Natural Gas public utility that used
the system from the mid-1960's through the early-1970's for monitoring and
controlling gas flow in pipelines. It was replaced by more modern computer, a PDP-11 of
some variety, IIRC.
This 3M machine was a dual processor system, with two identical CPUs that could
communicate to each other through a common register located in an I/O rack. The original
process control software was designed so that both CPUs would operate in tandem, each
doing a different part of the job. One CPU mainly did all of the I/O interfacing and data
normalization, and the other CPU did the number crunching and processing for the process
control, feeding results back to the I/O CPU to control the physical stuff, and generating
reports on an IBM typebar-type output typewriter. Operator interaction with the process
control system was through a Teletype 33-ASR terminal.
The CPUs were transistorized. I recall that the cards were arranged in a U fashion
looking at the CPU chassis from the top, some power supply circuitry and relays at the top
of the U, the circuit cards making up the sides and bottom of the U, and the drum memory
module in the middle.. Each CPU was something like 12RU height, and were in a small
desk-high standard 19" equipment rack, with the CPUs stacked one above the other.
The CPUs were 24-bit word machines, with an 8K-word magnetic drum as main memory.
Instructions had five bits for the opcode, and two address fields, one for operand
location (drum address in block/track/sector format) or in the case of some instructions a
short constant number), and also a next instruction address (again in block/track/sector
format).
The I/O rack had the interprocessor communication register, along with registers for
reading the time from a transistorized Parabam real-time clock (HH:MM:SS) in 24-hour time
(The clock had those wonderful projection-type incandescent displays to show the current
time), a Teletype current-loop interface at 110 baud, an interface for communication the
IBM wide-carriage output typewriter (which we never we able to get working), and a whole
slew of relay outputs, contact closure inputs, digital to analog converters with line
drivers, and comparators with counters connected that could act as software-driven analog
to digital converters, event counters, etc. One last output interface was a register that
was write-only that could enable or disable an old Mallory Sonalert that would generate an
ear-splitting shriek when turned on. There were also two banks of decimal thumbwheel
switches, one with three digits, and another with 8 digits, that could be read from the
CPU 4-bits at a time through an I/O register.
When I got to high school in 1974, the drum in one of the CPUs had suffered a bearing
failure and crashed hard. The instructor of the computing curriculum looked into seeing
if the drum could be repaired, but it would have been prohibitively expensive, so the drum
was removed from this CPU and used as a prop for illustrating different types of memory
technology to his students.
The other CPU ran fine through my years of high school, and I learned a great deal about
programming at the machine level from the old 3M (I for the life of me can't remember
the model number of the machine).
I fondly remember writing an "alarm clock" program where a time in HHMMSS form
could be wheeled into the low six digits of the eight-digit thumbwheel register, and when
the time there matched the time on the Parabam clock, it'd fire off the Sonalert, and
print an arbitrary message on the teletype repeatedly until the program was halted by
dialing a stop code read from the three digit thumbwheel switch bank when the program was
started. Once the program was started, I'd scramble the three digit thumbwheels, so no
one but me would know the code to stop the program. You might think that you could just
press the "STOP" button on the console...but there was a Plexiglas cover with a
small padlock lock on it that covered the console controls...and I had a key).
So, I'd set a time during one of the 1st year computer classes, start the program, and
lock the cover over the console. In the middle of the class, the Sonalert would go off,
and the teletype would rattle out "HELP, HELP!! I'M TRAPPED IN HERE!!! LET ME
OUT!!!" with Control-G (ring the Teletype bell) interspersed amongst the characters).
It would cause just a bit of a fuss. After watching the chaos for a few moments, I would
calmly walk in and dial the code to stop the program.
Needless to say, after I did this a few times, I was kindly asked by the computer
instructor not to do that anymore. It was great fun while it lasted.
The machine had no index registers. So, indexing meant writing self-modifying code.
Never was bounds checking more important than when you were writing self-modifying code.
The machine had a hardware loader, which would accept block/track/sector addresses
followed by a space, then the 8-digit octal representation of the word to be placed at
that drum address. The loader was initiated by pressing a "LOAD" button on the
console when the CPU was stopped. The loader was fast enough to be able to take in
programs from the tape reader on the 33-ASR Teletype hooked up to the machine. There
were four other controls on the console not counting the main power switch.
"STOP" (halted the machine), "CLEAR" (initialized the program counter
and two accumulators (A & B) to zero), and "START", which started the CPU
executing at the current program counter location, which most of the time was 0/0/0
because you'd press CLEAR before START, and have a jump at 0/0/0 to branch to your
program. The STOP and START buttons were lighted, so you could tell if the machine was
running or halted. The last control was a momentary toggle switch, that would single-step
one instruction when the machine was in STOP state. There were five neon lamp indicators
on the console that showed the current instruction opcode to be executed. With such
minimalistic controls, debugging was interesting, to say the least.
When powered up, the machine would have both the START and STOP lights turned off until
the drum got up to speed and everything was synchronized, and then the lamp in the stop
key would light up to tell you the machine was ready.
The machine was completely bit-serial in nature, minimizing the number of flip flops. I
recall that the circuit boards in the machine were something like 5x7 inches (give or
take), and were not densely packed with components. They were fiberglass boards, with
traces only on one side, and jumper wires on the component side. I remember date codes on
the transistors as being from the 1963 - 1964 timeframe. I recollect that there were
something around 48 circuit boards in each CPU. We occasionally had to scrounge boards
out of the decommissioned second CPU to fix faults that developed in the running
machine...it was musical board swapping to troubleshoot because we didn't have any
schematics or service documentation for the machine. The machine was quite slow, even if
you wrote the code to use instruction timing to optimize placement of instructions and
operands on the drum to minimize latency. I recall writing a program that I optimized as
best as I possibly could, and the machine couldn't output to the Teletype at its full
rated speed when typing out text from an arbitrarily located text buffer. It'd do
about 9 characters per second. The machine had interrupt capability, but most of the
interrupt processing logic was in the I/O rack, and something was amiss with the logic,
and we were never able to get it to work properly. So, alll I/O was CPU polling, which
explains part of why the I/O was slow.
I managed to write a minimal DEC FOCAL interpreter for the machine. IIt was really slow,
but it worked. The floating point math routines were the most difficult. I had learned
FOCAL on a DEC PDP 8 (straight 8) in a class I took when I was in 8th grade, and it seemed
simple enough that I could make it work on the 3M machine. I had thought about trying to
do BASIC for the machine, but I decided on FOCAL because it was a lot less complex. Glad
I chose FOCAL, because It barely fit, even in somewhat minimalized form, on the 8K drum.
It was very slow having to pack/unpack three ASCII characters into 24-bit words, but to
make everything fit, I had to do it. And, with only two registers (accumulator A and B),
and the interprocessor communication 24-bit register that was accessible through I/O
instructions, it was quite a challenge.
Anyway, I graduated in 1977. I went back during the 1979 school year to visit, and the
whole place had changed. The amazing computer curriculum teacher was gone, promoted to
somewhere in the district administration, and some younger new guy was there whom I took a
pretty immediate dislike to. This was his first year teaching at the school, and the
first thing he did was call a scrap dealer to come take away the 3M machine, along with
another old machine that was donated to the school...hardly a computer, more like an
accounting machine, made by SCM, called a 7816 Typetronic. They were both gone, and I was
really angry that they had gone off to scrap. Also, the IMSAI 8080 microcomputer that a
small group of students including myself had built from kit form as a high school project
during the end of Junior and first part of Senior year in high school was nowhere to be
seen. In their place were a number of shiny new Apple II computers. These, to me, seemed
mere toys compared to the "real" computer that had gone off to scrap. Had I
known this was going to happen, I would have somehow come up with a way to rescue the 3M
machine (it wasn't small, nor lightweight) to some kind of safe storage until I would
have the resources to restore them. Fortunately, through pure luck, I did manage to
find that old IMSAI that we built....and it is in my collection today, and works great. A
story for another time.
So, even though I was born a bit late to have been "in the prime time" of the
earlier computers, I did get the rare experience for a person my age of working with a
machine that used magnetic drum memory as primary memory, and I wouldn't trade what I
learned from that old beast for anything.
Rick Bensene