Skip to content

firmware — code that runs INSIDE the machine

Folder Contents Proof
monitor/ monitor.asm + .img/.lst: the 2021 source (git ff7d85a, what is burned) plus one 2026-09-22 change: G = JSRUR R7 (was BRVR R7, an indirect jump), to burn next; candidates/ = later never-burned versions; monnew-2025/ = a small new D/M/B monitor draft tools/verify_firmware.py
basic/ basic.asm (the uBASIC port) + .img/.lst, same commit; candidates/ = later versions and the Nov-2020 port draft
rom/ shipped/rom = the image to burn (2026-09-22 rebuild: BASIC unchanged + the G-fixed monitor); eprom-captured-2026-09-18.* = what the chip holds (the 2021 build); builds/ = other builds; makerom
microcode/ ucode-generator2/ (the C generator) + yaccsignaldefine.h/yaccsignaldata2.h (signal table) + test.hex (the image)
abi/ to be written: BIOS vectors ($FFC0..), variable map, port map, derived from the two .asm headers

tools/verify_firmware.py rebuilds all of it from these sources in a scratch dir and diffs: assembler → monitor.img, basic.img → rom (== burned EEPROM); generator → test.hex. All IDENTICAL as of 2026-09-20. Assembler invocation gotcha: asm monitor -d=yacc1 — the source name must come BEFORE -d=… (the option handler skips the following argument).