Intel's Ronler Acres Plant

Silicon Forest
If the type is too small, Ctrl+ is your friend

Thursday, January 31, 2013

Punch Cards


    E. B. Misfit's post prompted me to tell this old-ish story. It has been told many times before, perhaps even by me, but evidently it's worth repeating because every day there are new people showing up who have never heard of, much less seen, a punch card. So I'll tell it again.
    I studied Computer Science at the University of Texas in Austin from 1977 to 1980. This was in the days before the PC. All your programming assignments were run on the mainframe. The mainframe was a giant CDC machine in a glass walled basement room in the administration building. You had to search it out if you wanted to see it. You could do all your programming without ever knowing where it was. Everything ran on the mainframe: student programs as well as University business applications. Well, everything except for a few projects being done on a mini-computer by graduate students. Note that was a mini-computer. There were no micro-computers.

Not the Painter Hall keypunch room, but similar.
Student programs were run in batch mode. In the computer science building there were two rooms: a keypunch room and the I/O room. The keypunch room had maybe eight keypunch machines. They were usually busy, sometimes you had to wait for one to open up. In the I/O room was the card reader and the printer. The I/O room (I don't think that's what we called it, but for the life of me I can't remember just what we did call it) was divided roughly in two by a counter. You took your stack of punched cards to the counter and handed them to the operator, who fed them into the card reader, and when they had been read, handed them back. Then you stepped back and waited for your program to run. Actually, you waited for the results of your "job" to be printed.

Turn the volume way up to get the full effect.

    The printer was always busy, hammering away from dawn to bedtime, spitting out a continuous stream of green bar printer paper. The printer operator would watch for job headers to appear, tear off the preceding stack of paper and file the output in a folder hanging in a rack. The rack was accessible from two sides. The operator put the output files in on one side and the students pulled theirs out from the other side. The folders were arranged alphabetically by user code, so you waited and watched for your printout to be deposited in your folder.
    To run a program first you had to write it. This you printed by hand on paper. When you were satisfied, you took your hand written copy and a stack of blank punch cards to the keypunch room and found yourself a machine. Load your cards into the machine and then type your program in, one line to a card. If you made an error, the card went in the trash. Since programs in those days were about equal parts letters, numbers and punctuation, and errors meant the sacrifice of a card, it was slow going.
    In addition to your program you needed a job card. There may have been more than one, and there may have been an end-of-job card as well. These had a cryptic string of characters that the professor supplied at the beginning of the term. I never even tried to decipher their meaning. Writing my assigned programming tasks was enough of a challenge.
    So now you have your completed stack of punch cards, your "job", and you can hand it over to the operator and wait for it to run. When you get printout back you find out what became of your job. Most of the time it came back with an error of some sort. You forgot to put in a punctuation mark, or you misspelled GOTO. These were syntax errors, which meant your program did not actually run. Once you got all of these nitpicky little errors fixed, then you could move on to what happened when your program ran. Again, most of the time it didn't. The computer failed to understand your logic and tried to do what you told it instead of what you meant, which resulted in a crash or a nonsensical output. This is when it got interesting.
    Now you get to try and puzzle out what happened. Sometimes it was obvious. Once you had gotten to this point (no mean feat), and you actually looked at your program, it became perfectly obvious what you had done wrong. Sometimes you got to repeat this sequence several times:
  • run the program
  • read the output
  • start reading your program
  • exclaim "Oh!" when your foolish mistake jumps out at you
  • correct the program
    At this point sometimes you got lucky and the program ran as it was supposed to. This happened more in the early days, when your program was a stack of maybe 20 cards. As time went by and I stared taking more advanced classes my programs got longer. Now we start running into logic errors, things that might cause your program to go into an endless loop. This meant your program ran until your allowed time expired, which meant the only feedback you got was a notice that you ran out of time. Put that in your pipe and smoke it. My longest program was about a thousand cards which meant a thousand lines of code. It filled a box the size of a shoebox.

These cards are blank, just waiting for you to engrave the wisdom of the ages. 
I wonder how many boxes I went through. A dozen? Two dozen?

    The operations room in the Computer Science building (Painter Hall, maybe?) closed up in the early evening. If your program was due tomorrow and it still wasn't running, this meant going down to the street to the engineering building. Things were not quite so hospitable there. For one thing it was full of engineering students whose smallest programs were one box of cards. Some of these guys had programs that comprised a stack of boxes. Also, I don't think they were any keypunch machines there, but that doesn't make any sense. How could you get anything done? In any case, I can picture the operations room but I cannot picture any keypunches there.
    I had a couple of job interviews after I graduated with companies (defense contractors) that used punch cards. I was horrified. By this time I had been exposed to video terminals (text only CRT's) and punch cards were obviously going away. Fortunately neither one these companies offered me a job. Actually, one was even worse. You handed your program to the secretary who typed it in using a typewriter. The typewriter was connected to a modem, which was connected to mainframe on the other side of town via a phone line. I think it was an IBM electric typewriter. I think they mailed the results of your job back to you.

Update November 2017 replaced one dead link & deleted another. Fixed problems with picture and video.

3 comments:

CGHill said...

I have one 6500 and two 6400 printers at hand: they're quieter, but not much quieter. And greenbar remains greenbar.

Unknown said...


This is really nice to read the content of this blog. it is a very extensive and vast knowledgeable platform that has been given by this blog. Thanks for sharing this helpful blog.Punch Card Machine

Creative Web said...

Keep sharing such substantial post! DsaTech offers the latest Hikvision CCTV Camera Installation at an affordable price.