Kjetil's Information Center: A Blog About My Projects

Apple IIc Emulator

In the ongoing effort to create curses-based emulators that can run in a Linux termal, the Apple IIc is now implemented. I chose the IIc specifically, as opposed to the Apple II/II+/IIe, because I have a real IIc for comparison.

40 and 80 column text modes are displayed as-is in the terminal. LoRes graphics are also supported and uses 256-color mode at 80 columns by 48 lines. HiRes graphics will be approximately displayed but too blocky to be useful. However, it is possible to output the HiRes graphics on a SDL window in parallel, but no input is recognized there. Due to these limitations most games are unplayable, and the emulator is mostly useful for text-based applications.

The Apple IIc uses a NCR variant of the 65C02, but I choose to emulate the more common WDC 65C02 instead since it is compatible and also easier to verify with external tools. The WDC variant might also be used in other projects in the future.

The floppy disk image situation with Apple II is quite messy, where disk images floating around on the Internet have different sector interleaving depending on if it is a DOS image, ProDOS image or something else. The emulator will try to guess the type based on the extension or a signature, but if that fails the type and be forced with a command line option.

All Apple IIc ROM variants, FF, 00, 03 or 04 can be used, and the internal diagnostics present in some of the ROMs should also pass. Both ACIA serial chips are emulated, and the second one, normally used for a modem, can also be redirected to a real TTY on Linux.

You can download version 0.1 here or check out the GitHub or GitLab repositories.

"VisiCalc" in 40 column text mode:

Screenshot of VisiCalc.


"FreeWriter" in 80 column text mode:

Screenshot of FreeWriter.


"Lemonade Stand" in LoRes graphics mixed mode:

Screenshot of Lemonade Stand.


Here is a demo video showing coding in Applesoft BASIC and booting of ProDOS.

Topic: Open Source, by Kjetil @ 14/03-2025, Article Link