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, Maj | touches équivalentes |
| Entrée | NEWLINE |
| Retour arrière | RUBOUT (SHIFT+0) |
| ← ↓ ↑ → | curseur (SHIFT+5…8) |
| Échap | BREAK (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).