In 1972, computers filled large rooms, consumed enormous power and costs millions of dollars. As a 16 year old boy in a rural Minnesota, I was lucky when our high school got access to a Control Data Corporation timesharing system. Our algebra teacher Gerald Polly set it up, and for a few months our programs had to be mailed to a nearby college to be typed in and run. But soon we had our own teletype with a 110 baud modem.
Computers were not an everyday part of life then, and my image of the distant mainframe was colored by science fiction movies like Colossus: The Forbin Project. The first time I typed to the computer I was somewhat intimidated, but soon I was fascinated. The class was taught BASIC, a toy languaged used to teach programming. After a few weeks, I borrowed a FORTRAN manual form the Rural Electric Cooperative and switched to that, a real-world language invented at IBM for scientific programming.
Computers are remarkably fun. People enjoy building things and seeing them work, they enjoy solving puzzles, they enjoy improving and polishing a creation. Programming is quite satisfying in all these ways, and because computers are such general-purpose machines, we still have no idea what the creative limitations are.
In 1974, I attended the University of Minnesota, where they had several Control Data computers, including a powerful CDC Cyber 74 mainframe. This was one of the most brilliantly designed computers of all time. Seymour Cray’s ideas of multiple functional units and pipelining are essential elements in modern processors like the Intel Pentium.

Control Console and Tape Drives Disk Drives, CPU and Friend Jeff Drummond

In nearby Madison Wisconsin, members of a protest movement had recently blown up a science building, killing a student. Computers were also a favorite target for activists, and so the University had moved its machines to a remote and little-known location. I didn’t get to visit and photograph the site (see above) until after I graduated. But Control Data was very good at networking and communications, and we accessed the machines through card-reader stations or interactive teletype terminals.
In the 1960s and 1970s, this was a good place to be. Minneapolis was a major center of computer technology then, the home base for Control Data Corporation, Univac, Honeywell, Burroughs, and important branches of many other companies like IBM.

Timesharing operating systems take turns working for a moment on each user’s task, amortizing the expensive computer over many customers. This idea was worked on widely in the early 1960s, at System Developement Corporation (SDC), MIT, University of Michigan, Dartmouth College, and others. With its focus on ease of use, Dartmouth’s BASIC timesharing system was probably the most important and influential on industrial practice, adopted by General Electric, HP, Univac, CDC, and probably others.
At CDC, Dartmouth’s concepts were extended into a powerful multi-language system called MACE, and later KRONOS. Those operating systems were beautifully designed and programmed, with much work by one professional programmer at Control Data named Greg R. Mansfield. Using parallel tasks running on the central processor and 20 peripheral processors, KRONOS could serve hundreds of concurrent users on a machine that only ran at 10 MHz. This kind of efficient programming was extraordinary (in contrast, the MULTICS system developed at MIT was so inefficient that only a couple users could work at once).
Like most colleges, we had a “hackers” club, the Meritss User Group (MUG). Jeff Drummond and I were the two members at the Morris campus. The University gave us privilaged accounts and minimal supervision. Programmers would work in the computer center until it closed, then move to a nearby commissary and unroll listings and talk until the small hours of the morning. My big projects were a LISP interpreter, written in 6600 assembly language, and COINNET, the encrypted bulletin board system used by MUG. The way the club’s mentoring system worked, I had a MUG account, a younger student named Harley Grantham shared it, learned the ropes, and then took over when I graduated.

43052 UNBIND MX0 -18
5010000000 SA1 A0+0
20036 LX0 30
6130000001 SB3 1
6221000000 SB2 X1+0
56120 UNBIND1 SA1 B2
54203 SA2 A0+B3
63210 SB2 X1
20136 LX1 30

The CDC 6600 had a 60-bit word, a number chosen by Cray and the Babylonians, because it is divisible many different ways. Machine instructions are 15 or 30 bits long, so good code was written to make sure each word was completely filled, as seen above. There were parallel functional units for shifting, loading memory, addition, multiplication, boolean operations, conditional branches, etc. So it was a challenge to keep all the units busy, doing an instruction every clock, without stalling on register conflicts or busy units.
Hacker cultures are really youth gangs — kids trying to initiate each other into a craft, but often without the guidance of older professionals. Actually we did have a mentor whom we never met in person, G.R. Mansfield, the author of CDC’s operating system. Mansfield did clever, sometimes startling things to maintain a flow of nonconflicting simultaneous computation in the functional units. On a larger scale, the overall design of his systems was elegant and efficient. His programs were also neatly written and commented, a serious effort made to be readable by other programmers. This was a great example to follow, and most MUG members wrote code that was cleaner and more professional than typical hacker style.
It is interesting that Control Data included the source code of their system, as part of their online documentation. Computer hardware was so fantastically expensive then, the operating system software and compilers were viewed as free accessories. Futhermore, the software was highly machine dependant, and so Control Data didn’t worry about IBM or Univac stealing their software. When hardware costs dropped to the levels of software development costs, the economy of the industry turned upside down, but nobody foresaw that in the 1970s.