I recently wrote a post Magnetic Tape Drives that you have to be old enough (over 40?) to have ever used. Today, it's all cloud storage and USB thumb drives. I got more emails and more replies on my post on LinkedIn about it than anything else I've written recently. So I thought I'd write about another piece of old technology that many of you will never have used. Unless you are old enough to have used a tape drive too!
You probably have a printer at home. You certainly have a printer at the office but you might not go to the office. But the two dominant technologies today are laser printers and inkjets. There are other less common technologies too, such as dye-sublimation.
Laser printers were invented by Xerox at its legendary Palo Alto Research Center (PARC). But Xerox was really only interested in the commercial market and (I'm guessing) couldn't manufacture to a consumer price point. It took the Japanese in general, and Canon in particular, to create laser printers that were cheap enough and small enough that you and I might buy one. And get hooked on buying toner cartridges forever.
Inkjets were invented by Hewlett-Packard in the late 90s (back when they were the kind of company that invented whole new markets, but that's a story for another day). Inkjets were the first color printers that were accessible to us consumers. And get hooked on buying ink cartridges forever, apparently more expensive than Chanel 5 perfume per milliliter.
But back when I started programming, neither of these technologies existed. So how did computers print? Well, there were ASR 33 teletypes for interactive use. But I'm talking about real printing. How did you print out a ten thousand line program? How were electricity bills printed? A full core-dump?
As I said in my post Programming Early Computers Was Very Different from Today, when I started programming we had two ways to get computer time. One was to send our punched paper tapes to ICL in London and they would send us back a printout. The other was that I took our tapes to the nearby RAF base and then brought back the printouts. So today's post is about how those printouts were printed.
The answer is line printers, which you might have guessed from the title of this post, even if you have no idea what one is.
If you have ever seen any videos on the YouTube channel Computerphile, when anyone writes anything, it is on really wide green-striped paper with sprocket holes down each side.
That is line printer paper. As you might guess from the name, a line printer printed a line at a time, as opposed to a character at a time. They did not scan across the line like an old dot-matrix printer, they literally printed a whole line at a time. They were surprisingly fast. The late 1950s era IBM 1403 printed ten lines per second (see the pic). Wikipedia calls it the "classic printer of the mainframe era". It looks pretty similar to the one when I was an undergraduate in the 1970s.
There were two basic technologies for line printers: drum printers and chain printers, but the basic principle was the same. Paper was pulled using the sprocket holes on the sides out of the box it came in which sat below the printer. It was perforated so that it was folded back and forth (fanfold), with each page being attached to the next. It would be printed, which I'll come to in a moment, and then ended up on a shelf at the back of the printer where it would fold up back and forth. Typically an operator of some sort would tear the pile of printouts into separate jobs, and when you got your job back, you would have to tear it into separate sheets of paper if you couldn't use fanfold (for example, you wanted to staple it into something more like a book).
Here's how the actual printing worked. Characters spun past all the print positions (typically line printers were 132 characters wide) and there was an electromagnetic hammer behind each position. So 132 separate hammers. When the correct letter was in front of the hammer, the hammer would fire and press the paper against the character with an ink ribbon in-between. A drum printer had a big drum with all the characters in each position and it rotated, so the characters moved vertically in each character positions. A chain printer had a chain with all the characters (multiple times) and it moved the chain horizontally. I think chain printers were much better quality since slight errors in timing showed up as minor differences in spacing between the characters, whereas with a drum printer, errors in timing showed up as wavy lines of type, which is much more obvious and distracting. One simplification to keep the print speed up is that the character set was limited. There were no lower case characters, and many of the special symbols on your keyboard could not be printed either. There were 48 characters that the IBM line printers could print, 26 uppercase letters, 10 numerical digits, and another 12 characters like dollar signs, commas, slashes (but not back-slashes), and so on. You got "space" for free by not firing the hammer at that position.
Here are some pictures from the Computer History Museum of their 1403 printer, on the left a diagram from the maintenance manual, on the right a close-up of the chain:
The drum printer operated on the same basic electromagnetic hammer idea, but instead of a chain there was a drum:
You can see that the drum has a sort of helical look to it. That is so that the same character was in front of different hammers at different times. That meant that when someone printed the same character across the page (like hyphens to create a horizontal rule, or all zeros in a core dump) you didn't get all 132 hammers firing together. Of course, if you knew the order of the characters on the drum or the chain, you could get all the hammers to fire together anyway. As mature 20-year old computer science students, none of us considered doing that!
Here's an amusing thing I remember. In the cafeteria system at Cambridge University, the operator at the printer would separate the jobs and put them on top of the printer. You just took your job when you saw it. However, whenever the paper ran out, the printer would open automatically (like in the right-hand picture earlier) so that the new box of paper could be started. Of course, that meant that all the printouts on top of the printer would end up on the floor if the operator was not quick to gather them all up. Always an amusing moment to watch.
There was also line printer art, where the characters that could be printed were used as a primitive greyscale. Of course, up close, you could just see all the characters, but from a distance your eyes saw a black-and-white image. Here are a couple of examples:
Watch the Computer History Museum's IBM 1403 line printer printing (with the covers off). It is printing the powers of 2, which is why the lines get progressively longer.
Sign up for Sunday Brunch, the weekly Breakfast Bytes email.