Contrôleurs CS91-280 et CS91-282 pour Thomson

Placez ici vos trucs et astuces, étalez sans retenue votre savoir-faire et votre science qui va nous permettre de redonner une apparence neuve et fonctionnelle à nos bouzes.

Modérateurs : Carl, Papy.G, fneck

Avatar du membre
Turk182
Messages : 40
Enregistré le : 06 avr. 2018 16:42
Localisation : Barcelona
Contact :

Re: Contrôleurs CS91-280 et CS91-282 pour Thomson

Message par Turk182 » 04 août 2018 12:02

Bon ça y est ça remarche.

En fait la carte avait été reformatée en FAT32 et je viens de la mettre en FAT pour essayer et la tout est OK.

Je pensais que cela marchait en FAT32 mais apparemment cela doit dépendre des carte SD.

En tout cas merci pour ton aide ;-)

Daniel
Messages : 10834
Enregistré le : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Contrôleurs CS91-280 et CS91-282 pour Thomson

Message par Daniel » 04 août 2018 12:47

J'ai testé toutes les versions de l'EPROM du contrôleur à la fois en FAT et en FAT32, et normalement ça marche aussi bien dans les deux cas.

A noter que la carte n'est pas protégée en écriture. Un plantage d'un programme Thomson peut éventuellement détruire des informations importantes du master boot record, de la table d'allocation ou du répertoire principal. C'est peut-être ce qui est arrivé.

Si un jour tu as le temps, il faudrait refaire un formatage en FAT32, remettre les fichiers sur la carte et essayer à nouveau. Ca devrait fonctionner.

A noter aussi qu'il y a mille façons de formater. Entre Windows, Linux, le programme de formatage officiel de la SD Card Association et d'autre utilitaires le résultat est différent. Certains créent un MBR suivi d'une ou plusieurs partitions, d'autres (comme Windows 10) ne mettent pas de MBR et ne partitionnent pas. Le firmware du contrôleur CS91-280 traite bien tous les cas que je connais, avec ou sans MBR. Par contre il y a peut-être d'autres formatages possibles qui peuvent ne pas fonctionner.

Code : Tout sélectionner

*------------------------------------------------------
* Lecture du Master Boot Record (1er secteur physique)
* $1FE-$1FF: $55AA (signature)
* Premier descripteur (pour la premiere partition)
* $1BE: boot indicator ($00=non, $80=oui) 
* Si boot indicator different, ce n'est pas un MBR
* $1C6-$1C7: LBA (poids faible en tete) 
*------------------------------------------------------
RMBR
  CLRA                 raz registre D (octet poids fort)
  CLRB                 raz registre D (octet poids faible)
  STD   <SD_LBA        LBA (2 premiers octets)
  STD   <SD_LBA+2      LBA (2 derniers octets)
  STD   >SECTP         raz secteur debut partition
  LDD   #BUF512        adresse du buffer
  STD   <DK_BUF        stockage adresse buffer
  LBSR  RS512          lecture du secteur de 512 octets
  LDD   #$55AA         Signature secteur
  CMPD  >BSIGN         Test signature
  LBNE  DKSEL8         Signature incorrecte
  LSL   >BBIND         Boot indicator 
  BNE   ABOOT1         Pas de MBR, donc boot record
  LDA   >BLBA1         LBA partition pds fort    
  LDB   >BLBA2         LBA partition pds faible  
  STD   >SECTP         stockage secteur debut partition
  
*------------------------------------------------------
* Lecture du Boot Record
* Premier secteur au debut de la partition
* Registre D = numero secteur de debut de partition
*------------------------------------------------------
RBOOT
  STD   <SD_LBA+2      stockage pour CMD17 si carte SDHC
  TST   <SD_TYP        test du type de carte
  BNE   RBOOT1         carte SDHC, sinon calcul pour SD
  ASLB                 multiplie par 2 (poids faible)  
  ROLA                 multiplie par 2 (poids fort)
  STD   <SD_LBA+1      adresse = numero secteur * $200  
  CLR   <SD_LBA+3      raz dernier octet adresse
RBOOT1 
  LBSR  RS512          lecture du secteur de 512 octets

