dans le navigateur

Z80 à 3,25 MHz, ROM d'origine (édition 3), 16 Ko de RAM, affichage SLOW/FAST, clavier à 40 touches. Le programme de démonstration se charge tout seul : attrapez les étoiles avec 5 et 8.

Chargement de la ROM…

Comment ça marche

Le clavier du ZX81

Le ZX81 saisit les mots-clés en une touche. Au début d'une ligne, le curseur K est en mode Keyword : la touche P écrit PRINT, J écrit LOAD, R écrit RUN… (mot blanc au-dessus de chaque touche). Le curseur passe ensuite en L (lettres). Les symboles rouges s'obtiennent avec SHIFT ; SHIFT+NEWLINE donne le curseur F (fonctions, mots rouges sous les touches) et SHIFT+9 le curseur G (graphismes).

Essayez : P 2 SHIFT+K 2 NEWLINE affiche 4 ; après la démo, SHIFT+SPACE (BREAK) puis K NEWLINE liste le programme.

Votre clavier

Lettres, chiffres, ., Espace, Majtouches équivalentes
EntréeNEWLINE
Retour arrièreRUBOUT (SHIFT+0)
← ↓ ↑ →curseur (SHIFT+5…8)
ÉchapBREAK (SHIFT+SPACE)
" = + - * / < > ( ) $ : ; , ?le symbole, SHIFT compris

Le clavier à l'écran fonctionne à la souris et au doigt ; SHIFT y reste enfoncé jusqu'à la touche suivante.

Sous le capot

Tout tourne en JavaScript dans la page : le cœur Z80 (Z80.js, MIT) exécute la ROM d'origine ; la ULA est reproduite par son mécanisme réel — le fichier d'écran est « exécuté » par le processeur à l'adresse écho, les caractères deviennent des NOP et le HALT de fin de ligne déclenche l'interruption de ligne suivante ; le NMI cadence les bordures en mode SLOW. En mode FAST, l'écran s'éteint comme sur un vrai téléviseur. LOAD et SAVE sont interceptés dans la ROM pour lire et écrire des fichiers .P (format des émulateurs). Le démarrage prend ~2 s, comme sur la machine : la ROM remplit le fichier d'écran du 16 Ko octet par octet.

Démo : source BASIC → demo.p (outil bas2p.py).