Aller au contenu
Phosphoneowiki
Sommaire

Captures et copies de mémoire

Une capture sert de preuve : comparée à une image de référence, elle dit si quelque chose a changé. Les images sont au format PPM (sans compression, lisibles par tous les outils) ; la console est une grille de texte de 53 × 30 caractères.

--screenshot

Syntaxe : --screenshot sortie.ppm

Enregistre l’écran à la fin de l’exécution. La capture montre la mémoire d’écran, sans le curseur de souris, comme l’émulateur officiel.

Exemple

$ phosphoneo --cycles 45000000 --screenshot out.ppm

--screenshot-at

Syntaxe : --screenshot-at CYCLES:FICHIER

Enregistre l’écran après N cycles, pendant l’exécution (64 captures au plus, avec les variantes ci-dessous). Le cycle doit être avant la fin : demander la capture au dernier cycle exact ne produit rien, d’où l’habitude de prendre 10 000 cycles de marge.

Exemple

$ phosphoneo prog.neo --cycles 6000000 --screenshot-at 5900000:a.ppm

--screenshot-when

Syntaxe : --screenshot-when ADRESSE:VALEUR:FICHIER

Enregistre l’écran quand le mot 16 bits stocké en mémoire à l’ADRESSE (hexadécimal) vaut VALEUR (décimal). Pratique avec un compteur d’images du programme : « la capture à la trame 300 », peu importe le nombre de cycles. Une fois par option.

Exemple

$ phosphoneo prog.neo --screenshot-when 0800:169:when.ppm

--screenshot-text

Syntaxe : --screenshot-text sortie.txt

Écrit la console (la grille de texte 53 × 30) dans un fichier, à la fin. C’est ce qu’on compare pour un programme texte : plus léger et plus lisible qu’une image, et facile à chercher avec grep.

Exemple

$ phosphoneo mouse.neo6502@800 cold --cycles 4000000 --mouse-at 1000000:100,50,1 --screenshot-text m.txt
phosphoneo : console -> m.txt (cycle 4000002)

--screenshot-text-at

Syntaxe : --screenshot-text-at CYCLES:FICHIER

Comme --screenshot-at, pour la console texte.

--screenshot-cursor

Syntaxe : --screenshot-cursor

Ajoute le curseur de souris à la capture, dessiné comme le fait la carte (16 × 16, $FF transparent, rien en monochrome). Sans l’option, les captures montrent la mémoire d’écran seule.

--dump-ram-when

Syntaxe : --dump-ram-when ADRESSE:VALEUR:FICHIER

Copie les 64 Ko de RAM dans un fichier quand RAM[ADRESSE] vaut VALEUR (hexadécimal ; au-dessus de FF, c’est le mot 16 bits RAM[ADRESSE..ADRESSE+1]). Répétable (8 au plus) ; l’émulation continue. Le code de sortie est 2 si la condition ne s’est jamais produite.

Exemple

$ phosphoneo g.neo --cycles 2000000 --dump-ram-when 0800:A9:dump.bin
(dump.bin : 65 536 octets)

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