Floppy disks partially work: apple2e -noaudio -fast -diskII disk2romfile {floppy1name,"none"} {floppy2name,"none"} apple2e.rom Import nybblizer from Shamus but only DOS Support floppy hardware track motor stepper enable read Add -noaudio (otherwise execution is throttled by waits once audio buffer is filled) Only read ROM at D000 and E000 if C08X_read_RAM isn't turned on RAMRD, RAMWRT, and ALTZP are implemented, note them as such in constructor Correctly decode C08X soft switches Implement a bunch more instructions INC abs LDY abs, X SBC abs, Y ADC abs ASL abs LSR abs, X ORA abs ORA abs, X AND abs, Y STA (ind, X) LDX abs CPX abs EOR (ind, X) EOR abs EOR abs, X STX abs Throttle to actual number of clocks per instruction Temporarily enable "Fake6502" instead of my CPU because there's an obvious difference Better blink speed in interface.cpp
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