HONEYCRISP EMULATOR
Home  |  My Music  |  My Videos
HoneyCrisp Emulator v1.3.9  |  © 2026 Landon J. Smith
Getting Started: Click CLEAR SCREEN, then SOFT RESET.
Click the TUTORIAL button for an introduction to the APPLE-1.
Download the HoneyCrisp Emulator Documentation
RAM: 4KB
|
Clock Frequency: 0 kHz
SYSTEM CONTROLS
STATE & SETTINGS
1.00x
PROGRAM MANAGEMENT
Tape File Loader
(Compatible with .WAV, .AIFF, or .MP3 tapes.)

Tape audio lags at higher CPU speeds.
Data loading is unaffected.
No file selected.  
|
CompactFlash™ Image Loader (.po)
Mount a ProDOS .po disk image for the CFFA1 interface. Type 9000R to launch the CFFA1 menu.
Drop .po disk image here or click to browse
You can also drop a .po file directly onto the terminal.
Disks stay mounted across resets.
PROGRAM CATALOG
Grabbing programs...
ADD YOUR OWN PROGRAM
Add a program either by URL (a raw .bas / .hc / .wav file link) or by uploading a file from your computer. Custom entries are saved in this browser only and show up alongside the built-in catalog.
LOAD .BIN FILE
is bytes.
Raw .BIN files carry don't carry address information.
Therefore, you must supply the load addresses.
Load and RUN addresses are supplied in hexadecimal.
SELECT BASIC INTERPRETER
You need to select which BASIC interpreter you want to use to load into before the program can run.
LOADING STATE
Initializing...
0%
Starting...
SETTINGS
STARTUP OPTIONS
Choose what ROM program HoneyCrisp Emulator will use at startup:
The HoneyCrisp Emulator will startup via: WOZMON
Runs diagnostic checks on startup before booting into the selected ROM.
DISPLAY SETTINGS
Terminal Theme:
DISPLAY MODE:
SESSION MANAGEMENT
MEMORY CONFIGURATION
Select RAM amount:
ROM OPTIONS
Relocates $F000-$FBFF into user-accessible space.
The KRUSADER assembler will not be available when checked.
BASIC ROM OPTIONS
When unchecked, $E000-$EFFF becomes user-accessible RAM. Integer BASIC will not be available.
Loads AppleSoft Lite into $6000-$6FFF at startup. Requires 32KB+ RAM. Type 6000R to launch.
Cannot be enabled alongside Enhanced BASIC due to confliciting address spaces.
Loads EhBASIC into $5800-$7FFF at startup. Requires 8KB+ RAM.
Type 5800R to launch.
Cannot be enabled alongside AppleSoft BASIC Lite due to conflicting address spaces.
Requires 8KB+ RAM. Type E000R to launch.
Cannot be enabled alongside Integer BASIC due to conflicting address spaces.
HELP
Getting Started

New to hexadecimal? Check out Counting in Hexadecimal before diving in.

The emulator boots into WOZMON by default. You can change the startup ROM under Settings -> Startup Options.

FF00Examine a memory address - type it and press RETURN
FF00.FFFFExamine a memory range
300: A9 42Write bytes to memory
300RRun program at address
F000RLaunch KRUSADER assembler from WOZMON

From KRUSADER, type $ to return to WOZMON.
From SmartyKit, type F000R for the "Apple 30th Anniversary" demo, F800R for the counter, FC00R for pixel art, or FD00R for Hello World.

BASIC
E000RLaunch Integer BASIC (requires 8KB+ RAM)
6000RLaunch AppleSoft Lite (requires 32KB+ RAM)
5800RLaunch Enhanced BASIC (requires 8KB+ RAM, *Enable in Settings first*)

Or load a .bas file. The emulator will start the appropriate BASIC interpreter, and run your program.
You can press ESCAPE or the BREAK button to stop at anytime.

Loading Programs
.hcMachine code | auto-runs when loaded from the catalog
.bas / .txtBASIC source files | require 8KB+ RAM to run
.mon / .aplWozMon keystroke dump (address: bytes ... ADDRR) | typed into the monitor and run automatically
.turUncle Bernie's TurboType™ format | auto-typed loader stub + CRC-verified fast transfer, runs automatically on success or falls back to the monitor with an EE error on a checksum mismatch
.binRaw binary dump | prompts for the load address range(s) and run address, since .bin files carry no address info of their own
.hcstateSaved emulator state | restores exactly where you left off

You can drag and drop any of these file types directly onto the terminal window to execute the file.

Tape File Loader & the ACI ($C100–$C1FF)