*------------------------------------------------------
* Analyse du Boot Sector
* $1FE-$1FF: $55AA (signature)
* $00B-$00C: nombre d'octets par secteur (512)
* $00D: nombre de secteurs par cluster
* $00E-$00F: nombre de secteurs reserves
* $010: nombre de FATs
* $011-$012: nombre entrees directory (FAT16 seulement)
* $016-$017: nombre secteurs FAT (FAT16 seulement)
* $024-$027: nombre secteurs FAT (FAT32 seulement)
* $02C-$02D: numero cluster directory (FAT32)
* Attention: le debut des donnees commence au cluster 2
* - En FAT16: apres la directory
* - En FAT32: apres les FATs
* Pour faciliter les calculs, on retranche 2 fois le
* nombre de secteurs par cluster au debut des donnees.
* 
* Calcul du secteur physique du repertoire principal
* = numero du secteur de debut de partition
* + nombre de secteurs reserves
* + nombre de secteurs FAT * nombre de FAT
*
* Calcul du secteur physique du cluster zero
* = numero du secteur du debut du repertoire principal
* + nombre d'entrees repertoire / 16 (0 en FAT32)
* - nombre de secteurs par cluster * 2
*
*------------------------------------------------------
ABOOT
  LDD   #$55AA         Signature secteur
  CMPD  >BSIGN         Test signature
  LBNE  DKSEL8         Signature incorrecte
ABOOT1
  CLRA                
  LDB   >BNSEC         Nombre de secteurs par cluster
  STD   >CSIZ2         Stockage nbre secteurs par cluster
  LDA   >BRES1         Blocs reserves pds fort   ex: $00
  LDB   >BRES2         Blocs reserves pds faible ex: $04
  STD   >SECTR         stockage nbre secteurs reserves

* taille FAT (en FAT16) dans D  
  LDA   >BFATS1        Fat16 size pds fort       ex: $00
  LDB   >BFATS2        Fat16 size pds faible     ex: $F2
  STD   >BFATS2        stockage taille FAT16
  BNE   ABOOT2         FAT16 si different de zero  

* taille FAT (en FAT32) dans D  
* 2 octets poids fort ignores (simplification abusive ?)
  LDA   >BFATS3        Fat32 size pds fort       ex: $03
  LDB   >BFATS4        Fat32 size pds faible     ex: $AB

* taille totale des FATS fonction du nombre de FATs
* Le registre D contient le nombre de secteurs des FATs
ABOOT2
  DEC   >BNFAT         Nombre de FAT             ex: $02
  BEQ   ABOOT3         Une seule FAT
  ASLB                 FAT size multiplie par 2  ex: $E4 
  ROLA                 FAT size multiplie par 2  ex: $01

* calcul du numero du premier secteur du repertoire
ABOOT3   
  ADDD  >SECTR         ajout nombre de secteurs reserves
  ADDD  >SECTP         ajout secteur de debut de partition
  STD   >SECTD         stockage secteur debut directory
  LDA   >BNDIR1        nbre entrees directory (poids fort)
  LDB   >BNDIR2        nbre entrees directory (poids faible)
  LSRA                 division par 16
  RORB                 pour obtenir
  LSRA                 le nombre de secteurs
  RORB                 de la directory
  LSRA                 En FAT32 le nombre d'entrees  
  RORB                 de la directory est nul
  LSRA                 Le debut des donnees (cluster 2)
  RORB                 commence apres les FATs 
  ADDD  >SECTD         ajout secteur debut directory
  SUBD  >CSIZ2         retrancher le nbre secteurs/cluster 
  SUBD  >CSIZ2         retrancher le nbre secteurs/cluster 
  STD   >SECTF         stockage numero secteur du cluster 0
  LDD   >SECTD         secteur de debut de directory

*------------------------------------------------------
* LECTURE DE LA DIRECTORY
* D contient le numero du secteur a lire
*------------------------------------------------------
RDSECT
  STD   <SD_LBA+2      stockage pour la commande 17
  TST   <SD_TYP        type de carte 0=SD 1=SDHC
  BNE   RDSEC1         carte SDHC
  ASLB                 LBA multiplie par 2 
  ROLA                 LBA multiplie par 2
  STD   <SD_LBA+1      LBA multiplie par $100
  CLR   <SD_LBA+3      octet de poids faible a zero
