Difference between revisions of "KENBAK-1"
(Cover this one) |
m (Add a few details) |
||
Line 1: | Line 1: | ||
− | The '''KENBAK-1''' (many Web sites give the name as 'Kenbak-1', but scans of original manuals show the capitals were | + | The '''KENBAK-1''' (many Web sites give the name as 'Kenbak-1', but scans of original manuals show the capitals were the usual) was the first hobbyist [[personal computer]]. (Depending on one's exact definition of 'personal computer', it has been argued that it was the first personal computer, overall, but that was likely the [[LINC]]; with the added 'hobbyist' qualifier, it probably is accurate.) It was first produced in 1971, by John V. Blankenbaker, and intended for use in teaching [[programming]]. It was not commercially successful - only about 52 were made - and did not introduce any important technical ideas, but it was still historic. |
− | Like other early personal computers (such as the [[Datapoint 2200]]), the Kenbak-1 preceded [[microprocessor]]s being available. Like them, its [[Central Processing Unit|CPU]] is made out of [[SSI]] [[transistor-transistor logic|TTL]] [[integrated circuit|ICs]], from the [[74 series]] family. It is a [[serial]] computer (which, like many of the [[:Category:Early Computers|earliest computers]], which reduced the cost, by reducing the component count), with a 1-bit [[arithmetic logic unit|ALU]]. It had a clock rate of 1 megahertz, but the serial nature meant it [[execute]]d about 480 [[instruction]]s per second (for typical 2-byte instructions). | + | Like other early personal computers (such as the [[Datapoint 2200]]), the Kenbak-1 preceded [[microprocessor]]s being available. Like them, its [[Central Processing Unit|CPU]] is made out of about 131 [[SSI]] [[transistor-transistor logic|TTL]] [[integrated circuit|ICs]], from the [[74 series]] family. It is a [[serial]] computer (which, like many of the [[:Category:Early Computers|earliest computers]], which reduced the cost, by reducing the component count), with a 1-bit [[arithmetic logic unit|ALU]]. It had a clock rate of 1 megahertz, but the serial nature meant it only [[execute]]d about 480 [[instruction]]s per second (for typical 2-byte instructions). |
− | Its [[main memory]] | + | Its [[main memory]], 256 bytes, was built out of [[shift register]]s. It had no [[input/output|I/O]] capability; it was programmed by storing data in memory through the [[front panel]]. |
==Architecture== | ==Architecture== | ||
Line 39: | Line 39: | ||
* P - the [[Program Counter]] | * P - the [[Program Counter]] | ||
− | It had two [[condition codes]], set by the ADD and SUB instructions. | + | It had two [[condition codes]], Overflow and Carry, set by the ADD and SUB instructions. |
==External links== | ==External links== |
Latest revision as of 01:34, 26 April 2025
The KENBAK-1 (many Web sites give the name as 'Kenbak-1', but scans of original manuals show the capitals were the usual) was the first hobbyist personal computer. (Depending on one's exact definition of 'personal computer', it has been argued that it was the first personal computer, overall, but that was likely the LINC; with the added 'hobbyist' qualifier, it probably is accurate.) It was first produced in 1971, by John V. Blankenbaker, and intended for use in teaching programming. It was not commercially successful - only about 52 were made - and did not introduce any important technical ideas, but it was still historic.
Like other early personal computers (such as the Datapoint 2200), the Kenbak-1 preceded microprocessors being available. Like them, its CPU is made out of about 131 SSI TTL ICs, from the 74 series family. It is a serial computer (which, like many of the earliest computers, which reduced the cost, by reducing the component count), with a 1-bit ALU. It had a clock rate of 1 megahertz, but the serial nature meant it only executed about 480 instructions per second (for typical 2-byte instructions).
Its main memory, 256 bytes, was built out of shift registers. It had no I/O capability; it was programmed by storing data in memory through the front panel.
Architecture
It had a word size of one byte (8 bits), the ALU's width. It was basically a load-store machine; most instructions had 5 addressing modes:
- immediate (constant)
- memory
- indirect (deferred)
- indexed
- indirect indexed
(Bit instructions and jumps did not support all 5 modes.) Most instructions were two bytes long: the second byte's contents depended on the addressing mode; the first byte contained two bits of register specification, three bits of opcode, and three bits of addressing mode. There were roughly 27 different instructions (ones marked with '!' did not use the format described above; the digit is the number of different versions):
- ADD
- SUB
- LOAD
- STORE
- AND !1
- OR !1
- LNEG !1
- JUMP !10
- SKIP !2
- SET !2
- SHIFT !2
- ROT !2
- NOP !1
- HALT !1
All jumps were conditional branches. The KENBAK-1 had 4 registers:
- A - the accumulator
- B - a secondary accumulator
- X - the index register
- P - the Program Counter
It had two condition codes, Overflow and Carry, set by the ADD and SUB instructions.
External links
- Kenbak - documentation at Bitsavers
- Kenbak-1 Computer
- Kenbak Registry - approximately 14 originals are left
- Design of the Kenbak-1 - detailed internal description
- TinyCAD Schematics - full schematics
- Welcome to KenbakKit.com! - "Home of the Official Kenbak-1 Reproduction Kit!"
- Kenbak-1 - no longer maintained, but useful info and links
- KENBAK-1 Computer
- Kenbak-1 digital computer - from Paul Allen's collection at the LCM, includes several images
- Kenbak-1