POM1 v1.9.2 — Apple 1 Emulator (Windows package)
=================================================

Celebrating 50 years of Apple (1976-2026).

A faithful Apple 1 emulator built with Dear ImGui and OpenGL: MOS 6502 CPU,
PIA 6821 keyboard/display, Apple Cassette Interface, and a stack of
expansion cards you can plug and unplug at runtime.


What's inside
-------------
* Authentic 40x24 character display (charmap.rom bitmap or host ASCII,
  green / amber / monochrome CRT with scanlines and glow, blinking '@')
* Cycle-accurate 6502 (all official opcodes, ~1.022727 MHz / x2 / MAX)
* Live hex memory editor, visual memory map, step debugger, log console
* Apple Cassette Interface + procedural Cassette Deck widget (piano-key
  transport, mechanical counter, spinning hubs). Loads .aci / .wav /
  .mp3 / .ogg tapes; exports as .aci or .wav.
* Clipboard paste into the Apple 1 keyboard
* 60+ ready-to-run programs in software\ (games, demos, BASIC, dev tools)

Expansion cards (toggle via Hardware menu or toolbar):
* Uncle Bernie's GEN2 Color Graphics Card  - 280x192 NTSC artifact color
* P-LAB A1-SID Sound Card                  - libresidfp 6581/8580 engine
* P-LAB Apple-1 Graphic Card (TMS9918)     - 256x192, 15 colors, sprites
* P-LAB microSD Storage Card               - virtual FAT32 in sdcard\
* CFFA1 CompactFlash Interface             - ProDOS .po disk in cfcard\
* P-LAB A1-IO Board & RTC                  - DS3231 clock + ADC + digital I/O
* P-LAB MODEM BBS (Wi-Fi Modem)            - Hayes AT, TCP/TELNET to BBSs
* P-LAB Terminal Card                      - external terminal on localhost:6502
* P-LAB Apple-1 Juke-Box                   - 32 kB memory-mapped EEPROM library

13 one-click machine presets cover everything from the bare July-1976
Apple-1 to a full "POM1 Multiplexing Fantasy" with every card plugged.


Quick start
-----------
Run POM1.exe from this folder (do not move the exe alone).
Keep glfw3.dll next to the exe - it is required to start the app.

Use the Hardware menu (or toolbar) to enable expansion cards, the Presets
menu to jump between machine configurations, and File > Load Memory to
open any program from software\.


Build your own software (in-app DevBench)
-----------------------------------------
This package bundles the cc65 toolchain (in cc65\), so the DevBench works out
of the box - nothing to install. Open DevBench > POM1 Bench, click New, and
pick a Language x Machine, then hit Run - POM1 builds and boots it for you:

  Languages : 6502 assembly (ca65/ld65), C (cc65/cl65), BASIC, or Woz hex
  Machines  : Apple-1 text  *  P-LAB TMS9918 (256x192, 15 colours, sprites)
              *  Uncle Bernie GEN2 HGR (280x192 colour)

POM1 even ships an Apple-1 Applesoft with the Apple II graphics command set
(HGR / HCOLOR= / HPLOT ... TO, GR / COLOR= / PLOT) that draws on BOTH the GEN2
HGR and TMS9918 colour cards from the same listing. Ready-made graphics-BASIC
demos live in sketchs\basic_applesoft\ (Mandelbrot, Sierpinski, 3D Hat...);
source guides + sketches are under sketchs\.


Command-line flags
------------------
POM1.exe accepts a few flags for scripted / headless runs:

  --list-presets             Print every preset as "index: name" and exit
  --preset <N|name> / -p     Select a preset by numeric index or by
                             case-insensitive substring match
  --terminal                 Force the P-LAB Terminal Card on
                             (listens on 127.0.0.1:6502)
  --tape <path>              Preload a tape and auto-press Play
                             (.aci / .wav / .mp3 / .ogg)
  --save-tape <path>         Dump the cassette deck recording on shutdown
  --cpu-max                  Boot with the CPU at MAX speed


Keyboard shortcuts
------------------
  F1          Memory Viewer           F7          Step (single instr)
  F2          Memory Map              Ctrl+O      Load program
  F3          Debug Console           Ctrl+S      Save memory
  F5          Soft Reset              Ctrl+V      Paste code
  Ctrl+F5     Hard Reset              Ctrl+Q      Quit
  F6          Start / Stop CPU


Contents
--------
  POM1.exe        Main program
  glfw3.dll             GLFW (OpenGL window)
  vcruntime140.dll      Microsoft Visual C++ runtime, bundled app-local so
  vcruntime140_1.dll    POM1 starts on a freshly installed Windows with no
  msvcp140.dll          Visual C++ Redistributable to install
  fonts\                Font Awesome (toolbar icons)
  pic\                  About dialog photo (schlumberger-2-apple-1.jpg)
  roms\                 Apple 1 and expansion ROMs
                        (WozMonitor, Integer BASIC, Applesoft Lite,
                         applesoft-gen2, ACI, Krusader, SD CARD OS,
                         CFFA1, Juke-Box, charmap, codetank/CODETANKDEV)
  ini_defaults\         Curated per-preset window layouts (factory baseline)
  sketchs\              DevBench source sketches (asm, C, BASIC .apf)
  dev\                  cc65 linker configs, runtime libs, project sources
  cc65\                 Bundled cc65 toolchain (ca65/ld65/cl65/cc65 + runtime)
                        so the DevBench compiles asm AND C with no install
  software\             Sample programs - File > Load Memory
  sdcard\               Host folder for the P-LAB microSD card
                        (virtual FAT32; tag files as NAME#TTAAAA)
  cfcard\               CFFA1 disk image - expects cfcard.po (ProDOS)
  disks\                IEC daughterboard 1541 disk image (disks\iec\dev8.d64)
  cassettes\            Tapes; WOZ_talk.mp3 is loaded on boot with the
                        POM1 Multiplexing Fantasy preset


Requirements
------------
Windows 10 or 11, 64-bit. Nothing to install: the Visual C++ runtime POM1 needs
(vcruntime140 / msvcp140) ships next to POM1.exe, and the cc65 toolchain (cc65\)
is bundled too - so POM1 runs and the DevBench compiles asm AND C out of the box
on a base Windows, offline, with no PowerShell or extra download.

If you ever still see a VCRUNTIME/MSVCP error (e.g. after moving the exe out of
its folder), install the Visual C++ Redistributable (x64):
https://learn.microsoft.com/cpp/windows/latest-supported-vc-redist


License & credits
-----------------
POM1 is GPL-3.0. Third-party components carry their own licenses:
  * Dear ImGui       - MIT
  * GLFW             - zlib/libpng
  * Font Awesome     - SIL OFL (icons) + MIT (code)
  * libresidfp       - GPL-2.0+ (vendored, cycle-accurate SID engine)
  * miniaudio        - Public domain / MIT-0 (audio I/O + decoders)
Apple 1 ROMs are included under the terms published by their authors
(Woz / Apple, Lee Davison's EhBASIC, Ken Wessen's Krusader, P-LAB,
Rich Dreher's CFFA1 firmware, Antonino Porcino's apple1-sdcard).

Built by Arnaud Verhille (2000-2026). Project page, full credits and
source: https://github.com/habib256/POM1
