Tuesday, April 9, 2013

My Life With Technology - Chapter 1.0

by Bill Holmes

An old friend, geek and fellow blogger asked that I write some articles about technology in the second half of the last century. Particularly the big IBM mainframe computers and peripherals. During a recent discussion on Google+ about how far technology has come over the years the size and cost of storage was mentioned. The example of the old was a circa 1979 IBM disk. I happened to be very familiar with IBM disks in the 1970's, 80' and 90's so I was able to add some facts and perspective. That was the seed for this exercise.

I will have to split this topic into several posts. I don't know how many and I don't have a timetable. I will attempt to include enough technical detail to satisfy the geeks and some non-technical memories and perspective of those times. I do have the advantage of working with computers at a time before most people had any idea what they were, what they did or how they did it. So, let the journey begin.

First National Bank
of Atlanta
I first reported to work in the First National Bank (FNB) of Atlanta Computer Department in 1968. That turned out to be the first day of an almost forty year career in technology. It was a complete accident. I had moved to Atlanta without a plan of what kind of job or career I wanted. I don't even remember why I applied at FNB. It was probably either a want ad in the paper, word of mouth or maybe the building closest to where I got off the bus in downtown Atlanta. I filled out an application and they offered me a job that day. I had my choice of branch teller/trainee or computer tape librarian. Thankfully I chose the computer position. It turned out that I loved almost everything about technology and seemed to be pretty good at it. Of course I had no formal training. There were barely any computers let alone Information Technology (IT) courses at college. Those were exciting times. We were at the beginning of a whole new profession and business sector.

Most of the specifications, or as we used to say the "feeds & speeds", I will quote in the next paragraphs are mind boggling. They are amazing because they are so small. There is no easy way to compare processor speeds between then and now. They are rated using different criteria. Let me assure you they were much slower 30 years ago. Memory and storage are still measured by capacity and access speed. For those of you who only know about the Apple iProducts, Android products or modern laptops you will find it hard to believe. There in no way that a large corporation with hundreds or thousands of employees and even more customers could possibly function with such primitive equipment. I'm here to tell you that we did and we did it pretty well. I promise the numbers are real and are not typos. I know the difference between a K, MB, GB and TB. There won't be any GBs or TBs in this first chapter.

Now for some details about the FNB computer room. In 1968 the computer department was relatively new and many of the banking applications were on version 1.0 or maybe 1.1. The computer room was brand new as was the bank's skyscraper. It had four computers, a big data center for those days. There was an IBM 1401, 1410, 360/30 and 360/40. These four computers filled a computer room that I estimate was around 4,000 or 5,000 square feet. All raised floor with special high capacity air conditioners.

IBM 1410 System
from the left, disks, processor/memory cabinets, tape drives, printer and card reader/punch
the operator console is in the foreground middle 
IBM 1403 Printer                                                           

The IBM 1401 had 4K of memory, no disks, two tape drives, a printer and card reader/punch. By the time I started at FNB, it was only used for printing and was soon completely phased out. The 1410 had 8K of memory, no disks, six tape drives, a printer and card reader/punch. It was used for the older application systems. All programs for these 1400's were loaded from punch cards. Of course the programs had to be smaller than the available real memory. They were all written in 1401 assembler or Autocoder. Only one program could run at a time, no multi-tasking allowed. The printers were model 1403. This was a 600 line per minute (LPM) chain impact printer. Read impact here as noisy, made even worse by the fact that we often ran them with the covers open. Why? Partly laziness and partly because a job might have several form changes and only print a few pages on each form. All paper was continuous fanfold, some multi-part with carbon paper. There were hundreds of different forms since the printers could only print characters. No graphics or colors but they could play music. The 1400 computers were transistor based. Not printed transistors but actual manufacture transistors that were soldered to a card. The individual cards were connected with miles of wire. In the above 1410 picture, take away the disk storage on the left and add a couple of tape drives and that's what we had. Although I think our 1410 only had four or six processor cabinets, not the eight in the picture. The 1401 had only one processor cabinet and no typewriter console. That console was a panel of switches, dials, buttons and lights. The 1400's didn't have an operating system (OS) as we know it. The OS functions were performed by the hardware and the application program.

