Les émulateurs logiciels comme VICE et la réimplémentation matérielle (FPGA) comme MISTer émulent l’ordinateur Commodore 64. Ils font tous deux un travail fantastique pour reproduire le comportement du matériel de bas niveau. Cependant, un aspect qu’aucune des deux solutions ne parvient à émuler de manière idéale est le clavier physique. Le Commodore 64 n’utilisait pas de clavier compatible ASCII. De plus, il contient de nombreuses touches spécifiques au Commodore. (Les symboles spéciaux sont appelés “PETSCII”.) Il est donc formidable de voir le YouTubeur Rumbledethumps adapter un Clavier Commodore 64 en USB avec un Pi Pico – et de prendre en charge les deux options d’émulation !
Le Commodore VIC-20 et le C64 ont la même disposition de clavier et la même interface. La plupart des touches se trouvent sur une matrice. La seule touche séparée est la touche RESTORE, qui est connectée à une minuterie à un coup pour fournir une impulsion de réinitialisation correctement synchronisée. En balayant la matrice du clavier, vous pouvez voir quelles touches sont enfoncées et agir en conséquence.
Exemple de balayage de la matrice du clavier (📷 : Rumbledethumps, YT)
Aujourd’hui, les claviers contiennent un microcontrôleur dédié et parlent ensuite à l’ordinateur via USB (ou Bluetooth.) Mais à l’époque des ordinateurs 8 bits, le clavier était connecté à un contrôleur quelconque sur la carte logique. Par exemple, un “encodeur de clavier” dédié scannait la matrice dans la série Apple II. Cet encodeur était un microprocesseur 6502 avec ROM masquée ! Alternativement, le clavier du C64 s’interface avec un contrôleur périphérique 6522, s’appuyant sur le CPU pour scanner la matrice.
Pi Pico fixé à l’arrière du clavier du C64 (📷 : Rumbledethumps, YT)
Puisque le clavier n’est “qu’une” matrice, il est relativement facile de l’interfacer avec un microcontrôleur moderne. Dans le cas du C64, le clavier dispose d’un connecteur header-socket de 2,54 mm. Il est donc facile de connecter le clavier autonome aux broches GPIO d’un Pi Pico – ce qui est ce que Rumbledethumps CBM2USB fait !
La véritable astuce de ce projet est de savoir quoi faire avec les signaux décodés du clavier. La CBM2USB a trois modes de fonctionnement : ASCII, VICE, et MISTER. VICE et MISTer Les claviers USB d’un PC sont légèrement différents les uns des autres, vous devez donc utiliser des cartes légèrement différentes. De plus, chacun a des combinaisons de “touches de raccourci” différentes pour effectuer des actions dans l’émulateur. Le mode ASCII est utile pour les ordinateurs qui acceptent les entrées ASCII.
CBM2USB fonctionne avec Picocomputer (📷 : Rumbledethumps, YT)
Un tel exemple est celui de Rumbledethumps. Picocomputer. C’est un ordinateur basé sur 6502 qui utilise des Pi Picos pour l’alimentation, l’horloge, la vidéo, l’audio, le WiFi et l’USB. Le mode ASCII fonctionne avec lui. Il y a donc un Pi Pico pour transformer le clavier du C64 en périphérique USB. Et puis un autre Pi Pico pour retransformer le clavier USB en ASCII !
Vous pouvez trouver des STLs imprimables en 3D pour les supports de clavier et des exemples de code dans le site Web de la Commission européenne. Dépôt CBM2USB. Rumbledethumps a également fourni des exemples détaillés du code C du Pi Pico qui aboutissent au code final.