From stevens_j@eisner.decus.org Mon Jan 16 19:31:00 PST 1995
Article: 655 of alt.sys.pdp10
Path: news.u.washington.edu!zoology.washington.edu!netnews.nwnet.net!usenet.coe
.montana.edu!caen!spool.mu.edu!howland.reston.ans.net!cs.utexas.edu!uunet!noc.n
ear.net!eisner!stevens_j
From: stevens_j@eisner.decus.org (Jack H. Stevens)
Newsgroups: alt.sys.pdp10
Subject: A History of TOPS
Message-ID: <1995Jan13.151041.8661@eisner>
Date: 13 Jan 95 15:10:41 -0500
Organization: DECUServe
Lines: 490
The following is my write-up, slightly updated, of
Peter Hurley's session at the Spring, 1984, DECUS
Symposium in Cincinnati, Ohio, entitled:
"The History of TOPS, or Life in the Fast AC's"
Peter Hurley was [as of 1984] the Manager of TOPS-
10/20 Software Engineering, where he had spent the
last 16 years. He had, in fact, been working with
DEC's 36-bit computers for two years before that.
Peter's first programming job (which he got by
strategically losing a squash match with his boss)
was on a PDP-1 at MIT's Laboratory for Nuclear
Science. The next year they upgraded to a PDP-6,
running version 1.6 of the monitor, with a TTY 33 as
a line printer (at least until they tried to do a
listing of the FORTRAN compiler on it). Peter
followed his boss to DEC, as the latter still needed
someone to win against at squash.
The PDP-6 first shipped in June of 1964. It was
followed by the KA-10 in 1967, with about 1.5 the
power of the PDP-6. The KI-10, about 1.8 times the
KA-10, was released in 1972. The KL-10, about 2.5
times the KI, was introduced in 1975 with TOPS-10.
In 1976, the first TOPS-20 KL-10 was released. In
1978, the 2060, 2020, and 1091 came out.
The letters in the processor names did actually mean
something. The "K" stood for Komputer ("C" had
already been used for something important, like Card
reader); "A" was the first letter of the alphabet.
By the time they got to the KI, though, marketing
had gotten involved, so "I" stood for Integrated
circuits. To help sell the idea of the KL to
management, "L" stood for Low-cost system. The "S"
in KS probably stood for Small.
The PDP-6 could be purchased with optional fast
accumulators. They took up an entire 19-inch rack
(that's 16 words in one rack). One megaword,
therefore, would take up 98,958 cabinet feet of
floor space (or approximately 18.7 miles).
The development team of the PDP-6 included many
memorable individuals. Gordon Bell designed the
system architecture, then started to bail out the
documentation group by writing half the hardware
manual, then moved to the software group to try to
help bail them out. Alan Kotok, who was hired in
1961 as a PDP-4 FORTRAN compiler writer, turned into
a PDP-6 architect as assistant logic designer. Russ
Donne, a circuit designer, was pulled into the
project late (just about every engineer at DEC was
pulled into the project) and given three weeks to do
the main PDP-6 module layout and design. One of the
modules, the biggest one he had ever done, had 108
transistors (whatever they are). Leo Gussell wrote
the diagnostics for the -6, the basic diagnostics A
through H, that are still [as of 1984] in use.
Harris Hyman was the author of Macro and a little
absent minded. One day he managed to lose all the
sources to Macro. Peter Sampson, who wrote FORTRAN
II, put exactly one comment in it. That comment,
which commemorated the numerological identity of the
octal equivalent of 1000 and the year of Johann
Sebastian Bach's death, read "JSB RIP". Tom
Hastings, hired in 1961 as the first software
engineer at DEC, had a few strange habits. One of
them was that when he was tired he would lay a
listing on the floor and take a nap on it. One
could not be sure, coming across him in that state,
whether he was still alive. Dave Gross, brilliant
but absent-minded, slept through all his DEC
employment interviews except one. He was hired in
his last one of the day, with the documentation
group, because it was not scheduled until 3 PM, and
he had awakened by then. Tom Eggers, DEC's first
school dropout to become a programmer, developed DDT
while still in school. DEC paid him $500 for it.
About once a week he would crawl into the office of
Harlan Anderson, VP of Engineering, to sleep on the
couch there. Harlan would discover him the next
morning and kick him out. Ed Yourdin, later of
structured programming fame, wrote Loader. (Loader
has still passed out of use; perhaps it was not
sufficiently structured.)
The PDP-6 project started in early 1963, as a 24-bit
machine. It grew to 36 bits for LISP, a design
goal. (The IBM 7090 also used 36 bits, so it was
okay.) The PDP-6 did improve on the 7090, in that
it had an 18-bit address rather than the 7090's 15.
The theory was that 256K words was clearly enough to
last the entire life of the product. After all,
that much memory wouldn't even fit in a room. The
design engineers really didn't know how to call
subroutines, so they designed in all the ways they
could think of: JSR, JSA, JSP, PUSHJ, and UUO (JFFO
was added later). They couldn't decide which
Boolean instructions to have, so they did them all.
The reason that the bits were numbered from left to
right was that IBM had done it that way (as Alan
Kotok put it, "We hadn't invented 'Not Invented
Here', yet." NIH did arrive by the time the PDP-11
was developed, though). The PDP-6, having only two
or three thousand gates, didn't have any error
recovery. In fact, it didn't have any error
checking. Memory parity was an add-on box that sat
between the memory and the CPU.
Many of the sites that bought PDP-6's were involved
with physics research. Others included artificial
intelligence research organizations and timesharing
utilities. Apparently demonstrating DEC's
masochistic tendencies, the first PDP-6 sold went
about as far from Maynard as one could possibly go,
to the University of Western Australia, in Perth.
The second went to Brookhaven National Labs, in an
air-conditioned trailer in which it was to spend its
days, the intention being to drive it to experiments
(in fact, it was never moved). With this experience
in shipping computers by truck, DEC started to ship
all its products by truck. Twelve-foot trucks. DEC
learned a lot more at a well-known bridge on Route
62 in Hudson, Massachusetts. An eleven-foot bridge.
(This is where DEC made its first drop shipment.)
The PDP-6 that made this unfortunate journey was
already some months late for the University of
Pennsylvania. DEC, not having its own van at the
time, had rented some space in a moving van filled
with household goods. The PDP-6 was in the back of
the van, and it appears that the furniture
successfully cushioned the impact of the computer.
They did have to shovel the remains out of the truck
afterwards, however. (The PDP-6 was able to be
repaired in a couple of more months.)
Two philosophies were applied to the design of the
PDP-6. The first was expressed by John McCarthy of
MIT, who helped design it. That was "to provide
each user with the illusion of having his own large
computer." The other was "gentleman's timesharing",
which was the only way one could exist with no
protection and with manual sharing of all the
peripherals, core memory, system DECtape, etc.
The early developers of the PDP-6 software used a
cross assembler running on the PDP-4. The -4 was in
another building, which required a considerable trip
to transfer software (via paper tape). Tom Eggers
debugged DDT before the hardware was working fully.
This required that the instructions that did not
work be simulated by instructions that did work so
that they could debug the ones that were not working
(for example, left shift worked, but right shift
didn't).
The first successful timesharing test on the PDP-6
comprised two "JRST ." (branch to current location)
jobs. The lights showed that the scheduler was, in
fact, switching between the jobs. Immediately
following that demo they invented Control-C, because
they had no way of stopping the test jobs. Version
numbers were also developed during this period, as
Harris Hyman had a habit of labeling the DECtape of
each new version of Macro as "Latest". After six
versions of "Latest" were accumulated, they started
numbering them.
PIP was invented by "Dit" Morse as a demonstration
of device independence. Its original name was
ATLATL, which stood for "Anything, Lord, to
Anything, Lord". This was appropriate, as it took a
certain amount of prayer to get anything to move
between media. In those days, when TTY's had
back-arrows (instead of underscores) that key was
used instead of the equals sign in PIP. This, it
was felt, was sufficiently obvious that anyone who,
for example, tried to read from the line printer got
a message like: "You gnerd, device LPT: can't do
input!" That message was changed the day after Ken
Olsen tried out ATLATL.
The first PDP-6 shipped with a 5K word monitor. The
user guide could comfortably fit on a page. IJOB
started up a job; one could get one's job number
with PJOB. GET, SAVE, and START took care of
program control. After Control-C was added,
CONTINUE was, also. (Control-C was chosen,
incidentally, because Tom Hastings could reach it
easily on the keyboard with one hand.) The DECtape
editor provided all the functions one could want:
Insert, Delete, Print line. It was called EDITOR
and was the precursor of LINED.
Since there was no swapping, everything had to fit
in memory. Programs were shuffled to close up the
unused space. But because the BLT instruction was
used, shuffling could only move programs toward
lower addresses (5K monitor, remember?). Thus,
after one's compile had been running for twenty
minutes, growing toward someone else's job, one
might get an error message "Core available, but not
for you", and could try to persuade the other person
to kill his job or, more likely, would have to kill
one's own job, type CORE 0 to cause shuffling, and
start again.
The demise of the PDP-6 came after 23 had been
built. (One of them, Lucky 7, never really worked
correctly.) Every engineer at DEC was working at
getting them through manufacturing, and Ken Olsen
was fearing for his company. Several of the main
players left DEC after the cancellation, but Alan
Kotok, asked to head up a group to choose a smaller
system to do next, ended up choosing something
called the PDP-1010. The PDP-1010 was a 36-bit
machine (surprise!) which looked a lot like a PDP-6.
It came with 8K words of memory; a paper tape
reader, paper tape punch, and a terminal as its only
peripherals; and had optional fast AC's, optional
floating point instructions, and optional byte
instructions. Oxford actually bought one of these
(though they did have to buy more memory).
The KA-10 set a system debug record. From power on
to running the operating system was eight days.
During that time, Bob Clements almost gave away the
secret. As part of the debugging, he had been
running a music program from MIT and found that the
pitch was too high. In talking to the authors about
a tuning algorithm that he thought was supposed to
bring the pitch down, they asked, "What are you
running this on? You've got a fast machine there!"
Dave Gross was still brilliant. He was able, after
everyone else had tried, to get the RIM (Read-In
Memory) loader down from 18 instructions (which were
keyed in on the PDP-6) to fewer than 16 (to fit in
the accumulators). Even after the KL was
introduced, he was getting calls from people who
told him that there was no way the code could work.
Dave Gross was still absent minded, too. DEC had
given out Christmas turkeys. The following April,
someone who was helping him clean out the trunk of
the car Dave was selling asked, "What's in this box
labeled 'Turkey'?"
Pat White would bring her dog into work. It would
lie under the KA, where it was warm. There were
more programmers than terminals, so anyone who
stepped away for a moment was likely to lose his.
Her solution was to tie the dog to the terminal. No
one was willing to take a terminal away from a
German shepherd.
In the spring of 1970, at the Joint Computer
Conference in Atlantic City, the KA was displayed,
at what was DEC's largest demo ever. This system
had 128K words (MA-10 memory, at 16K per
36-inch-wide cabinet), the brand-new RP02 disks,
tape drives, line printer, an Evans and Southerland
LDS-1 display, and 16 teletypes. Everyone was there
debugging the system the night before the show when
it stopped dead. Alan Kotok, a master of the
lights, immediately leapt to the console, determined
that it was a memory parity error, then moved to
each memory cabinet to read the lights on them. At
about the fifth one, he exclaimed, "Ah! It's this
one! The one with the smoke pouring out of it!" No
one had noticed the smoke billowing out of the
cabinet in the meantime. (This was the show at
which Sonny Monosson made his debut selling used
computers. He walked up and down the boardwalk
wearing a sandwich board advertising a used KA-10).
At the end of each day they would play the national
anthem on the KA and put it on the loudspeakers.
The monitor started with version 1. (The name
TOPS-10 was chosen by marketing, but not until
1970). Versions 1.4 to 1.9 shipped on the PDP-6.
27 jobs were supported, as each job got a bit in the
mantissa of a floating point number. To determine
which job was next involved an unnormalized floating
point add . . . In version 3.27, for PDP-10's, in
which swapping was added, capacity was provided for
35 jobs by using a JFFO (Jump if Find First One)
instruction. This kept it from running on PDP-6's,
since they did not have that instruction. Job
capacity jumped to 63 in the next monitor and
averaged a further doubling in each version after
that, up to 512.
Disks have been the source of some interesting
moments. The PDP-6 could support the Data Products
disk. That drive had about a dozen platters, each
of which was provided with an independently-movable,
hydraulically actuated arm. When the heads got
moving, with the hydraulic hoses moving in and out
with the actuators, it looked like a spaghetti
factory. Dave Nixon of Oxford bought an IBM disk
drive for his system. Not knowing how to program it
as a disk drive, he made it emulate 40 DECtape
drives.
The KA-10 came with the RD-10 Burroughs disk. This
was a single fixed platter, about three feet in
diameter. Unfortunately, some would work fine, and
others would crash. This was eventually traced to
the way the disks were lined up on the loading dock.
The driveway to the dock sloped down. As a result,
the trucks would coast the last foot or two and bump
the edge, shaking the building. Those disks whose
arms were perpendicular to the trucks would later
crash, while those whose arms were parallel were
fine. The solution was (of course) to line all the
drives up the right way. The RD-10's were also very
likely to crash if touched. Kodak ended up
installing a heavy pipe railing around theirs to
keep people away.
The "Giant Bryant" had six three-foot platters. Its
four-foot actuator arms were tied into units, unlike
the Data Products, but it had two sets of them, one
on each side of the disk. It, too, was prone to
crashing, especially with the assistance of one
diagnostic writer who felt that they really ought to
work in the worst case. His diagnostic would start
the heads on one side working madly, then would
start the others up, out of synchronization. Aside
from causing the disk to crash, it would make the
drive walk around the room. Things got so bad that
the first RAMP feature was added, in the hope of
saving some data. An electronic "sniffer" was
installed to detect the debris of a head crash and
retract the heads. The platters made nice coffee
tables, with their spiral grooves.
The PDP-6 console was attractive but had small
switches that were hard on the fingers of the
programmers who had to key in the RIM loader. It
did have a prominent on-off switch, though. Some
researchers at MIT thought, one day, that it would
be fun to use their new robot arm to emulate the toy
whose arm emerges from its box to shut itself off.
The next day, DEC got a call to replace the switch.
It seemed that in turning itself off, there was a
slight transient that caused the arm to tear the
switch out of the panel. Stanford had a robot arm,
too. It was hydraulically operated, and if a
software bug caused two of the actuators to work
against each other, would shake and then throw
whatever it was holding across the room. It was
locked up after the head of the department walked
into the room to see a block whiz past his ear.
Stanford also had a little robot car that was
equipped with a TV camera and drove around outside
the building. There was a sign outside the building
that read "Watch Out for Unmanned Vehicle". It
worked, too, until the monitor would crash. Then
someone had to be sent into the woods to find the
car.
The KA-10 had a nicer console with even more lights.
One of the lights, for interrupt level 7, tended to
show how much work the scheduler was doing. As the
scheduler seemed to be running much of the time,
trying to decide which job to run next, the
condition was called "pink scheduler mode". The
KI-10 had an even fancier console (a lot of time was
spent designing consoles) with easily replaceable
lights and switches. Unfortunately, the company
that made those fancy lights and switches went out
of business, and lights and switches became
difficult to replace for a different reason. The
KL-10 did away with almost all the lights and
switches, except for those on the PDP-11 console
front end (this also did away with "pink scheduler
mode", since one could no longer see the problem).
As the PDP-11 lights and switches were no longer
useful to the -10 programmers (they didn't have
enough bits) the whole thing was put behind a door,
and the result was two lights (power and fault --
useless, as one knew that it was either running or
not) and four switches (which also broke and were
hard to find replacements for). Field service
received a tech tip which told them how to use a
paper clip to fix the switches. The 2020 finally
resolved the issue with one tri-state light (on,
off, and blinking).
TOPS-20 originated with Bolt Beranek Newman, in
Cambridge, Massachusetts. Before the PDP-6 was
designed BBN had gotten into timesharing with a
PDP-1 system equipped with a swapping drum. Dan
Murphy at BBN experimented with paging on that
system, implemented entirely in software. Each
instruction had to be checked before it was executed
to see if the address it pointed to was actually in
memory, or if a page had to be brought in. That
made them decide that a hardware assist might be
nice for performance. When the PDP-6 came out, BBN
started negotiating with DEC to install hardware
paging, but when the -6 was canceled, they moved to
an SDS 940. This was probably good in the long run,
as the SDS machine laid the groundwork for TOPS-20
command recognition.
In 1970, TENEX was introduced by BBN. They had
started their project, late in 1969, on a KA-10 with
their own paging box and finished it within six
months. The first system went to SRI. In 1972,
TENEX came to DEC. Dan Murphy was contracted to put
TENEX on the KI, then joined the hardware
engineering group while the KL was being developed.
The original intention was to create a new operating
system for the new hardware. It was to have been
the only operating system for the KL, but it could
never catch up to the performance of TOPS-10.
A considerable amount of work was done to TENEX to
make it into TOPS-20. For example, the disks were
made to still be readable after a software crash.
The directory structure was redesigned. The
development group added such things as search lists,
logical names, IPCF, enqueue/dequeue, KL support,
wild cards, pseudo-teletypes, etc. Having PTY's and
the ability to assign TTY's allowed one to develop
Trojan Horse jobs that could capture passwords of
unsuspecting users. Dave Braithwaite was at GM when
he was asked how such a gaping security hole could
have slipped through. He explained that it had
never been thought of and suggested that it was
"sort of like designing a car where you have to pull
the engine to replace the last spark plug."
The name "TOPS-20" was the product of considerable
evolution. DEC did not want to use "TENEX" because
it might have caused confusion within the ARPA
community, so someone came up with "VIROS" (VIRtual
Operating System). That didn't last too long
because the VP in charge of the project, John Leng,
started pronouncing it "virus". Management decided
that the name would have to be changed in order to
fool the rumor mill. The developers came up with
"SNARK", from Lewis Carroll's "The Hunting of the
Snark" (" . . .the hunting of the Snark, with forks
and hope . . ."). Six months later, when it was
time to change names again, the name was encrypted
to "KRANS". One memo with that name went out, which
was seen by Ulf Fagerquist. He pointed out that
"krans" in Swedish means "funeral wreath". Back to
"SNARK". Marketing showed its imagination by coming
up with "TOPS-20".
In 1976, DEC announced its first DECSYSTEM-20. It
came in two flavors, the 2040 and the 2050. It was
originally going to support the TU16 tape drive, but
the developers could never get it to work right on
their system. About two months before the -20 was
to be shipped, the Pertec TU45 was found. This was
determined to be much better than the TU16. After
one was installed and while the driver was being
written, John Leng and Ulf Fagerquist came by to see
the results of their months of agonizing over the
tape drive decision. In demonstrating the autoload
feature for them (with the drive door open), Peter
Hurley neglected to make sure the tape had caught on
the take-up reel. As a result, a loop of tape shot
three feet in the air out of the vacuum column and
wound itself around the capstan.
The DECSYSTEM-20 press conference was given by the
totally unflappable (and not troubled by technical
details) Dave Plummer. He described the -20 as a
multiprocessor system (after all, it had a PDP-11 in
it). At the end of the demo, while he was striking
a relaxed pose against the air intakes of the CPU
cabinet, the system died with an air flow fault.
Dave never missed a beat as he described the
reliability feature that shut the machine down
before it could overheat and damage itself.
In the days of the PDP-6 and KA-10, the sales force
did not have an easy time. But one salesman knew
that a prospect was his if he fulfilled his
"Three S" rule: Smart, Sophisticated . . .and
Strange. All those years of TOPS suggest a fourth
"S": Stubborn.