IBM 1620



I first started working with computers in 1970 while I was at Prospect High School. We had an IBM 1620 there and they taught a one-semester course in Computer Math. We programmed in FORTRAN II.

The IBM 1620 (a.k.a. CADET) was a base 10 machine. Its basic addressable memory unit could store an ASCII character or a BCD digit. This means that you couldn't store binary numbers on the machine. To store the number "713" you would use three memory locations. In addition to the bits needed for the ASCII/BCD code, the memory location had a "flag" that could be set. The flag was used to indicate the high-order digit in a number, so the maximum integer size was limited only by memory size. For example, to add "713" and "6098" you would need to use 3 "bytes" for the first number (with the flag turned on for where the "7" was stored) and 4 "bytes" for the second (with the flag turned on for where the "6" was stored). To add these numbers, you would give the memory locations of the "3" and the "8" along with the low-order memory location for where you wanted the answer stored. The machine would automatically set the flag on the high-order "byte" of the result.

You may wonder if this way of doing arithmetic operations is a bit cumbersome and slow. This answer is "Of course!" To add to this interesting design, the 1620 had no adding circuits. That's right, no adding circuits. To add, you had to load the adding tables into a specific spot in low memory, and the machine would add digit by digit doing a table lookup for each digit. Each digit addition operation would result in a low-order digit sum and a possible carry bit. We always had to load the adding tables in as part of the procedure for booting the machine. The lack of adding circuitry was the basis for the joke that the name "CADET" stood for "Can't Add and Doesn't Even Try." I never tried it, but I suppose you could get some interesting results if you loaded in an alternate table... I'd like to have a chance to play around with the 1620 again. Maybe I should build an emulator in my "spare" time.

The 1620 was fun for calculating large numbers, such as pi to many digits of accuracy, but it was incredibly slow. Since it was base-10, you had no roundoff error for normal base-10 operations (think financial data here), but since any computer can be programmed to work with cents instead of dollars to get the same result, I'm not sure how useful it really was. Maybe the designers can tell us why it was done the way it was.

One neat thing was the front panel. The instruction register, address register, etc. were all displayed in binary using LEDs, so the machine was frantically blinking just like you always wanted one to do. It was nice and impressive for when you brought visitors in to see the thing. Since the 1620 wasn't particularly fast, you could actually watch it enter loops and cycle through your program. The 1620 had a "pause" button that would freeze the machine, and then you could press another button to have it step through machine instructions one at a time. This made it nice for debugging as long as you knew how to read the binary displays of the registers.

Another cool feature was the "sense switch." The 1620 had 4 little switches on the front that could be set to ON or OFF. In your program you could branch based on a sense switch setting. We used them for rolling dice. You'd just have the program go into a tight loop, incrementing a variable. When the sense switch was flipped up, it would leave the loop and you'd have a number based on the length of time that you waited. Take that number mod 6 and you have a reasonable throw of the die. (Yes, I know that it isn't perfectly random, but it was good enough for what we did.) In case you are wonderng what kinds of games we could possibly be doing, we were trying to computerize the battles for "Chainmail," a predecessor of "Dungeons and Dragons." We also tried to use it for other role-playing games. I began playing Chainmail and other miniature and role-playing games in early 1968.

Here's a picture of the front panel of the IBM 1620.

The only outputs were the little typewriter on the console, the card punch, and the hard disk. Students weren't allowed to use the disk. It was a whooping 2MB (IIRC) and was for administration stuff. The typewriter could print about 8 to 10 characters per second. The card punch could punch several cards per second, but it wouldn't print the text along the top. You had to run the cards though the IBM 029 Key Punch if you wanted to have the hollerith fields interpretted and printed along the top of the cards.

Our school's IBM 1620 had 20K of core memory. If you opened the back, you could actually see the little rings wound with wire. It was pretty neat.

I have photocopies of some of the manuals that I might put up some day if I ever get around to scanning them in.

Here are a few interesting links.

Link for IBM 1620 manuals.

An interesting letter about the history of the IBM 1620