Skip to content
Phosphoneowiki
Contents

Playing in the window

The window is for trying by hand what you will script afterwards: same settings, same results.

The window’s keys

KeyEffect
F11 or Alt+Enterfull screen
F12PPM screenshot
Ctrl+F12configuration menu (emulation is paused)
F1 to F10passed to the Neo6502, as on the board

The keyboard follows the firmware’s HID usages (US layout by default; the firmware’s layouts apply). The SDL gamepad is seen as the Neo6502’s gamepad 0.

The Ctrl+F12 menu

It overlays the screen. You load a .neo or .bas program from the storage folder, save a snapshot (snapshots/phosphoneo-YYYYMMDD-HHMMSS.phn) or resume one, mute the sound, change the window scale, cold-restart, and save the configuration. It also lets you change the storage folder (a folder picker) or take a real USB stick of the host (USB devices mounted under /media, /run/media or /mnt are listed): the choice applies at once, with a cold restart. Finally you choose the modem: none, the software modem of tools/fake_modem.py (started and stopped with Phosphoneo), or a host /dev/ttyUSB* / /dev/ttyACM*; the choice takes effect at the next launch, and NEO_CDC_TTY, if set, wins.

phosphoneo.cfg

The menu writes a phosphoneo.cfg file in the current folder: storage folder, scale, full screen, sound and modem. It is only read by an --sdl session, and only for what the command line does not set: windowless runs never depend on it, so they stay reproducible.

In the browser

The same code builds to WebAssembly (make wasm, with emsdk): a page loads the emulator, copies the files into in-memory storage and starts the program. Since Ctrl+F12 is taken by the browser, a Menu button replaces it; snapshots and configuration live in the page’s memory and are lost on reload. The browser’s modem forwards HTTP requests to a relay (tools/web_serve.py --proxy …).

Sources in the repository : README.md, src/main.c.