ATTENTION, cette page est un document d'archive et ne correspond pas à la version actuelle du contrôleur CS91-280.
Lien vers la version actuelle : CS91-280 (Dernière version)
Les interfaces SDMOTO et SDMO permettent à tous les ordinateurs Thomson d'accéder à une carte mémoire SD ou SDHC. Grâce au contrôleur CS91-280 les cartes SD sont utilisées comme deux lecteurs de disquettes, totalement compatibles avec le format des disquettes Thomson. C'est le périphérique idéal pour tous les utilisateurs, qu'ils soient développeurs, joueurs, curieux ou simplement nostalgiques. Il est très facile à réaliser. Dans sa version "boîtier nanoréseau" il ne demande aucune connaissance en électronique.
Auteur : Daniel Coulom - Site internet : Emulateur DCMOTO - Dernière mise à jour le 23 février 2020
A gauche les versions 2014.05 des interfaces
SDMOTO et SDMO. Le coût des composants
est environ 2 euros (sans la carte SD). A droite le contrôleur CS91-280 : c'est un contrôleur nanoréseau
dont l'eprom est modifiée et l'étiquette auto-collante changée. Il n'est pas difficile à trouver :
Thomson en a produit plusieurs centaines de milliers, la plupart des collectionneurs en ont plusieurs
et ne les utilisent pas.
Cinq interrupteurs accessibles à l'arrière sont utilisés pour choisir une image de disquette parmi 32. Un
sixième permet de choisir la banque mémoire du contrôleur visible par le système. La banque 0 contient la
version pour SDMOTO et la banque 1 contient la version pour SDMO.
Le logiciel du contrôleur permet d'initialiser la carte SD et de simuler un contrôleur de disquette avec deux
lecteurs en ligne, soit 4 unités Thomson (4 faces de disquettes), pour un total de 1280 Koctets. Ce nombre se
retrouve dans l'identification CS91-280, tout comme la taille de 640 Koctets se trouve dans l'identification
du contrôleur CD90-640. CD signifie contrôleur de disquette, CS signifie contrôleur de carte SD.
L'eprom du contrôleur a une taille de 4Ko, soit 2Ko pour chacune des banques. Elles sont vues par le système
aux mêmes adresses qu'un contrôleur de disquette Thomson.
La préparation du contrôleur consiste à ouvrir le boîtier (4 vis), changer l'eprom, refermer le boîtier. On ne peut pas faire plus simple.
Pour retirer l'ancienne EPROM, utilisez un outil spécial pour l'extraction des circuits intégrés.
A défaut un petit tournevis, manipulé avec précaution, permet de soulever tour à tour, progressivement,
les quatre coins, et d'enlever ensuite le circuit sans tordre les pattes.
Vérifiez avec attention la position et le sens de la nouvelle EPROM. Le repère (ou encoche) sur le boîtier
DIL24 ou DIL28 doit être du côté du petit circuit intégré DIL16, marqué NR V3. Les boîtiers DIL24 doivent
laisser 4 trous libres du côté du repère. En l'insérant à sa place, assurez-vous que les pattes sont toutes
centrées sur les trous et appuyez doucement sans trop forcer. Attention de ne pas tordre les pattes.
Le connecteur d'eprom du contrôleur nanoréseau permet d'utiliser des modèles DIL24 ou DIL28. On peut donc
utiliser les eproms originales de type Am2732 ou Am2732B, mais aussi des 2764, 27128, 27256, 27C32, 27C64,
27C128, 27C256... On peut aussi utiliser des EEPROM compatibles, par exemple Atmel AT28C64B. Elles ont
l'avantage d'être effaçables électriquement par le programmateur, donc sans lampe à ultra-violets.
Si vous n'êtes pas équipé pour programmer l'EPROM, vous pouvez utiliser le service proposé tout en bas de cette page.
La dernière version du contenu de l'eprom pour boîtier nanoréseau est ici : cs91280_20140301.zip
Elle permet de sélectionner une disquette de démarrage parmi 32 avec les interrupteurs du boîtier.
Cette autre version sélectionne toujours la même disquette de démarrage : cs91280_20140518.zip
La deuxième version est plus simple à l'utilisation et je vous la conseille.
Le fichier binaire a une taille de 4 Ko. Il faut le reproduire autant de fois que nécessaire pour remplir toute l'eprom.
Une fois pour une 2732, deux fois pour une 2764, quatre fois pour une 27128 et huit fois pour une 27256.
Pour distinguer le contrôleur modifié du contrôleur original, il est conseillé de coller cette étiquette
sur la face supérieure :
L'utilisation d'un boîtier nanoréseau n'est pas indispensable, on peut aussi construire le contrôleur CS91-280 avec des composants neufs sur une plaquette à bandes cuivrées. La seule différence avec la version précédente est l'absence d'interrupteurs pour sélectionner la disquette de démarrage. La disquette n°0 est sélectionnée d'office.
L'interrupteur 7, permettant de sélectionner le type d'interface, est remplacé par
un cavalier à deux positions. Le contrôleur est configuré pour SDMOTO ou SDMO en fonction de la position de
ce cavalier.
La dernière version du contenu de l'eprom est ici : cs91280_20140518.zip
Le fichier binaire a une taille de 4 Ko. Il faut le reproduire autant de fois que nécessaire pour remplir
toute l'eprom. Par exemple 2 fois pour une 2764, 8 fois pour une 27256.
---------------------------------------------------------------- Liste des composants nécessaire à la construction du contrôleur ---------------------------------------------------------------- Qté Désignation --- ------------ 01 Plaquette d'essais à 25 bandes de 21 trous pas 2,54 mm 46 Fils de câblage longueurs diverses (voir schema) 01 Connecteur nez de carte 2x19 contacts pas 2,54 mm 01 Cavalier pas 2,54 mm 01 Connecteur mâle 3 broches pour le cavalier 01 Support circuit intégré DIL28 large 02 Support circuit intégré DIL14 01 Résistance 47K 1/8 Watt 02 Condensateur céramique 0,1µF 01 Circuit logique 74LS11 01 Circuit logique 74LS32 01 EPROM 27C128 ----------------------------------------------------------------
Tous les composants sont bon marché et faciles à trouver, sauf le connecteur "nez de carte" 2x19 contacts. On le trouve chez des revendeurs pour professionnels, mais les frais de port sont prohibitifs. J'utilise un connecteur 2x20 contacts disponible sur ebay (chercher industrial card edge connector). Après avoir enlevé deux broches au milieu, je le scie pour enlever cette paire de contacts et raccorde les deux morceaux après les avoir ajustés à la lime.
Les fichiers images de disquettes placés sur la carte ont tous une taille de 2560 Ko. Leur extension par défaut est .sd. Quelque-uns sont disponibles ici :
L'intérêt majeur du système est de permettre la création d'un fichier .sd à partir de n'importe quel
fichier .fd du site dcmoto. L'utilitaire fd2sd permet de réaliser la conversion : il suffit de copier
fd2sd.exe dans un répertoire contenant des fichiers .fd et de le lancer.
Chaque fichier .fd sera converti ou non selon la réponse "OUI" ou "NON" à la boîte de dialogue.
Pour simplifier encore l'utilisation du système CS91-280, des fichiers .sd tout prêts sont ajoutés progressivement au site dcmoto, à la page de chacun des programmes convertis pour utilisation sur carte SD.
L'utilitaire sd2fd.exe permet de réaliser la conversion inverse : il transforme un fichier .sd en fichier .fd, utilisable avec l'émulateur dcmoto.
Commencez par formater la carte SD sur PC (ou Mac), en FAT ou en FAT32 selon sa taille. Copiez ensuite
les fichiers .sd dans la carte. L'ordre est indifférent, le seul impératif est de s'assurer qu'ils ne
sont pas fractionnés. Si la carte vient d'être formatée, il n'y a pas de risque.
Déterminez ensuite l'adresse physique de chaque fichier .sd sur la carte. Le moyen le plus simple, si vous
avez Windows 7 ou plus récent, est le logiciel bootaddress : bootaddress.exe
Bootaddress donne directement la valeur hexadécimale à utiliser pour l'étape suivante. Si votre configuration
n'est pas compatible, vous pouvez utiliser un éditeur de disque, par exemple WinHex
Recherche de l'adresse physique du fichier .sd avec WinHex :
Si vous avez une carte SDHC, gardez ce numéro tel quel. Si vous avez une carte SD, multipliez le numéro par 512 : 55897 x 512 = 28619264. Convertissez ce nombre décimal en hexadécimal : 28619264 = $01B4B200. C'est bien l'adresse physique donnée par bootaddress.
Initialisation des adresses physiques dans la carte SD :
La zone de la carte SD commençant à l'adresse physique hexadécimale 200 est, à priori, inutilisé par le système. Nous allons y mettre les adresses de début des fichiers .sd contenus dans la carte (minimum une adresse, maximum 32 adresses). On peut utiliser WinHex ou tout autre éditeur de disque physique, par exemple HxD.
Chaque adresse est sur 4 octets. Ces adresses permettront de sélectionner le fichier .sd utilisé pour la simulation des lecteurs de disquette au démarrage de l'ordinateur. Elles sont limitées à 32 par la conception du contrôleur.
Remarque : le changement de disquette de démarrage avec les interrupteurs n'a pas de réel intérêt, car on peut à tout moment changer
de disquette par soft. Il est conseillé d'utiliser une seule disquette de démarrage et de mettre son adresse en première position,
aux adresses physiques hexadécimales 200 à 203, et de ne pas initialiser les autres. C'est d'ailleurs la seule possibilité pour la
version du contrôleur CS91-280 n'utilisant pas le boîtier de communication nanoréseau.
Ordinateur hors tension (impératif), connectez le contrôleur CS91-280 à un port d'extension de l'ordinateur Thomson, et mettez en place l'une des interfaces carte SD :
- SDMOTO utilise le connecteur de la deuxième manette : à droite vu de l'extérieur de l'ordinateur pour la plupart des ordinateurs et le contrôleur SX90-018, à gauche pour le MO5E et le MO5NR. S'il n'y a pas de contrôleur musique et jeu intégré à l'unité centrale, il faut utiliser le contrôleur externe SX 90-018. Le MO5 n'a qu'un seul connecteur d'extension, il lui faut donc un doubleur de bus, un megabus Peritek ou un module d'extension MO5. Ce n'est pas nécessaire pour tous les autres ordinateurs Thomson.
- SDMO est utilisable avec le MO5, le MO5E et le MO5NR. Il se connecte au port magnétophone, avec le fil d'alimentation dans la broche 5 du connecteur du crayon optique.
Positionnez les switches 1 à 5 pour indiquer le numéro (0 à 31) de l'adresse du fichier .sd dans le secteur 1 de la carte SD. Ce fichier SD sera utilisé pour le boot. Dans l'image ci-dessus, tous les interrupteurs sont dans la position "ON", qui correspond à la valeur 0. Le basculement des interrupteurs 1, 2, 3, 4, 5 ajoute respectivement 1, 2, 4, 8, 16 au numéro. Les interrupteurs 6 et 8 ne sont pas connectés. L'interrupteur 7 sélectionne la banque 0 ou 1 de l'eprom : position "ON" pour SDMOTO et "OFF" pour SDMO.
Mettez ensuite le système sous tension. Après le démarrage, il y a différents cas possibles selon la configuration utilisée :
Les interfaces SDMOTO et SDMO ne comportent pas de dispositif de protection d'écriture. Il y a donc un risque d'écrasement des informations stockées sur la carte SD en cas de fausse manoeuvre ou d'erreur de programme. Il est conseillé d'avoir toujours une sécurité des fichiers importants.
Notez que le nombre de disquettes "bootables" de la carte SD est limité à 32, par contre le nombre de disquettes utilisables est infini. L'adresse physique du fichier .sd est stockée en $208E-$2091 (ordinateur MO) ou $608E-$6091 (ordinateur TO). On peut la
modifier par soft, et y mettre l'adresse retournée par bootaddress.exe pour un fichier .sd quelconque : numéro du premier secteur
pour les cartes SDHC, ou numéro du premier octet pour les cartes SD. Cette opération peut se faire par quatre POKE en Basic,
elle a pour effet de changer l'image de disquette vue par le système.
On peut aussi, après avoir initialisé la carte SD avec le contrôleur CS91-280, accéder physiquement au contenu de toute la carte SD sans utiliser le système de simulation de disquette. Les accès peuvent ainsi être beaucoup plus rapides, par exemple pour les démonstrations de musique ou de vidéo.
Ci-dessous un exemple de programme de choix de disquette ou de lancement de démonstrations sans manipulation des interrupteurs. Vous pouvez utiliser le forum system-cfg pour aborder ces utilisations avancées du système.
0 '==================================== 1 ' AUTO.BAT POUR DEMO SDMOTO SUR MO6 2 ' Auteur : Daniel Coulom 3 ' Site web : http://dcmoto.free.fr 4 '==================================== 10 CLS 20 FORI=0TO9:READA$ 21 PRINTI;A$:NEXT:PRINT:PRINT"?"; 30 A$=INKEY$ 31 IFA$<"0"THEN30 32 IFA$>"9"THEN30 40 PRINTA$:A=VAL(A$) 41 ONA GOTO81,82,83,84,85,86,87,88,89 42 END 81 RUN"SDANIM" 82 RUN"SDPLAY1" 83 RUN"SDPLAY2" 84 POKE&H208E,&H01:POKE&H208F,&HEB:POKE& H2090,&H49:POKE&H2091,&H00:RUN"AUTO.BAT" 85 POKE&H208E,&H02:POKE&H208F,&H13:POKE& H2090,&H49:POKE&H2091,&H00:RUN"AUTO.BAT" 86 POKE&H208E,&H01:POKE&H208F,&H5C:POKE& H2090,&H5F:POKE&H2091,&H00:RUN"AUTO.BAT" 87 POKE&H208E,&H02:POKE&H208F,&H41:POKE& H2090,&H82:POKE&H2091,&H00:RUN"AUTO.BAT" 88 POKE&H208E,&H01:POKE&H208F,&H12:POKE& H2090,&HA2:POKE&H2091,&H00:RUN"AUTO.BAT" 89 POKE&H208E,&H02:POKE&H208F,&H36:POKE& H2090,&HF9:POKE&H2091,&H00:RUN"AUTO.BAT" 90 DATA"Abandon" 91 DATA"Simon's Cat" 92 DATA"Années 80" 93 DATA"Petite Fleur" 94 DATA"Loriciels Simulation Hits 1" 95 DATA"Loriciels Simulation Hits 2" 96 DATA"L'Aigle d'Or" 97 DATA"Bactron - M.G.T." 98 DATA"Music 3V" 99 DATA"Microïds Simulation Pack"
Quelques opérations courantes ont été chronométrées sur MO6, d'une part avec un contrôleur CD90-351 et un lecteur de disquette 3,5", d'autre part avec un contrôleur CS91-280 et un module SDMOTO. Le tableau ci-dessous donne les résultats. Il montre la supériorité de l'émulation de disquette sur carte SD : toutes les opérations sont nettement plus rapides qu'avec la disquette réelle. A noter le temps très court pour un DSKINI. Il s'explique par le formatage "rapide" effectué par le contrôleur CS91-280 : la carte SD étant déjà formatée par un PC, il suffit d'initialiser la table d'allocation et le répertoire principal stockés sur la piste 20, et d'effacer la piste 0. Les autres pistes ne sont pas modifiées.
============================================ Temps comparés entre les contrôleurs sur MO6 - CD90-351 avec disquette 3,5 pouces - CS91-280 avec interface SDMOTO et carte SD ============================================ Fonction CD90-351 CS91-280 -------------------- -------- -------- Charger MACH3 0:58 0:32 Charger SPACE RACER 0:25 0:15 Charger TURBO CUP 1:13 0:56 DSKINI0 0:35 0:02 BACKUP0TO1 3:45 2:56
Pour éviter l'utilisation des adresses physiques des images de disquettes, deux développements nouveaux sont en
cours et devraient être opérationnels début 2015.
Le premier est une modification de l'EPROM du contrôleur pour charger au démarrage l'image de disquette BOOT.SD.
Ainsi il n'est plus nécessaire de rechercher l'adresse du fichier dans la carte SD et de l'inscrire dans le
deuxième secteur avec un éditeur de disque. Le programme de l'EPROM cherche le fichier BOOT.SD dans le répertoire
principal de la carte SD (formatée en FAT16 ou FAT32). Ensuite il calcule l'adresse physique pour monter la disquette
de façon transparente pour l'utilisateur. Le fichier BOOT.SD peut être n'importe quelle image de disquette au format
SD. On peut la créer avec FD2SD.EXE à partir d'un fichier .fd existant. Pour les ordinateurs en BASIC 1.0,
la disquette doit être bootable et contenir le DOS 3"1/2 adapté à l'ordinateur utilisé. Pour les ordinateurs
disposant du BASIC 128 ou du BASIC 512 la disquette BOOT.SD peut être vide.
Le second est un programme d'exploration du répertoire principal de la carte SD. Il permet d'afficher tous les
fichiers d'images de disquettes présents sur la carte et de sélectionner le fichier désiré. Ensuite il calcule
l'adresse physique et monte la disquette. En stockant ce programme dans la disquette BOOT.SD, on peut donc changer
les images de disquettes sans connaître les emplacements physiques.
Le premier développement est terminé depuis le 8 décembre 2014 et entre maintenant en phase de test. Le deuxième
est en cours, les test devraient commencer avant la fin de l'année. Le nouveau code de l'EPROM et le programme
de changement de disquette seront diffusés ici-même dans les premiers mois de l'année 2015.
En attendant la version officielle, il est possible de tester la version de test de la nouvelle EPROM.
Pour les cartes formatées en FAT32, le fichier BOOT.SD doit être dans le premier secteur du répertoire principal.
Si le fichier est copié sur la carte juste après le formatage, la contrainte est toujours respectée.
En FAT16 le fichier BOOT.SD peut être n'importe où dans le répertoire principal.
La version de test de l'EPROM est ici : cs91280_20141208.zip
La source principale d'informations sur le projet CS91-280 est le forum system-cfg :
Vous pouvez y relire toute la genèse et demander de l'aide en cas de difficulté.
Si vous ne disposez pas du matériel pour effacer et reprogrammer l'EPROM, il est possible d'en obtenir une prête à l'emploi, en contactant par mail le webmaster du site dcmoto. Dans ce cas, une contribution aux frais est possible en utilisant le bouton ci-dessous.
© 2014 - Daniel Coulom
contacter l'auteur