The Cyber Era
Almost immediately, the new director made several changes. One of the more
significant was the re-structuring of the two assistant director positions
into a single position.
With the result that neither of the assistant directors was qualified
for the new position!
Also, all "supervisors" were turned into "managers".
Getting used to a new director, and vice-versa, can be a trying
experience. In this case we saw an extreme example when the Sigma
suffered a hardware failure shortly after the new director arrived.
It took unusually long to repair, and when one of the engineers decided
being in all night was enough, he decided to go home to get some sleep
(while other engineers continued diagnostic efforts). The director
indicated this was not acceptable, and after a few more words, the engineer
quit on the spot.
The new director started a lengthy and complex project to define
computing requirements, issue and evaluate an RFP, and select a
"winner". One of the requirements was two separate systems for
redundancy, with identical instruction sets for compatibility. One
system was to be "slow and small," relatively speaking, and the other
"fast and big". This would allow large-scale computing, without spending
the money for two expensive systems. Several million dollars (6?) was
made available by the state legislature. Eventually, around mid-1978,
the decision was made to purchase a Cyber 730 and a Cyber 760 from
Control Data Corporation (actually the bid was for a model 173 and 175
respectively, but CDC changed the model numbers between bid and delivery).
Wikipedia has an entry for Control Data Corporation
here.
CDC was one of the earliest pioneers of computer-aided instruction systems,
called PLATO, which also has a Wikipedia entry
here.
Some folks are working to preserve operable PLATO systems, see
http://cyber1.org which involves running NOS
on top of a Cyber emulator (courtesy of Tom Hunter, below).
A PLATO history blog is here.
UW was not involved in PLATO but it's an interesting subject to look back on,
especially running it today on emulated hardware.
A fellow named Tom Hunter has developed a Cyber simulator which he hopes to
sell to the few remaining Cyber sites as an alternative to keeping their old
mainframes running.
His web site is at
http://members.iinet.net.au/~tom-hunter
and it includes simulated-console screenshots and a good collection of photos.
Some folks in Germany have a collection of running CDC equipment, see
http://www.cray-cyber.org.
It is also curious to note that a requirement of the RFP was two computers
with identical instruction sets, yet the two CDC systems were not identical.
The 730 had the optional "compare/move unit" that implemented
instructions mostly used by Cobol programs such as decimal arithmetic.
This was not an option on the 760, which would emulate these instructions
faster than the 730 could execute them in hardware.
The Sigma 7 and CDC 6000 series were engineered and announced within
less than a year of each other. Yet after a 10-year run with the Sigma,
we purchased a system that was a direct descendant of the 6600,
namely the Cyber 760. Though we gained a lot in several areas
like speed and reliability, in some aspects we didn't (octal,
1960s architecture).
Many people consider the Cray-1 to be the first true "supercomputer."
However, CDC (for whom Seymour Cray worked at the time) freely used
that term in their advertising of the CDC 6000 series, for example in
an ad in September 1967's CACM.
In the past, UW had hired in-house maintenance engineers to save the cost
of vendor-contracted maintenance. With the Cybers, this policy was reversed
and CDC supplied Laramie-resident engineers, with a UW-donated office
in the Ivinson building.
For some time there were three on-site engineers though it should
be noted that CDC had a few other small maintenance contracts in the region,
and the Laramie crew sometimes covered for the engineers in Fort Collins
where CSU also had Cybers (even a Cyber 205 supercomputer for a few years).
CDC cut this back to two engineers, and eventually just one when it
became clear UW would not continue to be a CDC customer.
The CDC engineers all impressed me with their knowledge not only of the
hardware, but even of the operating system software. CDC was definitely
dedicated to helping the customer. Frequently, parts needed to be shuttled
up from Denver or Fort Collins; the Laramie and Fort Collins engineers
would arrange a meet at Virginia Dale, about halfway, and hand over the
part(s). This continued until one of them was accosted by the
shotgun-wielding proprietor/resident who thought this was a homeless bum
parked for the night; from then on, meets were done at the nearby rest area.
The Cybers were interesting systems in that they were even then "throwback"
systems. They used 60-bit words, octal arithmetic, one's-complement
arithmetic (which meant there as a negative zero as well as a positive
zero, and they were sometimes not equal to each other), non-hierarchical
file systems with seven-character file names, and used character
coding unique to CDC (not BCD, not ASCII, and not EBCDIC, it was
called "display code"). The fact that the Cyber 170 architecture used
a word length that was not a power of two caused a few problems when
programming at the bit level, and dealing with the 8-bit bytes that
everybody else used (e.g. the AMS systems and offline plotters) made
for an interesting challenge.
Along with the Cybers and peripherals was a 500k-word chunk of core
memory called Extended Core Storage, ECS. This was used partly by
programs as extra storage, and partly by NOS to coordinate operations
between the two mainframes. It also indicated, distressingly quickly
and loudly, when a fault occurred in the chilled water loop.
Cybers came with their own unique terminology, historically different
from the rest of the industry. The Central Processor was the CP, not
the CPU. The Peripheral Processors were PPs, small 12-bit processors
grafted into the system to handle I/O (the CP did not have any I/O
instructions). Central Memory was CM, 60 bits per word. Most confusing,
some terms were variable depending on context. Sometimes a "byte"
was 12 bits, sometimes 8, sometimes 6. A "record" had a different
meaning to NOS than to the Cyber Record Manager (CRM).
At the same time we were searching for new computers, it was felt that new
facilities were needed. Though the center had moved into the new Bio Sci
building less than 10 years before, there were two problems. The first was
that the staff had grown, with even more personnel expected; so there was
inadequate office space to house the employees. Secondly, the computer room
was not quite big enough to house both the Cybers and the Sigma/1401, which
would be needed during the transition period. No money was available to build
a new building, and the only available space was in the former county hospital,
already University property and known as the Ivinsion building. A large
section was remodeled, with much of the work being done on the basement to turn
it into a large computer room. This work was done in early/mid 1979.
In many respects the "new" facilities were a let-down. The building
was much older (one wing dates to 1917), did not have central air,
and the machine room was separate from the store room, with a ramp to
gain access to the raised floor. There were a few strange problems running
communications lines under Ivinson avenue, which was under city control
and the city had long before given exclusive access to utility companies;
UW could not run its own cables through its own conduits between its
own buildings!
When the county moved into the new hospital around 1976(?), they quite
literally abandoned the old building. It was originally built in 1917,
with new wings in 1937 and 1957. It sat empty for over a year until the
University acquired it, at which time they found that many of the pipes had
frozen and cracked. The fix in some areas was to hang new copper pipe
on the walls, which was done without any circulation for the hot water.
As a result, parts of the building take 10 minutes of full-blast running
before hot water shows up. And in the summer, when the steam heat is
shut off, there is no hot water (except in the operator break room, fed
by an independent heater that was installed to supply a film processor
for the FR80/A).
One thing I miss in the Ivinson Building is the smell of rain.
In the Bio Sci building, we were in the basement and hence had no
windows. But the central air conditioning system would suck in
outside air and distribute it all over, and when we got a summer
rain shower the distinctive smell would tell you that it was raining
outside. Ivinson has terrible heat (many rooms are plumbed "in series"
with consequent fighting over who controls the manual valve) and outside
of the machine room, no cooling.
OK, this isn't even computing, but one day UW decided to mount bird
houses around campus, and somebody in BioSci was to build them. He
took them outside to varnish, presumably to avoid bothering people
with the fumes. But he did this right next to the building air
intake and thus subjected *everybody in the building* to the fumes.
Must have been a PhD.
We obtained a set of bit-twiddling routines written in assembly-language
(COMPASS) and hand-optimized for Cybers such as the 760, which had
parallel functional units. These were general-purpose routines, and
I felt that for specific purposes such as packing/unpacking 8-bit
bytes the performance could be better. Using these routines as a
starting point, I wrote some COMPASS routines that were more specialized
and spent a few weeks, off and on, timing and optimizing them on the
760. As a result, I believe the new routines were about twice as fast
as the general-purpose ones. Once I was satisfied that I could not do
any better, a second test was made by slapping together some Fortran code
and giving the compiler a chance to do its best optimization; this took
about 20 minutes to write, mostly to type in all the lines of shifts/ands/ors
and to compute the constants. It was a complete surprise to find that
the Fortran results were 3 times faster than my best COMPASS! I asked
for a machine language listing, and once I figured out what the heck
the compiler was doing, I could only grin and mumble "son of a bitch!"
That was around 1982 or 1983, and I don't believe I have written
any significant assembly language since. CDC's Fortran compilers were
way ahead of anything I'd even heard of in terms of optimization; only
in 1994 can I say that Digital's are at about the same level.
In 1982 I bought a Mazda RX-7 and after a while noticed the odometer
sitting at 3777 and thought "Hey, it's about to turn over to 4000."
Obviously I had Cyber on the brain. Brad Thomas tells me of a friend who
added up a bank deposit slip, but the teller came up with a different
total; after they each came up with their own answer 3 times in a row,
the friend suddenly realized he'd added it up in octal.
There was a strange instruction on Cybers called the Population Count
instruction. It returned the number of "1" bits in the argument. It
was rumored that this instruction was added to Cybers by the designer,
Seymour Cray, at the request of the National Security Agency (NSA).
There is some validity to this rumor, but it may never be proven.
It was found to be handy, however, in the Versatec rasterization software.
In order to see if a scan line is all white (all zero bits) it would seem
a simple matter to just compare each word with zero. But since Cybers
also had negative zero (all bits on), and since Fortran would indicate
positive zero equal to negative zero, this test would fail. The "NSA"
instruction was used instead and gave accurate results.
The Cybers had
interesting consoles that
would stroke-draw characters on two logical screens;
older systems
had used two separate CRTs. Since they were not raster scanned, they
would flicker badly if you displayed lots of text but otherwise were
very readable and extremely nice to use because they constantly showed
you what was going on, in real time. On the other hand, the keyboards
were terrible. The digits were in the usual position at the top but
went 0 through 9 instead of 1 through 0. The CR key was in the lower
left, where Shift usually is. Since they were based on CDC's Display
Code, there was upper case only and no shift was needed. In the upper
right were two blank keys, called "left blank" and "right blank."
What they did was context-dependent, and can be compared to programmable
function keys, like the "keypad" on Digital's VT-series terminals.
The keyboards were also a pain because they had "zero key rollover"
meaning you had to completely release one key before depressing the
next; most keyboards allow at least one key to remain down while
the next is pressed. So you had to develop an exaggerated sort of
typing style or lose keystrokes. There was also no tactile or audible
feedback from the keys. One nice thing, since the consoles were driven
by one of the PPs, they would usually continue to function even if
everything else was locked up.
Depending on what went wrong, operators would sometimes get a flashing
message "PP HUNG" or "HUNG PP" and the distinction was significant.
A few female operators did not appreciate being asked how their PP was
hung.
There were a few visual "toys" for the consoles, such as one that flew
Snoopy as the Red Baron across the screens. Another would pop up two
eyes that looked each way, then one blinked. This reportedly startled
an operator at CDC when somebody scheduled it to run on its own during
graveyard shift. At UCLA, day shift operators pulled a similar stunt
on the lone graveyard operator by placing huge fake eyeballs, teeth,
and a rolled-up tongue inside one of their IBM printers. When the
printer ran out of paper, it automatically opened up, the teeth and
eyes dropped into view, and the tongue unrolled on the floor.
As with the Sigma, much of the development and upgrade programming of
the operating system had to be done at odd hours of the day. Before
releasing a new version of the system, the sysprogs would spend weeks
at the consoles, between 03:00 and 06:00 or so, testing mods and generally
trying to avoid screwups. Staying awake was sometimes a problem and
we'd generally get a little weird. Because there were two systems and
consoles, two of us could work at the same time without interfering
very much. Brad Thomas and I would sometimes recite Monty Python
sketches at each other, much to the annoyance of Teri Oursler who could
not stand Monty Python.
Cybers were genuine mainframes in every sense. Including power
requirements. Building reliable power supplies for such high power
was not easy at the time, and CDC took an elegantly brutish approach.
First, using 3-phase power and rectifying it can greatly reduce the
filtering requirements because the ripple is at 6 times line frequency
and thus much easier to filter. Also, the raw ripple doesn't even go
down to zero volts and back like single phase rectified AC. Second,
one can reduce the filtering requirements as well as transformer sizes
by using 400-Hz power instead of 60-Hz. Such power is often used in
aircraft and some military applications, so components were available.
Including the three 400-cycle motor-generators we had to install in the
basement (one per mainframe and one spare). This now meant you could
build 100-ampere power supplies with basically three components
(transformer, bridge rectifier, filter capacitor). Crude compared to
switching power supplies that came along later, but there was no
question of reliability with 3 simple parts.
To supply the power, the power company had to put in a new pad-mounted
13kV transformer. When we put in the second chiller, they had to bring
in a second transformer.
A direct consequence of consuming so much power was the need for large
cooling systems, of which we eventually installed two. Both Cybers,
and the ECS unit, were cooled by looping chilled water through the
mainframe (or a condenser external to the mainframe).
The IBM 308x systems that came along later were similarly cooled.
At this writing (early 1995) everything is air cooled except the
air handlers themselves.
To obtain lower-case characters, and other special characters, CDC invented
"6/12 ASCII" in which they coded some characters as 6-bit entities, others
as 12 bit; not all their software understood 6/12, and the two sets were
marginally incompatible. The user address space was 128K words, and the
memory was not paged or what most anybody would call virtual. The systems
did not have any interrupts per se, but did have a Central Processor
and up to 12 Peripheral Processors that themselves were 12-bit I/O
processors. The 760 was about a 10-12 MIP system.
Though fast and quite an improvement, it seems that in
1978 Cybers were already dead-end machines. CDC did endeavor to catch
up with the industry, but more on that later.
I note with great sadness that the terrible idea of 6/12 "ASCII"
has been re-invented by the computing industry, which is now attempting
to address multiple character sets such as Chinese and Japanese, by
using multiple bytes per character. Sigh.
In order to help programmers use 6/12 ASCII or do other special
functions during output, CDC decided to allow embedding certain
"control codes" within text, as long as you did it at the beginning
of a CM word. Typically these codes began with a colon (character
code 00). So, for example, if you had the misfortune to want to print
or display a line of text that began with a colon, you usually ended
up with output that you didn't expect.
As part of the Sigma-to-Cyber transition, I wrote several utilities
to read Sigma labeled tapes, which were not at all ANSI standard
labeled format. This had to include conversion of character data
from EBCDIC to Display Code as well as binary data to Cyber 170
formats. This is one of the areas where lots of bit-twiddling had
to be done. In the Sigma era it was common for system programmers to
know a lot about internal data structures, and Xerox had documented them
fairly well. So had CDC, but those days seem to be gone now; Digital
won't even document the format of their MAIL.MAI file.
As a comparison to today's typical disk storage, on the Cybers we
would dump and reload the entire file system each week to defragment
it. It took about 3-4 hours for the whole process. This also gave us
great confidence in our backup procedures! We did the same
thing back on CP-V, and it took about the same amount of time though
the storage was around 10% that of the Cybers. Today we almost can't
dump/reload *one* disk on VMS, but I partly blame this on gross
inefficiencies in the BACKUP utility.
NOS had an interesting concept called the "dayfile." This was basically
a log of all the commands a job/session executed, along with whatever other
information the programs/compilers/utilities felt like including. It was
time stamped, which helped a lot. Each job or session had its own dayfile,
and in the case of a batch job would print at the end; this was nice because
a multi-step job's output would not be cluttered with the commands. NOS
also kept a system dayfile which was a merged chronological copy of all the
user dayfiles (messages *could* be written exclusively to one or the other,
though many went to both) and this was a help in tracking pests. A separate
accounting dayfile was kept as well.
The accounting dayfile was processed by locally-written Fortran programs,
and demonstrated a subtle programming oversight that likely will cause big
problems on January 1 2000. The accounting dayfiles were processed and
resulted in files we decided to name something like "ssddd"
where "ss" was the system id (76 for the 760, 73 for the 730,
and 83 for the 835/840) and "ddd" was the Julian day of the
year. I can't remember if the year was in there also. The programs
were written in late spring or summer, and ran fine until January 1 of
the next year. At that time, the Julian-day code encoded the date as
" 1" which meant it tried to create a file, for example,
"76 1" which was illegal because of the embedded blanks in
the file name. The cure was simple: change the FORMAT specifier from
I3 to I3.3. But it certainly surprised us. I'm sure a few programs
will fail (globally) on 1/1/2000 (an interesting Web page on this topic
is http://www.year2000.com/.
NOS showed its heritage by supporting an older control language called
Kronos Control Language (KCL), which the manuals always claimed would go
away some day. Imagine our surprise when one release, it actually did!
Benchmark: In November of 1983 we upgraded the dial-in modem pool from
300 baud to 1200 baud. In February of 1987 they were upgraded to 2400 baud.
Random story: One of our operators was reading our operators guide
called the Cybible, and found part of a paragraph he knew was not
correct, and proceeded to completely obliterate it with a black felt
tip marker. Then, on further reflection, he realized it *was* correct
and circled the black section and labeled it "OK".
In a desperate/bold (take your pick) move to upgrade service at no cost,
we entered a limited partnership with CDC to help them develop CDCnet,
their initial ethernet venture. We donated two programmers who went to
work for CDC in Minneapolis for one year. In exchange, we received several
pieces of hardware called Device Interfaces (DIs). Some interfaced the
mainframes to an ethernet cable, and others were terminal servers. Because
there was no campus network yet, the terminal servers went straight into
the existing Gandalf PACX. The two employees wrote a couple of Terminal
Interface Programs (TIPs) and were also responsible for an additional year
of maintenance on the TIPs after returning to Laramie.
During some of the CDCnet development, UW would upgrade NOS every week
or two; this is known in the trade as "hectic" and was a challenge to
streamline the process of building new deadstart tapes from a raw
release. In all, the effort
fell flat because we didn't spend much more time with CDC hardware, and
didn't have any real network yet. This was around 1984-1986.
We all get a chuckle out of the cornerstone of the original
building, still in place (ed: the Ivinson Building was demolished in 2011), as it relates to computing:
DEDICATED
IN THE NAME OF HUMANITY
TO THE RELIEF OF SUFFERING
JUNE 7, 1916
To protect the computing equipment, a Halon fire extinguisher system was
installed (a smaller system had also been installed in the old Bio Sci
center). This was before the "ozone hole" problems were known.
This was a large system with two big tanks in the basement, and plumbing in
both the ceiling and floor to discharge the Halon. It also shut down the
air handlers as well as the power for the Cybers. This system discharged
twice so far. The first was a test mandated by our insurance company,
which was carefully monitored. I was here to observe it, and can testify
that a Halon discharge is pretty exciting to watch. When it was done,
we walked into the room to check for damage (none). Halon, being a
dense gas, will lower your voice; the opposite of Helium. After maybe
ten minutes I started feeling a little light-headed and decided to leave
the room. The second discharge was a malfunction and surprised lots of
people. There had been a power failure; when the power came back on
the Halon simply decided to discharge with no warning (there's supposed
to be a warning period first, confirmed by the intentional test). Two
workers from Physical Plant were in the basement at the time and when
the Halon tanks discharged and started jumping around in their restraining
straps, the two decided to leave quickly. Our on-site Digital engineer
was in the computer room, and ran out as fast as he could because he'd
heard horror stories about the evils of Halon poisoning (all false, but
he didn't want to hear about that). Later the same morning he still refused
to go into the room, knowing there were deadly gasses; he then tried to
light a cigarette in the hallway, but it wouldn't light because there
was enough Halon in the hall to prevent it; we chided him quite well
over that!
The NOS file system was quite unique. There were Permanent Files that
stuck around on disk from job to job. Distinctly separate were Local
Files that belonged just to a particular job. So, to compile a program,
you had to GET the file (copy from permanent to local), compile it (the
object code would be a local file), and run it (it was implicitly linked
in CM). If the program generated a result file, the job had to SAVE the
local file (copy to permanent storage). This was nice because a job that
aborted did not typically mess up permanent files; it had to complete to
get to the SAVE statements, depending on how it was written. The files
that you had to GET and SAVE were called Indirect Access files. This did
not work well for very large files, such as databases. So there were also
Direct Access files which a job could ATTACH and RETURN, allowing update
in-place. Whether to make a file indirect or direct would depend on usage
and size, a decision left up to the programmer. We saw huge indirect files
and trivial direct files.
The files themselves obviously held data, but there were two levels of
"markers" that could be used as separators. The first level was called
EOR (End Of Record), a very unfortunate use of the word "record" that does
not match common usage (or even usage by the Cyber Record Manager). The
second was EOF (End Of File), again an unfortunate use of the word "file"
and definitely not the end of the file. The absolute very end of a file
was called EOI (End Of Information). A file could contain any number of
EORs and/or EOFs in any sequence, though most applications used EORs, and
sparingly at that. One might compare these with magnetic tape, with EORs
analogous to interblock gaps, EOFs to tape marks, and EOI to the end of
meaningful data. EOR/EOF/EOI also had meaning on card decks, with oddball
multipunches such as 6/7/8/9 for EOI.
One of the larger mistakes we made was picking a default character coding
for labeled tapes. On the Sigma, the only real choice was EBCDIC. CP-V
only grudgingly supported ANSI labels, and only very late in life. Having
EBCDIC on the brain, we set NOS to use EBCDIC by default. When it came
time to migrate to VMS, all the user mag tapes were unlabeled as far as
VMS could tell, which made the transition a bit harder.
The Cyber 730 was installed by September 1979. The 760 was installed
in February/March of 1980, and the Sigma 7 was finally retired from
service on June 1. The Sigma and 1401 were used as trade-ins on the
CDC equipment; CDC disposed of the 1401 via the landfill, and the Sigma
was sold by CDC to a dealer specializing in used Xerox equipment.
The former computer center offices were quickly taken over by Duplicating,
and the machine room was taken over by the Science Library.
Shortly before shutting down the Sigma, I re-assembled all of the
operating system modules and routed the listings to tape. Years
later, when we acquired the FR80/A microfilmer, I copied these to 48X
microfiche.
Before the Sigma was retired, a final save of all disk files was made
to tape, to help out users who might have *thought* they transferred
everything they would need but were wrong, and those users who simply
weren't aware
a change was being made (I usually refer to these as faculty on sabbatical
on Pluto). We also dumped to tape the contents of all the user-owned
removable disk packs.
I never did understand this, but we did announce that all disk files
would be saved on tape for later restoration, while we did *not* state
that we were going to dump the private packs to tape. Perhaps there was worry
about accessing user "private" information. It seemed to me to do little
good to save private packs and tell nobody we did so. In one case a user
mentioned to me that he had spent quite a bit of time re-creating such
data (that he had not saved prior to the Sigma's death), and was quite
irate when I told him we had that data on tape.
The change to CDC presented performance and reliability upgrades that
were simply startling, especially to old-time Sigma programmers. One
thing that CDC definitely did right was build hardware. Most of their
equipment bordered on being masterpieces of both mechanical and electronic
engineering. The tape drives were much faster, and the jump from 800 bpi
to 6250 bpi was outstanding. After a few years, one of the CDC model
580 line printers was upgraded with a 96-character train (late 1984).
The card readers were fast. The CPUs were fast. It was a real eye-opening
experience, dulled only by the extreme workload of converting software
or just raw concepts from the ancient systems to the Cybers, and the
annoyance of working within new constraints that weren't there before.
But the increase in computing was over an order of magnitude.
A small curiosity is that the CDC line printers were 136 columns.
The rest of the industry had settled on 132 columns, no doubt a number
chosen by IBM that everybody else except CDC chose to copy. I don't know
why CDC used 136 but it probably dates way back to their earliest systems.
Communications equipment was changed during this time. Most lines to the
Sigma's front-end were leased lines with dedicated modems on each end.
With the Cybers, a Gandalf PACX unit was installed in front of CDC's
front-ends (Network Processing Units) which allowed users to easily select
which computer to connect to (Sigma, Cybers, AMSs) and to select the
desired baud rate as well.
Because there was no direct interface available to connect the Versatec
plotter to a Cyber, a tape drive and controller were purchased and the
plotter was run as an offline device via 9-track 1600 bpi tapes.
During this time, an alliance was formed between the University and
the seven community colleges throughout the state, called the Wyoming
Higher Education Computer Network (WHECN). The basic idea was that
the University would act as a central maintenance point for college
hardware. At that time, both UW and the colleges used Microdata
minicomputers for administrative computing; the colleges used Harris
minis for academic computing, but would have access to UW's Cybers.
If a college computer failed, UW engineers would first consult via
phone to attempt a resolution. Failing that, a "hot spare" system would
be loaded into a van and driven to the college; if the engineer could
not quickly fix the college's system it would be swapped, and the broken
system taken back to UW for repair.
As noted, the Cybers used an antiquated architecture. CDC was way behind
the industry which had long before adopted hexadecimal twos-complement
arithmetic, ASCII character coding, much larger address spaces, and
hierarchical file storage. In an attempt to catch up, CDC designed a
completely new Cyber 180 architecture that included the ability to imitate
the older Cyber 170 architecture. This included a new operating system called
NOS/VE (NOS Virtual Environment). Unfortunately these were still large
mainframe systems in a world going to smaller packages, and NOS/VE was a poor
performer initially and not a very friendly system at that. It would be
interesting to see what would have happened if CDC had at least ported a true
Unix (AT&T or Berkeley) to the 180s instead of writing their own operating
system from scratch.
When we moved out of the Biological Sciences building, the science library
expanded into what used to be the machine room, and inherited our old vault.
They placed valuable volumes in it, those that required limited circulation,
and other items. However, one day somebody locked the door, and nobody there
remembered the combination. They called over to us, hoping we might have
a record of it, but we couldn't help them. I understand they had to call
a locksmith to open it up. Shortly after that, we "re-acquired" the vault,
to be used as offsite storage for backup tapes, and the library vacated it.
About two weeks later I stumbled across a piece of paper with the old
combination on it.
One day I received a call from the administrative application programmers,
explaining that they had found an apparent bug in the Cobol compiler. One
of them had written a program to correct a previous problem that caused
a field in some records in a database to get negated. This new program was
a one-time fixer-upper, and it read each record, correcting the field if
needed, and then wrote it to a new file. It was a very simple program but the
records would have the field trashed rather than re-negated. Perhaps
because I never really learned Cobol, I looked up many of the statements
in the manual to be sure I understood them. The key statement looked like:
<if needed> MULTIPLY FIELDX BY NEG1
where NEG1 was defined as a constant, valued -1. The full syntax, though, is:
MULTIPLY a BY b YIELDING c
and if you omit the YIELDING, the result replaces "b". So after the first
multiply, NEG1 was replaced. I pointed this out to the programmers, who
thanked me.
One of the system programmers didn't show up for work one morning. After
lunch the manager called to see if he was OK, and was told that he was fine
but that he decided to quit. This was the only time I've ever seen an
employee give -4 hours notice.
One of our managers, who started as a programmer about the same time
I did, was very worried about protecting a 9-track tape. We had the
convention that operators would never write-enable a tape unless the
console said to (based on the user request), but if the tape had a circular
red sticker on it, then never put in the write ring no matter what. This
person placed red stickers all over the back of the tape, intentionally
blocking the slot for the write ring. But as far as the tape drive was
concerned, this was equivalent to a write ring because the mechanical
sensor could not detect the slot! Luckily for him, NOS would object if
a user requested a tape for read-only access but detected a write ring
(or if the tape was to be written on but no ring was present), so NOS
complained about the situation and thus brought the folly to our attention.
Each Cyber had a control panel for environmental control, called the
TMPC (Temperature/Monitor/Power Controller?). It had lights that showed most
possible errors, such as chassis 3 high temp, chassis 1 low temp, dew
point alarm, dew point shutdown, power faults, and so on. Each of these
conditions matched a bit in the CP's status/control register. Depending
on the severity of a condition, it might be a warning, or an error that
triggered a system shutdown. On this panel there was a push button
marked "lamp test", and well above the button
(due to the design of the
panel) a small yellow sticker warning that the button is to be pressed
during maintenance periods only. The reason for this is that it tested
the lamps by simulating every error condition the panel could handle!
In the process, the central processor would see every register bit come
on, panic, and shut down. Twice, the operators pressed this button and
unwittingly shut down the 760.
In addition, after both of these events,
the operations manager did it while teaching people how to handle surprises
in the air conditioning system.
Once I was looking over the source code for a local utility called SUPER
and found one line with an incomprehensible comment. The programmer who
had written it had left. After some head scratching, my manager finally
figured out it had been typed blindly, with the right hand shifted one
column to the right on the keyboard. So we were able to "decipher" it.
Around 1983 a color microfilm system was acquired, a model FR80/A from
Information International Incorporated (III, pronounced "triple-I").
This was a very capable system, but finicky. We purchased it with the
ability to do 24X and 42X color microfiche, 42X and 48X B&W microfiche,
35mm and 16mm movies (B&W or color), and 35mm slides (B&W or color).
It was fed via 9-track tapes. Initially we did our own color film processing
right in the building, but this was later retired and a smaller processor
was installed in Photo Services in Knight Hall. Around 1992 the FR80/A
was replaced with a LaserGraphics system to do just slides.
I'm pretty certain that the main driving force for the FR80/A, outside of
our own director, was a certain professor in Physics who was quite
influential and had a way of getting juicy research grants. Aside from
being involved in the initial talks, he was almost the only person who
ever used 24X color microfiche. And, strangely enough, the director had
insisted that 24x color microfiche should be our top priority with 2-hour
turnaround max. This meant leaving 35mm slides for the evening shift.
But 99.9% of all work done was 35mm slides!
We did do a few movies, the most notable being an animated display of
data from an atmospheric survey satellite. I fiddled around with the
Mandelbrot Set which was all the rage at
that time.
The FR80/A was quite unique. The CPU was a "home built" version of a
PDP-15 with extra instructions for controlling the electron beam logic.
It could do either vector or raster, "native". That is, in vector mode,
it actually drew vectors. In raster mode, it actually scanned raster lines
while varying the intensity. The main CRT, called the Photographic Light
Source (PLS), was a very expensive but precise white-phosphor tube.
It was focused using a small 60X microscope. III put the color filters
into the cameras, behind the lens at the "rear conjugate" so that any
imperfections in the filters would smear and thus not influence the final
product. Jack Bennet gave me a nice long story about how they designed
their own lenses, purchased a 12-year supply of one "melt" of glass, and
always had that particular lens made from that particular melt.
"Our honorable competition goes out and buys off-the-shelf Nikon lenses"
he said. I later looked at our cameras and noted they had Nikons!
Apparently the story only applied to their "big" cameras, as III was
primarily in the typesetting business. The console monitor was a large
but simple X/Y monochrome display with a long persistence phosphor, which
was slaved to the PLS circuitry. Thus, whatever the PLS was doing the
monitor would show as well (at one intensity level), and by disabling the
PLS the monitor would be used for displaying text or other graphics without
exposing film; like the Cyber consoles, it would flicker badly if you
displayed too much text. Input and hardcopy output was via a Teletype
model 43.
Over the years we ate up several of the FR80/A disk drives,
possibly due to the high
altitude. We also blew out many of the 20-kV power supplies, and a
distressing number of PLSs. This made us glad for the service contract,
though it still cost a lot of money. I was never very impressed with
the quality of their software, though they did fix most of the bugs I
reported.
Some time around mid-1984 the Cyber 730 was replaced with a Cyber 835.
The 835 was a member of the new 180-series architecture, which featured
64-bit words, hexadecimal, ASCII, and virtual addressing; it was a
contemporary machine. The 180 architecture also allowed running
in 170-architecture mode. Not by emulation, which would be slow, but by
actually *being* a 170-series implementation as well as a 180. In other
words it was "bilingual". This allowed a site to acquire a system and
to run their old software in 170 mode, and run/develop/test new applications
in 180 mode under the new operating system called NOS/VE (NOS, Virtual
Environment). Unfortunately the 835 was serial number 1 and suffered
intermittent failures that CDC could never fix. They eventually offered
a reasonable upgrade path to a newer Cyber 840, which replaced the 835.
What I can't remember at this moment is how many CPUs the various
cybers had. I do believe the 730 had a single CPU, and that the
840 had two CPUs. Not sure if the 835 had two!
When the 835 arrived, the 730 was first removed and stored. Later
it was hauled up our cumbersome loading ramp by a tow truck's winch.
One set of 730 wheels fell into an expansion joint and needed
quite a tug to proceed; but the tow truck operator had not set the
parking brake, and the truck and 730 both rolled DOWN the ramp.
The truck, being at an angle, struck the retaining wall and stopped.
At that instant, the 730 struck the brick wall at the base of the
loading area and the sideways jerk from the tow cable caused it to
fall over onto the concrete. One of the CDC engineers almost got
squashed in the mishap. The 730 was declared a total loss; at that
point it was CDC's property, so arguments over whose fault it was
went on between CDC, the tow truck, and the moving company that had
hired the tow truck. Only then did I realize the serial number of
this system was 911.
Somebody, I believe it was Dave Haas, took some pictures. I scanned the
proof sheet at 200 DPI (here) and at
300 DPI (here).
Before we received the 840, I was sent off to CDC to be certain that our
boot tape (called the deadstart tape) would actually work on the 840.
We didn't want any surprises. CDC had an interesting demo system which
could become an 840, 850, or 860 at the flip of two toggle switches.
The story I heard was that these three systems were basically the same
hardware, just different microcode. The 840 microcode had lots of
no-ops embedded, the 850 had fewer, and the 860 had none. To keep a
"pirate" site from running stolen 860 microcode on an 840, a few of the
address bus bits were swapped around between the three models. So, to
upgrade an 840, one had to make a small hardware change (move some of the
wire-wrapped lines) as well as obtain new microcode. So, it was easy
to make a demo system that could become any of the three models.
(There may have been a bit more than this when upgrading, like tuning
and "auditing" critical timing paths).
One day we tried to spin down one of the model 844 disk drives but
it wouldn't! The heads refused to retract, and the spindle motor would
not shut down unless the heads were retracted. The engineers scratched
their heads. If they simply shut down the power, it is
*supposed* to retract the heads, but depending on what was wrong,
it might not. Throughout my career I've heard vendors claim "our disk
drive will retract the heads if power is removed" yet I've seen
examples where a failure was blamed on power loss.
So, rather than risking a head
crash, they looked over the logic diagrams and even called CDC in
Minneapolis to get a consensus on which of the many circuit breakers to
trip first in order to ensure a head retraction (possibly manually),
before powering off the drive for repair. It worked fine, and I was
again impressed with CDC's efforts to give the customer good service.
The 760/730 combination was run in a mode called MultiMainFrame (MMF).
This was roughly analogous to Digital's VMScluster concept and allowed
a common file system. The 835 and 840 did not support this, and so
the systems were split and maintained separately, though most of the
work was in fact common to both. Moving files between the two systems
then became a problem for some users, and one common method was to
use the output queues because the queue management system did know
about the "other" computer and how to efficiently move files from one
to the other.
We experimented with NOS/VE to see if that was the path of the future
for UW. We found it a disappointment. The command language was cumbersome,
though consistently so. The performance was not good, and the software
was not "all there" and suffered from the usual reliability problems of
new products. We ended up shutting down NOS/VE without ever releasing
it to our users.
One interesting thing about NOS/VE was that any executable was automatically
shared, as long as it was part of a library. In contrast, on VMS to make
an image shared, the system manager must run the INSTALL utility.
A technical problem with the 835 and 840 was the fact that they had
an instruction pipeline which prevented self-modifying code from
executing correctly. Older compilers, and some assembly code, used
this dangerous technique as a normal method, not knowing that future
systems would render this invalid. If this was suspected to be causing
incorrect results, it was easy to turn off for comparison on a per-job
basis, by the user (at the expense of increased run time).
I heard of similar problems on the Xerox Sigma 9,
which also had an instruction prefetch.
At some point in NOS' lifetime, CDC hired a consultant to see what they
could do to make it more user-friendly. One of the most visible changes
centered around the variety of "illegal" messages such as "illegal
control statement"; the word "illegal" was changed everywhere to
"incorrect."
One way CDC made a living was to compete in the IBM peripherals market,
mainly disk drives. When IBM invented Winchester technology, CDC
quickly went to work reverse-engineering it to come out with their own
models. Each time this happened in the past,
they also did the engineering to make
new drives work on their own mainframes, seemingly as a side-effect since
the market was so much smaller. A key issue of the Winchester drives is
that the heads are not withdrawn for a spin-up or spin-down, they land
on the surface. To make this work, IBM had come up with an extremely
thin film surface lubricant, which CDC could not quickly perfect or
copy. By the time they did bring the disk drives to market, IBM had
already slashed their own prices and CDC could barely compete, if at
all. To the CDC Cyber customers, these disk drives were known as the
model 885 and had two 600-megabyte spindles per unit. We had two 885s,
or 4 spindles. Apparently the lube caused some more problems. If the
drives sat spinning on one cylinder for too long, the lube would "squash"
out from under the head and form small ridges on either side. If you then
did seeks back and forth across this, the heads would wobble, like water
skiing across the boat's wake. In some cases this caused head crashes.
The short-term fix was to modify the operating system to occasionally do
random seeks on idle disks. The long-term solution was to incorporate
this into the controlware. I believe many modern disks do this, though
not necessarily for the same reason.
By early 1986, it was decided that the old off-line black&white Versatec
needed to be replaced. Though it was hoped UW could obtain a color plotter,
funding only allowed the replacement to be another off-line black&white
Versatec plotter. The main improvements were 400dpi instead of 100dpi,
and 24-inch paper instead of 20-inch. The new plotter, a model 7424, also
initially had much better quality and contrast. It was driven by an
RPM 850 rasterizer that allowed the rasterization to be offloaded from
the host.
The initial RPM had 4 megabytes of memory, which proved to be
inadequate, and it was upgraded to 8 megabytes. The only user who exceeded
this with any frequency was a UW artist, in which case she simply re-ran
her programs with slightly different parameters. When the new plotter
was acquired, Versatec accepted the old unit for inclusion in their
in-house museum because they didn't have any examples of units so old.
The 7424 was released to users in late 1986.
Due to a lack of adequate maintenance, the plotter's quality steadily
declined. On a few occasions we even hired Versatec to come in and
improve it, which they couldn't. As the quality went down, users stopped
using it. Then, management said "look, nobody is using it, so we
can just shut it down and stop offering that service."
One of the problems UW had with the Sigma was the bad experience of buying
a computer from a company, watching that company get "swallowed" by a
corporate giant even before delivery, and later seeing the remains of
that computer company tossed aside and acquired by another company. This
left a poor impression of buying a "non-name-brand" computer, and when it
finally was time to replace the Sigma, there seemed a big push to buy a
"real" computer, a big-name computer, from a company that wouldn't disappear
or suffer a merger like that of SDS/XDS. Though that new computer would
be purchased from Control Data Corporation, certainly a large and stable
name in the industry, it was humorous to note that more Sigma 7s (just
the 7s, not including all the other Sigma models) were sold than all the
systems CDC ever sold. In the long run, it is interesting to observe that
CDC suffered and basically closed down, showing that the urge to go with a
big stable company did not work out anyway.
By late 1985 UW had connected to Bitnet, thus joining the outside world
via e-mail and IBM-style file transfers. This indirectly gave us access
to Arpanet, the predecessor of the Internet.
At the end of 1985 the Cyber's 7-track tape drive was removed from service,
and most of the keypunches had also been removed. The Cyber card punch
was supposed to be dropped in late 1986 but the inability of several
Campus offices to switch to new applications on other platforms repeatedly
delayed this. The punch was eventually dropped from the maintenance
contract but remained connected until the Cybers were removed.
There was a joke memo circulated around the CDC fraternity which we
often quoted by simply saying
"see figure 1". I believe
it actually originated within Digital Equipment Corporation, and CDC
and IBM both adapted it to their terminology and letterheads.
One day the Cyber 760 started acting strangely. Subsystems hanging or
aborting, programs behaving strangely. NOS was moderately unique in that
it allowed running most hardware diagnostics under NOS, not just standalone.
After firing up some of these programs, it was discovered that there was a
hardware fault in one of the floating-point instructions, at which point
we immediately took the system down for repair. After that, we fired up
these diagnostics for a few seconds every hour or so, using a scheduling
package from CDC's engineering group. That package was annoying because
if you set the system time back even 1 second, it would conclude that almost
24 hours had elapsed and fired off a day's worth of jobs!
It also pointed out the frequently-tried futility of setting non-interactive
priorities lower than interactive. Problem is, if there is enough
interactive usage, a "hard" prioritization scheme will completely lock out
the lower-priority usage. One day I looked at the 730 and noticed that
there were dozens of the quick hardware diagnostic jobs, all of which had
made zero progress because their default CP priority was below that of
interactive users. We tried this on CP-V, NOS, and later VMS, each time
with the result that it wasn't a good idea.
Have you ever seen an
"aperture card?"
This is a standard-sized computer
punched card that has about a one-inch hole in the middle, into which is
glued a piece of microfilm. This allowed filing documents/blueprints
on cards, which could be sorted/collated based on the usual punched holes,
or placed in a microfilm viewer and/or reproduced. One day somebody from
the Air Force base in Cheyenne called, wondering if we could read the
cards (of course this meant the punched data, not the images). This was
a new one on us, so we suggested they bring some over and we'd try. The
logic in a CDC 405 card reader
did not like the hole in the middle, as it
set off the "end of card" photodetectors. Our resident CDC engineer,
Ken Aksamit, tried several quick logic changes to make the reader accept
the cards (hey kids, try that on your PC!) but it wasn't a simple task.
In the end we gave up, but it was an interesting experiment.
By now, it was becoming clear that
CDC was a losing proposition. In a last gasp to stay in business, CDC published
this ad
to prove to everybody they knew what they were doing. Unfortunately, this phoney ad
seemed to be closer to most people's perceptions. They
were failing to maintain their user base, and had long been lagging behind
the rest of the industry in many respects. The Cyber 180 series was a
good attempt at playing catch-up but this was blunted by the non-acceptance
of NOS/VE.
After we abandoned CDC, as the years went by, CDC was clearly
in financial difficulty. They would occasionally sell off their successful
and profitable divisions (CDC Credit Corporation and the magnetic peripherals
division are examples) in order to shore up the "core business"
which was mainframes,
in an era when mainframes were thought to be on the way out. Eventually
CDC folded, and the last vestiges of the computer business became Control
Data Systems which basically is a value-added reseller of other's
workstations. It's also sad to see Digital Equipment Corporation doing
some of the same tricks (e.g. selling off their disk drive division in
Colorado Springs to Quantum, 1994) and one wonders if DEC will recover,
after watching CDC.
Around mid-1984 the division director resigned, and we once again went
through the steps to find a new director. As happened the previous time,
the new director would end up making significant changes. This time the
Cybers would be removed, and newer, drastically different hardware would
be installed to provide central academic computing.
Next: IBM makes an entrance