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

Le contrôleur CS91-280, associé à l'interface SDMOTO ou SDMO,
permet de simuler un contrôleur et deux lecteurs de disquette 3"1/2
pour tous les ordinateurs 8 bits Thomson (MO ou TO, sauf le TO9).
Les disquettes, sous forme de fichiers .sd copiés sur la carte SD, sont
accessibles en Basic ou en langage machine. Toutes les applications et
tous les jeux sur disquette peuvent être lancés à partir de la carte SD.

Les interfaces SDMOTO et SDMO permettent à tous les ordinateurs Thomson d'accéder aux secteurs physiques d'une carte mémoire microSD. Le contrôleur CS91-280 ajoute la logique nécessaire pour simuler un contrôleur et deux lecteurs de disquettes, totalement compatibles avec le format des disquettes Thomson. Les disquettes sont remplacées par des fichiers .sd copiés sur la carte SD. C'est le système idéal pour tous les utilisateurs, en particulier les joueurs et les développeurs. Il est très facile à réaliser. La version "boîtier nanoréseau" ne nécessite aucune soudure. La simplicité d'utilisation et le coût réduit du contrôleur CS91-280 sont des avantages décisifs par rapport aux autres systèmes. C'était, avant janvier 2018, la seule possibilité de simuler des disquettes avec une carte SD en l'absence de contrôleur de disquette Thomson. Depuis janvier 2020 le contrôleur CS91-280 est remplacé par SDDISK. Un autre choix possible est SDDRIVE : plus cher mais plus rapide.

Auteur : Daniel Coulom - Site internet : Emulateur DCMOTO - Dernière mise à jour le 17 septembre 2023

previous Retour à la page Bricolage

ATTENTION : le contrôleur CS91-280 est un ancien projet.
Il est maintenant abandonné et remplacé par SDDRIVE : SDDRIVE

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


Le système de simulation de disquette sur carte SD est composé de deux périphériques :

- Le contrôleur CS91-280 connecté au port d'extension de l'ordinateur. Il simule un contrôleur de disquette Thomson.


cs91280


- L'interface avec la carte SD : SDMO pour le connecteur magnétophone du MO5, ou SDMOTO pour le connecteur manette de tous les ordinateurs Thomson.


sdmo     sdmoto


Le logiciel du contrôleur est stocké dans une EPROM. Il 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 : CS9 signifie "Contrôleur de carte SD", tout comme CD9 signifie "Contrôleur de disquette" dans CD90-015, CD90-640 ou CD90-351.

L'EPROM du contrôleur a une taille de 4Ko, elle est composée de deux banques de 2Ko. La banque 0 contient la version pour SDMOTO et la banque 1 contient la version pour SDMO. Elles sont vues par l'ordinateur aux mêmes adresses qu'un contrôleur de disquette Thomson. La banque visible par le système est sélectionnée par un commutateur à deux positions.

On peut construire le contrôleur CS91-280 à partir d'un circuit imprimé, ou utiliser un contrôleur nanoréseau et changer l'EPROM.

Depuis janvier 2018 la version "circuit imprimé" avec interface SDMOTO est proposée entièrement montée et testée.
La photo et le lien pour commander sont en bas de cette page.

Construction du contrôleur CS91-280 avec un circuit imprimé


Le schéma ci-dessous correspond aux versions 2017-09 et suivantes du circuit imprimé.
Pour les versions précédentes le schéma est différent, consultez les versions archivées de ce document : version 2014 et version 2017


cs91280-2017_schema


Le circuit imprimé est prévu pour une EPROM 2732 en boîtier DIL24. Une EPROM de plus grande capacité en boîtier DIL28 ne convient pas.
Un commutateur à deux positions permet de configurer le contrôleur pour SDMOTO ou SDMO.


cs91280_pcb_nu


Tous les composants sont bon marché et faciles à trouver, sauf le connecteur "nez de carte" 2x19 contacts. On peut encore se le procurer chez quelques revendeurs pour professionnels, mais à des prix trop élevés. J'utilise un connecteur 2x20 contacts disponible sur ebay (chercher industrial card edge connector). Après avoir enlevé deux broches au milieu, il faut le scier pour enlever cette paire de contacts et raccorder les deux morceaux après les avoir ajustés à la lime.
Le connecteur est écarté du circuit imprimé par des surépaisseurs aux quatre angles. Sous le connecteur il subsiste un espace d'environ 1 mm, il ne faut pas chercher à le supprimer.
Bien observer sur la photo la position et l'orientation des circuits intégrés. Insérer l'EPROM dans son support avec beaucoup de précautions pour ne pas tordre les pattes.

Le contenu de l'EPROM est donné un peu plus bas au chapitre "Le programme de l'EPROM"

