Aller au contenu
Phosphoneowiki
Sommaire

Durée et cadence

Phosphoneo compte en cycles du 65C02 : 6 250 000 cycles font une seconde de machine, et une trame vaut 109 226 cycles (60 Hz). Comme le temps est compté en cycles émulés, un essai donne le même résultat à chaque fois, quel que soit l’ordinateur qui l’exécute.

--cycles

Syntaxe : --cycles N

S’arrête après N cycles et affiche le bilan : cycles écoulés et nombre d’appels d’API. Sans cette option, Phosphoneo tourne jusqu’à l’arrêt (fermeture de la fenêtre, point d’arrêt, --stop-on-self-jmp). C’est la base de tout essai sans fenêtre.

Exemple

$ phosphoneo graphics.neo6502@800 cold --cycles 3000000
phosphoneo : 3000001 cycles, 7 appels API

À savoir. Repère : 6 250 000 cycles = 1 s ; 109 226 cycles = une trame ; 62 500 cycles = un tick du minuteur à 100 Hz.

--headless

Syntaxe : --headless

Pas d’affichage. C’est le comportement par défaut ; l’option sert à le dire dans un script (les cas de référence la mettent toujours). Elle n’empêche pas --screenshot ni --record.

--realtime

Syntaxe : --realtime

Cadence temps réel sans fenêtre : une trame émulée dure 1/60 s de temps mural. Utile pour un programme réseau (le modem logiciel a besoin de vrai temps) ou pour la version WebAssembly lancée sous Node. Sans elle, Phosphoneo va aussi vite que possible.

--stop-on-self-jmp

Syntaxe : --stop-on-self-jmp

S’arrête quand le programme exécute un JMP vers sa propre adresse (le « JMP * » qui clôt un programme de test) et dit où et quand. Évite de deviner un --cycles assez grand.

Exemple

$ phosphoneo graphics.neo6502@800 cold --stop-on-self-jmp --cycles 30000000
phosphoneo : JMP * en $0940 après 391 cycles
phosphoneo : 391 cycles, 7 appels API

--version

Syntaxe : --version

Affiche la version et ce qui est compilé dedans.

Exemple

$ phosphoneo --version
Phosphoneo 0.5.0 (firmware/common lié, co-sim RP2040, SDL, wasm, modem logiciel)

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