Punched Cards? Sheer Bloody Luxury [2700 views]

by Bill Wadge


The Four Yorkshiremen

And you try and tell the young people of today that … they won’t believe you!
Monty Python, the Four Yorkshiremen

Yes, punched cards – that’s how I  learned to program.

Many years ago, when I was a math undergraduate at UBC, I decided to take a course in Numerical Analysis. It would prove to be my only formal training in computer science.

The best part was programming exercises in FORTRAN (my native language). We got accounts on the Computer Centre’s IBM 7040, UBC’s only computer at the time. It had 32k 36 bit words, the equivalent of about 150k bytes. Yes, 0.15M. A real powerhorse!

9805f43ac83d2990859efbe6d6fdf34dWe would type our programs on an IBM card punch – yes, I still remember how to use one. Once our deck of cards was ready, I would take it to the computer centre lobby, put an elastic band around it, and leave it with other users’ decks in the “IN” tray. Then I would go have lunch, attend class, take a walk or whatever and return a few hours later (“turnaround” time) and pick up the deck from the OUT tray. The output? Printed on fanfold paper and placed in pigeonholes ordered by name. The excitement!

My First Program

The first program I ever wrote was an exercise in the numerical analysis class, a simple least squares interpolation. I knew that programs typically had bugs and I was determined that my first program would work first time out. I produced about 6 lines of foolproof code, double and triple checked it, carefully punched up the card deck and double checked it again. Finally, I dropped off the deck in the IN tray and went to the dorm for lunch.

When I got back, there was my fanfold output. Suspiciously thin … ? When I opened it up – no output!. No error messages, no output. I was baffled.


Punced Card Reader

Asking around, I soon found the problem. It was a JCL error. JCL (Job Control Language) was IBM’s cryptic language for … controlling jobs. It apparently instructed the computer to read from the card reader, send output to the printer, etc. I still remember one of the lines


though I have no idea what it means – never did.

I thought I’d included all the JCL boilerplate but, no, I’d left out a vital ”command’:


This card basically tells the computer, yes, I really do want to run this program. I punched up a $ENTRY card, slipped it in the deck, which I then dropped off in the IN tray. When I returned the output was there, my program worked perfectly. But not the first time. That’s been the story of me and programming ever since.

Fanfold Follies

The big problem with batch processing is that I/O can’t be interactive. If the program goes haywire you don’t find out till too late. I can’t tell you how many times I saw this: a user comes in, collects his cards, and picks up his output. An inch thick. He opens it up, somewhere in the middle (page 173) and looks at the numbers. Then frowns, shakes his head, closes up the output – and throws it in the garbage.

Then goes to the keypunch room, changes one column on one card, and resubmits the deck.

Doing the Shuffle

The big danger with card decks was that you’d drop the deck and the cards would get out of order (no problem if you were programming in Lucid). A friend saw that happen once with a big  deck. It was thrown in the garbage.

Of course there was a technological solution – sequence numbers, in the last eight columns. You just throw the scrambled deck into a card sorter.

I told this to a friend who started his career in South Africa and he basically told me, “you had a card sorter? Sheer bloody luxury!”. They used to use a marker to scrawl on the edges of the last 8 columns.

Cafeteria Batch

Flash forward to my interview at the fabled University Far Far Away (UFFA). They really wanted to impress me (that didn’t last long …) that they had cutting edge technology. So they showed me “cafeteria batch”.

They took me to a classroom that had been converted. We entered through the rear door and saw a row of cafeteria-style tables lined up end to end running the length of the wall. A line of students shuffled along the the row of tables. At our end there was a card reader and the students handed decks of cards over to the operator who immediately fed them into the reader. The students walked slowly along till they reached the other end of the line of tables where there was a printer … and their fanfold output waiting for them! A turnaround time of only a few minutes!

Boy was I impressed!

The Terminal Room

(Odd, never noticed how ominous this phrase sounds.)


IBM 2741 Terminal

Anyway, a bit later appeared the terminal room. It was a converted classroom with cafeteria style tables and IBM Selectric typewriters on them. They were each connected to a computer – the same computer, through the miracle of time sharing. Turnaround time was reduced to a few seconds or less. You could actually interact with a computer. And cut off bad output without wasting reams of paper.

Even better, some of these Selectrics had special golf balls with Greek and mathematical symbols (and appropriately labelled keys). These were APL typewriters. APL was (is?) this wonderful array language. Basically a desk calculator, except that the objects being calculated are multidimensional arrays.

It wasn’t easy to learn but after long hours in the terminal room I got the hang of it. Among other things I produced some very pretty ASCII graphs of mathematical functions.

