Punching the cards was a pain. The machines could jam and a single mistake would ruin the card and you have to pull it out and start over on a fresh card. So it wasn’t practical to number the cards while initially punching them. There was a designated field for numbering though, FORTRAN ignored columns 73 through 80 for this reason. The ubiquitous cards were 80 columns wide. This is why our programs today must never have lines wider than 72 columns—this honors those that came before us. Oh, and start your code in column 7, Fortran programs used the first 5 columns for numeric labels.

IF statements looked like this:

IF (Y+Z) 100,200,205

This evaluates X+Y and jumps to the line labeled (in columns 1-5) 100 if X+Y is negative and to the source line labeled 205 if the sum is positive. Note that the IF always has three destinations, making it perfect for programs doing binary search.

My first programs were punched with the IBM 026 keypunch machine. This was a machine not really intended to punch program decks. It was for the earlier use of the cards to hold data that would be tabulated, sorted, or collated by IBM tabulation machinery. The later 029 model keypunch was a huge improvement for programming, it even had keys that would punch a parenthesis!

There were special file cabinets to store long stacks of cards in tray like drawers. You could pull out a drawer holding maybe 1000 cards and carry/drag it over to be submitted for a run. Smaller programs or data sets were carried around in shallow boxes.

I don’t ever remember having a dropped card box disaster, but I would mark my card decks with thick diagonal lines so that out of place cards could be easily spotted.

Even a simple, hundred line program might take 30 minutes from the time you handed it over to the computer operators to the time you saw any output (which came out on fan fold wide paper print outs). The operators lived in a big bright room with a glass wall housing the big computer with blinking lights and wore sweaters and could only receive your submitted programs through a small window. The operators literally looked down on us lowly programmers. (The computation centers had elevated flooring about a foot high to hide all the power and cooling lines.)

Unless you were special, you weren’t allowed in the secured room where the corporate computer resided. The corporations were very proud of their giant electronic brain—that’s why they put it in the big, bright, cold room behind glass so we could contemplate its power. The corporation might have a second computer, but it would be in a different city (in case of an earthquake or a Soviet nuclear bomb).

Because of the slow turn around time, a syntax error would require 30 minutes to discover. Then fixing it would require fumbling with cards to find the error and finding a free keypunch, more blank cards and then punching and fumbling around some more to refactor the code. Thirty minutes later . . . And you find your second syntax error.

Turn around time varied greatly, some times I was allowed only one overnight run every couple of days so I wouldn’t see my output until morning. This gave me lots of time to desk check my program. Sometimes I would even find my syntax error before the computer did.

Back in the bronze age, programmers didn’t have text editors, Github, or even a file system to store our source on, we just had drawers to hold our cards.

This link has pictures of the IBM 026 keypunch (used by the Vikings).

http://www.columbia.edu/cu/computinghistory/026.html