Le processeur MOS 6502

Personnellement le processeur MOS 6502 est l’un de mes processeurs préférés, pour plusieurs bonnes raisons à mon point de vue, c’est un processeur 8 bits relativement simple avec un jeu d’instructions en tout de 56 instructions, qui en dépit de sa simplicité reste un processeur robuste avec des mécanismes dans son assembleur qui le rendent plus puissant, notamment ses douzaines (ou plus) de modes d’adressage. Le 6502 est aussi un processeur avec un énorme succès commercial, notamment son intégration dans d’importantes machines des années 80, comme le Apple-1, le Apple-2, Commodore PET et 64, la Nintendo NES, Atari 2600…etc. La vidéo en bas est celle d’une conférence sur le processeur, elle est présentée par un nom bien connu dans le domaine du hack du Hardware rétro, c’est Michael Stail (voici son blog), actuellement il est entrain de développer le noyau software d’une nouvelle machine rétro appelée Cammander X16 (plus de détails sur le lien).

Il faut savoir que la présentation est technique, destinée principalement à des connaisseurs dans le domaine, des fins d’études, des doctorants/chercheurs, des hackeurs…etc. Une bonne partie ne serait pas totalement compréhensible par des étudiants de 1-ière ou 2-ème année, mais ça reste toujours une excellente présentation pour avoir une petite idée sur le processeur 6502 et le Hardware en général. La présentation traite trois parties, la 1-ière est celle de l’architecture du processeur, les registres programmables, le jeu d’instructions, les modes d’adressages…etc., ce qui se fait généralement dans un module d’Architecture des Ordinateur. La 2-ème est celle de la microarchitecture, concernant la construction matérielle interne du processeur, sachant qu’un grand travail de reverse engineering a été fait sur le processeur pour comprendre sa microarchitecture, puisque à la base ce processeur est commercial et sa microarchitecture n’a jamais été rendue publique. Et dernièrement, l’extraction des connaissances et l’expertise du fonctionnement du processeur, et une compréhension poussée de son fonctionnement au-delà de son manuel, en créant un simulateur du processeur au niveau transistor (lien du simulateur online), comprendre les bugs hardware et les instructions non documentées…etc. Bon visionnage.

Programmation online des machines rétro

La programmation sur des machines anciennes est très en vogue ces derniers temps, c’est une manière très particulière et plaisante de programmer, dans le sens où la programmation est de très bas niveau, pas de langage évolué, le plus souvent c’est de l’assembleur, le langage C au plus, ça implique aussi une maîtrise totale de l’architecture, car il n’y a pas de système d’exploitation ni de pilote pour les périphériques, ni aucune couche intermédiaire pour faciliter la programmation. Dans un sens c’est très pédagogique dans l’apprentissage des architectures des ordinateurs.

Machines programmables sur 8bitworkshop.com

Le site web 8 bit workshop est un site qui offre plusieurs machines rétro à programmer, dont les consoles Nintendo NES, l’Atari 2600, le PC Apple II+, des machines de jeux arcades…etc, comme c’est présenté sur l’image en haut. L’interface du site web est représentée sur l’image en bas. L’avantage d’utiliser la programmation online est d’éviter de faire l’installation de tous les outils nécessaire pour faire ce type de programmation, comme un éditeur de texte, un assembleur/compilateur, un émulateur, un éditeur de graphique, un débogueur…etc, ça permet aussi de faire la sauvegarde online, et de profiter directement de plusieurs exemples à tester sur le site. Si vous envisagez autrement de faire la même chose sur PC, pour programmer la NES par exemple vous aurez besoin d’installer Notepad++ (ou autres) comme éditeur de texte pour écrire le code source, de cc65 pour compiler/assembler le code, c’est une chaîne à outils pour le processeur 6502 (le processeur de la NES) qui contient entre autres un assembleur, un compilateur C, un éditeur de liens, un débogueur…etc. Mesen un émulateur pour faire tourner votre jeu sur PC comme s’il était sur une machine NES réel, il fait aussi office d’un excellent débogueur. De Asprite et Tiled pour réaliser des graphismes compatibles avec la NES…etc.

Interface de l’IDE NES du site web 8 bit workshop

,Dans tous les cas, la programmation sur les machines rétro donne au programmeur un contrôle total de la machine et ainsi une compréhension accrue du hardware, avec en plus un degré plus élevé de complexité. Tandis que les machines modernes sont plus faciles à programmer mais le prix de cette facilité c’est au détriment de plusieurs couches logicielles, comme les pilotes, les API, le système d’exploitation, qui masquent au programmeur le fonctionnement réel de la couche matériel.