I think the IBM 360/30 had 8K of memory, one disk, four tape drives, a printer and card reader. It was mostly used to print reports produced on the 1410 and 360/40. It could run in 1401 emulation mode which was an optional hardware feature. The 360/40, best that I can remember, had 32K or 64K of memory, six or seven disk drives (to start with), eight tape drives, a printer and a card reader/punch. The operating system was DOS/360. The operator consoles were industrial strength IBM Selectric typewriters plus the panel of lights, switches, dials and buttons. You had to have lotsa blinking lights. We still had punch cards to load programs but now they were just control cards to indicate which program to load from disk and any variable data like a processing date or a bank number. Most of those programs were still in IBM Basic Assembly Language (BAL) , aka assembler, with a few COBOL. The original disk drives were IBM 2311's which had removable 1316 disks that held 7.25 MB each across six platters. Those disks were abused by those of us in the computer room. Since they had so little capacity, any large application would have multiple disk changes, some had 10 or 15. Plus between jobs all the disks were usually swapped. It took a long time for the disks to cycle down to a stop so the operator would open the drive lid and use the disk cover as a brake. That was not one of IBM's recommended procedures, but there were deadlines to meet and operators were graded on how much work they ran on their shift.

IBM 360/40 Console
The 360/40 was the workhorse of the data center. It ran all the new or rewritten applications plus as many big 1410 applications, in emulation mode, as there was time for. Even with the emulation overhead it ran 1410 programs much faster than the real 1410. The 360/40 and DOS/360 also performed what we thought was magic. It could run three jobs at the same time. You could carve out two very small foreground partitions (F1 & F2) and the main processing background partition (BG). We typically had the BG processing write any print output to tape. Then we would print those tapes in F1 or on the 360/30. This was before the days of print spooling to disk by the operating system. It was also before virtual memory so that 4K of memory you allocated to F1 was real storage and dedicated. The console messages would be proceeded by F1, F2 or BG so you knew which partition produced the message. Speaking of consoles, if it ran out of paper the whole system would stop. On a couple of occasions IBM service was called and a hardware technician was dispatched. It's pretty embarrassing when the guy comes in at 3:30 AM with his tool bag, looks behind the console and tells the operator to get a new box of paper. Of course everybody on all three shifts heard about those screw ups and the ribbing was on for a few days.

Amazingly this tiny, computing power not physical size, 360/40 ran most of the major applications of the second largest bank in Georgia. All checking and savings accounts for FNB plus checking for about 25 other smaller banks and savings for twice that number were processed on that machine. One very interesting application ran all day in a foreground partition. By 1969 or 70, we had a homegrown customer information
The Elegant Solution
system that drove an IBM 7770 Audio Response Unit. The 7770 was an input/output device that attached to the computer and a telephone network. In our case it was attached to the bank PBX. From any telephone extension in the bank including the branches you could dial the 7770's extension number. You then entered a customers account number and a response in a female voice read back the account balance. It had a very limited vocabulary, just the ten digits and a few appropriate words. I seem to remember that you could put a hold on funds too but I'm not sure. This was not for customer inquiries but for bank personnel to inquire as part of their duties or when a customer requested it. Here's the kicker. All the bank's phones were rotary and the 7770 of course required touch tone input. The bank had hundreds of phones and the PBX may not have supported touch tone. The solution was to attach touch tone pads to a number of bank phones. Just those who needed to access the system got the pads. You had to dial the extension with the rotary dial and then input the account number on the touch tone pad. Very sophisticated.  We had a couple of these hybrid phones in the computer room and a few in the support departments. That was so we could do testing, check on the system when it started in the morning or if we had problems. I had one on my desk. There was no security that I knew of. I think maybe you couldn't dial the 7770 extension directly from outside the bank. Key in any account number and you got the balance. No employee number or password required. Everybody checked their own balance. It wasn't hard to find anybody's account number. After all we printed all the account reports every night. We also printed the bank employee's payroll which included the direct deposit slips.

