Getting Started
Counting Hexadecimal: A simple tutorial of how to count hexadeimal format can be found here:
Counting in Hexadecimal
WOZMON: The system boots into WOZMON, the Apple-1's monitor program. You can:
• Examine memory: Type address (e.g., "FF00") and press ENTER
• Write memory: Type address, colon, then hex bytes (e.g., "300: A9 42")
• Run programs: Type address followed by "R" (e.g., "300R")
• Clear screen: Press the CLEAR SCREEN button or use respective keyboard shortcut.
Loading Programs:
• Use "Load Program File" to load .hc (machine code) or .bas/.txt (BASIC) files
• Browse the Program Library for pre-installed software
• Machine code programs auto-run when loaded from the library
• BASIC programs require 8KB+ RAM and load into Integer BASIC
• BAS and TXT files need to have the raw source code of the program inside them.
Integer BASIC:
• Type "E000R" and press ENTER (requires 8KB+ RAM)
• Or load a .bas file which auto-starts BASIC
• Type "RUN" to execute loaded programs
• Press CTRL+C to break/interrupt running programs, or press the BREAK button.
Keyboard Shortcuts
Ctrl+H → Hard Reset (clears all memory)
Ctrl+S → Soft Reset (returns to WOZMON, no RAM clear)
Ctrl+E → Clear Screen
Ctrl+C → Break (stops Integer BASIC programs)
Ctrl+F → Toggle Fullscreen
Ctrl+B → Open Program Library
Tape File Loader / Saver & The ACI (C100–C1FF)
What is the ACI?
The Apple Cassette Interface (ACI) is an add-on card for the
Apple-1 that lets a user save and load programs to/from standard audio
cassette tapes.
It is mapped to addresses $C100–$C1FF.
HoneyCrisp emulates the ACI, allowing you to load real Apple-1 cassette audio files (.AIFF or .WAV) directly into emulated RAM.
How to Load a Cassette:
1. In the section labeled "Tape File Loader", click the "Browse" button. Select your tape file.
2. After the tape is ready, type "C100R" into the terminal and press RETURN/ENTER.
3. HoneyCrisp will print out "C100: A9*", prompting you to enter memory address ranges to store the program into.
• Single range: 0300.03FFR (loads into $0300–$03FF)
• Multiple ranges: E000.EFFFR 004A.00FFR (up to 8 ranges)
4. The cassette audio will be decoded and the data will write into RAM.
A progress bar shows the load time (matching tape file speed).
How to Write Data to a Cassette:
1. Type "C100R" in the terminal and press RETURN/ENTER to reach the "C100: A9*" prompt.
2. Enter one or more address ranges using W (for WRITE) instead of R. (READ):
• Single range: E000.EFFFW ... saves $E000–$EFFF to a WAV file
• Multiple ranges: 0300.03FFW E000.EFFFW ... saves both ranges concatenated
3. Press RETURN/ENTER. The browser will download a .WAV file named after the address range (e.g. E000-EFFF.wav).
4. The resulting WAV uses the same Apple-1 FSK encoding as general tapes and can be reloaded with the Tape File Loader.
Threshold Setting:
The Threshold (THR) controls how sensitive the audio decoder is when reading the cassette signal. The default of 30% works for most tapes.
If a decode fails or produces garbage, try lowering it to 15–25%.
If you're getting too many false reads, raise it slightly.
More Tips
• Drag and drop .hc, .bas, or .hcstate files onto the terminal
• Save system state to preserve your work between sessions
• Use auto-restore to automatically load your last session
• Adjust CPU speed in Settings for faster/slower execution
• Some programs require specific RAM amounts (check library descriptions)