Monday, August 14, 2006


A trip back in time

I was thinking about my days as an undergraduate at University of Florida, and I thought I'd write some posts with stories about being involved with the computer systems there, in those days.

The computer systems were run as the Northeast Regional Data Center, called NERDC — we nerds (small "n") called it, rather obviously, "The Nerd" (big "N"). I see that it was renamed in 2003, and is now CNS, Computing and Network Services. That's too bad, but I bet the old-timers still call it "The Nerd".

On the academic side, we had the Center for Instructional and Research Computing Activities (CIRCA), which supported the computer-science academic program, and still does. I worked with that group, and we supported some rooms of computer terminals, remote job-entry stations, consultants to help students with computing problems, and stuff like that. I see that they still do all that and more, and that they have a new home — well, new since I left in 1977:

CIRCA offices are located in room E520 CSE (the Computer Science and Engineering Building -- next to Alachua (the big yellow french fries) and the Marston Science Library.
I've no idea what the "big yellow french fries" is/are, but Robert Q. Marston was the university president back in my day.

They've come a long way, of course, since the IBM 370/165 computer that was there 30 years ago, running the MVT operating system. My readers who were around in the mid-'70s will nod knowingly and smile at these stories; those who've only known the PC and Internet era will probably have some level of incredulity that we could manage with the stone knives and bearskins we used then. But it's all part of the fascinating time in which we're living and working and doing science and technology.

IBM 029 keypunch machine, mid-1970sThis first story is one of times spent dealing with the IBM 029 keypunch (click the image at right to enlarge it). The computer terminals that were available mostly ran at 110 characters bits per second ("110 Baud") [corrected; thanks, Jim]. They were IBM 2741 terminals, essentially IBM Selectric typewriters with additional electronics added. Rather clunky, noisy things. We got some TI Silent 700 terminals (which used thermal paper) and a few HP CRTs, and these ran at a blazing 300 Baud. But accounts were charged dearly for interactive login time. At $2/hour, a class account that was only authorized for $2 worth of use for the whole quarter would be drained tout de suite. And anyway, most classroom accounts were simply not allowed to log in interactively. For most things, we used punched cards.

The IBM 029 keypunch made those clunky 2741s look like sleek greyhounds in comparison. Punching our computer programs on a deck of cards was an arduous process, indeed. And, of course, there was no editing — if you made a mistake, you tore up the card and typed/punched it again. The more sophisticated of us learned to duplicate the card up to the point of the error, to avoid mistakes in the retyping, and some of us even learned to punch a program card, which one could attach to a control drum on the 029 to set tab stops, autoskip points, and other stuff to make formatting the cards a little easier.

In particular, the keyboard on the 029 did not have the normal row of numbers over the letters that an English typewriter keyboard has. One had to hold down a "numeric" key to get the digits, and it was cumbersome. The letters, of course, were all upper-case. Ease of use was not something we really considered with respect to computers back then.

One day, when I was working at the remote job-entry station in Weil Hall, where CIRCA used to be, we had a student trying to submit a computer job who was having trouble: the first card of any job had to be a "job card", which contained one's account information — basically, it logged you in. The system was rejecting his job card for an invalid account number, and he was sure he'd gotten it right. He came to us. We looked at it.

The accounts were all numeric, and computer-science class accounts all began with "3009". His job card had "3OO9", with letters "oh" instead of digits "zero". Well, we could understand why: it was easier to type a letter than a digit, and they look the same if you don't know what you're looking for. The poor student had no idea that the computer considered them to be entirely different. And so we explained, and told him to go back and re-punch his job card with zeroes.

But then I said, "Wait," and called him back. I looked at the rest of his deck, a FORTRAN program. Ah, yes. He'd dutifully numbered all of his FORTRAN statements (FORTRAN uses numbers in columns 1 thru 6 for statement numbers) and, as is often recommended to make it easier to do insertions later, he'd numbered them in increments of ten: 10, 20, 30.... Or, rather, "1O, 2O, 3O, ...," using letters instead of zeroes. The guy had to re-punch every card in his program. Lucky for him it was his first assignment, and it was a very short program of only about twenty cards. Still, he was not happy.

Ah, those halcyon days....


Jim Fenton said...

The computer terminals were actually much worse than that -- 110 baud was 10 characters per second!

Barry Leiba said...

Ah, right; it's been so long that I erred. I should have said "110 bits per second," not characters. And yes, after the parity-check bits and all, that came to 10 characters.

It's amazing that we got anything done....

scouter573 said...

I have another "beginner" story. I was Really Hot Stuff (I'll leave it to you what kind of "stuff"...) because I had learned PL/1. Well, enough PL/1 so that it would get through the PLC compiler. In an extended moment of headiness, I wrote a PL/1 program that would print a calendar, one month per page of lineprinter paper. Pretty cool, eh? Anyway, some other cool dude wanted to impress the girls (literally), so he borrowed my deck and copied it. He replaced my job control cards with his and ran it thru. Voila! Half an hour later, he pulled out a listing with 600 and some errors. He couldn't figure out why it worked for me but not for him. After a nanosecond of diagnosis, it seems he only knew FORTRAN (WATFOR or WATFIV) JCL magic, which he substituted for my PLC JCL. Naturally, the FORTRAN compiler looked askance at the PL/1 code. Of course, if you removed the semicolons, my "PL/1" code was so primitive it may have compiled in WATFOR...

Remember when it took 30-plus minutes for a job to work thru the queue and print the results? Debugging is a lost art...