CS91-280 - Contrôleur de carte SD pour interface SDMOTO ou SDMO

Remplace un contrôleur et deux lecteurs de disquette 3"1/2 avec tous les avantages de la carte SD
Permet de stocker 25000 images de disquettes sur une carte SD et d'y accéder en Basic ou en langage machine
Permet le transfert rapide de fichiers images de disquettes dans les deux sens entre un PC et un ordinateur Thomson

ATTENTION, cette page est un document d'archive et ne correspond pas à la version actuelle du contrôleur CS91-280.

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 10 décembre 2014

previous Retour à la page Bricolage

Le matériel : interface SDMOTO ou SDMO et contrôleur CS91-280


cs91280

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.


Préparation du contrôleur

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.


eprom_1    eprom_2

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 :

etiquette

Autre version du contrôleur sur plaque d'essai à bandes cuivrées


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.

cs91280_ensemble

cs91280_implantation

cs91280_cuivre cs91280_composants

cs91280_schema_20140831

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.


Création des fichiers images de disquettes (.sd)

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.

fd2sd_1 fd2sd_2

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.


Préparation de la carte SD

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

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

winhex_1


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.

winhex_2

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.


Utilisation du simulateur de disquette

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.

switches

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"


Performances

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  

Développements en cours

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


Galerie de photos


mo5

mo6

to7/70

to8

mo5e

mo5

mo5e

eprom

Complément d'information

La source principale d'informations sur le projet CS91-280 est le forum system-cfg : 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.

previous Retour à la page Bricolage