A Full Speed, Portable Apple //e

A while back, [Jorj] caught wind of a Hackaday post from December. It was a handheld Apple IIe, emulated on an ATMega1284p. An impressive feat, no doubt, but it’s all wrong. This ATapple only has 12k of RAM and only runs at 70% of the correct speed. The ATapple is impressive, but [Jorj] knew he could do better. He set out to create the ultimate portable Apple IIe. By all accounts, he succeeded.

This project and its inspiration have a few things in common. They’re both assembled on perfboard, using tiny tact switches for the keyboard. The display is a standard TFT display easily sourced from eBay, Amazon, or Aliexpress. There’s a speaker for terribad Apple II audio on both, and gigantic 5 1/4″ floppies have been shrunk down to the size of an SD card. That’s where the similarities end.

[Jorj] knew he needed horsepower for this build, so he turned to the most powerful microcontroller development board he had on his workbench: the Teensy 3.6. This is a 180 MHz ARM Cortex M4 running a full-speed Apple IIe emulator. Writing a simple 6502 emulator is straightforward, but Apple IIe emulation also requires an MMU. the complete emulator is available in [Jorj]’s repo, and passes all the tests for 6502 functionality.

The project runs all Apple II software with ease, but we’re really struck by how simple the entire circuit is. Aside from the Teensy, there really isn’t much to this build. It’s an off-the-shelf display, a dead simple keyboard matrix, and a little bit of miscellaneous circuitry. It’s simple enough to be built on a piece of perfboard, and we hope simple enough for someone to clone the circuit and share the PCBs.

21 thoughts on “A Full Speed, Portable Apple //e

  1. > Writing a simple 6502 emulator is straightforward, but Apple IIe emulation also requires an MMU .


    Jorj is calling memory mapper of Apple IIe an “MMU”, and it’s ok in the context. But the emulation does not require an MMU. Cortex M4 does not even have one.

    1. I think the article means to say “requires to emulate the Apple IIe MMU / Memory Mapper.

      Which probably isn’t that difficult if you are able to write a cycle-accurate 6502 emulator.

  2. A proper late model Apple IIe would always have an accelerator, 64K of RAM and a 1MByte RAM expansion card and an internal 40M hard drive that replaces the PSU. It should run at the speed of a 5 to 15MHz 65C02 to be realistic when compared to the real thing.

    ARM has the same condition codes on the same bits as 6502 (not a surprise I hope) and 6502 emulators can be really efficient.

      1. He’s referencing the Applied Engineering Vulcan, which was an internal HDD retrofit for the Apple //e that crammed a new power supply and an HDD in the spot where the factory //e power supply goes.

  3. “This is a 180 MHz ARM Cortex M4 running a full-speed Apple IIe emulator.”

    Please change the title of this article to “A Full Speed, Portable Apple //e Emulator”, as there is room in this unvierse for an actual Portable Apple //e using a _real_ 6502 processor.

  4. Please somebody offer this as a kit and take my money!!
    I have my original ][ (and a ][+ for backup) but can’t help but wonder each time I start them up if that will be the last time. 40+ years doesn’t exactly improve hardware (computers or meatspace). Plus I would so like to move my fragile old disks to some format a bit more durable.

    Wrap this up into something resembling a kit and I am sold.

  5. Just wanted to left you guys know, Jenn and I have been building out own version at home, at this time Jorj is working on printing and testing a prototype. We are using the same idea, but our end result will be an apple //+ portable, not an apple //e portable. :)

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.