Version 9
    element14 presents
    Emulate an EPROM - How Hard Could it Be?

    element14 Presents  |  Bald Engineer: James Lewis' VCP Profile |  Project Videos



    The Apple IIe uses a custom microcontroller and ROM chip to put ASCII values into the computer’s memory. How hard could it be to replace that dual-chip setup with a microcontroller to emulate another kind of keyboard? Bald Engineer tries using an Arduino Mega 2560, Teensy 4.0, and a Pi Pico to replace a vintage ROM chip. See what works AND what does not!


    In the attached zip file are:


    • KiCad files for the ROM Interposer Board
    • Arduino code for ROM test
    • Teensy code to test interrupt latency
    • Python code that can respond to an Output Enable signal


    A couple of notes that keep coming up:


    Q: Why do you need to emulate a ROM chip anyway?

    A: Like most 8-bit computers, the keyboard interface eventually talks directly to the memory bus. In an Apple IIe (and IIc), that is done through a ROM chip.


    Q: Why not just replace the keyboard matrix?

    A: The final design will not use the original keyboard microcontroller or ROM. Ideally, I want to have an interface for a USB keyboard (and possibly Apple Desktop Bus: ADB.)


    Q: The Teensy was only 200 nanoseconds, why not just use that?

    A: The Mini-Apple IIe is based on the MEGA-II ASIC from an Apple IIgs. Its timing is tighter and slightly different from the Apple IIe’s MMU. The Teensy is slightly too slow.


    Q: What is “Golden Delicious”?

    A: Originally, I was naming this project “Golden Delicious.” So, let’s call it a code name. Now, I call it “Mini Apple IIe.” But, the final project has a different name.


    Supplemental Content:



    Bill of Material:


    Product NameManufacturerQuantityBuy KitBuy Kit
    Pi Pico (RP2040)Raspberry Pi Foundation1Buy NowBuy Now
    Mega 2560Arduino1Buy NowBuy Now
    Analog Discovery 2Digilent1Buy NowBuy Now
    Digital DiscoveryDigilent1Buy NowBuy Now


    Additional Parts:


    Product Name
    Teensy 4.0 from PJRC