As soon as they became available we got 3211 printers. These were 2,000 LPM and fully enclosed. With the covers closed they were much quieter than the 1403's. Of course we often ran them with the cover open. This was an impact printer too but used a train instead of a chain. What's the difference you may ask? All the character slugs in a chain are hooked together. In a train they are individual slugs not connected and float in a track. The 3211 had an electric top cover rather than the manual one on a 1403. When it ran out of paper the cover would raise up automatically. A nice time saving feature unless the operator had left a cup of coffee, a box of cards or a stack of paper on top of the printer. We cleaned up many messes and hoped none of the bosses saw it.

IBM 2314 Pizza Oven
We also added IBM 2314 disk units which consisted of nine disk drives still with removable disks but now with 29 MB capacity per drive. The 2314 was referred to as a pizza oven because of how it looked. The disks went into drawers. An odd feature was that only eight of the nine drives could be online at the same time. The spare drive could be used when performing hardware maintenance or for staging a disk for the next pack change or job. Each of the eight drives in use had a removable magnetic plug that designated the address that drive. By moving these plugs you could make any of the nine drives one of the eight addresses. Unfortunately by moving a plug at the wrong time you may corrupt the data. You could wind up with some checking account transactions written to the middle of the savings account master file. IBM didn't really promote regularly swapping plugs as standard practice but once again we had deadlines and performance ratings. The 2314 did stop the practice of using the disk cover as a brake. The drawers wouldn't open until the disk stopped spinning.

IBM 2401
Other equipment came and went but those were the main ones. All the tape drives were open reel to reel models that were hand threaded. One thing I remember was at some point we changed from IBM to another vendor for tape drives. Same technology but cheaper. The IBM drives had the take-up reel on the right. Brand X was the opposite and read right to left. Probably patent stuff. It took the operators quite a while to get used to that. You now had to thread the tape with your left hand. Not a popular move by management.

I mentioned that my first job was in the tape library. It was actually a media library and forms room. Besides tape the library stored all the disks, program decks and control cards, run manuals and carriage tapes. We also took care of the forms room where all the paper stock, card stock and consumables, like printer ribbons, were kept. The library and forms room were inside the computer room on the raised floor. It was our job to gather together all those items plus any input from other departments needed to run a particular job and take it to the proper computer. Likewise when the job was finished the operator would bring everything back to us. We'd send on whatever output went to other departments and put away all the stuff that stayed in the library. We had to know all the pieces parts for all the jobs.

Things were pretty loose on the graveyard shift, we were all male and about the same age, i.e. young. The computer operators would show us stuff. We'd put cards in the reader or take them out of the punch, change a tape or disk, put paper in the printer, etc. If you didn't screw that stuff up they'd let you enter console commands. Before long I could operate all the computers. I was never officially a computer operator but I might as well have been. I'd even fill in for most of a shift sometimes when they were shorthanded. I moved up fairly fast to shift supervisor, section manager then shift manager of the production control department. I got a good education in all the different areas.

