Un contrôleur de disque FPGA pour l’Apple II : Une solution moderne pour les collectionneurs rétro

Les cartes contrôleurs de disque pour Apple II sont connues pour leur diversité et leur rareté.

Souvent coûteuses et difficiles à trouver, elles représentent un véritable casse-tête pour les collectionneurs de matériel informatique vintage.

Or, une solution basée sur FPGA pourrait bien apporter une réponse à ce problème.

En effet, la plupart des contrôleurs de disque existants utilisent le même bus 8 bits pour se connecter à une interface de disque 19 broches, ce qui permettrait de créer un clone universel en remplaçant les composants des années 80 par un FPGA reprogrammable.

Ce concept de carte contrôleur universelle pourrait se relier à presque n’importe quel lecteur de disque Apple II ou à un émulateur de disquette comme le Floppy Emu.

Voici où en est ce projet fascinant.

Une idée prend racine

Ce projet, presque terminé depuis août, a vu le jour suite à un regain d’intérêt pour le contrôleur de disque Liron en juillet, lorsque j’ai mis à jour le firmware du Floppy Emu pour inclure le support Liron.

Dès lors, il était possible d’émuler un disque Smartport de 32 Mo sur un Apple II, II+ ou IIe grâce au Floppy Emu.

Cependant, seuls ceux qui possédaient une carte Liron pouvaient en bénéficier, et cette carte est rare et difficile à trouver.

Les gens ont alors commencé à demander s’il était possible de créer un clone de la carte Liron, ce à quoi j’ai décidé de travailler.

Cartographier le schéma complet de la Liron a pris quelques jours.

Elle comprend une seule IWM (Integrated Wozniak Machine) et quelques puces logiques 7400 standard, ainsi qu’une ROM pour le code de démarrage.

La rédaction de code Verilog pour le FPGA afin de reproduire les fonctions des puces 7400 fut aisée.

Recréer l’IWM en Verilog fut plus ardu, mais avec l’aide de la spécification IWM et d’un analyseur logique, j’y suis parvenu.

En choisissant un FPGA suffisamment spacieux, j’ai également pu intégrer les fonctionnalités de la ROM de démarrage, évitant ainsi la nécessité de véritables puces ROM.

Le design final se réduisait à quelques convertisseurs de niveau de tension 3.3V et un FPGA, assortis de connecteurs et de composants passifs.

Je me suis rendu compte que ce design ne se limitait pas à un clone Liron, mais pouvait également devenir un contrôleur Disk 5.25 ou Disk 3.5 par simple modification du firmware.

Les possibilités se sont alors multipliées !

Matériel et premières tentatives

Je me suis acharné à terminer le design fin juillet, juste avant un voyage au parc national de Yellowstone, ce qui a donné son nom de code au projet.

Le cœur de la carte prototype est un FPGA Lattice MachXO2, précisément le modèle LCMXO2-1200HC.

Ce modèle dispose de 1280 LUTs pour l’implémentation des logiques et de 8 KB de RAM intégrée pour servir de ROM de démarrage ou pour d’autres fonctions.

Parmi ses caractéristiques, signalons un oscillateur PLL intégré et des résistances programmables de pull-up et pull-down.

À la différence de certains FPGA, la famille MachXO2 possède une mémoire flash intégrée pour stocker la configuration du FPGA, évitant ainsi le rechargement à chaque mise sous tension.

La programmation du FPGA s’effectue via un connecteur JTAG sur la carte.

Le disque externe se connecte à la carte par un câble ruban standard de 20 broches, identique à celui de l’Apple IIc ou du Floppy Emu.

J’ai également créé un petit adaptateur pour convertir un court câble 20 broches en connecteur femelle DB-19 pour d’autres lecteurs externes.

Comme la tension maximale du FPGA est de 3.3V, et que l’Apple II utilise un bus de 5V, j’ai ajouté des convertisseurs de niveau de tension.

J’ai utilisé quatre puces 74LVC245 comme drivers de bus, fonctionnant à 3.3V tout en étant compatibles avec les 5V.

Statut et prochaines étapes

Après une intense activité en juillet, j’ai reçu les PCB et les composants.

Puis plus rien.

En octobre, j’ai enfin assemblé une carte prototype et l’ai testée dans mon Apple IIe, mais faute de temps, le projet est resté en suspens.

J’ai réussi à programmer le FPGA via JTAG et à vérifier sa réponse sur le bus de l’Apple II, mais sans approfondir les tests sur l’interface du disque externe.

Un souci de programmation JTAG persiste : hors de l’Apple IIe, la programmation fonctionne bien, mais insérée dans le IIe, elle échoue.

Le problème pourrait être lié à des interférences ou un problème de tension, nécessitant des tests plus poussés.

L’avenir de ce contrôleur de disque FPGA est encore incertain.

Devrait-il devenir un produit commercial ?

Cette possibilité soulève des questions sur la méthode de reprogrammation du FPGA par les utilisateurs.

La solution idéale reste à trouver, mais en attendant, la priorité est de terminer le prototype et de s’assurer de son bon fonctionnement.

Espérons que ce projet puisse aboutir avant Noël.

Vulnérabilités potentielles du FPGA

L’intégration d’un FPGA dans un projet comme celui du contrôleur de disque pour Apple II présente plusieurs risques en matière de cybersécurité.

Le FPGA, en tant que composant programmable, peut être vulnérable à diverses attaques, notamment le reverse engineering ou l’injection de code malveillant.

Ces risques sont accrus si le firmware n’est pas correctement sécurisé.

Pour les entreprises ou individus utilisant ce contrôleur, une compromission pourrait entraîner l’altération des données stockées sur les disques ou même la prise de contrôle de l’appareil.

Mesures de protection recommandées

Pour minimiser les risques associés à l’utilisation d’un FPGA dans ce contexte, il est crucial de mettre en place plusieurs mesures de sécurité.

Tout d’abord, sécurisez le firmware du FPGA avec des méthodes de chiffrement robustes.

Ensuite, utilisez des protocoles de mise à jour sécurisés pour éviter les injections de code malveillant.

Enfin, une vérification régulière de l’intégrité des composants et du code via des audits de sécurité contribuera à détecter et prévenir toute tentative de compromission.