RDSEC1
  LBSR  RS512          Lecture du secteur 
  LDX   #BUF512        Adresse du buffer
Daniel
L'obstacle augmente mon ardeur.

Avatar du membre
Turk182
Messages : 40
Enregistré le : 06 avr. 2018 16:42
Localisation : Barcelona
Contact :

Re: Contrôleurs CS91-280 et CS91-282 pour Thomson

Message par Turk182 » 04 août 2018 18:37

Non, rien à faire je fais un format rapide Fat32 sur Windows 7 et impossible de lire sur les SDMOTO, je repasse le tout en Fat et ça remarche.

Bizarre, c’est peut la carte SD 2go qui merdouille, en tout cas c’est pas grave tant qu’en ça marche, pas de problème :wink:

En tout cas merci pour ton aide!

Zorro05

Re: Contrôleurs CS91-280 et CS91-282 pour Thomson

Message par Zorro05 » 20 sept. 2018 12:20

Daniel a écrit :
19 mai 2014 21:28
[edit Fabien: topic désinfecté]
Ouuch c'est compliqué :)

Daniel
Messages : 10834
Enregistré le : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Contrôleurs CS91-280 et CS91-282 pour Thomson

Message par Daniel » 20 sept. 2018 14:47

Peux-tu préciser ce qui est compliqué ? Acheter le contrôleur CS91-280, ou le construire, ou l'utiliser ?
- Acheter le contrôleur monté et testé est très simple, il suffit d'avoir un peu d'argent.
- Fabriquer le contrôleur à partir du kit est aussi très simple, grâce au circuit imprimé. Il suffit de savoir souder, il n'y a aucune difficulté.
- Fabriquer le contrôleur avec un boîtier nanoréseau est enfantin : il suffit de changer l'EPROM et elle est amovible (pas de soudure).
- Utiliser le contrôleur est très simple. Il suffit de savoir copier des fichiers sur la carte SD avec un PC ou un Mac ou une tablette ou un téléphone ou autre, puis sur l'ordinateur Thomson sélectionner une ligne dans une liste avec les flèches bas et haut.

Je suis d'accord avec toi, la programmation du contrôleur pour émuler un lecteur de disquette Thomson en accédant à une carte SD est un peu compliquée. Il a fallu plusieurs mois de développement et de test pour arriver au résultat actuel. Mais aujourd'hui tout fonctionne à merveille, l'utilisateur n'a aucune raison de s'intéresser au logiciel, le choix des fichiers .sd à l'écran est d'une simplicité enfantine grâce au menu déroulant. Il suffit de demander aux dizaines d'amateurs qui l'ont construit ou acheté.
Daniel
L'obstacle augmente mon ardeur.

Avatar du membre
fneck
Site Admin
Messages : 12247
Enregistré le : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Re: Contrôleurs CS91-280 et CS91-282 pour Thomson

Message par fneck » 20 sept. 2018 18:18

Daniel, tu parles à un gros troll 8)
Ou plutôt une à une pub glissée dans la citation du message (je te le laisse le temps de le voir puis poubelle).

Daniel
Messages : 10834
Enregistré le : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Contrôleurs CS91-280 et CS91-282 pour Thomson

Message par Daniel » 20 sept. 2018 18:29

Il m'a bien eu. Je n'avais pas lu la citation, uniquement le message de la dernière ligne.
Pour me consoler de ma naïveté, il faudrait supprimer la citation mais garder la dernière ligne et ma réponse, elle était sincère :lol:
Daniel
L'obstacle augmente mon ardeur.

__sam__
Messages : 4175
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Contrôleurs CS91-280 et CS91-282 pour Thomson

Message par __sam__ » 20 sept. 2018 18:32

Mouarf! Plus personne ne lis les citations intégrales de nos jours (chez moi c'est poubelle directos au niveau du cerveau un gros pavé cité). Mais visiblement il y a encore des "codeurs"qui ne sont pas au courant. Certains fabricants de robots publicitaires sont à la traine, leur approche est so 90'ies, so vieillotte, on se croirait sur yahoo en 1994....
Modifié en dernier par __sam__ le 20 sept. 2018 18:35, modifié 1 fois.
Samuel.
A500 Vampire V2+, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8. New Teo 1.8.4 8)

