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

Reply via email to