RSS Amplifier

Machina Speculatrix · May 12, 2026

McROM: STM32 code for a ROM emulator

0
Sign in to vote or save

Machina Speculatrix · Machina Speculatrix

Manipulated close-up photograph of electronics — intended for decorative purposes only.
All photographs by the author

This is the second part of our journey to create a ROM emulator based around the STM32H523CET6 microcontroller. The basic idea is that the McROM, which is the improbable name I’ve given this device, should be a drop-in replacement for the AT28C256 EEPROMs I’ve been using to provide the ROM code for my Zolatron 65C02-based homebrew computer.

The EEPROM sits in a ZIF socket on the main processor board, which makes taking it out for reprogramming fairly easy. But not easy enough. I want to be able to reprogram the ‘ROM’ in place — something that’s not straightforward with EEPROMs. There are many ways to do this, but this one is mine.

And it seems a manageable job. The 28C256 EEPROM is a plain beast. We’ll ignore writing to it, because in the Zolatron it’s being used to emulate a mask ROM, which means that its only purpose in life is to be read, not written to.

The chip becomes active, or selected, when its chip enable (/CE) pin is pulled low by the CPU. When its output enable (/OE) pin is also pulled low, this is its cue to read the value on the address bus, which has been put there by the CPU, look up a corresponding byte value from its data table and place that value on the data bus. When the /CE line goes high again, the ROM goes back to minding its own business.

Read the original on mspeculatrix.substack.com

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.