If you like attention, try banging around a mainframe room with a ten-foot ladder. That’ll get people’s attention real good.
In the 70s I landed a programming job. My office was behind the glass wall of the computer center, behind the machine room, behind the IBM system programmers with their channel speed 3278 terminals, behind the IBM and Control Data field engineers, behind the lowly admins. In fact, my office was a corner of the basement, cornered off using a partition propped up using two tables.
I had a Datamedia terminal on my desk. It was a clunky beast with a tiny screen and a metal-encased keyboard that was at least two and a half inches high. Pneumatic chairs would have been a great help, but all I had was a grey metal thing padded in green vinyl. No matter how much I spun that little threadbare seat, I couldn’t get it high enough for my wrists not to hurt. (I’ve never had carpal tunnel issues in 40 years of coding. Go figure!)
For those who are too young to remember, and I suspect that’s about all of you, for a long time people interacted with computers through teleprinters. This began in the 1910s, and for a short while, I used a model 33 Teletype. It clattered away, making marks on ugly tan paper.
The world’s first computer console was in the first operational computer: the Cambridge EDSAC. It used a teleprinter with paper tape. Newspapers used them for their wire services to the point where it’s a film cliche to show teleprinter clattering away, symbolizing the spreading of news. There was a global teleprinter network called Telex that one business could use to send messages to another. When I started, business to business ads in magazines would include Telex numbers below their phone numbers.
I also used the Model 43. When compared to the Model 33, the 43 was as futuristic as the Apollo Command Module. The Model 33 was more like Buck Rogers’s interplanetary vehicle. The 43 ran at 30 characters per second, not the snail’s pace of 10 characters per second like the 33.
But my Datamedia box in the basement behind the machine room ran at 120 CPS, which at first seemed blisteringly fast. I had to read quickly to catch each line if I wanted to keep up with the characters as they emerged. But never let a bird dog get into some rabbit—they’ll never want to fetch birds again.
I made the mistake of visiting my buddy Charlie Stitcher. He was a systems programmer on the IBM side. My Datamedia was connected to the CDC Cyber 70 mainframe. He used a terminal from IBM that could have been straight out of 2001 A Space Odyssey.
The terminal was called a 3278, and it was big. It had a beautiful beige terminal with a large video tube that displayed crisp green characters. The keyboard was cast metal and looked sleek and thin compared to my Datamedia. I’m sure it cost a lot more too.
Even more impressive, Charlie’s 3278 connected directly to the mainframe’s channel in what was known as a “channel speed 3278.” The Datamedia sent data at 1200 bits per second, this monster just dumped the data into the control unit connected to the 3278. Screen -fulls just appeared with each hit of the send key.
It’s hard to get the boy back on the farm once he’s seen Paris, and sure enough 120 characters a second seemed unbearably slow as they clunked along my Datamedia’s screen.
I happened to mention this to another Charlie, a Control Data systems programmer named Charlie Hawkins. He told me about a 9600 baud port on the tieline and explained that the CDC Cyber was connected to a statewide network of packet switches (pre-Ethernet days) which allowed students from all over the state to use the mainframe.
“I doubt you can get 9600 baud to work,” he said. “You’re too far away.”
But it was a start! Soon I had permission to run a wire from the tieline directly to my office.
Usually I stayed out of the machine room proper because there was a hallway that led straight to the back where my office was. And I’d only used the big CDC console once. It sat prominently in the machine room with two large round cathode ray tubes with a font rendered by X, Y coordinates, like a laser show. They looked almost hand-lettered.
One day I had a program that was stuck in an endless loop, and I couldn’t tell where it was hung. I had an idea. I went to the console, locked my program in memory, then displayed the memory in real time on the display. I quickly saw where the program was hung based on the variable values in memory. I killed my job and left.
I heard about that one because, as it turns out, it’s not a good idea to make every program in the state system wait while I debugged mine.
I didn’t get in too much trouble. My boss thought it was clever and didn’t want to discourage me, so he gave the long-haired kid a pass on this one. I was also advised to stay out of the machine room.
The terminals of the day used seven-wire Belden cable to do something called RS–232. One wire was data going to the terminal, another was write coming from the keyboard, a third wire was the terminal saying it was ready, and there was one to tell the terminal that the tieline was ready, and so forth.
There was one ground wire that the voltages of all the other wires were measured by. Voltage is the measurement of potential between two points in a circuit.
RS–232 used positive and negative 12 volts to send data back and forth. The Datamedia terminal, like a lot of terminals of the day, used ASCII to encode the characters. We still do today. You’re looking at UTF–8 right now, a superset of ASCII, thanks to Ken Thompson’s genius—he invented UTF–8.
All this RS–232 stuff evolved from the Teletype’s “current loop.” Even the language in RS–232 is derived from this earlier technology. Early telegraphs used a long distance wire circuit with an electromagnet, a strip of paper, and a pen on one end, and a button on the other. Press the button and the current flows through the wire and makes a mark on the paper. Release it and there’s a space on the other end.
The teleprinters kept this principle. When you pressed a key on a Teletype, it sent a sequence of ones-and-zeros, which is in essence a sequence of marks and spaces. 1 is a mark and space is 0.
The appropriately named start bit was a space at the beginning that started a rotating commutator in the receiving teleprinter. A stop bit meant that the line has to go back to the mark to look idle and let the receiving teleprinter reset its commutator.
The nice thing about the current loop is that it doesn’t matter how long the wire is. Voltage drops in a long wire. No matter how excellent that copper wire is, all conductors have some resistance and in this case, it’s in proportion to length. Longer wire means more resistance and more voltage drop. They call it “attenuation.”
For the current loop, the attenuation doesn’t matter. If there’s current, you’re good. But RS–232 is based on voltage. A mark is –12 and space is +12 (technically each is between –3 and –15 or +3 and +15). The longer the wire the more the voltage drop, and it was a long way to the 9600 baud port in the tieline.
I found the wire, a 1,000 foot roll of grey cable about 3/8s of an inch, uncoiling itself from the middle of a cardboard box.
I also found a 10-foot aluminum ladder to use as I ran the wire up and over the acoustic ceiling in the machine room. I knew what I was doing with the ladder, the ceiling, and the wire because of my father’s burglar alarm and audio businesses. I had spent my share of time standing on the last step of a 10-foot ladder, knowing how hard I could toss a coil of wire without toppling. Not grabbing the suspended ceiling when you’re falling is an almost impossible urge to resist which results in unhappy consequences for a large section of the stuff. It’s the kind of thing you see on YouTube these days.
My supervisor picked up his home phone around 8:00 pm. “Hello?”
“That long-haired kid is in the machine room again!” came an irritated voice on the other end.
“What’s he doing now?”
“He’s running some sort of wire, banging around with a ladder.”
“Has he hurt anything?”
“No, but he’s all in between the 370s and the 3033s, heading for the CDC machine.”
“It’s okay. He has permission.”
It was well past midnight by the time I had the wire to my corner of the basement and finished making the end of the cable. In those days, you used a crimping tool to squeeze little pins on each wire and then inserted them into a D-shell connector, putting the pins in the correct hole. There was a little tool that let you push in the pin from one end, and the other would free it so you could move the pin in the correct hole.
I never got it right the first time.
Then came the moment of truth. The cable was in. I click on the power to the Datamedia. I held my breath and hit the return. Instead of “WELCOME TO THE UGA CYBER 70/74” I only got a few junk characters, a few letters, some punctuation. Oh, no. It doesn’t work.
Then I wondered why the junk characters were shorter than the number of characters that should be in the message. They weren’t just the wrong characters. They were only about a quarter of the characters I expected. Let’s see 9600 baud divided by 1200… ah, ha!
I turned the Datamedia around and flipped the small dip switches on the back to change the baud rate of the terminal from 1200 to 9600, spun the terminal back, and powered up. When the screen faded up to full bright, there it was. The banner and login print.
Turns out the very long cable, the Datamedia, and the tieline all got along great. I now had 9600 baud at my desk. It wasn’t like Charlie Stitcher’s channel speed, but after years of 300 baud Silent 700s, acoustic couplers with handsets, it was almost as good.
My hair is still long. Or I should say long again. I still use RS–232 since all our products use it as a console. We also use it for debugging. Our primary debugging tool is the print statement. The video disappears when a system panics and reboots so the serial port gives us a record of what happened in its dying moments.
That night, I left the building about 2:00 am, climbed into my ’77 Honda Civic and drove the three miles home. I felt a tremendous satisfaction that I wasn’t limited by what others said could be done. I dug in and found out what really can be done. Years later I ran into an Edwin Land quote that rings very true, even today:
“Consider ‘conventional wisdom’ an oxymoron.”