Those were far different times. Much of the data was still on punch cards. Programmers wrote their code with a pencil on a coding sheet, different forms for different programming languages. Those sheets were sent to the keypunch department. When the whole program was transferred to cards it was sent to the computer room to be compiled. Keypunch, assemblies or compiles and testing had to be fit in between production jobs. A programmer might get one compile a day. The first one was always a mess. That one caught all the keypunch errors or sequence errors and of course the programmers errors. Sometimes there were so many errors that it would abend (abnormal end) before the assembly or compile got started. Corrections had to go back to keypunch or be keyed by the programmer, then back to the computer room for another compile. Round and round until that step came out clean. Then onto testing. Now everyone who has ever written a program knows that a clean assembly or compile has no relation to whether the program will actually do what you intended or even run at all. So test, fix, recompile, test, fix, recompile, test until it actually works. Again you may get one shot a day if you were lucky. All this on punch cards. Sure as hell if you didn't put sequence number in your source deck it would get dropped. Then you'd have to re-sequence by hand rather than take it to a card sorter for a quick and accurate job. Cards came 2,000 to a box and I've seen whole boxes dropped. Of course if you were prudent and used sequence numbers your cards never got dropped. The whole process could take a while. My one real venture into programming back then was a rogue episode one Friday night. We ran a skeleton graveyard shift on Fridays. The full computer room graveyard shift worked Sunday through Thursday. One or two operators from swing shift would work overtime. That Friday one of the banks we did processing for sent in bad data but it was bad in a consistent way. A digit in one column of about a quarter of the records needed to be changed. We could either print out a tape and keypunch all of it (bank number, account number, transaction code and dollar amount) or duplicate the tape changing the one digit in the bad records. Pretty easy program, read a record, check if it's a bad one, replace the digit, write the record. So, the operator that stayed late and I made a management decision, wrote a quick program and fixed the data. We never did tell our bosses about it. I did send a note to the bank who made the error so they wouldn't do it again but didn't explain how we fixed it. I'm sure our bosses and the auditors would have frowned on our actions but like I said, those were looser times. We felt pretty proud of ourselves and we made our deadlines. Ironically, the operator who was my partner in crime later became an auditor at the bank.

IBM 029 Key Punch
IBM 029 Program Drum
Speaking of keypunch we had a big department, all women except for the department manager. There were about 50 women on the day shift and at least 25 at night. They covered about two and a half shifts with staggered hours although if the computer room was running there was usually somebody around in case of an emergency. Now 50 people pounding on keypunch machines at the speed of light makes quite a racket. I once had the misfortune of occupying the desk right next to the door between our department and keypunch. Every time that door opened, which was often, it was deafening. Half the women who worked night shift would spend most of the night on the phone all the while keying away. I never could figure out how they could hear the conversation and concentrate on the work but they did both. Everybody could keypunch some in a pinch. There were keypunches in almost every department so people could key, fix or duplicate a few cards. Many of us knew how to make a keypunch program. It was a one card program that would instruct the machine to skip columns, define alpha or numeric and a few other things.
IBM 80 Column Punch Card

Did I mention that the bank still had over a million cards in the Tabulating (Tab) Department for applications that hadn't been converted to a real computer yet. I learned how to run all those machines too. There was also a whole different computer room and department for check processing. It was called Computerized Transit and ran all Burroughs equipment. That's another story for another day. There are many other adventures from these years. I will probably revisit this time period again and talk about more experiences, memories and technology.

After a few years I was ready to leave the bank and move on to other things. I actually turned in my resignation with plans to move back to Florida but with no job lined up. The bank made me a very good offer to stay and change positions that interested me. After some thought I accepted their offer and that took me on a whole new adventure.

This first chapter has been harder than I expected. One problem is trying to remember stuff from so long ago. The next problem is once one thing is finally remembered it triggers a million other memories. Many good and a few painful ones. There are sure to be errors and omissions, some with the technology and some with the chronology. I think there will be more chapters than I first anticipated and they may not be in chronological order. I hope you'll join me as I continue this trip down memory lane. Stay tuned for chapter 2.0 or maybe 1.1 coming soon to a blog near you.



  1. Great stuff, Bill. I can't imagine what it must have been like. I will take today's computers, thank you very much.

    1. It was hard work and long hours but it damn sure was fun and exciting. We didn't know any better. Those machines were like magic in their day.

  2. This comment has been removed by the author.