Il est possible d'obtenir le circuit imprimé, l'EPROM programmée et testée, le contrôleur complet en kit ou le contrôleur testé et prêt à l'emploi.
Consultez le dernier paragraphe en bas de cette page pour plus de précisions.


Construction du contrôleur CS91-280 avec un boîtier nanoréseau


Les contrôleurs nanoréseau ont été produits par Thomson a plusieurs centaines de milliers d'exemplaires. La plupart des collectionneurs en ont plusieurs et ne les utilisent pas. On les trouve occasionnellement dans les sites de vente.

cs91280

La préparation du contrôleur consiste à ouvrir le boîtier (4 vis), changer l'EPROM, refermer le boîtier, coller une étiquette. 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.

eprom_1    eprom_2

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, 27C512...
On peut aussi utiliser des EEPROM compatibles, par exemple Atmel AT28C64B ou Winbond W27C512. 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.

Le contenu de l'EPROM est donné au chapitre suivant : "Le programme de l'EPROM"
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, huit fois pour une 27256, seize fois pour une 27512.

Pour distinguer le contrôleur modifié du contrôleur original, il est conseillé de coller cette étiquette sur la face supérieure :

etiquette

Un interrupteur accessible à l'arrière du contrôleur est utilisé pour choisir la banque visible par le système : c'est l'interrupteur numéroté 7 parmi les huit disponibles. La position ON sélectionne la banque 0 (pour l'interface SDMOTO) et la position OFF sélectionne la banque 1 (pour l'interface SDMO). Attention, en cas d'erreur de positionnement le système ne fonctionne pas, il est important de bien vérifier la position de cet interrupteur.

switches

Le programme de l'EPROM


Le programme stocké dans l'EPROM initialise la carte SD au démarrage de l'ordinateur, recherche sur la carte le programme sdmoto.sel, le charge en mémoire et l'exécute. Il permet également de lancer sdmoto.sel à la demande. C'est aussi l'équivalent d'un contrôleur de disquettes Thomson, avec les mêmes points d'entrée, en particulier boot, format et fonctions standard, mais aussi les routines de gestion du système de fichiers.

/**************************************************\
*                  C S 9 1 2 8 0                   * 
*           (c) 2018 - Daniel Coulom               *  
*           http://dcmoto.free.fr/                 *
*           http://forum.system-cfg.com/           *
*--------------------------------------------------*
* Ce code est distribue gratuitement dans l'espoir *
* qu'il sera utile, mais sans aucune  garantie  et *
* sans  engager  la  responsabilité  de  l'auteur. *
* Vous  pouvez  l' utiliser,  le  modifier  et  le *
* diffuser librement, en conservant cette  licence *
* et les références de l'auteur dans   toutes  les *
* copies. L'exploitation commerciale est interdite.*
\**************************************************/

* Ce programme emule un controleur de disquette
* Thomson accedant a une image au format .sd par
* l'intermediaire des interfaces SDMOTO ou SDMO
* Il est destine a etre charge dans l'EPROM du
* controleur CS91-280, dans les banques 0 et 1.
* La banque 0 accede a l'interface SDMOTO
* La banque 1 accede a l'interface SDMO
* Auteur : Daniel Coulom, d'après la rom CD90-640
* Calcul du LBA avec le code de Samuel Devulder
* Optimisation lecture octet par Samuel Devulder
*
* Utilisation du 2eme port joystick avec SDMOTO
* Port A $A7CC (pour les MO) ou $E7CC (pour les TO)
* PA5 en sortie --> SD Clock     SCK  DB9 pin 2
* PA6 en sortie --> SD Data IN   MOSI DB9 pin 3
* PA7 en entree <-- SD Data OUT  MISO DB9 pin 4
*
* Utilisation port magnetophone avec SDMO
* Port A $A7C0 pour les donnees 
* PA6 en sortie --> SD Data IN   MOSI DB9 pin 3
* PA7 en entree <-- SD Data OUT  MISO DB9 pin 4
* Port B $A7C2 pour l'horloge
* PA3 en sortie --> SD Clock     SCK  DB9 pin 2

Ce programme évolue en permanence. Les dernières versions sont ici :
cs91280_20180524.zip
cs91280_20180702.zip

Ces archives contiennent le fichier cs91280_control.bin (EPROM du contrôleur) et le fichier sdmoto.sel à copier sur la carte SD.
Les sources sont disponibles sur demande dans le forum system-cfg (lien en bas de cette page).


Préparation de la carte microSD


ATTENTION : La préparation de la carte SD et l'utilisation du simulateur de disquette sont différentes pour les anciennes versions de l'EPROM :

- Avant décembre 2014 : version 2014
- Entre décembre 2014 et décembre 2017 : version 2017


Les instructions suivantes concernent uniquement les versions 20180213 et suivantes de l'EPROM.

Les cartes utilisables sont les microSD (jusqu'à 2 Go) et microSDHC (jusqu'à 32 Go). Les microSDXC (plus de 32 Go) ne sont pas supportées.
Formatez la carte sur PC (ou Mac), en FAT ou en FAT32.
Choisissez la taille d'unité d'allocation la plus grande possible pour éviter le fractionnement du répertoire principal.

Copiez le fichier sdmoto.sel dans la carte. C'est le programme permettant de sélectionner un fichier d'image de disquette au format .sd. Il est contenu dans la même archive que le programme de l'EPROM (voir au chapitre précédent). Les deux fichiers doivent avoir la même date pour que le système fonctionne correctement.

Copiez ensuite les images de disquettes au format .sd. Ces fichiers peuvent être téléchargés à la section Programmes du site dcmoto, ou créés à partir des fichiers .fd avec l'utilitaire FD2SD. Inversement une image de disquette au format .sd peut être transformée en fichier .fd avec l'utilitaire SD2FD.

Notes :

- La carte microSD n'est pas protégée en écriture.
Il est fortement conseillé d'en faire une sécurité en copiant tout son contenu dans un répertoire du disque dur de votre PC (ou Mac).

- Le contrôleur CS91-280 accède uniquement au répertoire principal.
Vous ne pouvez pas utiliser une arborescence de dossiers et sous-dossiers.

- Les fichiers ne doivent pas être fractionnés.
Si la carte vient d'être formatée il n'y a aucun risque. En cas de doute, reformatez la carte et recopiez les fichiers à partir de la copie de sécurité.


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 ou un connecteur "nez de carte" à souder à l'arrière du contrôleur CS91-280. Ce n'est pas nécessaire pour 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     commutateur

L'interrupteur 7 du boîtier nanoréseau sélectionne la banque 0 ou 1 de l'EPROM : position "ON" pour SDMOTO et "OFF" pour SDMO. Dans la version sur circuit imprimé, il est remplacé par un commutateur à glissière. N'oubliez pas de le positionner en fonction de l'interface utilisée. Mettez ensuite le système sous tension.


Sélection de la disquette au démarrage de l'ordinateur


sdmoto

Après la mise sous tension de l'ordinateur, vous pouvez choisir le fichier le fichier image de disquette au format .sd utilisé par le système.
La procédure est fonction du modèle :

- MO5, MO5E
L'écran SDMOTO s'affiche automatiquement.
Choisissez le fichier .sd avec les flèches du clavier et validez ce choix par la touche ENTREE.
La disquette choisie doit être bootable, par exemple la disquette BASIC-DOS pour MO, ou un programme lancé par un secteur de boot.

- T9000, TO7 et TO7/70 en BASIC 1.0
Avec le T9000 et le TO7, l'extension mémoire de 16 Ko est obligatoire. A l'écran d'accueil lancez le BASIC 1.0 avec la fonction 1.
L'écran SDMOTO s'affiche automatiquement. Choisissez le fichier .sd avec les flèches du clavier et validez ce choix par la touche ENTREE.
La disquette choisie doit être bootable, par exemple la disquette BASIC-DOS pour TO, ou un programme lancé par un secteur de boot.

- TO7/70 en BASIC 128
A l'écran d'accueil lancez le BASIC 128 avec la fonction 1.
Tapez la commande EXEC &HE025 pour lancer le programme SDMOTO.SEL.
Choisissez le fichier .sd avec les flèches du clavier et validez ce choix par la touche ENTREE.
Si la disquette est bootable lancer la procedure de boot par EXEC &HE007.
Sinon lancer le programme par RUN"xxx" si c'est un programme BASIC, ou EXEC"xxx" si c'est un programme binaire.

- MO5N, MO5NR, MO6, PC128
Si vous lancez le BASIC 128 avec la touche 1, tapez la commande EXEC &HA007 pour démarrer le programme de sélection.
Si vous lancez le BASIC 1.0 avec la touche 2, l'écran SDMOTO s'affiche automatiquement.
Dans un cas comme dans l'autre, choisissez le fichier .sd avec les flèches du clavier et validez ce choix par la touche ENTREE. L'appui sur le bouton d'initialisation de l'ordinateur ne modifie pas la sélection.

- TO8, TO8D, TO9+ sans lecteur de disquette
Avec le TO8, le lecteur externe doit être débranché ou éteint. Avec le TO8D ou le TO9+ il faut en plus débrancher le lecteur interne.
Si vous lancez le BASIC 512 avec la touche 1, il y a deux façons de lancer le programme de sélection :
- taper EXEC &HE007 si la disquette démarre avec un secteur de boot.
- taper EXEC &HE025 si la disquette démarre autrement (par RUN"AUTO.BAT" ou RUN"nom-de-programme" ou LOADM"nom-de-programme".
Si vous lancez le BASIC 1.0 avec la touche 2, l'écran SDMOTO s'affiche automatiquement.
Dans un cas comme dans l'autre, choisissez le fichier .sd avec les flèches du clavier et validez ce choix par la touche ENTREE. L'appui sur le bouton d'initialisation de l'ordinateur ne modifie pas la sélection.

- TO8, TO8D, TO9+ avec lecteur de disquette
Au démarrage le contrôleur interne est sélectionné automatiquement.
Pour choisir la disquette lancer le BASIC 512 (touche 1) ou le BASIC 1.0 (touche 2) et tapez les commandes suivantes pour sélectionner le contrôleur CS91-280 et lancer le programme SDMOTO.SEL :

- Si la disquette démarre avec un secteur de boot :
POKE &HE7E7, &HD4
POKE &H6081, &HD4
EXEC &HE007
- Si la disquette démarre autrement (par RUN"AUTO.BAT" ou RUN"nom-de-programme" ou LOADM"nom-de-programme".
POKE &HE7E7, &HD4
POKE &H6081, &HD4
EXEC &HE025

A chaque appui sur le bouton d'initialisation de l'ordinateur le contrôleur interne est sélectionné automatiquement.
Il faut taper les commandes POKE&HE7E7,&HD4 et POKE&H6081,&HD4 pour accéder à nouveau au contrôleur CS91-280.

- TO9
Le TO9 est incompatible avec tous les contrôleurs de disquettes externes et donc avec le contrôleur CS91-280.


Changement de disquette


sdmoto

Certaines applications, en particulier quelques jeux commerciaux et quelques démonstrations, ne permettent pas le retour au BASIC, même en utilisant le bouton d'initialisation de l'ordinateur. Dans ce cas le seul moyen pour changer de disquette est de couper l'alimentation, attendre une dizaine de secondes et remettre l'ordinateur sous tension.

Quand on peut revenir au BASIC, soit en fin de programme, soit en utilisant le bouton d'initialisation, on peut appeler le programme SDMOTO.SEL en tapant deux commandes BASIC. Si le contrôleur interne des TO8, TO8D ou TO9+ est sélectionné, il faut au préalable taper la commande POKE&HE7E7,&HD4 pour accéder à nouveau au contrôleur CS91-280.

Lancement de SDMOTO.SEL pour MO:

CLEAR,&H4FFF
EXEC&HA025

Lancement de SDMOTO.SEL pour TO:

CLEAR,&H8FFF
EXEC&HE025

Après sélection d'une disquette, le programme SDMOTO.SEL retourne au BASIC. On peut alors lancer l'application, comme avec une vraie disquette.


Lancement d'une application


sdmoto

Chaque disquette d'application, démonstration ou jeu est différente, il n'y a pas de règle générale. En résumé l'application peut nécessiter le Basic 1.0 ou le BASIC 128 ou 512, et démarrer par un secteur de boot, un programme AUTO.BAT ou une commande manuelle. En Basic 1.0 il est parfois nécessaire de charger le DOS avant de lancer l'application. Avec le nombre de combinaisons possibles, il n'est pas facile de recenser tous les cas.

La documentation, si elle existe, donne souvent la procédure à utiliser. Sinon il faut essayer l'un ou l'autre BASIC, le boot sur la disquette ou le lancement du programme AUTO.BAT.

Notez aussi que les programmes qui appellent directement des routines contenues dans le contrôleur de disquette Thomson doivent être modifiés pour fonctionner avec le contrôleur CS91-280. En dernier recours le forum system-cfg peut être utilisé pour obtenir de l'aide, les meilleurs spécialistes Thomson le fréquentent et pourront répondre à toutes les questions.

Pour tester le système vous pouvez lancer la démonstration CS91-280 Music disponible ici --> cs91280music
Elle nécessite le contrôleur Musique et Jeux s'il n'est pas intégré dans l'unité centrale (c'est le cas des TO7, TO7/70 et MO5).

cs91280music cs91280music

cs91280music

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  

Galerie de photos


mo5

mo6

to7/70

to8

mo5e

mo5

mo5e

eprom

dcmo

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é dans ce fil de discussion -> Contrôleurs CS91-280 et CS91-282 pour Thomson

Pour les développeurs d'applications et de démonstrations, un document spécial donne plus de détails sur la programmation du système, avec des exemples de programmes : demos


solde

previous Retour à la page Bricolage