8086 emulator on Arduino UNO (atmega328p)

raspiduino's picture
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0



Intel 8086 emulator on Arduino UNO (atmega328p)

1. What is this?

avr-x86 is an 8086 emulator running on Arduino UNO (atmega328p) and upper. The emulator core is based on fake86 and a port of corax89 at https://github.com/corax89/Ardui...avr-x86 can load assembly programs from the SD card and run it.

Proteus simulation 

As you can see, avr-x86 is running Brainfuck on Proteus simulation.

2. What can it do?

  • Emulating a complete 8086/80186 CPU
  • Text/Console interface through serial
  • Load program from SD card
  • Virtual RAM feature (Virtual RAM file on SD card, not the AVR's RAM, so you can have more ram than AVR support)

3. Todo

  • Add BIOS/HD support
  • Reduce sketch size

4. Credit

  • Fake86 by Mike Chambers
  • Fake86 port to Arduino by corax89
  • Fat16 library by William Greiman

5. Link to GitHub: https://github.com/raspiduino/av...

6. Note: There are prebuilt hex for an Arduino UNO bellow

Sketch uses 32130 bytes (99%) of program storage space. Maximum is 32256 bytes.
Global variables use 1176 bytes (57%) of dynamic memory, leaving 872 bytes for local variables. Maximum is 2048 bytes.