APL was a real technical miracle and I miss it very much.

Flash Forward – and Back

After the UFFA and I reluctantly parted I moved to the University of Warwick in the UK (Coventry). They had some new technology but in many ways they were behind. Punch cards were disappearing in North America but were still around for a few years at Warwick. There was a big keypunch room but it just didn’t have the same attraction it used to. Ditto for the terminal room wired up to a big  ol’ Burroughs 6700.

The department had it’s own computer, called (I’m sure of this) a “mod one”. But neither Wikipedia nor even Google seems to know about any relevant “mod one”.


Teletype Terminal

As I remember it didn’t even use punched cards. There was a closet with a teletype, you know, with columnar keys you had to hit hard. And physical storage of programs: punched paper tape. Punched cards really were S. B. L.!


Warwick soon got CRT terminals – no more typewriters or teletypes. After some maneuvring I finally got – the ultimate – a VT100! In my office! It was the state of the art in CRT terminals. It had a 80×24 ASCII characters plus some graphics characters.  Also a 132 column mode and special effects like blinking and underline. All controled by ANSI standard escape sequences. I soon mastered the sequences and made my (orange screen) VT100 dance to my tune.

About the same time we finally got UNIX time shared and they went well together.

I got really good at UNIX. Then to make it all perfect I got a Diablo printer, basically an industrial strength IBM-style typewriter with “daisy wheels” instead of golf balls.

I needed a system to print math (there were math daisy wheels) but this was before Latex. So I made one myself. It was truly marvelous.

Diab PWheel500x479

Diablo Daisy Wheel

The math was input in an simple ad hoc notation, e.g. #a was the Greek letter alpha and #+ was capital sigma. Each page was printed using three different daisy wheels, the first being ordinary letters. Formatting used troff, a UNIX typesetting markup system, and a set of filters I wrote in  UNIX shell and SED etc.

And here’s how you printed a page on the Diablo. You put the paper in and mounted the standard daisy wheel. You pressed return and the first layer was printed. Then you mounted the second daisy wheel, carefully rewound the page (still in the Diablo) to the original starting position, then pressed return. The Greek letters were printed. One more time, the mathematical symbols appeared, and the page was finished.

It actually worked. I printed my 350 page Berkeley PhD on the Diablo and my first grad student did his too.


VT100’s – gone. Diablo printers – gone. Troff – gone. UNIX – still around, but only for system stuff. All that technology I mastered, obsolete (eyes tear up).

But Grandpa, don’t stop now! Tell us again about the Batphone, that faxed email every half hour! About the hard disks that could creep across the floor! About the massive 500M hard disk that would end your UNIX storage problems forever! Waah!

Sorry kids, but Grandpa is getting tired (and his readers are getting bored). I’ll tell you about the Batphone, and the creeping disk, and the massive storage another time. And how you have 1 million IBM 7040s in your pocket.

Sheer bloody luxury, if you ask me!

About Bill Wadge

I am a retired Professor in Computer Science at UVic.
This entry was posted in Uncategorized. Bookmark the permalink.

4 Responses to Punched Cards? Sheer Bloody Luxury [2700 views]

  1. Jimbo says:

    In my first year at the Australian National University in 1979, I was bundled by my course adviser with all the other cannon fodder into their new computer programming course, learning Pascal. I had a lot of company, they had to run lectures day and night. They had about 6 card punch machines in a room near the lecture theatre and programs were submitted the same way as yours in a pigeonhole with a 24 hour turnaround. I’m certain this was to discourage trial-by-error programming style, which had no effect whatsoever. The queue for the card punch machines grew ever longer, including overnight, the machines were hammered continuously 24/7 and by the end of the first month only two worked and one wouldn’t type the letter ‘B’. ‘BEGIN’ cards were at a premium. I had to withdraw from the course because the physical workload was about double all my other course combined. I did learn a lot about computing which stood me in good stead later in life.

  2. Jonathan says:

    > I needed a system to print math (there were math daisy wheels) but this was before Latex. So I made one myself. It was truly marvelous.

    As an undergrad at Cambridge in the early 80s, I also needed a system to print math. The main output device for the IBM 3081 was of course a line printer, but there was also a diablo that could be used for “final copy”. But we didn’t have math daisywheels.

    What we did have, though, was a drum plotter.

    So the text-only pages of the thesis were printed on the diablo, but the math-heavy pages were not *printed* at all: they were *drawn*, letter by letter and equation by equation, on rolls of drum plotter paper, and then carefully cut to size. Good times!

Leave a Reply to Jimbo Cancel reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.