Skip to content

rom/ — burnable image set

This directory is the single grab-and-burn folder: every EEPROM/EPROM image the machine needs, as a persistent, ready-to-burn artifact. Both .bin (raw) and .hex (Intel HEX, for the programmer) are committed.

(The microcode build dir ../microcode/ keeps its own u0–u3 copies — those are what the emulator and tests load — but the canonical burn copies live here.)

Regenerate

Rebuild after changing the monitor, BASIC, or microcode:

cd emulator && make rom        # or: sh tools/build_rom.sh

This refreshes microcode/u0–u3.{bin,hex} and all of rom/.

The burn set

Image Chip Card / socket Contents
p8x-ucode0.hex 28C64 (8 KB) control U10 microcode word bits 0–7
p8x-ucode1.hex 28C64 control U11 microcode word bits 8–15
p8x-ucode2.hex 28C64 control U12 microcode word bits 16–23
p8x-ucode3.hex 28C64 control U13 microcode word bits 24–31
p8x-prog-rom.hex 28C256 (low 8 KB) or 28C64; an 8 KB image, of which the rev F decode maps $0000–$17FF (6 KB) memory U1 monitor + BIOS @ $0000 (5,033 bytes, ~4.9 KB, used; the rest is zero-filled)

The four microcode EPROMs are addressed by IR | step<<8 | cond<<12; burn the same address range that the programmer reads from the .hex. The program ROM is mapped at $0000 and holds just the monitor + BIOS (~4.9 KB). BASIC is no longer ROM-resident — it ships as the disk program /BIN/BASIC.BIN, so the rest of the image is zero-filled; $1800–$1FFF is RAM on the machine, so the ROM's top 2 KB is never read.

Burn from the .hex files (standard Intel HEX, 16-byte records, 16-bit addresses). The .bin files are byte-identical raw images if your programmer prefers binary.