Aller au contenu
Phosphoneowiki
Sommaire

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

ToucheEffet
F11 ou Alt+Entréeplein écran
F12capture PPM de l’écran
Ctrl+F12menu de configuration (l’émulation est en pause)
F1 à F10transmises 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 …).

Sources dans le dépôt : README.md, src/main.c.