Inside a complete computer: Apple-1.

Follow the Apple-1 from its 6502 through RAM, the 6820 PIA and a 256-byte monitor ROM. The lab now boots its own original VMA Monitor by default, so you can slow the machine down until individual bus transactions become visible.

This is an educational Apple-1 hardware model. It boots a built-in, original 256-byte VMA Monitor written independently for this museum. It uses the Apple-1 PIA addresses and familiar monitor ideas—hex examine, deposit and run—without containing Woz Monitor source or ROM bytes. You can still load an external 256-byte ROM as an override. The CPU exposes memory/I/O transactions for teaching rather than claiming cycle-accurate Apple-1 timing.
6502 · 6820 PIA · 4/8 KB DRAM · VMA MONITOR
BUILT-IN VMA MONITOR · 256 BYTES · CRC32 5CD065C9
A0–A15 · 16-BIT ADDRESS BUS D0–D7 · 8-BIT DATA BUS R/W · CLOCK · CHIP SELECT MOS 6502CPU · ≈ 1 MHzA · X · Y · SP · PCA0–A15 · D0–D7 · R/Wonly bus master CLOCK / TIMING14.31818 MHz terminal masterprocessor clock derived here TTL DECODEaddress → chip selectRAM · PIA · ROM DRAM X4 KB · $0000–$0FFFzero page · stack · programs DRAM Woptional 4 KB$E000–$EFFF 6820 PIA$D010–$D013keyboard + display I/O MONITOR ROM256 bytes$FF00–$FFFF ASCII KEYBOARD7-bit data + strobe CHARACTER VIDEO TERMINALshift storage · character ROM · serializer
Click any block to inspect its job. This functional schematic is a clean educational reconstruction of the Apple-1 architecture. The built-in VMA Monitor is already in ROM; press RESET, then use BUS / MICRO STEP to watch the 6502 select RAM, PIA and ROM on the live buses.
MOS 6502processor
address / data / R/W
4K DRAM BANK X$0000–$0FFF
dynamic refresh
4K DRAM BANK W$E000–$EFFF
optional second bank
6820 PIAkeyboard + display
$D010–$D013
14.31818 MHz + TTLterminal timing
CPU clock derived here
2504 × 6 (+ cursor)1024-bit dynamic shift
character screen storage
251940-character row
recirculation buffer
251364-character
5 × 7 character ROM
74166parallel-to-serial
pixel shift register
256-BYTE ROMVMA Monitor by default
$FF00–$FFFF
TTL DECODINGselect RAM / PIA / ROM
from address lines
EXPANSION / ACIcassette interface
optional hardware

This view groups the important functions rather than reproducing the copyrighted original schematic. The Apple-1 is especially instructive because its terminal uses shift-register storage instead of a conventional screen RAM.

#PCR/WADDRDATADEVICEPURPOSE

Watch software become bus activity.

The program window disassembles the ROM that is actually executing. By default that is the museum's own 256-byte VMA Monitor. It configures the 6820 PIA, polls the keyboard, parses hexadecimal addresses, deposits bytes into RAM and jumps to programs while every memory and I/O access remains visible on the buses.

VMA Monitor ROM · $FF00–$FFF9Yellow highlighting follows the current program counter while it is inside ROM.
Use BUS / MICRO STEP to expose opcode, operand, stack and I/O transactions, or INSTRUCTION to advance one 6502 instruction at a time. VMA Monitor commands are intentionally small: 0200 examines one byte, 0200: A9 41 deposits bytes, and 0200R runs from an address. DEPOSIT HELLO places a tiny program at $0300; run it with 0300R.
Apple-1 style terminal40 columns × 24 rows. This is a pedagogical text renderer, not composite-video emulation.
_
Built-in VMA Monitor · keyboard queue empty.

One address bus, several different devices.

The 6502 does not need special instructions for RAM, ROM or I/O. It places an address on sixteen lines, indicates read or write, and external decoding determines which device responds. Click a region, or enter an exact address, to see the selection logic.

64 KB address-space mapCanonical Apple-1 regions plus unused/expansion space.
Address decoder probeHigh address bits perform most of the coarse device selection.
$D012 → 6820 PIA display registerThe PIA is selected; register-select lines choose its display data register.
RAM SELECT
0
PIA SELECT
1
ROM SELECT
0
OPEN / EXP
0

Follow one ASCII character all the way to video.

Writing a byte to the PIA is only the beginning. The original terminal section retains screen characters in dynamic shift registers, selects a dot row from a character-generator ROM and serialises those pixels into the video stream.

Terminal data pathWhen the CPU writes $D012, each stage below lights in sequence.
6820 PIA7-bit character
2504 / 2519character storage
2513 ROM5 × 7 dot row
74166pixel serializer
VIDEOcomposite output
CHARACTER:
ASCII: $--
PATH: waiting for display write
The Apple-1 character generator stores 64 glyphs. This lab uses its own compact 5×7 educational font to visualise the same character-ROM principle.

Break the computer on purpose.

A complete computer works only because several independent systems agree on timing and address ownership. Disconnect one subsystem, then run the HELLO program and observe the symptom.

Hardware fault switchesA pressed button means that subsystem is disconnected.
All subsystems connected. Try disconnecting VIDEO TIMING: after one character the software should spin in its display-ready loop even though the CPU itself still executes.

From this board to the personal-computer industry.

The Apple-1 makes the basic pattern unusually visible: processor, memory, ROM, address decoding and memory-mapped I/O. Later machines keep the same conceptual skeleton while adding increasingly specialised video, sound, storage and expansion hardware.

Continue through the museum

The same ideas scale outward.

Apple II adds colour graphics and expansion slots around the 6502. PET, VIC-20 and C64 take the 6502 family in Commodore's direction. Atari's 8-bit machines surround it with ANTIC/GTIA. The previous learning labs explain the logic and memory mechanisms inside every one of these systems.