Apple //e
Go to file
Brad Grantham a9f5b9f18a Audio. Probably won't work properly in FAST mode.
Try COLORBOUNCESOUND.A.
2016-11-23 23:29:23 -08:00
.gitignore ignore objects 2016-11-08 13:23:26 -08:00
COLORBOUNCE.A LORES bouncing pixel 2016-11-18 23:25:03 -08:00
COLORBOUNCESOUND.A Audio. Probably won't work properly in FAST mode. 2016-11-23 23:29:23 -08:00
FRACTAL.A HIRES fractal 2016-11-18 23:25:22 -08:00
GRCOLORS.A Show all LORES colors 2016-11-18 23:25:48 -08:00
Makefile Audio. Probably won't work properly in FAST mode. 2016-11-23 23:29:23 -08:00
QUADRADOODLE.A Draw lines mirrored in X and Y 2016-11-18 23:26:01 -08:00
RAY1.A fixup cut-and-paste 2016-11-22 09:53:35 -08:00
README.md Audio. Probably won't work properly in FAST mode. 2016-11-23 23:29:23 -08:00
apple2.rom Add BVC, another ROR, CLV, apple2.rom runs further 2016-11-07 11:39:25 -08:00
apple2e.cpp Audio. Probably won't work properly in FAST mode. 2016-11-23 23:29:23 -08:00
apple2e.rom Add Apple 2e ROM from elsewhere. 2016-11-06 14:03:08 -08:00
apple2font.ppm utility to extract C from font image 2016-11-18 11:33:50 -08:00
cycles.py script to emit cycles-per-instruction 2016-11-23 15:44:29 -08:00
d6502.c use strcmp instead of == 2016-11-15 10:34:12 -08:00
dis6502.cpp compile on Linux; clean up on exit 2016-11-09 03:46:26 -08:00
dis6502.h disassembler in function 2016-11-07 21:22:08 -08:00
emulator.h Incomplete Apple //e emulator 2016-11-06 00:53:43 -07:00
extractglyphs.cpp properly output and use checkerboard char 2016-11-19 00:57:42 -08:00
fake6502.c Fix CX00 ROMs, implement alternate 6502 2016-11-11 15:18:08 -08:00
fake6502.h Fix CX00 ROMs, implement alternate 6502 2016-11-11 15:18:08 -08:00
genkeys.py Rudimentary GL window with keyboard support 2016-11-16 16:16:10 -08:00
genrows.py generate HGR row interleaving 2016-11-18 23:29:57 -08:00
interface.cpp fix paste to only work with SUPER key (CMD on Mac), fix #4 2016-11-23 22:20:04 -08:00
interface.h PAUSE button works, CAPS and COLOR unimplemented 2016-11-23 10:53:56 -08:00
keyboard.cpp Allow running without TTY (e.g. in Instruments) 2016-11-20 12:27:58 -08:00
keyboard.h Modified for interactivity 2016-11-07 21:22:49 -08:00
switches.txt soft switch and IO descriptions 2016-11-06 12:36:54 -08:00

README.md

Apple2e

Yet another Apple //e emulator.

I wrote this not because the world needed another //e emulator, but because I wanted to have the fun of building a thing from scratch to run my old Apple //e software.

At the time of writing, the emulator handles only 40-column text mode and no floppy.

There are several AppleSoft files in this project (*.A) that can be copied into the clipboard and then pasted into the emulator window with CMD-V.

Thanks to Lawrence Kesteloot for keyboard code, and Bart Grantham for extracting all our old floppy disk images!

Thanks to Mike Chambers (miker00lz@gmail.com) for his 6502 CPU emulator, which I used as a reference when mine hung on "PRINT 5".

Requirements for building:

  • GLFW
  • libao
  • OpenGL 3.2-compatible system
  • C++11
  • Currently the project only builds on MacOSX because of the linker line in Makefile, but the C++ code itself should be cross-platform.

On MacOSX with MacPorts, the GLFW and libao dependency can be satisfied with glfw and libao ports. According to https://support.apple.com/en-us/HT202823, almost all modern Macs should have OpenGL 3.2 or later. On my machine, I've been compiling with a g++ that outputs Apple LLVM version 8.0.0 (clang-800.0.42.1) for g++ -v.

Usage:

apple2e [options] <romfile>

Options:

-debugger # start in the debugger
-fast     # start with CPU running as fast as it can run

Useful debugger commands:

reset # Press CTRL-RESET
reboot # Press CTRL-OpenApple-RESET
fast # run CPU as fast as it can go
slow # Approximate CPU at 1.023 MHz
debug N # Set debug flags to N (decimal). See apple2e.cpp for flags
go # Exit debugging, free-run.  Press CTRL-B to break back into the debugger
# Enter a blank line to step one instruction