Intel 8008

The Intel 8008 ("eight-thousand-eight" or "eighty-oh-eight") is an early 8-bit microprocessor capable of addressing 16 KB of memory, introduced in April 1972.

In order to address several issues with the Datapoint 3300, including excessive heat radiation, Computer Terminal Corporation (CTC) designed the architecture of the 3300's planned successor with a CPU as part of the internal circuitry re-implemented on a single chip.

Mazor, who had been working with Ted Hoff on the development of the Intel 4004, proposed that a one-chip programmable microprocessor might be less cumbersome and ultimately more cost effective that building a custom logic chipset.

[4] TI was able to make samples of the 1201 based on Intel drawings,[citation needed] but these proved to be buggy and were rejected.

CTC decided to re-implement the new version of the terminal using discrete TTL instead of waiting for a single-chip CPU.

CTC voted to end their involvement with the 1201, leaving the design's intellectual property to Intel instead of paying the $50,000 contract.

The Sac State 8008 was possibly the first true microcomputer, with a disk operating system built with IBM Basic assembly language in PROM,[disputed – discuss] all driving a color display, hard drive, keyboard, modem, audio/paper tape reader, and printer.

In the UK, a team at S. E. Laboratories Engineering (EMI) led by Tom Spink in 1972 built a microcomputer based on a pre-release sample of the 8008.

[citation needed] The 8008 was the CPU for the very first commercial non-calculator personal computers (excluding the Datapoint 2200 itself): the US SCELBI kit and the pre-built French Micral N and Canadian MCM/70.

[12] For controller and CRT terminal use, this is an acceptable design, but it is rather cumbersome to use for most other tasks, at least compared to the next generations of microprocessors.

[citation needed] The subsequent 40-pin NMOS Intel 8080 expanded upon the 8008 registers and instruction set and implements a more efficient external bus interface (using the 22 additional pins).

It has automatic CAL and RET instructions for multi-level subroutine calls and returns which can be conditionally executed, like jumps.

These are intended to be supplied by external hardware in order to invoke interrupt service routines, but can employed as fast calls.

The following 8008 assembly source code is for a subroutine named MEMCPY that copies a block of data bytes of a given size from one location to another.

This example borrows the 8080's assembler AND and SHR (shift right) operators to select the low and high bytes of a 14-bit address for placement into the 8 bit registers.

The values are stored in little-endian format, although this is an arbitrary choice, since the CPU is incapable of reading or writing more than a single byte into memory at a time.

The BC register pair is loaded with the CNT parameter value and decremented at the end of the loop until it becomes zero.

The following 8008 assembly source code is for a simplified subroutine named MEMCPY2 that copies a block of data bytes from one location to another.

Because of this, some sort of external memory device such as a hardware stack or a pair of read/write registers must be attached to the 8008 via the I/0 ports to help save the state of the 8008.

i8008 microarchitecture
Intel 8008 wafer and two processors, closed and open