Apple I emulator.
Go to file
2015-12-04 22:21:16 -05:00
6502EmulatorFrontend started adding settings window for ROM paths 2015-12-04 22:10:31 -05:00
M6502EmulatorDll started adding settings window for ROM paths 2015-12-04 22:10:31 -05:00
LICENSE.md Add license file via addalicense.com 2015-12-04 22:21:16 -05:00
README.md Initial Commit 2015-11-29 15:32:04 -05:00

fruitmachine

This is the start of an Apple I emulator. Nothing really works yet beyond the CPU.

Things that work:

  • MOS 6502 core
  • Dumb terminal-style display output

Things that don't work:

  • The debugger
  • Cassette interface
  • Most of the UI

Known issues:

  • The blinking cursor will hang around if you hit carriage return while it's being displayed
  • Clicking Break and then Run will crash the emulator because I don't know how C# threading works
  • The display will sometimes lose input focus, click away from the window and back in to fix that
  • The cycle counts aren't completely accurate (a cycle isn't added for zero-page operations that wrap)
  • Many more

The ROM paths are hardcoded for the moment so the emulator expects these files to exist:

C:\apple\apple1.rom - Monitor ROM, 256B C:\apple\apple1.vid - Character ROM, 512B C:\apple\apple1basic.bin - Integer BASIC, available from http://www.pagetable.com/?p=32

To load Integer BASIC from the monitor, type E000R . The prompt will switch from \ to >, indicating that you are now in BASIC mode.

Most Apple I software on the internet is available in audiocassette format and I haven't written a cassette reader yet. If you have a debug copy of MESS, you can load a file into MESS' Apple I emulator, dump the program memory, and add it to the btnLoadBinary click event with Interop.loadBinary(path, address).

--

M6502EmulatorDLL compiles to a DLL. Add a reference to this DLL in 6502EmulatorFrontend to compile.