External EEPROM executes code, when it boots
What I tried
An external ROM interface on the core: 14 address lines, 8 data lines, control signals, and the monitor project switched over to fetch from it. The Makefile grew a .bin target and a flashing step for the EEPROM. The part is an AT28C64B, 8K by 8, 5 V. Between it and the 3.3 V FPGA sit HW-221 breakout boards, which are TXS0108E auto-direction shifters. Pull-ups went on the control signals.

What I measured
Code executes from the EEPROM when the board boots. Boot is unreliable. The monitor banner shows artifacts, and spurious ‘0’ characters show up on the serial line. Power-cycling the shifter board changed boot reliability and power-cycling nothing else did.
What I didn’t know yet
The cause. I chased address-dependent corruption for months after this: programs that broke when code moved a few bytes, random freezes, characters from nowhere. On 2026-03-14 the RAM moved to 0x2000 to leave room for a bigger ROM, still on the theory that the memory map was the problem. The answer is in the July 1 log.
Next
Keep the EEPROM path and keep looking for the fault.