Aller au contenu
Phosphoricwiki
Sommaire

La galerie

Toutes les images de cette page ont été prises par Phosphoric, lancé sans fenêtre, à un nombre de cycles fixé : on peut les refaire au pixel près. Aucune ne vient d’un jeu du commerce.

Comment ces images sont faites

Phosphoric sait tourner sans affichage (--headless), pendant un nombre de cycles donné, puis écrire l’écran dans un fichier. Le script captures.py de ce wiki le fait pour chaque image :

oric1-emu --headless --no-config -r roms/basic11b.rom --cycles 4000000 --screenshot atmos.ppm

Comme l’émulation est déterministe, la même commande redonne la même image. Elles sont ensuite agrandies deux fois, sans lissage.

Le BASIC

Démarrage de l'Oric-1 : ORIC EXTENDED BASIC V1.0, 47870 BYTES FREE, Ready
L’Oric-1, ROM BASIC 1.0, après 4 millions de cycles (4 secondes de machine).
Démarrage de l'Atmos : ORIC EXTENDED BASIC V1.1, 37631 BYTES FREE, Ready, et l'indicateur CAPS en haut à droite
L’Atmos, ROM BASIC 1.1. Le « CAPS » de la ligne d’état est écrit par la ROM.

Un dessin HIRES tapé au clavier

Écran HIRES : un éventail de droites blanches qui se croisent au centre, et neuf cercles concentriques, sur fond noir ; en bas, une bande bleue avec Ready
Trois lignes de BASIC tapées par --type-keys, puis RUN : des droites (CURSET, DRAW) et des cercles (CIRCLE). En bas, les trois rangées de texte du mode HIRES.

Le programme, tel qu’il est tapé :

10 PAPER 4:INK 3:HIRES
20 FOR I=0 TO 198 STEP 6:CURSET 0,I,1:DRAW 239,198-2*I,1:NEXT
30 CURSET 120,100,0:FOR R=10 TO 90 STEP 10:CIRCLE R,1:NEXT

La frappe passe par la vraie matrice du clavier : Phosphoric attend que la ROM balaie la touche avant de passer à la suivante. Une pause (\p2, deux secondes émulées) laisse le BASIC ranger chaque ligne.

Le split raster : la preuve par l’image

Le programme du test test-raster-split (32 octets de code machine) réécrit sans cesse la mémoire écran, en alternant deux couleurs de fond : noir et cyan. Le faisceau balaie l’écran pendant que le programme l’écrit.

Bandes horizontales noires et cyan, dont les frontières forment des marches nettes
Avec --ula-line, le rendu d’avant la version 2.0 : chaque ligne d’écran est lue d’un seul coup, à un instant unique. Les frontières sont des marches.
Les mêmes bandes noires et cyan, mais avec des frontières qui penchent en biais au milieu des lignes
Le rendu par défaut : chaque cellule est lue au cycle où le faisceau la croise. Le programme et le faisceau avancent ensemble, et la frontière penche : elle tombe au milieu des lignes.

Le test vérifie qu’il existe des lignes qui diffèrent entre les deux rendus sur une partie seulement de leur largeur. Le rendu ligne par ligne ne peut pas produire cela. Voir L’image et l’ULA.

L’ULA-NG

Les démonstrations du dossier demos/ula-ng/ du dépôt. Chacune déverrouille elle-même l’ULA-NG (séquence 'N', 'G' en $0340) puis programme ses registres. Voir L’ULA-NG.

Diagonales de seize couleurs sur tout l'écran, en 320 × 224 pixels
Chunky 4 bits : 320 × 224 pixels, 16 couleurs, palette animée en vagues (code machine).
Mosaïque de cellules de couleurs différentes, en dégradé diagonal
Attributs parallèles : une couleur de fond différente dans chaque cellule, impossible avec l’ULA d’origine.
Texte répété sur fond de barres horizontales colorées, rouge, orange, vert, en dégradé
Copper : la palette change à chaque ligne, d’où les barres arc-en-ciel (BASIC).
Écran blanc avec un titre en haut et un petit losange jaune
Sprite matériel : un losange de 16 × 16 pixels, composé par l’ULA-NG par-dessus l’écran (BASIC).
Mosaïque de couleurs par cellule, comme la démo des attributs
VDU intégré : la même mosaïque, mais dessinée par un flux de commandes écrit dans NG_VDU ($0357). Le 6502 ne porte aucun pilote.
Rayons de couleur qui partent d'un point, comme un soleil, sur fond noir
VDU graphique : un soleil de droites tracé par les commandes CLG et DRAW, dans la mémoire d’image que porte l’ULA-NG.
Écran de démarrage de l'Atmos avec un losange jaune posé par-dessus
VDU et sprite : un losange défini par un flux de 256 octets (VDU 23), puis placé (VDU 24).
Texte blanc sur noir en 80 colonnes : PHOSPHORIC -- ULA-NG -- 80 COLUMN TEXT MODE, et une ligne de chiffres de 0 à 9 répétés
Texte 80 colonnes : 480 pixels de large, avec le jeu de caractères de la RAM en $B400 (BASIC).

Le menu F1

Menu Périphériques E/S de Phosphoric v2.30.0 sur fond bleu : disquettes A à D absentes, pas de cassette, liste des cartes d'extension, instantanés, imprimante, joystick, clavier QWERTY, et quatre boutons
Le menu des périphériques, rendu par --menu-screenshot. Ici, sans carte disque : les lecteurs sont « absents » ; seule l’ULA-NG est présente, comme toujours.

Le menu se règle aussi en anglais : voir Mode d’emploi.

Sources dans le dépôt : README.md, demos/ula-ng/README.md, tests/integration/test_raster_split.sh, docs/user-guide/MENU-F1.md.