Kenbak-1
Summary
The Kenbak-1 is the first personal computer. John Blankenbaker began designing it in 1970 and sold around 40 units from 1971 at USD 750 each. He later sold all rights and remaining documentation to CTI Educational Products. CTI operated in the education sector and, according to the available sources, built no further Kenbak-1 computers after the takeover. Although well suited to teaching, the computer failed to establish itself on the market under CTI, and the company became insolvent.
The Kenbak-1 — derived from BlankenBAKer — appears before the first microprocessor (1971). Therefore it does not have a CPU, but realizes the whole logic with TTL chips. The 8-bit computer has a memory of 256 bytes, the execution speed is several hundred operations per second. By activating switches, programming takes place in pure machine code. Small glowing lights show the output.
An estimated 10 devices exist today, one of which was bought and exhibited by the Deutsches Museum Bonn for 34,000 €.
Programming Manual
The Kenbak-1 has 256 bytes of memory, with nine special memory cells (specify hexadecimal, decimal and binary):
| $00 | 000 | %00000000 | Register A |
| $01 | 001 | %00000001 | Register B |
| $02 | 002 | %00000010 | Register X |
| $03 | 003 | %00000011 | Register P (programme counter) |
| $80 | 128 | %10000000 | Light output |
| $81 | 129 | %10000001 | Overflow and Carry flag for register A |
| $82 | 130 | %10000010 | Overflow and Carry flag for register B |
| $83 | 131 | %10000011 | Overflow and Carry flag for register X |
| $FF | 255 | %11111111 | Register with switch position (input) |
For the three registers A, B and X, the Kenbak-1 offers machine commands, such as transferring from memory to register or adding registers. For better learning of machine commands there are assemblers, a textual representation. The commands look like this: LOAD, STORE, ADD,… They usually follow an indication to which register an operation refers, and also a third indication for the so-called addressing mode. Valid commands are, for example, LOAD A, B (load in A the contents of B), STORE B, A (store in B the contents of A, so as LOAD A, B), SUB A, A (delete contents of A).
We want to write a simple program that sets the eight LEDs as follows: on, off, on, off, on, off, on, off.
Step 1: We write the program in assembler, binary numbers start with %.
LOAD A, %10101010 ; %10101010 is our pattern for the LEDs STORE A, %10000000 ; %10000000 is memory location 128, which controls the lights
Step 2: We translate the program into machine code. This requires the translation table from the Programming Reference Manual, which is included with each Kenbak-1:
LOAD A, %10101010 → %00010011 %10101010 STORE A, %10000000 → %00011011 %10000000
Let’s look at how the program is stored in memory. There is room for your own programs starting from position 4, since the previous places are filled with internal registers. Memory location 3 holds the program counter.
0 Reserved 1 Reserved 2 Reserved 3 %00000100 (start of programme in 4th place, register P) 4 %00010011 (LOAD A) 5 %10101010 6 %00011100 (STORE A) 7 %10000000
Step 3: We have determined the program and the message in the memory, now we have to enter it into the machine. The whole thing can be tried well in the emulator: http://www.neocomputer.org/kenbak/kenbak1-JS.html.
1. Preparation
1.1 POWER ON (turn on)
1.2 RUN START
1.3 RUN STOP
2. Set address where the program starts
2.1 INPUT CLEAR
Enter 2.2. %00001001 (storage cell 3)
2.3. ADDRESS SET
2.4. %00000100 (4 starts the programme)
2.5. MEMORY STORE
3. Enter the program
Enter 2.4. %00010011
2.5. MEMORY STORE
Enter 2.5. %10101010
2.5. MEMORY STORE
2.6. %00011100
2.7. MEMORY STORE
2.8. %10000000
2.9. MEMORY STORE
3. Start the program
Enter 3.1. %00000011 (storage cell 3)
3.2. RUN START
Sources and further links
- Page of John Blankenbaker
- Programming Reference Manual. All machine commands explained on 24 pages
- Laboratory Exercises, Kenbak-1 Computer. 30 exercises on almost 150 pages
- Theory of Operation. Schematics and descriptions
- History of a Kenbak teacher
- DOS emulator
- Kenbak-1 in JavaScript
- Museum with many Kenbak devices
Connections in the collection
In the exhibition concept
- Generations of computers · Area A, Section 1