A pure Python Apple II emulator -- designed to run on iOS through Pythonista. No C extensions, no dependencies, just Python.
Every cycle of the 6502 CPU is modeled, every quirk of the Apple II hardware reproduced. The key constraint: Pythonista on iOS doesn't support native extensions, so everything had to be pure Python. That limitation forced a clean, readable implementation.
Includes a reverse-engineering toolkit for analyzing Apple II software: disassembler, memory inspector, breakpoints on memory access patterns.
github.com/ljk53/pyapple2