an Apple ][ emulator in Python
Go to file
2013-03-08 07:00:00 -05:00
.gitignore Separate CPU core and UI processes 2011-08-16 12:54:23 +12:00
applepy_curses.py rename --ui switch to --bus 2011-08-19 20:30:55 +12:00
applepy.py improved hires colour, fixed non-ASCII key crash, fixed to work with later pygame/numpy 2013-03-08 06:56:52 -05:00
control.py add console control utility 2011-08-21 18:30:49 +12:00
cpu6502.py add --pc switch for starting run at specific program counter 2012-04-18 07:43:19 +12:00
cycle_notes.txt added notes on implementation that seems to give the right result 2011-08-14 23:45:10 -04:00
LICENSE improved hires colour, fixed non-ASCII key crash, fixed to work with later pygame/numpy 2013-03-08 06:56:52 -05:00
README.md added note about exact pip and brew commands I used 2013-03-08 07:00:00 -05:00
tests.py rename --ui switch to --bus 2011-08-19 20:30:55 +12:00

ApplePy - an Apple ][ emulator in Python

by James Tauber / http://jtauber.com/

Originally written 2001, updated 2011

Apple ][ ROM available from http://www.easy68k.com/paulrsm/6502/index.html

Credits

Some 6502 code came from contributions from Christiaan Kelly in 2007.

Greg Hewgill provided significant fixes and improvements to the 2011 version (see the commit log for details).

The character generator bitmaps were entered by hand from visual inspection of http://www.sbprojects.com/projects/apple1/terminal.php

Status

With original Apple ][ ROM it boots to the monitor, most monitor commands work and you can go into Integer BASIC (with E000G or Ctrl-B RETURN) and write and run programs. With an Apple ][+ ROM it boots to Applesoft Basic and runs all the programs I've tried so far.

The only I/O supported is the keyboard and screen but 40-column text, LORES and HIRES graphics are all supported.

ApplePy currently requires Pygame (although there is a minimal applepy_curses.py that uses curses to display text mode only) and numpy (just for an array for speaker sounds)

Here's how I set up the dependencies (on Mac OS X 10.8):

pip install numpy
brew install sdl sdl_image sdl_mixer sdl_ttf portmidi hg
pip install hg+http://bitbucket.org/pygame/pygame

License

This code is made available under an MIT License. See LICENSE.