Advent of Computing - Episode 114 - The LGP-30: A Forgotten Machine
Episode Date: August 15, 2023In 1956 Librascope released the LGP-30, a truly wild machine. It was, for the time, the most simple and cheap machine that could actually be useful. It was the size of a desk when contemporary machin...es took up small rooms. It plugged into a normal wall outlet while other machines requires special power feeds. It was, perhaps, the first hint of a personal computer. And at its heart was a magnetic drum that only a true programmer could love.  Selected Sources:  http://www.catb.org/jargon/html/story-of-mel.html - The Story of Mel  https://sci-hub.se/10.1109/TEC.1957.5221555 - Frankel's MINAC Paper  http://www.hp9825.com/html/stan_frankel.html - A Biography of Frankel
Transcript
Discussion (0)
Real programmers write in Fortran.
Maybe they do now in this decadent era of light beer, hand calculators, and user-friendly software.
But back in the good old days, when the term software sounded funny and real computers were made out of drums and vacuum tubes,
real programmers wrote in machine code.
Not Fortran. Not RAT4. Not even assembly language. Machine code. Raw,
unadorned, inscrutable hexadecimal numbers. Directly. Lest a whole new generation of programmers
grow up in ignorance of this glorious past, I feel duty-bound to describe, as best I can through the generation gap,
how a real programmer wrote code. I'll call him Mel, because that was his name.
I first met Mel when I went to work for Royal McBee Computer Corp., a now-defunct subsidiary
of the typewriter company. The firm manufactured the LGP30, a small, cheap, by the standard of the
day, drum memory computer, and it just started to manufacture the RPC4000, a much improved,
bigger, better, faster, drum memory computer. Cores cost too much and weren't here to stay anyway.
That's why you haven't heard of the company or the computer.
I had been hired to write a Fortran compiler for this new Marvel,
and Mel was my guide to its wonders.
Mel didn't approve of compilers.
If a program can't rewrite its own code, he asked, what good is it?
Mel had written, in hexadecimal, the most popular computer program the company owned.
It ran on the LG P30 and played blackjack with potential customers at computer shows.
Its effect was always dramatic. The LGP30 booth was packed at every show, and the IBM salesmen stood around talking to each other.
Whether or not this actually sold computers was a question we never discussed.
Excerpt from The Story of Mel by Ed Nather, as transmitted by the jargon file.
Welcome back to Advent of Computing. I'm your host, Sean Haas, and this is episode 114,
The LGP-30, A Forgotten Machine. As promised, this is going to be a markedly less serious episode.
I might have burned myself out a little bit during the prologue series.
I'm happy with how things turned out, and it definitely broadened my horizons, but your boy needs a little break.
And I guess for me that means producing the next episode.
Today I want to shed some light on a
surprisingly influential machine, the Libroscope General Purpose 30, better known as the LGP-30.
This machine, dear listener, may be one of the most wild computers I've ever heard of. I'm also
willing to bet that very few of you even know this machine existed.
The LG P30 isn't often viewed as one of those huge landmark machines, but surprisingly,
it's a very well-connected little computer. Perhaps it's deserving of a slightly larger
place in the overall canon. Now, I first heard about the LGP-30 way back in my formative years, when
I found a copy of the Hacker's Dictionary, a lovely printed version of the old jargon file.
This is one of the central repositories for hacker and programmer folklore. If you're a
regular listener, then you've heard me wax poetic about this book. It's great. If you don't have a copy,
then I highly suggest tracking one down. The LGP30 features in a tale that I opened the show with,
the story of Mel. I just gave you an excerpt since I did do a full reading and that ran about 11
minutes. It's a little long in the tooth for an intro, but I think I'm going to put
that out as a separate just soundbite in the feed next week between episodes. In that story,
the LGP-30 was the old machine that Mel, this larger-than-life real programmer, worked on.
It was superseded by the newer RPC-4000 computer, which became Mel's new home. The story of Mel is really
similar to the classic tale of John Henry. Instead of driving steel, Mel is driving the memory drum.
That's this bizarre, antiquated form of memory that the LGP-30 used. Despite the existence of
fancy tools and automated machines, Mel prefers to work directly and unaided.
And despite all logic saying otherwise, Mel can beat those tools any day.
There's a certain awe to the story that I was enamored with back when I was younger.
It was a great way to get me more interested in the deep end of programming.
I personally think it had that
effect on a lot of people. Nestled inside the story of Mel between digital blackjack and
inscrutable code is the LGP-30. It's merely a mention, easy to forget, but that's where the
story starts. This isn't the only place that the machine shows up, either. The LGP-30 has a wild number of cameos throughout the history of computing.
The Dartmouth Oversimplified Programming Language, aka DOPE, was the precursor to BASIC, the
direct ancestor.
There's actually this really good VICE article about some dude who re-implemented the language
a few years ago.
I think his name was Sean
something. Anyway, BASIC is a big, important language during the microcomputer revolution.
Its ancestor, which shares a whole lot of ideas with it, was developed on an LGP-30.
One of the first implementations of ALGOL, one of the most influential languages in history,
is written in 1960 for the LGP-30.
One of the first computational studies on chaos theory was carried out on an LGP-30.
This machine was also, perhaps arguably, one of the first computers that could even be
considered personal.
arguably one of the first computers that could even be considered personal. It was still relatively big and pretty expensive, but a single person could easily install and operate the computer.
All these factors make the LG P30 a very important machine, but what exactly was this weird computer?
Today, we're going to be answering that question. We'll be looking at
the history, development, and features of the LG P30. It's a type of machine that could only
have existed in its era, in the middle to late 1950s. It's a machine that had wide-reaching
impacts, even if they are purely sentimental. And it's a machine that's been widely overlooked.
sentimental, and it's a machine that's been widely overlooked. The LGP30's history is somewhat confusing, confounding even. It begins in 1942 with a researcher named Stan Frankel and a little
thing known as the Manhattan Project. 1942 is the year that Frankel graduated with his PhD in physics from UC Berkeley. Then, as now, a PhD is actually
only one stepping stone on a very long path of pain. After graduate school, researchers often
transition into what's called a post-doc. It's kind of like a super internship that you're actually
paid for. You know, you have a position working a research gig, but you're more supervised and have less control than a fully-fledged researcher.
Usually, this means you're working under some more senior scientist. For Frankel,
that scientist was named J. Robert Oppenheimer. I think the trajectory here is pretty plain to
see, or at least guess at. Frankel spends his postdoc years working on the Manhattan Project.
But even prior to that, Frankel was instrumental in the path to the nuclear bomb.
He worked on the team that first proved, with mathematical modeling, that a bomb was possible.
These calculations were done by adapting thermal diffusion models that Frankel had developed
years prior.
So,
right from the start, Frankl is right in the middle of everything. He's also using math models,
something that will prove crucial to our story. Math models are funny things. They're another one of those concepts that sounds a lot more intimidating than it actually is. A mathematical model is really just a way
of expressing some phenomenon, but using math. Oftentimes, this takes up more than one equation.
Models will usually care about time, since they're representing the real world. In some cases,
for certain models, this presents itself in a discrete way. You have discrete time steps,
which create some set of values.
Then you can step again using your equations and create a new set of values.
Once the Manhattan Project got off the ground, Frankel found himself working in the theoretical
division over at Los Alamos Lab in New Mexico. This division was concerned with the actual
math of how nuclear weapons would function.
As such, there was a whole lot of math to do.
They were running models of bombs, but in super slow motion.
At this point, the mid-1940s, there weren't any operable digital computers.
Analog machines existed, but they didn't have the needed accuracy for these calculations.
Digital machines did technically exist.
Colossus was running in England,
and there was probably at least one Zeus machine running at any one time in Germany,
but the crew at Los Alamos, I don't think, had any idea about the technology.
The only way to deal with this glut of math was to use the human computer.
In practice, this meant that a bunch of the researchers' wives were hired and armed with mechanical adding machines. From the sources I've
read, it seems that Frankel and his colleagues realized they needed someone to run numbers,
remembered they were married, and then ran home with job applications and clearance forms. This
filled the mathematical gap for a while, but soon there were
simply too many numbers to crunch away at. The desktop calculators were actually breaking down
from overuse. So, Frankel and co. convinced management to get a bigger and better machine,
an IBM punch card tabulator. It's at this point where we can make an observation about the models being
used. They were discrete. That is to say, everything had to be handled in steps with
intermittent results. This card tabulator was able to further automate the process.
Frankl had initially organized the human computers into something like a mathematical assembly line.
the human computers into something like a mathematical assembly line. One person would run one step in this larger calculation, then pass the results off to the next person, and so on.
With the tabulator, it was now possible to run a step, grab the outputs, then feed those back
into the hopper. Apparently, there is an oral history interview that was conducted with Stan Frankel at the
Smithsonian, but it's tucked off in a box right now. I have a duplication request out, and if
that comes back anytime soon, I'm planning to revisit this specific part of the story.
Anyway, we're told through secondary sources that Frankel became obsessed with this tabulator.
We've seen many cases where folk get bit by the proverbial computer bug.
This time, though, Frankl was a little bit in front of the curve.
Computers didn't really exist yet, at least not proper.
But he was ready for them.
I say he was ready because, despite not being a computer,
an IBM tabulator was almost programmable. That's
kind of the beauty of these kinds of machines. Frankel would have been working with a number
of different IBM machines, the crowning jewel of the setup being a 601 multiplying punch with
the division add-on. All these devices, collectively called unit record machines, were basically automated
calculators. Instead of accepting numbers from a keypad, you could feed in data on punch cards.
Instead of displaying results in some, you know, easy-to-read format, all data was punched onto
fresh cards and spit out into a bin. Operations were configured using a plug board. These were big grids of holes that
jumper cables were slotted into. Different sections of the board corresponded to things like inputs,
outputs, registers, and operations. By wiring up a plug board, you were, in effect, connecting up
different parts of the machine. A savvy operator was able to control the flow of data as cards flew in and
were pushed out of the machine. You were programming, save for the whole conditional execution thing.
Unit record equipment didn't really do conditional execution, but that's kind of the only thing
they're missing to be a full-on computer. The 601 was special among IBM's catalog because, unlike many other machines, it could multiply.
It could also add and subtract, making it a true triple threat.
The 601s stationed at Los Alamos were even outfitted with a division unit, so we're dealing with some really high-octane stuff here.
At least, for 1943-1944.
stuff here, at least for 1943-1944. Frankl seems to have really just enjoyed working with the punch card equipment. This was probably because it fit his whole assembly line mindset. It's much
more efficient to chain together operations if every step is automated, after all. However,
this posting wouldn't exactly work out for him.
In this section, I've been going off a biography of Frankl posted on hp9825.com.
As the new tabulation equipment was coming in, Frankl and one of his colleagues, Eldred
Nelson, were put in charge of managing the new systems.
This involved training and supervising army folk that actually operated the machines day to day.
Apparently, this didn't go well for Frankel.
From the HP 9825 article,
He reportedly had a temper and verbally abused the soldiers,
who were working for Peanuts and didn't have a clue as to why they were running calculations.
Frankel also doesn't appear to have worked well under pressure and the tension inevitably
rose as the first atomic test loomed.
In addition, Frankel essentially became enraptured with the IBM tabulation equipment.
He ignored his supervisory duties, which he didn't execute well anyway, and focused all
of his energy on the wonderful technical abilities of the IBM
tabulating machines. End quote. I think we can see a budding young programmer here,
both the good parts and the bad parts. He's not good at handling people, certainly not
management material, he doesn't want to be in a high-pressure position. He just wants to be left alone with his precious IBM hardware.
If Frankel had been born a decade later, the image would be complete with a terminal and some actual software.
Now, of course, having someone like this in charge of underlings, that's a recipe for disaster.
Apparently, the management of the theoretical division agreed. Frankel was
kicked off the team and replaced with, and get this, Richard Feynman. That's THE Richard Feynman.
Future Nobel laureate Richard Feynman. This was a high-octane lab in more ways than one. But Frankl didn't get
totally kicked to the curb. He was, instead, shuffled around. Frankl moved over to the F
Division of the Manhattan Project. And, just to throw out some other huge names in physics,
the F Division was ran by Enrico Fermi.
That's the man who created the first nuclear reactor.
Frankl's direct supervisor was Edward Teller, the man who would be credited with the creation of the hydrogen bomb.
It was this work with Teller that would actually put Frankl in contact with a real,
honest-to-goodness computer, conditional execution and all.
The hydrogen bomb works on the principle of fusion.
That's the same process that powers the sun.
Inside a hydrogen bomb, or a star for that matter,
hydrogen atoms are smashed together under high pressure and high temperature.
If the conditions are just right, then you can force two hydrogen atoms to fuse,
creating a helium atom and a burst of energy. That energy, in turn, can contribute to other
fusion events. In a star, there are forces that moderate this reaction, leading to a sustained
long-term release of energy over a long period of time. In a bomb, however, there's no moderation.
A huge rate of fusion is achieved, resulting in destruction of anything nearby.
At least, that was kind of the theory in 1945. A big issue with the theory was the mathematics involved.
It turns out that fusion is a good deal more complex than fission.
The atomic bomb, powered by nuclear fission of uranium or plutonium,
had already pushed the limits of number crunching.
The bomb that Teller was designing, called the Super in this period,
would use a fission bomb as a primer. That would initiate the fusion reaction.
So, the starting point for the new bomb was the ending point for the last one. I think that should give us an idea of how truly complex things were getting. The new fusion bomb needed more
calculating power than a room full of desktop calculators. It needed more than a pile of IBM
unit record equipment. Luckily, there was an employee at Los Alamos who had an important
connection. Good old Johnny Von Neumann, it turns out, was also working with Edward Teller.
In 1944, Von Neumann had met another researcher who was working at this little lab in Philadelphia.
That researcher, Goldstein, was involved with this big machine called ENIAC.
That machine had promise, perhaps more than a pile of tabulators.
In short order, Frankel and his colleague, a man named Nick Metropolis,
were off to the University of Pennsylvania to see this new
automatic computer thing. Like with the multiplying punch, Frankel became enamored with this computer.
A contributing factor could have been the fact that ENIAC wasn't programmed with code.
Rather, it was programmed via punch cables. The entire configuration process is remarkably similar to unit record equipment.
You work up your equations, write out how to wire up different components of the machine,
then you hop into the computer room with an armload of cables. Over the course of a few site
visits, Frankel learned to program ENIAC. This put him among the first dozen or so programmers in the world. You had
the original group of six programmers that were already using ENIAC. Probably Eckert and Mautley
who designed the thing, plus Aiken and Hopper over at Harvard and a few more far-afield researchers.
Frankel, like all before him, would fall in love with the computer. He and Metropolis
developed a program on ENIAC that simulated nuclear fusion. Of course, it was kind of a
simple simulation. We aren't up to actually useful computers yet, mind you. That said,
this was the first practical program ran on ENIAC.
It was also the first time a computer was used to do a type of mathematics that humans can't.
You see, Frankel and Metropolis adapted this thing called the Monte Carlo method.
It's a discrete step-by-step simulation that uses probability to approximate solutions to equations.
that uses probability to approximate solutions to equations.
It's so repetitive and time-intensive that it wasn't a usable method for humans.
But to ENIAC, well, that was a different story.
The machine was really happy to just crunch away.
This is something that I'm planning to do an episode on, and probably pretty soon.
Like I mentioned earlier, I have a request in with the Smithsonian right now to get scans of an oral history interview with Stan
Frankel. Once those arrive, I'm totally gonna drop everything and do a Monte Carlo method episode.
Gotta get the scoop, you know? This first Monte Carlo program was successful enough that it proved a fusion bomb
was possible. This was a huge boon for the superproject. From here, Frankel enters the
final days of his federal career. He would make site visits to a number of other computers and
learn to program some of the first stored program computers. That is, he actually learns to read and write
machine language code. But things broke bad a few years after the war. In 1949,
Frankl's security clearance was revoked. Why? Well, it's an obvious thing, really. Anyone
could have guessed this. His father had, at one point, been a communist. That simply cannot
be allowed to stand. Thus, Frankl was left in actually a very unique position. At that point,
there were only a small number of people in the world who had any experience with computers.
Most of them were tied up in secret research projects or universities.
Frankl was now a free agent. He had knowledge and experience that very few could match.
As the 1950s began, Frankl would make his first decisive steps towards creating his very own
machine. This is a great spot to highlight the somewhat fraught relationship
the US government had with early computer research. Tax dollars funded many advances,
that much is very true. Massive works like the Manhattan Project helped to justify new
advancements in digital technology. But at the same time, federal meddling destroyed nearly as much as it created.
When Franco's security clearance was revoked, he was, for all intents and purposes, thrown to the curb.
Without clearance, he could not work at Los Alamos, so he lost his job.
He lost access to machines, software, the whole nine yards.
He was out of the system.
John Mauchly, one of the creators of ENIAC, was also a target of the Red Scare. That's a very long story. The short version, though,
is that Mouchley and Eckert started a private sector company called EMCC, the Eckert-Mouchley
Computer Company. Their only means of survival was to get government contracts,
which required a certain level of security clearance. According to certain powers in DC,
this new computer company hired communists and communist sympathizers. The FBI suspected that
Mouchley himself was compromised. The only recourse possible was to destroy EMCC. The company was stripped of
clearance, which meant it couldn't complete its existing contracts or court new ones.
Mouchley was even barred from entering the company's office. While not the only reason
for failure, the results of this FBI-coordinated assault did contribute to
the demise of EMCC. I recount this story to highlight just how disruptive this period was.
Elements within the US government were willing to ruin people's lives for
actually no meaningful gain at all. Losing security clearance wasn't just a small inconvenience,
it was a backdoor way to push someone out of their job.
So without clearance, and without a job,
Frankel and others were left to wander.
For Frankel, this actually would open up new possibilities, though.
In 1949, Frankel started a new job at Caltech's engineering division.
He was to head up a new computing technology group.
When you get down to it, I think Frankel was probably one of the most experienced people
for the job. It didn't hurt that he was very suddenly and very abruptly available, either.
Now, from what I can tell, this wasn't really a teaching position. This was more of a research
type of job. This is something
that can be a little confusing when you first encounter it. When you read that so-and-so gets
a gig at a university, it's easy to just make the educational assumption. But I don't think that
would ever work for Frankel. Remember, he didn't really treat tabulator operators well, after all.
He was much more of a scientist than an educator,
let's just leave it at that. Many big brand-name colleges have research outfits attached to them.
Think the AI lab at MIT, or the AI lab at Stanford, or probably a few other AI labs around.
There may be grad students and professors in those labs,
but there are also dedicated researchers. Sometimes those researchers even take on grad
students, as Frankl would do from time to time, but it's more of a mentorship than an actual
professorship. It was at Caltech that we reach the next turning point in the story. During this
period, the early 1940s, Frankel was doing a mix
of consulting and research. This position gave him a very unique view on the world of computing.
He had continued making visits and working with other computers around the country.
He had seen a primordial SIAC at the National Bureau of Standards, Whirlwind at MIT,
at the National Bureau of Standards, Whirlwind at MIT, and continued to communicate with Mautley as ENIAC was designed. Not only did Frankl have the deep understanding of machines that
any good researcher should, he also had a very wide view of developments.
Frankl would toy with the idea of his own computer for a number of years.
By the middle of the 50s, those ideas became more concrete. He had a target, and
it was simple. No, really, that was his target. Frankel decided he would create the most
minimal computer possible, and he'd call it Minak. Now, this is the place where the paper trail runs thin. The HP 9825 article has some fun details on how Frankl got his hands on some diodes and
a magnetic drum, but that's all set dressing to me.
We're missing the why part of this pivot.
This is one of those spots where it's easy to create anachronisms.
I mean, of course Frankl would want to make a simplified computer.
He must have known that cheap computers would cause a domino effect that leads directly to the IBM PC,
then to the modern world.
A computer on every desk, a floppy disk in every pocket.
The thing is, we don't know what he was thinking.
The thing is, we don't know what he was thinking.
It could have been that a colleague at Caltech just suggested making a simple computer as a challenge.
It could have been that he did believe in some form of proto-personal computing.
Or maybe he just thought, hey, there's a market there, I could make some cash.
We just don't know, and Frankl's publications are a little low on commentary. What we do know is that this idea had some real bones to it.
Frankel would produce a prototype in 1954, along with a full design for the machine.
The design was then licensed by this company called Libroscope. They were a defense contractor type outfit, a
manufacturer of big electromechanic things. Libroscope rebranded the MINAC as the Libroscope
General Purpose 30. Now, there is a small maze here. Frankel was working for Caltech at the time,
so technically Caltech owned the designs for Minac. Thus, Librascope
actually licensed the designs from Caltech. Librascope also paid for consulting services
from Frankel to get the LGP30 off the ground. To further complicate matters, the Royal Typewriter Company was contracted to sell and support the
LG P30. This is why you'll see some places claim that Libroscope hired Frankel to design the
computer, or that Libroscope bought the designs from Caltech. In the story of Mel, our main
character actually works at Royal and writes software for the LGP30. We can find later documents showing
that Mel also worked for Libroscope for a period. It's all a bit of a mess to think about. I suggest
we just don't. That's the corporate history out of the way, so let's get to the good stuff,
the computer itself. Here, I'm working off of Frankel's first description in MINAC,
the logical design of a simple general-purpose computer, as well as some manuals that later
shipped with the LGP30. Now, in general, we can do this since the LGP30 and the MINAC are
nearly the same. There are some small tweaks that were made on the path
from prototype to production, but we're going to be really avoiding the whole spot the differences
game. The platform itself is already wacky enough. I'm going to start with the LGP30's memory, since
that's the center of everything. John Henry drove steel, but our hero Mel, he drove the magnetic drum.
This is a strange and really a kind of horrifying device. It's a type of very early computer memory,
one that not everyone was comfortable with. Allow me to preface this with some context.
Back in the day, memory was the most difficult part of a computer.
I mean that in every sense of the word.
It was hard to design, hard to manufacture, it was expensive, and it was hard to work with.
Some early computers used vacuum tubes for memory, or at least for small amounts of memory.
That worked, but it was expensive and very finicky.
Vacuum tubes use quite a bit of power.
They also get so hot that active cooling is required,
which adds an operating expense.
Tubes also like to burn out.
Plus, you actually end up needing more than one tube for each bit of storage.
This is just a bad way to do things.
There were also mercury delay lines, which I've covered extensively.
This was, for all intents and purposes, a very dangerous type of magic.
It worked by bouncing sound waves down hot tubes full of mercury.
Those waves were generated and received by polished and faceted
crystals. It worked, in the strictest sense of the word, but it was literal hot garbage.
This was sequential memory, so you had to wait around for your data to come to you.
You couldn't just ask for some addresses and immediately get the value
stored there. You had to wait for the right wavefront to come along. It's also, theoretically,
kind of dangerous to work near a tube of hot, sloshing mercury. But then again, there's no
reports of people getting heavy metal poisoning or having cancer that worked with these machines,
at least none that point directly to the mercury tubes. That said, I kind of think that maybe that did hurt some people. I don't know. That's pure speculation and fear-mongering.
Now, the other type of memory that was used in this early period was drum memory. This was a somewhat common solution,
at least for a number of years. It was used by IBM in some of their earliest computers.
A drum device had been hooked up to ENIAC after the war, and UNIVAC even used a drum.
Add to that a smattering of other research machines. Frankl had, in some capacity,
seen all of these. Once again, he was a very experienced
computer nerd. Drum memory is less magic and more, really, brute force. You start with a big cylinder,
a drum, that gets spun at some constant speed. That drum is a little special. It has a magnetizable coating, something like the ferric oxides used in audio tapes.
The reading and writing is handled by a set of magnetic pickups.
These are very similar to the heads used in cassette recorders.
You can pass a current through a head to write to the magnetic surface below it.
And conversely, if there is some change in magnetization on the surface below the head,
well, the head turns that into an electric current. Let's pick this apart by looking at
just one head. Each head is responsible for one track, one ring around the drum. If we're just
reading, then things are simple. As the drum spins, the head picks up the magnetization pattern on its track.
In reality, this will be some sort of wiggly thing, since magnetization doesn't like
to stay exactly in nice little squares.
In practice, however, this looks like ones and zeros.
That's because the head is tied into a clock that tells it when to output a value.
Think of this like a shutter.
Every tick of the clock, the computer grabs whatever value the head sees and calls that a bit.
Each of those slices, each discrete bit on a track, is called a sector.
Here's a tricky part to the whole operation.
You have to time everything out.
Each track on the LGP30's drum has 64 sectors, and each tick of the computer's clock reads one sector. In other words, it takes
64 ticks to read every bit on a track. That works out to just under 17 milliseconds. In practice,
you do end up accessing the computer's memory in terms of
addresses, but sometimes you have to wait a while to get anything back. That's one head, so let's
expand down the drum. The LG P30 used 64 tracks, each with their own magnetic head. Words, or the
natural unit of operation the computer was geared to work with, were stored
across tracks. That just means that when the LG P30 read out a number from memory, it was actually
reading from multiple heads at the same time. Just imagine actual data as being stored in these stripes that run down the drum. Now, there is an added layer of complication.
The LGP used 31-bit words. Once again, a word is just the size of numbers that the machine wants
to work with. Each sector, each stripe down the drum, actually holds two words plus two extra bits.
Those extras are just never used. They're kind
of around. There's some conflicting information as to why this is. I've seen that it's to prevent
magnetic bleed over or just to allow some type of relaxation in the coding, but I think the jury's
out on this one. It's just kind of how the computer is. There are also a few special tracks on the
drum for registers. This is where some eyebrows should be raised. Registers are the working space
of a processor. These are tiny chunks of storage, usually just a single word each, that are used for
active work. When you want to do mathematics, you load up some register and start crunching numbers.
In traditional computers, each register is wired directly up to the machine's mathematics circuits.
This means that you kind of have to use registers.
Registers are also, in general, faster to access than the rest of memory.
At least, that's kind of what you want.
In the modern day, we have registers etched directly onto microprocessors.
Chip designers just reserve a little chunk of their processor for registers.
Quick and nearby registers give a computer all kinds of benefits.
Namely, it's just playing faster. That said, this seems
to have been a more modern trend. Older computers don't really do fancy registers. The Univac 1,
a computer that Frankel would have been very familiar with, used mercury delay lines for its
registers. That's a very slow type of storage. The LG P30 stored registers on its drum.
Each register was allocated its own track. This is a little different than how normal memory was
configured. Instead of reading down stripes, a register was read on one head as the drum turned,
so it would take a full rotation to access all the bits of a register. This is,
of course, garbage. It's a little janky. Machines these days simply don't work that way.
We tend to keep memory and registers separated, except in certain special cases.
But while the LGB30's registers sound weird today, they were perfectly normal for the period.
The IBM 658, roughly contemporary computer, did the same trick.
It kept registers on the same spinning drum that it used for memory.
But Frankel isn't just doing this to fit in with the crowd.
There are benefits to this arrangement.
Mostly, it's cheap and very
simple. Adding registers to the drum just took a little space and a single head per register.
That beats out vacuum tubes or delay lines any day. You don't need a whole lot of accuracy to
make these drums either. As long as it's a cylinder and it's coded evenly, you're really good to go, so add as many registers as you want.
As far as simplicity goes, well, you might not believe me at first.
Maybe the spinning drum has you a little concerned.
Well, dear listener, I can help you out.
You see, the drum really is the center of the entire computer.
Thus, Mel's ability to drive that drum made him a true
hero. So far, we've only looked at the data parts of the drum, but it's actually hiding one more
trick up its sleeve, or rather, under its ferrite coating. The drum was also used to generate timing signals. This is, as far as I'm concerned, the coolest part of this entire machine.
So, let me back up here.
All digital computers, even very early machines, rely on a clock signal.
These machines are digital in the sense that they operate on discrete numbers,
and also digital in the sense that they operate on discrete numbers, and also digital in the sense that they operate in discrete steps.
One operation has to come after another, so you need some sort of beat for the machine to follow.
The usual way to do this is with a clock circuit.
These can be constructed from crystal oscillators, inductors, or anything
else that puts out a constant beat. You really just need something that fires off an electrical
pulse at regular intervals. One of the difficulties with any delay memory comes down to timing.
The clock used in the computer has to be kept in step with the propagation speed of data in memory.
The same goes for drum memory. You need a clock that's in step with the drum, and the drum needs
to rotate in some amount of time that's evenly divisible by your clock rate. The LGP-30 deals
with this fine-tuning problem by simply not having a clock circuit. No crystals, no oscillators, nothing. Instead,
the drum makes its own beat. This is done very simply. There are a few tracks on the end of the
drum that are permanently magnetized. These are baked in when the drum is made. Each of these
timing tracks has a reed head paired up with it.
The clock track is the most simple one to explain. It's just a pattern of magnetic stripes.
As the drum spins, the clock head reads these pulses, which result in a uniform clock signal.
As long as the drum is spinning at the same speed, you end up with the same clock rate.
But if the drum's a little slow or a little fast, that doesn't really matter.
The entire computer works off this clock signal, which is just dictated by the speed of the
drum.
So you don't really run into sync issues.
You could, in theory, use any motor to run the drum.
It doesn't even have to spin that evenly.
So once again, the drum makes things easier and cheaper.
The rest of the design stems from this very philosophy.
We're talking about the MINAC, after all.
The most minimal possible computer.
Everything needs to be simple, cheap, and minimal.
This, of course, extends to the processing parts
of the machine as well. The LG P30 is a bit serial computer. For some of you, that might be
raising what eyebrows you have left to raise. When you get down to the very lowest level of a computer, everything operates around the bit,
those pesky ones and zeros. Take the humble add operation. That's physically implemented as some
type of circuit that can do binary addition. It adds one bit to another to give you a resulting
bit. The usual circuit is bit parallel. This type of circuit will take two
binary numbers that are each multiple digits long and add each bit at the same time, handling the
carries as needed. Sometimes that just means a fancy circuit, sometimes it means two steps,
but in general these parallel circuits are nice because they operate quickly. It takes
one operation to add two numbers, regardless of how long those numbers are. The circuit will
munch any numbers that fit into it. While bit parallel is great, it requires some set dressing
to be effective. These circuits are only efficient if you have some way to feed in entire numbers.
You want to have all bits of your inputs ready to roll. To do that, you end up needing memory
that can send over lots of bits at once. You need registers that can operate on multiple bits at
once. If any part of that tooling can't keep up, well, then you can't reap the benefits of
your cool bit-parallel math circuits.
There's also the fact that these are just complicated circuits, at least they're repetitive
circuits.
If you have an 8-bit adding circuit, for instance, that's really 8 1-bit adders that are just
chained together.
In the case of MINac, the bit parallel thing
wouldn't really work. It's not just that memory operates in a very non-parallel way,
you also have to consider the registers. When running an operation like addition,
you usually fill up an accumulator with one value, put another value in a register or
in a nice spot in memory, then you tell the
computer to add to the accumulator. There's a few underlying steps during that process. The
values are transferred into the machine's arithmetic circuits, addition is done,
the results are transferred back into the accumulator. Normally, that's done in bit
parallel, but the LGP-30 just can't do any of that.
I think reads and writes off specific addresses on the drum are the only parallel part of
the machine.
But everything else, it's all serial.
The accumulator, the register in the machine, is serial.
Since it's on a track on the drum, you only get one bit at a time.
So it doesn't make any sense to bother with bit parallel circuits,
since you'd just be hamstrung by serial registers.
Instead, Frankel opted to make the whole machine serial.
This means that when operations are carried out, it's done one bit at a time.
The adding circuit, for instance, is just a single one-bit adder. The LGP30 only needs one of those circuits. Addition is carried out one bit after
another, with results saved one bit after another. On most other machines, that'd be a big problem,
but for MINAC, it doesn't really matter.
This serial type of operation actually complements the machine's beautiful drum.
The drum provides the clock signal, the steady beat that drives the computer forward.
That beat syncs up the read heads on the drum.
It also syncs up operation steps with the computer's other circuits.
It also syncs up operation steps with the computer's other circuits.
So just as a bit is coming out of a register, the computer is ready to operate on that bit.
It all fits together in a very satisfying manner.
This bit serial design also simplifies the whole machine.
If the LGP30 was a bit parallel machine, it would need 31 binary adding circuits to deal with its 31-bit words.
As a serial machine, it needs one. The same is true for every other operation. This is all in service of creating a cheap, simple, and reasonable machine. We can even see this in the physical implementation of these simplified circuits.
The LG P30 uses only 113 vacuum tubes.
That goes a long way towards making a small and cheap computer that doesn't need a lot of power. Compare that to the IBM 650's nearly 2,000 tubes.
Or the Univac's 6,000 tubes, or the UNIVAC's 6,000 tubes. And sure, the LGP-30 is a little underpowered in
comparison to its contemporaries, but we're looking at an order of magnitude here. So,
if the LGP used so few tubes, how did it, you know, compute? Frankl made judicious use of diodes to get the job done.
In total, the MINEC has 1,350 diodes inside its chassis. Almost all computation is done
using this diode-based logic. As with most things about this computer, this is a little weird,
but it's not illegal.
Computers are built up from these things called logic gates.
There's a whole set of gates that can be used here, but the core complement comes down to three.
And, or, and not.
You can build up more complex logic using just those three gates.
With that, you can make your precious adding circuits or
anything else your digital heart desires. Two of these three gates can be implemented using
diodes alone. And is easy, as is or. Diode circuits can't do negation. You can't make a
not gate using diodes alone. That's where vacuum tubes step in.
You don't really need a lot of knots,
but you need at least a few.
This means that if you're willing to get down and dirty,
you can actually create a computer with very few vacuum tubes.
Frankel, once again,
pulls a couple cool tricks to get away with this diode logic.
It all comes down to the drum,
as always. The drum is wired up to vacuum tube circuits that temporarily store the value the
heads are reading. There's a pair of these tube circuits. One presents the raw value, while the
other presents its inverse. So if one bus is showing 101, then the other will be showing
010. The difference is a logical NOT operation. So for operations that are missing a NOT,
the LGP30 can just grab that value off the NOT bus. For everything else, there's a normal bus to connect to. The net result
is this beautiful and cheap diode logic. Now, is this setup totally unique? Once again,
is the LG P30 doing something totally new? Simply put, no. SIAC, a machine that Frankel at least saw on a trip to the National Bureau of
Standards, was another diode-based beast. No one feature of the LG P30 is particularly new.
It's just that Frankel is putting everything together in a really savvy way. This combination
of tricks, smart use of technology, and cost reduction leads to the
MINAC, the most minimal possible computer for the time. What we get is one of the first computers
that can be operated by a single person. It could even be set up by a single person, as long as you
had a hand truck or something similar. The entire computer was fit into a desk-sized box, and it weighed only 700 pounds.
That may sound like a lot, but considering that other machines were weighed in tons in this period,
and, well, 700 pounds isn't that bad. You can buy an LG P30, have it delivered,
then install it yourself. Just wheel it into your lab or office, drop it down where you want it,
and plug it in. The machine even ran off a normal 120-volt wall socket. No special cooling needed,
no special floor vents, not even a technician. Years later, during the home computer boom,
we run into similar machines. Now, I'm not saying that the LG P30 was a home computer.
The thing still cost half a million dollars in today's money. Rather, it's a computer that you
can buy, plug in, and just use. The folk were saying that about the Macintosh in 1984. I've
seen articles from that period singing the praises of that type of machine,
as if it was a totally new approach. Well, sorry to burst your bubble, but Frankel did it first.
I want to clear the air before we go any further. I'm not just saying that the LG P30 has personal
bona fides for a nice headline. Far from it. This isn't just a machine that happened to be small
and cheap enough to look personal. It goes a lot deeper than that. Let me start with the interface.
You see, the LG P30 didn't use punch cards. That's already a huge deviation from established norms.
The IBM 650, for instance, was kind of just a punch card muncher. A good one-third of
the machine was dedicated to handling punch card I.O. And while punch cards are cool in an abstract
sort of way, they aren't really great for human-computer interfaces. Punch cards are pretty
hostile to human comprehension. Practitioners may have been able to read the pattern of holes by eye alone,
but that takes skill and training.
You aren't going to walk out of the math department and start shucking cards unaided.
The good ol' Minak was built different.
Its primary interface device was a flexo-rider.
built different. Its primary interface device was a flexo-rider. In fact, it was so central to the machine that it was built into the very chassis. This is a device that, externally, is the same as
a teletype. These were well-established devices being used in telegraphy since way back and even
making appearances in some computer rooms. The flexo part of the flexo
writer meant that it could be used as more than just a teletype. It could be used offline as a
typewriter, connected directly to a computer for serial communication, used to punch paper tape,
or to read paper tape into a computer. I think it could even actually take paper tape in and print it out
on a sheet of paper. So these are truly flexible little beasts. The really relevant part here is
that the FlexoWriter could be used as a text-based terminal. A person could type into the terminal,
the terminal would send data off to the LGP30, and the computer would respond on the same paper feed.
This is how some of the earliest interfaces work, the earliest interactive interfaces, that is.
And we see it in the LG P30 as early as 1956. So how was the FlexoWriter used in practice?
This is a really important question because, well, it has a lot of bearing
on how the LG P30 fits into the larger story of personal computing. The bottom line is that the
FlexoWriter wasn't as interactive as later terminals. Take programming as an example.
You don't sit down at the keyboard and tell the LGP32 to run a text editor.
It's a bit of a more involved process.
First, you write out your program in offline mode.
This means that the FlexoWriter isn't sending any data to the computer as you type.
Instead, it produces a punched paper tape of your source code.
Then, you get to turn on the LG-30 and bootstrap the machine.
Once it's up and running, you load up a compiler or assembler.
Then you pass in your code tape.
That gets processed, then the computer spits out a binary tape that contains your final
program.
To run that program, you take this output tape and feed it into the FlexoWriter's
input. You have to flip a few switches, but after a while, your program starts running.
Your program itself could be more interactive, but the actual process of using the computer
was still clunky. It's not yet an automatic affair. The FlexoWriter, in this case, is just a clever way to squeeze more usefulness out of paper tape.
It's workable, but not the most fancy thing in the world.
If that's the interface,
then what were people programming in on this machine?
What were people actually using on launch day?
Well, we know that Mel used machine code,
the native language of the computer itself.
That has a lot of connotations to it. The story of Mel says that he wrote in
raw, hexadecimal, unaided, and unadorned. In the modern day, that's a seemingly impossible feat.
But we aren't talking about the modern day. I don't want to besmirch the memory of Mel, but
the LGP-30's machine code was something special. You see, the 30 used a mnemonic type of code.
On the lowest level, you communicate with a computer by passing it a series of operations.
The computer doesn't speak a fancy language normally, it just wants
numbers. So each operation is represented by an operation code, or an opcode. These are numbers.
Instead of saying add, you tell the computer to execute opcode 57, or something along those lines.
The opcode is followed by arguments, which are also numeric.
With bigger machines, this leads to a lot of complexity. You have to have a way to specify
everything numerically. You need some kind of grammar for telling the machine where to get
arguments from, where to send numbers, and all manner of little modifications to operations.
where to send numbers and all manner of little modifications to operations.
The LGP30 simplifies all of this by, well, you should know the punchline by now, just being simple.
Operations are numeric, at least to the machine, but you can choose any numbers you want for opcodes.
So Frankel chose some nice numbers.
Okay, so here's the deal. The FlexoWriter is able to convert between numbers and letters. This is called character encoding. When you press an A key,
the FlexoWriter doesn't actually send an A. It actually sends over the number 57. That's what
the computer gets. When the FlexoWriter is sent a 57, it knows that it needs
to type out an A. Knowing that, Frankel pulled another one of his patented cool tricks. He chose
all his opcode numbers to overlap with these character codes. The opcode for addition, for example, is 57.
That gets printed, or typed rather, as an A.
A for addition.
I can't help but think this was partly inspired by his relationship with John Mouchley.
The Univac-1, a machine that Mouchley helped design, pulled a similar trick.
That machine used these mnemonic opcodes just because it made the machine easier to program. You don't have to remember that 57 means add, just A is for add.
That's so much easier. That's one trick that ends up making the LGP30 easier to program and,
just maybe, make smell less of a masochist. The second is the operand
part of the machine code. I'm kind of reveling in this because, well, I don't get to dive into
machine code very much on the show. Usually this is a very complex, navel-gazing type of subject.
So humor me a little longer. So the operand part. After each opcode is an operand,
an argument, that operand can only mean one thing on the LGP-30. An address on the drum.
A pointer, in other words. That makes the entire machine code very easy to remember. Let me just spit something off the dome for you. A1000 tells
the LGP30 to take the number stored at memory address 1000 and add it to the accumulator
register. That's the only place you can add a number to, which is restrictive, but also makes everything really easy to deal with. Subtraction
is handled the same way. S1000 would subtract the number stored at location 1000 from the
accumulator. It's a little more complex for some operations, but only a little. U, the
unconditional jump, jumps your program to the given address. So U1000 tells the computer to start executing the code stored at address 1000.
And just like that, U2 can actually program like MEL.
Or, at least, you can start.
There are only 16 instructions.
Each has a mnemonic name.
Some are awkward. Z means stop, but come on,
it's 16 letters to remember. This also has a knock-on effect on the entire tooling used with
the LGP30. You don't really need an assembler, at least not in the classical sense. Normally, an assembler simply lets you write out machine
code using nice little mnemonics, like the word ADD instead of 57. But you don't need an assembler
to do that for the LGP-30. The machine code is already its own mnemonic. These mnemonic machine
languages represent a really interesting
transitionary period where programmers were trying to find better ways to work, but
full languages didn't really exist, not quite yet. The LGP30 was first sold in 1956,
with the design predating that by at least one year. Fortran, the first real programming language to see any widespread use,
is released to IBM customers in 1957. Early drafts of the language were circulated in late 56.
You could, if you wanted to stretch things, even look at this as an approach to language design.
High-level languages like Fortran exist for a number of
reasons. They're programmer-friendly, fewer lines of code can do more things, and they pull the
programmer away from the computer and more into the realm of problem-solving. The LGP30's mnemonic
assembly language hits one of these features. It's a little more friendly than raw hexadecimal. But it's still
assembly, it's still verbose, and it's still tied into the lower level of the machine.
It just so happens that this machine is pretty easy to understand. Well, at least on a basic level.
on a basic level.
Alright, thus ends our coverage of the LG P30,
aka the Minak.
Now, I will say, this isn't a full conclusion.
I still have that duplication request out with the Smithsonian.
As of record time, the request has been accepted and paid for, thanks to
Patreon funds, and hopefully the scans will fall into my inbox soon. Once that happens, I'm going
to be preparing an episode to supplement this one. I'm hoping to fill in some gaps and cover
the Monte Carlo method in depth. As for the LGP-30, well, I think it's fair to call it a very unique machine.
In this one little computer,
Frankel combined some of the most interesting ideas in the field at the time.
The result is, well, the minimal computer for the late 50s.
Compared to its contemporaries, it's small, cheap, and really easy to use.
We don't have a lot of Frankel's personal writings, not yet,
but I think if we read into the 30s design a little bit, we can find something stunning.
There's this larger pattern of lazy personalization. Choosing opcodes that look like
letters doesn't cost you anything extra. You already have to pick out numbers, so why not pick out nice ones?
Attaching a FlexoWriter does cost a little more, but a computer user will end up needing something
like a FlexoWriter anyway, so why not throw it in? The diode-heavy logic follows the same pattern,
as does the drum, as does bit serial. No one of these features was groundbreaking or particularly hard to
implement. But put together, you get a remarkably cheap and approachable computer for the period.
You get something that's right on the edge of personal computing.
Thanks for listening to Advent of Computing. I'll be back in two weeks' time with another piece of
computing's past.
And hey, if you like the show, there are now a few ways you can support it. If you know someone
else who would like the show, then why not take a minute to share it with them? You can rate and
review on Apple Podcasts and Spotify now. And if you want to be a super fan, then you can support
the show directly through Advent of Computing merch or signing up as a patron on Patreon.
the show directly through Advent of Computing merch or signing up as a patron on Patreon.
Patrons get early access to most episodes, polls for the direction of the show, and bonus episodes. You can find links to everything on my website, adventofcomputing.com.
If you have any comments or suggestions for a future episode, then go ahead and shoot me a tweet.
I'm at Advent of Comp on Twitter. And as always, have a great rest of your day.