Archive pour le mot-clef ‘C64’

MMC2IEC, SD2IEC : l’émulateur floppy hard sur C64/128

Lundi 25 mai 2009

Au début, il y avait le MMC2IEC

Depuis quelques semaines,  je me penche sur cet émulateur de disquettes remplaçant en partie le fonctionnement d’un lecteur Commodore 1541 pour C64/128.  La disponibilité des sources du firmware a permis de faire évoluer cette interface en améliorant sa compatibilité avec le lecteur original. D’un autre côté, l’implantation hard et schématique des composants a laissé libre au cours au clonage intensif !

Bref pour s’y retrouver dans cette jungle de clones,  je suis parti du schéma de base de Lars  Pontoppidan pour effectuer mes premiers tests. Cette interface utilise un µc Atmega32 en support DIP que l’on peut trouver facilement dans le commerce. L’oscillateur interne réglé à 8Mhz suffit au fonctionnement de cet émulateur hard mais certaines fonctionnalités comme le chargement rapide ou « Fast Loader » n’est pas émulé. L’ajout d’un quartz externe peut améliorer cette compatibilité qui n’est pas aujourd’hui parfaite. Toujours est-il que le firmware de base est arrêté à la version 0.8 dont les sources et les fichiers binaires sont disponibles ici.

Emulateur floppy 1541 pour C64

Emulateur floppy 1541 pour C64

De ce travail naquis le SD2IEC

Pour tirer la quintescence de cette interface, il nous faut passer la vitesse supérieure. On garde le circuit imprimé existant en remplaçant le µc par un Atmega644 (c’est le nouveau micro-contrôleur choisi pour poursuivre le développement de cette carte). Celui ci est compatible « pin à pin » avec son prédécesseur.  La mise à jour du firmware est disponible ici. Les avantages de cette dernière évolution sont :

  • mise à jour du firmware via l’installation d’un bootloader au préalable
  • gestion de plusieurs « fast loaders » (l’execution de code sur le 1541 ne fonctionne pas)
  • compatible avec le design MM2IEC

Concernant ma version, j’ai ajouté un régulateur 5V et 3.3V respectivement à base de 7805 et LM317 (je n’avais pas de LF33 en stock). J’ai cablé un connecteur HE10 coudé pour connecter le programmateur ISP.

Chargement du firmware ou du bootloader

Pour se faire, j’ai utilisé un programmateur ISP maison à travers le port // dont le schéma de principe est ici.  Ce type de programmation est préconisée puisque le mode JTAG doit être désactivé pour que le microcode fonctionne correctement !

J’ai utilisé PonyProg. Il existe une version patchée de ce logiciel qui prend mieux en charge l’atmega644p. Pour ma part et avant d’être au courant, je n’ai eu qu’à forcer la programmation une à deux fois après avoir préalablement choisi le µc Atmega 644 dans la liste proposée.

Liens

La base du projet MMC2IEC par Lars Pontoppidan (en Anglais)

La longue liste de clones MMC2IEC / SD2IEC (en Allemand)

Le wiki firmware SD2IEC (en anglais)

Faîtes appel à votre entourage !

Jeudi 14 mai 2009

Voilà la dernière trouvaille qu’un ami m’a ramené d’une broc récemment et tout ça pour un euro symbolique !

Commodore_1541_1540.jpg

Il me reste à confectionner le câble de liaison avec connecteurs DIN 6 pour ce lecteur de disquette 5″1/4 1541 (modèle pour VIC20) et à valider son fonctionnement.

Un C64 rescusité

Jeudi 14 mai 2009

Voici le dernier élément de ma collection, un commodore C64 H.S mais de nouveau opérationnel pour lequel j’avais diagnostiqué une panne au niveau du contrôleur vidéo VIC II MOS 6569. Une seconde occasion de récupérer un autre C64 pour pièces m’a permis de mettre la main sur ce composant propriétaire.

3 .. 2 .. 1 … Allumage et c’est reparti !

C64_repaired.jpg