Aller au contenu
Eliott65wiki
Sommaire

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.