Raw but full working implementation of Apple 1 replica, based on real W6502C MPU (modern 6502) and Arduino Due 4KB+4KB RAM.
Arduino Due just listen and write/write the 6502 pins (RW/Address/Data Bus), emulate the PIA (6821) Keyboard & Display + handle the 6502 clock.
The project was originally implemented on an Arduino UNO that is in any case limited in terms of RAM and also less performant. Arduino Due is a perfect fit instead.
The project is build over platform.io but you should be able to compile it in the Arduino standard IDE too, without any change.
## Serial client recommended settings (I'm using Serial under OSX):
Note: You may want to put a 100Uf capacitor near the 3.3v & GND lines too.
## Auto loaded Program & extended Memory
The Arduino sketch (main.cpp) automatically load the original Apple 1 Basic in the extended RAM at E000 address (was loaded via Tape in the original version).
Same is done with a Program included in AUTLOAD variable (look into programs.h).
You can comment & uncomment other programs as needed to get them auto loaded in the related RAM location.
First word in the source is the location in RAM when the program should be loaded. This is not part of any original logic, it's just a convenient way to fast load programs without manually inserting them via Woz Monitor.
You can easily comment out this logic or extend it as needed.
## MASM version of WAZ MONITOR (Official Apple 1 ROM)
Inside ASM folder you can find the woz_monitor_masm.asm source listing. This is the original ROM listing found in the apple 1 manual converted to be compatible with masm.
If you are under OSX - you can install MASM via homebrew and use it to compile any asm source included the one above.