Apple //e
Go to file
Brad Grantham ca376dab5a CAPS lock, More instructions and compatibility
GLFW doesn't pass through Mac CAPS lock key for some reason.
CAPS button in GUI works, though.
Implement more instructions, mostly for ChopLifter
    DEC abs, X
    INC abs, X
    AND (ind), Y
    AND abs, X
    ROR abs
Now ChopLifter needs unimplemented SED!  Probably uses decimal mode while printing score.
Set "then" at end of CPU loop to try to throttle better.  Not sure it helps.
2016-11-28 14:22:22 -08:00
.gitignore
apple2.rom
apple2e.cpp CAPS lock, More instructions and compatibility 2016-11-28 14:22:22 -08:00
apple2e.rom
apple2font.ppm
COLORBOUNCE.A
COLORBOUNCESOUND.A Audio. Probably won't work properly in FAST mode. 2016-11-23 23:29:23 -08:00
cycles.py cycle table formatting and more data 2016-11-28 09:55:01 -08:00
d6502.c
dis6502.cpp
dis6502.h
diskII.c600.c67f.bin beginning of diskII support 2016-11-26 14:51:14 -08:00
emulator.h
extractglyphs.cpp properly output and use checkerboard char 2016-11-19 00:57:42 -08:00
fake6502.c
fake6502.h Partially implement floppy disks 2016-11-27 17:10:03 -08:00
FRACTAL.A
genkeys.py
genrows.py generate HGR row interleaving 2016-11-18 23:29:57 -08:00
GRCOLORS.A
interface.cpp CAPS lock, More instructions and compatibility 2016-11-28 14:22:22 -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
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
switches.txt Partially implement floppy disks 2016-11-27 17:10:03 -08:00

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