The Apple Cassette Interface (ACI) is mapped to $C100–$C1FF. HoneyCrisp emulates it, letting you load .AIFF, .WAV, or .MP3 cassette files directly into emulated RAM. MP3 is decoded via your browser's audio engine, so decode quality can vary slightly \u2014 .WAV is still recommended for the most reliable reads.

Loading a cassette:

1.Click Browse in the Tape File Loader and select your tape file.
2.Type C100R into the terminal and press RETURN.
3.At the C100: A9* prompt, enter memory address ranges - e.g. 0300.03FFR for a single range, or E000.EFFFR 004A.00FFR for multiple (up to 8).
4.Click ▶ Play Tape to start the tape rolling. The real ACI code reads the signal at $C081 bit-by-bit, exactly as on hardware. (If the ACI starts reading before you press Play, the tape auto-starts so you can't miss the leader tone.)

Writing a cassette:

1.Type C100R to reach the C100: A9* prompt.
2.Enter ranges with W instead of R - e.g. E000.EFFFW saves $E000–$EFFF to a WAV file. Multiple ranges can be chained: 0300.03FFW E000.EFFFW.
3.The browser downloads a .WAV file named after the range (e.g. E000-EFFF.wav).

Threshold: Controls comparator sensitivity. The default 30% works for most tapes. Lower to 15–25% if reads fail; raise it if getting false triggers.

On CPU Speed: tape position is derived from the emulated CPU's own cycle count rather than wall-clock time, so raising CPU Speed does not break tape reads \u2014 it makes them finish proportionally sooner. A 24-second tape loads in about 2.4 seconds at 10×, and still decodes byte-for-byte identically. Tape audio, however, always plays at its native rate in real time, so at higher speeds the sound lags behind the load and keeps playing after it finishes. That is cosmetic only and does not affect the data.

Uncle Bernie's Extended Format ACI ($C500–$C5FF)

A published community firmware for the Apple-1 Cassette Interface, used on Uncle Bernie's GEN1 and GEN2 improved ACIs, which adds checksummed cassette I/O at much higher data rates. It is a supplementary page at $C500–$C5FF that coexists with the standard ACI at $C100 and shares its underlying tape routines.

1.Mount the cassette with Browse as usual.
2.Type C500R and press RETURN to reach its * prompt.
3.Use RX / WX in place of R/W, then click ▶ Play Tape.

Thanks to Uncle Bernie for the firmware and for permission to include it in HoneyCrisp.

CFFA1 Disk Interface ($8700–$AFFF)

The CFFA1 emulates Rich Dreher's CompactFlash for Apple card, giving the emulator a virtual hard disk for ProDOS. Mount a .po disk image and type 9000R to launch the CFFA1 menu.

Mounting a disk:

1.Open the CFFA1 Disk Loader with Ctrl+L, or drop a .po file directly onto the terminal.
2.Click the drop area to browse, or drag a ProDOS disk image onto it.
3.Type 9000R at WOZMON to boot into the CFFA1 menu and access the mounted disk.

CFFA1 menu commands:

CCatalog - list files on the mounted disk
PPrefix - change the current ProDOS directory
LLoad - load a file from disk into memory
NNew Directory - create a subdirectory
SSave (BASIC) - save a BASIC program to disk
WWrite File - write a raw memory range to disk
RRename - rename a file or directory
DDelete - remove a file or directory
!Format - format the mounted disk image
BRead Block - read a raw ProDOS block
MMemory Display - view a range of memory
QQuit - return to WOZMON

Only one disk image can be mounted at a time. Use EJECT in the CFFA1 Disk Loader to unmount the current image before mounting a different one.

Keyboard Shortcuts
Ctrl+H→ Hard Reset (clears all memory)
Ctrl+S→ Soft Reset (returns to WOZMON, keeps RAM)
Ctrl+E→ Clear Screen
Ctrl+C→ Break (stops Integer BASIC or Microsoft BASIC programs)
Ctrl+F→ Toggle Fullscreen
Ctrl+B→ Open Program Catalog
Ctrl+L→ Open CFFA1 Disk Loader
Tips
Save your system state to preserve work between sessions - use Save State and Load State.
Enable Auto-restore last session in Settings to automatically reload your last state on startup.
Adjust CPU Speed with the slider for faster or slower execution. Some demos are best at 1.00×.
Program descriptions in the catalog list any special RAM requirements - check these before running.
Download the full HoneyCrisp Documentation for in-depth reference.
SAVE RAM TO FILE
MEMORY RANGE
FILENAME
.hc added automatically
CompactFlash Image Loader
CompactFlash™ Image Loader (.po)
Mount a ProDOS (.po) disk image for the CFFA1 interface.
Type 9000R to launch the CFFA1 menu.
Drop .po disk image here or click to browse
You can also drop a .po file directly onto the terminal.
Disks stay mounted across resets.