Les outils fournis
Autour de l’émulateur, de petits outils en Python ou en shell préparent les entrées et lisent les sorties.
mkneo.py — fabriquer un .neo
tools/mkneo.py prog.neo 800:code.bin FFFF:sprites.gfx --exec 800
Assemble un exécutable .neo (le format du firmware) à partir de blocs ADRESSE:FICHIER (hexadécimal) ; l’adresse FFFF désigne la mémoire graphique. --exec ADR donne l’adresse d’exécution ; sans elle, le programme n’est pas lancé automatiquement.
mkssd.py — une image disquette DFS
tools/mkssd.py disque.ssd TITRE HELLO=prog.bbc
Une image Acorn DFS de 80 pistes (204 800 octets), pour --bb-disc. NOM=FICHIER[,LOAD,EXEC] ajoute un fichier ; défaut $1900/$8023, un programme BASIC.
fake_modem.py — un modem logiciel
python3 tools/fake_modem.py /tmp/pty.txt &
NEO_CDC_TTY=$(cat /tmp/pty.txt) phosphoneo --sdl prog.neo
Crée un pseudo-terminal pour NEO_CDC_TTY / --cdc-tty. Le menu Ctrl+F12 du mode fenêtre sait aussi le lancer (choix « logiciel ») et l’arrêter à la sortie. Deux dialectes : Hayes (ATZ, ATDT → CONNECT 2400, écho, +++) et ESP-AT tel qu’un Pico W le parle (AT+CWJAP, AT+CIPSTART ouvre une vraie connexion TCP). Options : --log, --relay HOTE:PORT, --raw.
web_serve.py — servir la version navigateur
make wasm && tools/web_serve.py 8000 --proxy http://prophet.3617.fr:8998
Sert le dossier web/ et relaie vers le serveur donné toute requête qui n’est pas un fichier : le modem JavaScript parle ainsi à la même origine que la page, sans CORS.
golden.sh — les captures de référence
golden.sh run, baseline, show NOM, fingerprint NOM : voir les tests.
Latences d’appels
apilat_table.py transforme la sortie du programme de mesure (tests/corpus/apilat.neo6502, qui chronomètre 50 000 appels par fonction) en table pour --api-latency ; latency_baseline.sh et latency_merge.py produisent et fusionnent les mesures de co-simulation.