SolarOS

SolarOS 4.16.15 manual · app

Apple II Plus

Apple II Plus is an external foreground app for ESP32-S3 devices with PSRAM, graphics, and native-module support. It emulates a 6502, 64 KiB RAM including the language card, 40-column text, lores/hires and mixed graphics, two Disk II drives, keyboard, paddles, and speaker. Undocumented CPU opcodes act as NOPs. Apple II Plus and Disk II firmware ROMs are bundled. Supply disk images separately.

Quick reference

pkg install apple2
apple2
apple2 /sdcard/apple2/dos33.nib
session create apple2 display0 /sdcard/apple2/dos33.nib

Installation and disks

Install from a compatible module catalog with pkg install apple2, or copy solaros_native_apple2.app.elf to modules/apps/apple2.elf in the preferred storage volume. The app appears in the installed app registry.

No separate ROM files are needed. NIB disk images must be exactly 232960 bytes. Mount one or two disks at launch, or run apple2 without arguments to start Applesoft BASIC. For example, type PRINT 123+456 and press Enter.

Launch

apple2
apple2 drive1.nib [drive2.nib]
apple2 /sdcard/apple2/dos33.nib
load /sdcard/solaros_native_apple2.app.elf /sdcard/apple2/dos33.nib

Disk paths are relative to the launching shell's current directory, or absolute. The older apple2 <disk-directory> [drive1.nib] [drive2.nib] form also works: from /sdcard, use apple2 apple2 dos33.nib. Relative disk names then use that directory. Files opens .nib images with the installed module.

Text and status overlays follow the terminal theme; graphics use Apple II palettes. Changed frames are presented at up to 25 Hz. On native color displays, the aspect-ratio bars are black. Speaker output is optional; emulation continues when audio is unavailable.

Controls

Letters are converted to uppercase for the guest. Arrow keys, Backspace, Enter, and Ctrl combinations are translated to Apple II keyboard input.

Sessions and disk saves

Use Alt+Tab or Alt+Right for the next SolarOS session and Alt+Left for the previous session. session fg ID also selects a session. Switching retains guest CPU, RAM, mounted disks, unsaved writes, and the pause state while releasing display and audio. Resume clears held controls and rebases timing.

Disk writes remain in memory until saved with F1 or Alt+F1. Saving atomically replaces the corresponding NIB file and requires writable storage. Closing the app discards unsaved disk changes.

See the foreground app contract and module build instructions.