The Kenbak-1 of John BlanKENBAKer
The stored program, automatically sequenced computer Kenbak-1 was considered from some people to be the first commercially available personal computer in the world.
It was created in 1971 by John Blankenbaker, working in his garage in Los Angeles. Initial sales commenced in September of 1971. It was intended to be educational and the professionals in the field were enthusiastic but it was a struggle to convince the non-professionals that they could buy a real computer at this price ($750), thus only some 40 devices were sold, mainly to schools.
The creator of Kenbak-1—John Blankenbaker, had a long experience in the field of computers. He started the design of a computing device as early as in the winter of 1949, when he was a 19 y.o. physics freshman at Oregon State College, inspirited by an article in a magazine. After graduation from the college in 1952, he worked at Hughes Aircraft Co. in the department for digital computers, designing the arithmetic unit for a business data processor. Some time in the late 1950s he began to think there could be simple computers which could be afforded by individuals.
As late as in the fall of 1970 he found himself unemployed and decided to investigate what might be done to make a computer for personal use. He wanted the computer to be low cost, educational, and able to give the user satisfaction with simple programs. The computer could be serial and slow which would reduce the cost yet create the environment that was desired. It should demonstrate as many programming concepts as was possible. Because of the small size, the native language of the unit would be the machine language. Above all, it had to be a stored program machine in the von Neumann sense. To keep the costs low, switches and lights were the input and output of the machine. (Some thought was given to punched card input, but it was never developed.)
By the spring of 1971, the logic printed circuit board had been built and the computer was assembled. Designed before microprocessors were available, the logic consisted of small and medium scale integrated circuits, mounted on one printed circuit board. MOS shift registers implemented the serial memory. Switches in the front keyed the input and lights displayed the output. The memory was two MOS shift registers, each of 1024 bits. The computer executed several hundred instructions per second.
The logic board (also called the mother board) of Kenbak-1 (see the upper image), contains the 132 integrated circuits on it. The front panel had the lights and switches which were connected by wires to the logic board.
The clock of about 1 MHz was generated by a multivibrator.
Several cosmetic and small technical changes were made in going to the production units from the prototype unit. The use of a red pushbutton to store data in the memory was abandoned. Instead a toggle switch was installed to lock the memory against changes from the front panel. Legends were redesigned and relocated for better visibility. A slot was installed in the front panel for a possible punched card input.
The general format of the instructions was two bytes, where the first byte was the command and the second byte was a constant, a memory address, or a pointer to an address.
The switches and light reflect two numeric representation. The color grouping by four in the switches suggests the hexadecimal number system, while the physical spacing by three suggests the octal number system. Users were encouraged by the coding sheets to write in an assembly language. They had to compile the machine instructions manually though. (One high school student wrote a compiler which ran on a larger computer.)
Data, instructions, and addresses were entered by first clearing the Input register with the Clear key and then setting the individual bits. To set a memory address to the value in the Input Register, the Set Address key was used. To store information which was in the Input register into the memory at the address previously set up, the Store key was used. To read the contents of memory including the A, B, X, and P registers, the address was set and then the Read Memory key was used. All of these operations were done while the computer was halted.
To start automatic operations, the Run key was used. The computer could be stopped with the Stop key. Holding the Stop key and pressing the Run key would cause the computer to execute one instruction. While the computer was running, input could also occur via the Input register. For more info see the Kenbak-1's Programmers Reference.