Avatar du membre
fneck
Site Admin
Messages : 12247
Enregistré le : 01 avr. 2007 12:03
Localisation : Drôme Provençale (26)
Contact :

Re: Contrôleurs CS91-280 et CS91-282 pour Thomson

Message par fneck » 20 sept. 2018 18:33

Daniel a écrit :
20 sept. 2018 18:29
(...) il faudrait supprimer la citation mais garder la dernière ligne et ma réponse, elle était sincère :lol:
OK, si tu veux Daniel 8)

(Le liens n'était pas forcément facile à voir, pour ma part c'est déjà le pseudo qui m'interpelle et éveille ma curiosité)

jasz
Messages : 500
Enregistré le : 05 oct. 2016 20:05
Localisation : Quelque part dans le 31

Re: Contrôleurs CS91-280 et CS91-282 pour Thomson

Message par jasz » 20 sept. 2018 22:09

Je continue sur la parenthèse en disant que la citation à l'avantage de savoir ce pourquoi est argumentée la réponse. Sinon, il faudrait créer un système de feedback à chaque post dans lequel smileys et autres frivolités BBcode ne fonctionnent pas. Sur un forum, ça reste assez difficile à gérer mais pas impossible :wink:

Daniel
Messages : 10834
Enregistré le : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Contrôleurs CS91-280 et CS91-282 pour Thomson

Message par Daniel » 14 nov. 2018 21:40

Suite à plusieurs questions je vais vérifier dans les prochains jours le fonctionnement du contrôleur CS91-280 avec le Basic 128 du TO7/70.

Avant de sortir le matériel j'ai testé avec l'émulateur dcmoto :
- Dans les options sélectionner l'ordinateur TO7/70 et le contrôleur CS91-280 (SDMOTO)
- Dans les supports amovibles charger la cartouche Basic 128 et le fichier sur carte SD kandykrush_20161121_to7.sd, cocher l'interface SDMOTO
- Lancer le Basic 128 (option 1)
- Taper EXEC &HE025 pour lancer le programme SDMOTO.SEL
- Sélectionner le fichier kandykrush et appuyer sur ENTREE pour retourner au Basic
- Taper RUN"AUTO.BAT" pour lancer le jeu

Tout fonctionne bien, comme prévu. Demain je sortirai un TO7/70 pour faire l'essai avec le vrai matériel.
Daniel
L'obstacle augmente mon ardeur.

Daniel
Messages : 10834
Enregistré le : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Contrôleurs CS91-280 et CS91-282 pour Thomson

Message par Daniel » 15 nov. 2018 18:43

Le test avec le TO7/70 en BASIC 128 confirme le bon fonctionnement du contrôleur CS91-280. Comme la procédure n'est pas évidente j'ai ajouté un paragraphe spécial dans la documentation du site dcmoto : http://dcmoto.free.fr/bricolage/cs91-280/index.html

Tous les essais ont été faits avec la version 20180702 du contrôleur CS91-280. Il peut y avoir de très légères différences pour les versions précédentes. Si vous n'arrivez pas à trouver la bonne procédure n'hésitez pas à le signaler dans ce fil de discussion, il y a une solution dans tous les cas.

Les problèmes rencontrés par les utilisateurs sont dus à la complexité des systèmes. Le BASIC 1.0 appelle toujours la procédure de boot, le BASIC 128 ne l'appelle jamais, il y a de quoi déconcerter les néophytes. Quand on sélectionne l'icône en forme de disquette on obtient un message d'erreur si la disquette n'est pas présente (ou le fichier .sd non sélectionné). On obtient aussi le message "File not found" si le fichier "AUTO.BAT" n'est pas trouvé, c'est assez déroutant. Quand on connaît bien les systèmes c'est beaucoup plus simple, mais pas autant qu'une console de jeu. Ce sont des ordinateurs, et à l'époque tout n'était pas "user-friendly" :!:
Daniel
L'obstacle augmente mon ardeur.

Répondre