The UNIVAC 1005

The UNIVAC 1005.  (2/2010)


How I attached myself to the project


In October, 1964, I was hired by John Klein, the systems manager for the Army division, of the Federal Government Division of Univac Corporation. My title was to be Systems Engineer, my salary $6000 per year.


I heard about the job through the employment center at Georgetown University.  I had just completed my degree in September. In my first interview with John he said they usually hired people with computer experience, computer education or Math degrees. He didn’t consider my tech job at ACF Electronics as computer experience. They would consider my application if I passed their aptitude test.


They sat me in a room with no windows and I started the test. When I finished I came out to the desk of the person who had given me the test. She said something to the effect that you can’t come out until you finished the test. I said I had. She was surprised. Apparently no one had ever finished that particular test in the time allowed. Well, I must have aced it. They offered me the job. My first two weeks were spent in programming school on the Univac 1004. The 1004 was a plug board programmed card processor. It was a big box with a punched card reader and 132 column printer. Over on one side was a door that opened to a bay that held an aluminum framed board that held 5120 holes into which wires were plugged to make up the program to read the cards, process the data and print out the results. There were peripheral devices that could be connected to the 1004 that would allow punching other cards as out put, Modems and magnetic tape drives.



After my two weeks of training I was introduced to my clients, Fort Belvoir, Fort Meyers and a couple of others that I don’t even remember. John told me that I was to keep my clients happy. If they were happy he didn’t care if I only worked half days. If they were unhappy he didn’t care if I was working 18 hour days he’d be unhappy. I spent most of my time at Fort Belvoir helping them with their accounting software.


Sharon, my wife, and I had always been able to talk about anything. But when I came home talking 1004 she didn’t understand what I was talking about. Over coffee at work, I mentioned this problem to my boss and he suggested I bring her in to take the 1004 class. She did. When I told Captain Lokke at Fort Belvoir that my wife was learning 1004 he said send her down and he’d give her a job. I did. He did. My Foreign Service major wife became a programmer. Later she was recruited to be a Univac 418 programmer at Walter Reed Medical Center. And then I didn’t understand what she was saying. (But that’s another story.)


One of the problems with punch cards was that there were only 80 columns on a card. Each column had twelve possible holes. The cards were divided up into fields like first name, last name, social security number, pay grade, Hours worked, Vacation accrued, sick accrued, etc. Well, we ran into a problem when someone at Fort Belvoir accrued over 1000 hours of vacation. There were only 3 columns in the accrued vacation field. With some deft programming we were able to use one of the high holes that were usually punched for letters rather than numbers to indicate that the number was over 1000.


Meanwhile, my boss’ boss had sold an upgrade to the Army, the 1005. The 1005 was to be a version of the 1004 that could be programmed by a deck of punched cards. Leon Hammerman was involved in creating a language in which the 1005 could be programmed. Other people were working on the program that would be plugged into the 1004 board. My clients were happy and I had time on my hands. I came back to the office in the afternoons and got interested in the 1005 project. I started helping out. Before long I was working late on it.


One day Leon told me I was not allowed on the project because John didn’t want me distracted from my clients. I went into John’s office and reminded him of what he told me when I started. He had said that if my clients were happy he didn’t care if I spent the afternoons on the golf course. I asked him if my clients were happy. They were. I said I’d rather work on the 1005 than play golf. He allowed me back on the project. Eventually that was my only job. We put together a rudimentary 1005 but it wasn’t very robust. I made a case that if we were to add some logic components we could make the 1005 much stronger. My experience at ACF Electronics had taught me to deal with logic circuits like ‘and’ gates, ‘or’ gates and ‘flip flops’ (which were little electronic switches that could be turned on and off). I was tasked with designing the logic additions. I left the office and commandeered our dining room table to lay out the logic we needed.


How I manipulated the logic functions.


I put in all the bells and whistles I wanted, including bit logic functions that allowed comparing characters at the bit level using “and’ and ‘or” statements. When questioned about them I said they would help build and debug the 1005, they could be taken out later if necessary. Well, I thought they really added value to the product without much additional cost. They allowed real computer functions. So when the project was just about complete and ready to go to manufacturing and I was asked to take them out I replied that I could do that but it would hold up the project by three weeks. That was too long, so they stayed in and were a valuable asset to the 1005!


After all these years I will admit that it was a manipulation on my part. We probably could have done the project without the logic functions and I probably could have taken them out in less than three weeks. I’m not proud of my tactics but I am very proud of the results.

About danielcfischer

Loyola School in NYC, Georgetown University, Shrader Sound, ACF Electronics, National Staffing Consultants, Univac, Applied Data Research, Western Union, Wells Fargo, Prometheus Products, Access Master, GasTech, Lawrence Livermore
This entry was posted in Biographical Essays. Bookmark the permalink.

2 Responses to The UNIVAC 1005

  1. Stephen Boyd says:

    I am working on a 1005 emulator and I have run into some things that don’t make sense. It is almost like there are 2 different machines called 1005. There is that machine described in the manuals on that is programmed using SAAL (Single Address Assembly Language) and then there is the machine that is programmed using something that appears to be called Univac 1005 IPM Assembler. Looking at the object decks from the IPM assembler it appears to be a completely different instruction set. SAAL describes a machine using a 5 byte word consisting of the opcode, most significant row/column least significant row/column. The IPM assembler seems generate code for a machine using a 10 byte word consisting of (and this is guess work) opcode, source address, destination MSB row/column, destination LSB row/column and 3 bytes of stuff I can’t figure out.

    I was hoping that you might be able to provide some kind of explanation for this apparent discrepancy. Any and all help is appreciated.

    • Your guess is right. There were two 1005’s. The Univac Federal Government Division developed a single address 1005 for the Army. At about the same time a UNIVAC group in South America developed a similar modification to the Univac 1004 that had two addresses in its instruction set. I’m afraid that after 50 years my recollections are very fuzzy. SAAL instructions reference registers. The other implementation did not use registers but specified both source and destination which explains why the instruction was so much longer.
      I’m surprised that there is any code left for either 1005 that requires an emulator.
      Good luck. You can reach me, if you want, at

Leave a Reply

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

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

Google photo

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

Twitter picture

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

Facebook photo

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

Connecting to %s