Intel 8008 CPU DEMO

The World's First 8-Bit Microprocessor

Phone: 555-8008

Introduction

Welcome to the SLP-8008 emulator, a faithful implementation of the Intel 8008 microprocessor for the Emulator.ca modem network. The 8008 holds a singular distinction in computing history: it was the world's first 8-bit microprocessor, the chip that made the personal computer revolution conceivable.

The 8008 Legacy

In 1972, Intel released the 8008---a chip originally designed as a terminal controller for Computer Terminal Corporation (later Datapoint). What emerged was something far more significant: a general-purpose 8-bit processor capable of running arbitrary programmes stored in memory. For the first time, a complete CPU existed on a single silicon die that could process data eight bits at a time.

The 8008 was modest by later standards---a 0.5 MHz clock, 14-bit address space (16 kilobytes), and an internal 8-level hardware stack---but it was revolutionary in its time. Notable systems built around the 8008 include:

The 8008's instruction set and register architecture directly influenced its successor, the Intel 8080, which in turn shaped the Z80 and the entire x86 lineage. Every modern PC traces its ancestry back to this humble 18-pin chip.

This 8008 emulator implements the complete documented instruction set. It provides 16KB of memory (the full 14-bit address space), BIOS support, and UART I/O for serial communication over the modem link.

Quick Start

Dial 555-8008 to see the Intel 8008 in action. The system loads a pre-compiled "Hello World" programme, executes it on the emulated 8008, and displays the output through the simulated UART. No interaction is required---simply connect and watch.

Getting Connected

To access the SLP-8008 system, configure your modem and dial:

ATDT555-8008

Upon successful connection, you will see the system banner followed by programme output:

CODE_FENCE_0

The demonstration loads the BIOS at address 0x0000, then loads the hello.bin test programme at 0x0100. Execution begins at the BIOS cold start vector, which initialises the system and transfers control to the test programme. After the programme outputs its message, the CPU executes a HLT instruction and the connection closes.

Terminal Settings

Configure your terminal software as follows:

This service runs a pre-compiled hello world programme to demonstrate 8008 emulation. The programme executes automatically upon connection. The line disconnects after completion.

Architecture Overview

The Intel 8008 is an 8-bit microprocessor with a 14-bit address bus, providing access to 16 kilobytes of memory. Despite its simplicity, it established the register architecture pattern that would persist through the 8080, Z80, and x86 families.

Registers

The 8008 contains seven 8-bit registers:

    +---+
    | A |   Accumulator
    +---+
    | B |   General purpose
    +---+
    | C |   General purpose
    +---+
    | D |   General purpose
    +---+
    | E |   General purpose
    +---+
    | H |   High byte of memory pointer
    +---+
    | L |   Low byte of memory pointer
    +---+

A (Accumulator): The primary register for arithmetic and logical operations.

H and L: Together form a 14-bit memory pointer. Many instructions use the pair (HL) to reference memory indirectly---a convention that would carry forward to the 8080 and Z80.

B, C, D, E: General-purpose registers for data manipulation.

Flags

The 8008 maintains four condition flags:

Flag Description
Carry Set on arithmetic carry or borrow
Zero Set when result is zero
Sign Set when result bit 7 is 1 (negative)
Parity Set when result has even parity

Memory Map

    +------------------+ 0x3FFF (16383)
    |                  |
    |       RAM        |
    |   (15.75 KB)     |
    |                  |
    +------------------+ 0x0100 (256)
    |     BIOS/ROM     |
    |    (256 bytes)    |
    +------------------+ 0x0000 (0)

The 8008's 14-bit program counter limits the address space to 16KB. The BIOS occupies the first 256 bytes, and programmes load at 0x0100.

Internal Stack

Unlike its successors, the 8008 uses an internal hardware stack of eight levels. There is no stack pointer register exposed to the programmer, and no general-purpose PUSH/POP instructions. This limits subroutine nesting to eight levels deep---a constraint that required careful programme design.

I/O

The 8008 communicates with the outside world through IN and OUT instructions. In this implementation, the UART peripheral provides serial I/O for communication over the modem link.

What the Demo Does

The hello world demonstration exercises several key aspects of the 8008 emulator:

  1. BIOS Initialisation - The BIOS at address 0x0000 performs system setup and jumps to the programme entry point at 0x0100.

  2. String Output - The test programme iterates through a message string stored in memory, sending each character to the UART output port.

  3. UART Communication - Characters written to the UART appear on your terminal through the modem connection, demonstrating the complete data path from CPU register to your screen.

  4. HLT Instruction - After the message is displayed, the programme executes a HLT instruction, which halts the processor. The emulator detects this and cleanly terminates the session.

The entire programme executes in milliseconds of emulated time, though the output trickles through at modem speed---an authentic touch that would have been familiar to anyone using an 8008-based terminal in 1973.

See Also