Jouer dans la fenêtre
La fenêtre sert à essayer à la main ce qu’on scriptera ensuite : mêmes réglages, mêmes résultats.
Les touches de la fenêtre
| Touche | Effet |
|---|---|
F11 ou Alt+Entrée | plein écran |
F12 | capture PPM de l’écran |
Ctrl+F12 | menu de configuration (l’émulation est en pause) |
F1 à F10 | transmises au Neo6502, comme sur la carte |
Le clavier suit les usages HID du firmware (clavier américain par défaut ; les dispositions du firmware s’appliquent). La manette SDL est vue comme la manette 0 du Neo6502.
Le menu Ctrl+F12
Il se superpose à l’écran. On y charge un programme .neo ou .bas du dossier de stockage, on enregistre un instantané (snapshots/phosphoneo-AAAAMMJJ-HHMMSS.phn) ou on en reprend un, on coupe le son, on change l’échelle de la fenêtre, on redémarre à froid, et on enregistre la configuration. Il permet aussi de changer de dossier de stockage (un sélecteur de dossiers) ou de prendre une clé USB réelle de l’hôte (les périphériques USB montés sous /media, /run/media ou /mnt sont listés) : le choix s’applique aussitôt, avec un redémarrage à froid. On y choisit enfin le modem : aucun, le modem logiciel de tools/fake_modem.py (lancé puis arrêté avec Phosphoneo), ou un /dev/ttyUSB* / /dev/ttyACM* de l’hôte ; le choix joue au prochain lancement, et NEO_CDC_TTY, s’il est défini, l’emporte.
phosphoneo.cfg
Le menu écrit dans le dossier courant un fichier phosphoneo.cfg : dossier de stockage, échelle, plein écran, son et modem. Il n’est lu que par une session --sdl, et seulement pour ce que la ligne de commande ne fixe pas : les essais sans fenêtre n’en dépendent jamais, pour rester reproductibles.
Dans le navigateur
Le même code se compile en WebAssembly (make wasm, avec emsdk) : une page charge l’émulateur, copie les fichiers dans un stockage en mémoire et lance le programme. Ctrl+F12 étant pris par le navigateur, un bouton Menu le remplace ; instantanés et configuration vivent dans la mémoire de la page et sont perdus au rechargement. Le modem du navigateur transmet les requêtes HTTP à un relais (tools/web_serve.py --proxy …).