Glossaire
Les mots techniques du wiki, expliqués en une ou deux phrases, et dans le sens où Eliott65 les emploie.
Le matériel
6502, W65C02S
Le processeur 8 bits des Apple II, Commodore 64, Oric ou BBC Micro. La W65C02S est sa version CMOS moderne, toujours fabriquée par WDC ; c’est elle qui équipe la Neo6502kbd.
RP2040
Le microcontrôleur du Raspberry Pi Pico : deux cœurs ARM Cortex-M0+, 264 Kio de mémoire, et des blocs PIO. Sur la carte, il joue la mémoire et les périphériques de la 6502 ; Eliott65 tourne dedans.
Cœur 0, cœur 1
Les deux processeurs ARM du RP2040. Sous Eliott65, le cœur 0 fait tourner le noyau (et dessine le graphisme), le cœur 1 produit le signal vidéo.
PIO
Petits processeurs spécialisés du RP2040, qui exécutent des programmes de quelques instructions au rythme de l’horloge et pilotent les broches au cycle près. Eliott65 s’en sert pour le bus et la vidéo.
DMA
Direct Memory Access : un contrôleur qui copie des données d’un endroit à l’autre sans occuper les cœurs. Il sert chaque octet du bus de la 6502 et alimente la vidéo.
Bus, cycle de bus
Les fils par lesquels le processeur échange adresses et données avec la mémoire. Un cycle est un échange : une adresse, un octet lu ou écrit.
PHI2
L’horloge de la 6502. Pendant sa phase basse, l’adresse s’établit ; pendant sa phase haute, la donnée est échangée. Sur la carte, c’est le RP2040 qui la produit.
74LVC245
Une puce « tampon » qui laisse passer huit signaux, dans un sens choisi. La carte en a trois, qui partagent les mêmes huit broches du RP2040.
Flash, XIP
La flash est la mémoire qui garde le firmware hors tension (2 Mo sur la carte). Le RP2040 peut exécuter du code directement depuis elle (eXecute In Place, XIP), mais plus lentement que depuis sa RAM.
PWM
Modulation de largeur d’impulsion : un signal carré dont on règle la fréquence et la part du temps à 1. Eliott65 s’en sert pour faire sonner le haut-parleur de la carte.
Statique (cœur)
Un processeur statique supporte qu’on arrête son horloge indéfiniment sans rien perdre. La W65C02S l’est : Eliott65 peut la geler à tout moment.
Le système
Firmware
Le logiciel qui tourne dans le RP2040. Eliott65 est un firmware, qui contient aussi le noyau.
Noyau, noyau hors bande
Le noyau est le cœur du système : il gère les programmes, la mémoire, les fichiers. Il est hors bande quand il tourne à côté du processeur qu’il sert (ici dans le RP2040), et non dedans.
Porte d’appel
Les deux octets $FFF8–$FFF9 par lesquels un programme demande un service. Écrire l’octet haut
déclenche l’appel. Voir Les appels système.
Bloc de paramètres
La petite zone, dans la mémoire du programme, où il range le numéro du service, ses paramètres, et où le noyau écrit les résultats.
Vecteurs
Les six derniers octets de la mémoire de la 6502 ($FFFA–$FFFF) : les adresses où elle va en cas de
NMI, de RESET et d’IRQ.
Page zéro
Les 256 premiers octets de la mémoire de la 6502 ($0000–$00FF), plus rapides d’accès. Les blocs de
paramètres ne doivent pas y être.
RESET, IRQ, NMI
Trois broches de la 6502 : la remise à zéro, l’interruption ordinaire (masquable) et l’interruption non masquable, qui ne peut pas être ignorée. Eliott65 utilise la NMI pour la préemption.
.E65
Le format des programmes Eliott65 : un en-tête et le code, chargés directement dans la mémoire de la 6502.
Démarrage évanescent
Lancement d’un programme sans chargeur résident : le RP2040 le dépose en mémoire, puis relâche le RESET.
libe65
La petite bibliothèque d’assembleur fournie aux programmes : appel par la porte, hibernation,
commutation, sommeil. Son fichier d’inclusion, e65.inc, est généré depuis la description de l’API.
Le multitâche
Processus
Un programme en cours d’exécution. Eliott65 en accepte jusqu’à 8.
Premier plan
Le processus qui a l’écran et le clavier. On en change avec Ctrl+Tab.
Commutation
Le passage d’un processus à un autre.
Coopératif, préemptif
En multitâche coopératif, chaque programme rend la main lui-même. En multitâche préemptif, le noyau la lui reprend, même s’il ne veut pas.
Page, cadre
La mémoire de la 6502 est découpée en 16 pages de 4 Kio. Les pages des processus en attente sont rangées dans des cadres de la réserve du RP2040.
MMU
Memory Management Unit : un dispositif qui traduit les adresses à chaque accès. Essayée dans le bus d’Eliott65, elle coûtait 34 % de vitesse et a été écartée.
Hibernation, .HIB
L’enregistrement de toute la machine dans un fichier .HIB, d’où elle peut reprendre exactement. Voir
L’hibernation.
Fichiers et USB
FAT, cluster
Le système de fichiers des clés et des disquettes. Le disque est découpé en clusters ; la table FAT dit quel cluster suit quel autre dans un fichier. FAT12, FAT16 et FAT32 diffèrent par la taille de ses entrées.
Nom 8.3, nom long
Un nom 8.3 a 8 caractères, un point, 3 caractères (BONJOUR.E65). Les noms longs sont rangés à
part, dans des entrées spéciales.
Hôte, hub, énumération
L’hôte USB dirige les échanges (ici le RP2040). Le hub multiplie les ports. L’énumération est la découverte d’un appareil branché.
Low Speed, Full Speed, PRE
Deux vitesses de l’USB (1,5 et 12 Mbit/s). Un appareil lent derrière un hub rapide exige un paquet PRE avant chaque échange.
HID
Human Interface Device : la famille USB des claviers et souris. Un clavier envoie des rapports HID : les touches enfoncées.
Bulk-Only, SCSI
Le protocole des clés USB : des commandes SCSI (lire, écrire, capacité…) transportées en Bulk-Only.
Vidéo et graphisme
DVI, HDMI, TMDS
Le DVI est le signal vidéo numérique qu’accepte toute prise HDMI. Chaque pixel de chaque couleur y est codé en un symbole TMDS de 10 bits.
Tampon de ligne
Une zone de mémoire qui contient une seule ligne de l’image, prête à partir. Eliott65 n’en a que deux, au lieu d’une image complète.
Tuile, carte, plan
Une tuile est un petit motif (8 × 8 ou 16 × 16 pixels). Une carte dit quelle tuile mettre où. Un plan est une couche de décor (tuiles ou image) ; Eliott65 en a deux.
Lutin
Un petit dessin qui se déplace librement par-dessus le décor ; en anglais, sprite.
bpp
Bits par pixel : 1 bpp donne 2 couleurs, 4 bpp 16 couleurs, 8 bpp 256 couleurs.
Palette, banque de palette
La palette associe un numéro de couleur à une couleur réelle. Une banque est un morceau de palette ; en changer à chaque ligne donne plus de couleurs à l’écran.
L’atelier
SWD, sonde
Le SWD est le port de débogage des processeurs ARM. Une sonde branchée dessus lit et écrit la mémoire du RP2040 en marche.
OpenOCD
Le logiciel libre qui pilote la sonde depuis le PC.
Émulateur, banc
Un émulateur fait tourner la machine sur le PC. Un banc simule une pièce précise du matériel (le bus, la vidéo, l’USB) pour tester le vrai pilote.
ADR
Architecture Decision Record : une note qui consigne une décision, son contexte et ses conséquences. Voir Les décisions.
Kio, Mo
Un Kio (kibioctet) vaut 1 024 octets ; les 64 Kio de la 6502 font 65 536 octets.