Apple //e
Go to file
2016-12-05 17:28:09 -08:00
.gitignore ignore objects 2016-11-08 13:23:26 -08:00
apple2.rom Add BVC, another ROR, CLV, apple2.rom runs further 2016-11-07 11:39:25 -08:00
apple2e.cpp Remove termio keyboard, disable 80-col on RESET 2016-12-05 17:27:57 -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
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
cycles.py cycle table formatting and more data 2016-11-28 09:55:01 -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
diskII.c600.c67f.bin beginning of diskII support 2016-11-26 14:51:14 -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 Partially implement floppy disks 2016-11-27 17:10:03 -08:00
FRACTAL.A HIRES fractal 2016-11-18 23:25:22 -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
GRCOLORS.A Show all LORES colors 2016-11-18 23:25:48 -08:00
interface.cpp HGR colors, label floppy drives 2016-12-05 16:27:59 -08:00
interface.h Implement 80-column mode - ProDOS boots to 80 cols 2016-12-04 22:07:00 -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
Makefile Add drag-and-drop floppies, fix cold-start 2016-12-02 10:42:22 -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 Update README.md with GUI and other information 2016-12-05 17:28:09 -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 the original 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.

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, all modern Macs 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] ROM.8000.to.FFFF.bin

Options:

    -debugger # start in the debugger
    -fast     # start with CPU running as fast as it can run
    -noaudio  # stream no audio buffers
    -diskII diskIIrom.bin {floppy1image.dsk|none} {floppy2image.dsk|none}

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.
# Enter a blank line to step one instruction

When the window opens, the emulator displays a user interface panel to the right of the graphics screen. The buttons and icons are as follows:

  • RESET - click to simulate pressing CONTROL and RESET keys
  • REBOOT - click to simulate pressing CONTROL and Open-Apple and RESET keys
  • FAST - click to toggle between running at 1.023MHz and running the CPU as fast as possible (audio will stop in "fast" mode)
  • CAPS - click to toggle forcing caps lock on.
  • COLOR - click to switch between color hi-res graphics and monochrome.
  • PAUSE - click to pause or resume running the CPU.
  • Floppy drive icons: Drag and drop floppy .dsk files onto a drive to "insert" the flopy disk. Click the drive icon to "eject" the floppy disk.

If no joystick or gamepad is configured, the Apple 2 screen acts as a joystick. To configure a joystick, store the GLFW numbers of the two axes and two buttons in "joystick.ini".