Ted Hoff observó la arquitectura, el conjunto de instrucciones y el diseño lógico que había presentado CTC y estimó que Intel podría integrarlo en un sólo chip, así que Intel y CTC firmaron un contrato para desarrollar el chip. El chip, internamente llamado 1201, sería un dispositivo de 8 bits. Pensado para la aplicación de terminal inteligente, debería ser más complejo que el 4004.
Al principio parecía que el 1201 saldría antes que el 4004 ya que Federico Faggin tenía que desarrollar cuatro chips, siendo el 4004 el último de ellos. Sin embargo, después de algunos meses de trabajo con el 1201, el diseñador, Hal Feeney, fue puesto a diseñar un chip de memoria, con lo que el proyecto del 1201 fue puesto en el "freezer".
Mientras tanto, CTC también contrató a la empresa Texas Instruments para hacer el diseño del mismo chip como fuente alternativa. Al final de 1970 Intel continuó con el proyecto del 1201 bajo la dirección de Faggin y Feeney fue puesto nuevamente a trabajar en este proyecto.
En junio de 1971, TI puso un aviso en la revista Electronics donde se detallaban las capacidades de este integrado MOS LSI. Con la leyenda "CPU en un chip" se acompañaba la descripción del circuito a medida para la terminal Datamation 2200. El aviso decía "TI lo desarrolló y lo está produciendo para Computer Terminal Corp.". Las dimensiones indicadas eran 5,46 por 5,71 mm, un chip enorme aun para la tecnología de 1971 y era 225% más grande que el tamaño estimado por Intel.
El chip de Texas Instruments, sin embargo, jamás funcionó y no se puso en el mercado. Sorprendentemente, TI patentó la arquitectura del 1201, que fue realizado por CTC con algunos cambios de Intel, con lo que luego hubo batallas legales entre Intel y TI.
Durante el verano (en el hemisferio norte) de 1971, mientras el trabajo con el 1201 estaba progresando rápidamente, Datapoint decidió que no necesitaba más el 1201. La recesión económica de 1970 había bajado el costo de los circuitos TTL de tal manera que ya no era rentable el circuito a medida. Datapoint le dejó usar la arquitectura a Intel y a cambio la última no le cobraba más los costos de desarrollo.
Intel decidió cambiarle el nombre al 1201: se llamaría 8008. El primero de abril de 1972 se lanzó este microprocesador al mercado con un conjunto de chips de soporte, como una familia de productos llamado MCS-8. Estos chips de soporte eran integrados existentes con los nombres cambiados. El interés del mercado por el MCS-8 fue muy alto, sin embargo las ventas fueron bajas.
Para solucionar este inconveniente, se diseñaron herramientas de hardware y software, entrenamiento y sistemas de desarrollo. Estos últimos son computadoras especializadas para desarrollar y depurar programas (quitarles los errores) para el microprocesador específico. Un año después, Intel recibía más dinero de los sistemas de desarrollo que de los microprocesadores y chips de soporte.
A título informativo cabe destacar que este microprocesador de ocho bits poseía alrededor de 3500 transistores, direccionaba 16 KBytes y la frecuencia máxima de reloj (clock) era de 108 KHz.
Clasificación | Registro | Longitud (en bits) |
---|---|---|
Acumulador | A | 8 |
Registros de uso general | B | 8 |
C | 8 | |
D | 8 | |
E | 8 | |
H | 8 | |
L | 8 | |
Contador de programa | PC | 14 |
El 8008 no tiene registro de puntero de stack (SP). Tiene una pila interna de 8 posiciones para almacenar las direcciones de retorno en el caso de llamadas a subrutina.
Hay cuatro indicadores (o flags): Carry, Sign, Parity y Zero (C, S, P, Z).
SALTOS | LLAMADAS | RETORNOS | CONDICIÓN |
---|---|---|---|
JMP Addr | CALL Addr | RET | Incondicional |
JNC Addr | CNC Addr | RNC | Si no hay carry |
JNZ Addr | CNZ Addr | RNZ | Si no es cero |
JP Addr | CP Addr | RP | Si es positivo |
JPO Addr | CPO Addr | RPO | Si paridad impar |
JC Addr | CC Addr | RC | Si hay carry |
JZ Addr | CZ Addr | RZ | Si es cero |
JM Addr | CM Addr | RM | Si es negativo |
JPE Addr | CPE Addr | RPE | Si paridad par |
MOVER DATO | ARITMETICA Y LOGICA | |||
---|---|---|---|---|
MVI reg,D8 | reg <- D8 | ADI D8 | A <- A + D8 | |
MOV reg,A | reg <- A | ADD reg | A <- A + reg | |
MOV reg,B | reg <- B | ACI D8 | A <- A + D8 + Cy | |
MOV reg,C | reg <- C | ADC reg | A <- A + reg + Cy | |
MOV reg,D | reg <- D | SUI D8 | A <- A - D8 | |
MOV reg,E | reg <- E | SUB reg | A <- A - reg | |
MOV reg,H | reg <- H | SBI D8 | A <- A - D8 - Cy | |
MOV reg,L | reg <- L | SBB reg | A <- A - reg - Cy | |
ANI D8 | A <- A and D8 | |||
INCREMENTAR | DECREMENTAR | ANA reg | A <- A and reg | |
INR B: B<-B+1 | DCR B: B<-B-1 | XRI D8 | A <- A xor D8 | |
INR C: C<-C+1 | DCR C: C<-C-1 | XOR reg | A <- A xor reg | |
INR D: D<-D+1 | DCR D: D<-D-1 | ORI D8 | A <- A or D8 | |
INR E: E<-E+1 | DCR E: E<-E-1 | ORA reg | A <- A or reg | |
INR H: H<-H+1 | DCR H: H<-H-1 | CPI D8 | A - D8 | |
INR L: L<-L+1 | DCR L: L<-L-1 | CMP reg | A - reg |
ROTAR ACUMULADOR | CONTROL | RESTART | ||
---|---|---|---|---|
RLC | HLT | RST n (0 <= n <= 7) Es una llamada a una subrutina cuya dirección absoluta es 8*n | ||
RRC | NOP | |||
RAL | ||||
RAR |
ENTRADA DE PORT | SALIDA A PORT |
---|---|
IN n (0 <= n <= 7) A <- Port n | OUT n (8 <= n <=31) Port n <- A |
donde Addr es una dirección de 14 bits y D8 es un dato inmediato de 8 bits. reg puede ser cualquiera de los siete registros A, B, C, D, E, H o L o bien puede ser M. El último indica direccionamiento indirecto utilizando el par HL como puntero.