Contrôleurs SDDISK, 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 : Papy.G, fneck, Carl

Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

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

Message par Daniel »

Le français est très bon, il n'était pas possible de deviner que le message avait été écrit par un italien.
C'est très clair. Pour le Prodest PC128 les lots 1, 2, 3 et 4 sont bien adaptés. Je peux les envoyer dès réception du paiement.

Le total pour 4 lots plus les frais est de 4 x 5 + 5 = 25€
Pour faire le don par l'intermédiaire de paypal, il y a un bouton "Faire un don" en bas de la page http://dcmoto.free.fr/bricolage/cs91-280/
Ne pas oublier de préciser le nom du destinataire et l'adresse de livraison dans le formulaire de don.

Merci !
Daniel
L'obstacle augmente mon ardeur.
vitrollo
Messages : 3
Inscription : 28 mars 2019 12:07

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

Message par vitrollo »

J'ai fait un don pour les lots 1234. Bravo pour tous les projets et pour le site web. Merci.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

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

Message par Daniel »

Merci pour le don. Le kit sera expédié demain matin (30/03/2019).

Les recommandations pour le montage :
- Attention au sens des circuits intégrés
- Attention de ne pas tordre les broches de l'EPROM en l'insérant dans son support

Pour l'utilisation :
La carte microSD doit contenir le fichier sdmoto.sel correspondant à la version de l'EPROM (2018.07.02).
Si la version de sdmoto.sel est incompatible le système ne fonctionne pas.
Et en cas de difficulté ne pas hésiter à utiliser ce fil de discussion pour exposer les problèmes.

Avec le PC128, la simulation de disquettes sur carte SD est une excellente alternative au lecteur de cassette. Il y a eu très peu de disquettes en italien pour PC128, mais on peut utiliser toutes celles du MO6 et du MO5 (en français).
Daniel
L'obstacle augmente mon ardeur.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

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

Message par Daniel »

Le projet CS91-280, bien qu'un peu en sommeil, n'est pas abandonné, d'autant plus que j'ai trouvé une optimisation permettant de gagner 16 cycles pour la lecture d'un octet avec l'interface SDMOTO, soit un gain de près de 12%.

Ancienne routine de lecture d'un octet :

Code : Tout sélectionner

*------------------------------------------------------
* LECTURE D'UN OCTET (SDMOTO)
* Retour dans A. Le registre B n'est pas préservé
*------------------------------------------------------
RBYTE
  LDB   #$5F           clear bit 5               (2)
  STB   <$CC           clock low, di high        (4)
  LDB   #$7F           Valeur pour test bit 7    (2)
  STB   <$CC           clock high, di high       (4)
  CMPB  <$CC           PA b7 (bit lu) -> carry   (4)
  ROLA                 C (bit lu) -> b0 reg A    (2)
RB6
  LDB   #$5F           clear bit 5               (2)
  STB   <$CC           clock low, di high        (4)
  LDB   #$7F           Valeur pour test bit 7    (2)
  STB   <$CC           clock high, di high       (4)
  CMPB  <$CC           PA b7 (bit lu) -> carry   (4)
  ROLA                 C (bit lu) -> b0 reg A    (2)
RB5
  LDB   #$5F           clear bit 5               (2)
  STB   <$CC           clock low, di high        (4)
  LDB   #$7F           Valeur pour test bit 7    (2)
  STB   <$CC           clock high, di high       (4)
  CMPB  <$CC           PA b7 (bit lu) -> carry   (4)
  ROLA                 C (bit lu) -> b0 reg A    (2)
RB4
  LDB   #$5F           clear bit 5               (2)
  STB   <$CC           clock low, di high        (4)
  LDB   #$7F           Valeur pour test bit 7    (2)
  STB   <$CC           clock high, di high       (4)
  CMPB  <$CC           PA b7 (bit lu) -> carry   (4)
  ROLA                 C (bit lu) -> b0 reg A    (2)
RB3
  LDB   #$5F           clear bit 5               (2)
  STB   <$CC           clock low, di high        (4)
  LDB   #$7F           Valeur pour test bit 7    (2)
  STB   <$CC           clock high, di high       (4)
  CMPB  <$CC           PA b7 (bit lu) -> carry   (4)
  ROLA                 C (bit lu) -> b0 reg A    (2)
RB2
  LDB   #$5F           clear bit 5               (2)
  STB   <$CC           clock low, di high        (4)
  LDB   #$7F           Valeur pour test bit 7    (2)
  STB   <$CC           clock high, di high       (4)
  CMPB  <$CC           PA b7 (bit lu) -> carry   (4)
  ROLA                 C (bit lu) -> b0 reg A    (2)
RB1
  LDB   #$5F           clear bit 5               (2)
  STB   <$CC           clock low, di high        (4)
  LDB   #$7F           Valeur pour test bit 7    (2)
  STB   <$CC           clock high, di high       (4)
  CMPB  <$CC           PA b7 (bit lu) -> carry   (4)
  ROLA                 C (bit lu) -> b0 reg A    (2)
RB0
  LDB   #$5F           clear bit 5               (2)
  STB   <$CC           clock low, di high        (4)
  LDB   #$7F           Valeur pour test bit 7    (2)
  STB   <$CC           clock high, di high       (4)
  CMPB  <$CC           PA b7 (bit lu) -> carry   (4)
  ROLA                 C (bit lu) -> b0 reg A    (2)

Nouvelle routine de lecture d'un octet :

Code : Tout sélectionner

*------------------------------------------------------
* LECTURE D'UN OCTET OPTIMISEE
* Retour dans A. Le registre B n'est pas préservé
*------------------------------------------------------
RBYTE
  LDB   #$DF           clear bit 5               (2)
  STB   <$CC           clock low, di high        (4)
  INC   <$CC           clock high, di high       (6)
  CMPB  <$CC           PA b7 (bit lu) -> carry   (4)
  ROLA                 C (bit lu) -> b0 reg A    (2)
RB6
  STB   <$CC           clock low, di high        (4)
  INC   <$CC           clock high, di high       (6)
  CMPB  <$CC           PA b7 (bit lu) -> carry   (4)
  ROLA                 C (bit lu) -> b0 reg A    (2)
RB5
  STB   <$CC           clock low, di high        (4)
  INC   <$CC           clock high, di high       (6)
  CMPB  <$CC           PA b7 (bit lu) -> carry   (4)
  ROLA                 C (bit lu) -> b0 reg A    (2)
RB4
  STB   <$CC           clock low, di high        (4)
  INC   <$CC           clock high, di high       (6)
  CMPB  <$CC           PA b7 (bit lu) -> carry   (4)
  ROLA                 C (bit lu) -> b0 reg A    (2)
RB3
  STB   <$CC           clock low, di high        (4)
  INC   <$CC           clock high, di high       (6)
  CMPB  <$CC           PA b7 (bit lu) -> carry   (4)
  ROLA                 C (bit lu) -> b0 reg A    (2)
RB2
  STB   <$CC           clock low, di high        (4)
  INC   <$CC           clock high, di high       (6)
  CMPB  <$CC           PA b7 (bit lu) -> carry   (4)
  ROLA                 C (bit lu) -> b0 reg A    (2)
RB1
  STB   <$CC           clock low, di high        (4)
  INC   <$CC           clock high, di high       (6)
  CMPB  <$CC           PA b7 (bit lu) -> carry   (4)
  ROLA                 C (bit lu) -> b0 reg A    (2)
RB0
  STB   <$CC           clock low, di high        (4)
  INC   <$CC           clock high, di high       (6)
  CMPB  <$CC           PA b7 (bit lu) -> carry   (4)
  ROLA                 C (bit lu) -> b0 reg A    (2)
Le débit passe à plus de 7800 octets/seconde. C'est encore loin des 20000 octets/seconde de SDDRIVE, mais c'est une amélioration intéressante. La nouvelle EPROM bénéficie aussi de toutes les améliorations récentes du projet SDDRIVE, mais elle n'est pas encore diffusée officiellement. Est-il utile de continuer à maintenir ce projet en parallèle avec SDDRIVE ? la décision est difficile à prendre...
Dernière modification par Daniel le 27 oct. 2019 20:06, modifié 1 fois.
Daniel
L'obstacle augmente mon ardeur.
nicolho
Messages : 409
Inscription : 10 nov. 2016 16:53

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

Message par nicolho »

Euh, il ne faut prendre à la lettre les chiffres :) flatteurs habituellement communiqués par le service marketing :wink: , parce que dans les commentaires de la routine de lecture d'un octet (voir à la fin de ce message : viewtopic.php?f=18&t=8448#p133001), il est indiqué "LECTURE D'UN OCTET (SDDRIVE) = 55 cycles", ce qui à avec la vitesse d'horloge du processeur des Thomson à 1MHz (soit 1 million de cycles par secondes) signifie au mieux 18181,8 octets/secondes en pointe.

Car cela ne concerne que la lecture d'un unique octet, donc sans compter les cycles de la boucle et du transfert des données en mémoire lors de la lecture d'un bloc (les commandes d'accès aux différents "secteurs", moins fréquentes, faisant encore baisser marginalement la vitesse globale). On doit au final plutôt s'approcher des 16000 octets/seconde, soit un débit observé de quelques 20% inférieur à celui annoncé...

Ceci dit, l'arrondi présenté pour SDMOTO est déjà plus valable, et cela ferait progresser ses transferts de près de 10%, et toute amélioration semble bonne à prendre pour les possesseurs de cet ancien système aux performances très honorables et suffisantes. Donc si l'eprom est facilement remplaçable (sur support), pourquoi pas la proposer pour quelques euros aux personnes intéressées ? Ou encore fournir le fichier .bin et les instructions pour ceux équipés d'un programmateur (ou prêts à en acquérir un) qui souhaiteraient le faire eux-même.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

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

Message par __sam__ »

Perso je pense que SDDrive est mieux en tout points:
- Meilleurs débit (on peut faire de la vidéo!)
- Libération des ports joystick
- Il marche avec le logo je crois

Le seul point négatif, pourrait-être le fait qu'il occupe le seul port d'extension des MO5, mais c'est aussi le cas de SDmoto.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
nicolho
Messages : 409
Inscription : 10 nov. 2016 16:53

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

Message par nicolho »

Encore une fois, ça fait penser à un discours de constructeur de smartphone, du genre "chers clients, on aurait bien un petite mise à jour en magasin pour améliorer l'ancien modèle, mais à quoi bon... puisque le nouveau est carrément ++ mieux, pourquoi s'en priver ?" :mrgreen:

Un possesseur de SDMOTO qui n'aurait pas besoin de doubler son débit, ni de brancher un second joystick, ne pourrait donc pas bénéficier d'un débit amélioré juste en reflashant son eprom ou en se la procurant pour une somme modique auprès du SAV ?

Et pour le LOGO, j'ai pas étudié la question, mais je suppose que c'est parce qu'il se sert d'une partie de la ram vidéo non utilisée par l'affichage ? Si le nécessaire a été fait pour éviter cette partie de la mémoire avec SDDRIVE, je ne vois pas trop ce qui empêcherait le programme interne de SDMOTO de prendre les même précautions dans une mise à jour.
Dernière modification par nicolho le 26 oct. 2019 15:06, modifié 1 fois.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

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

Message par Daniel »

nicolho a écrit : 26 oct. 2019 12:25 il est indiqué "LECTURE D'UN OCTET (SDDRIVE) = 55 cycles"
C'est le temps d'exécution de la subroutine de lecture d'un octet, avec l'initialisation du registre B (2 cycles) et le RTS (5 cycles).
Dans les démonstrations on utilise une macro. Le registre B est déjà initialisé, et le RTS n'est plus nécessaire. On passe à 48 cycles, donc plus de 20000 octets par seconde.

Je reconnais que dans la pratique c'est un peu moins, car il faut traiter les changements de blocs de la carte SD, et il faut faire quelque chose de l'octet lu. Par exemple, dans mes démonstrations de musique, la fréquence d'échantillonnage est 15152 Hz.

Mais ne pinaillons pas, ce sont des ordres de grandeur. Dans la plupart des cas SDDRIVE est en moyenne quatre fois plus rapide qu'une vraie disquette. Il y a une exception : le chargement de Mission: Liftoff. Les programmes de Prehisto sont tellement bien optimisés que la vraie disquette est presque aussi rapide que SDDRIVE, grâce à un facteur d'entrelacement particulièrement bien calculé et à l'absence de système de fichiers.

Pour les possesseurs du contrôleur CS91-280 je mets ici le contenu de l'EPROM. Mais attention : elle fonctionne uniquement avec l'interface SDMOTO, pas avec SDMO. La deuxième moitié de l'EPROM est inutilisée. Pour différencier cette version de la version officielle, je l'ai appelée SDDISK. Le programme de sélection, à copier sur la carte SD, s'appelle sddisk.sel.
sddisk_rom_20191026.zip
(3.29 Kio) Téléchargé 125 fois

sddisk.jpg
sddisk.jpg (56.17 Kio) Consulté 4470 fois

Pour la compatibilité LOGO, je pense qu'elle est la même qu'avec SDDRIVE, car dans SDDISK la logique est parfaitement identique : c'est un copier/coller de SDDRIVE, les seules différences sont les routines de lecture et d'écriture de la carte SD.
Dernière modification par Daniel le 26 oct. 2019 15:19, modifié 2 fois.
Daniel
L'obstacle augmente mon ardeur.
nicolho
Messages : 409
Inscription : 10 nov. 2016 16:53

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

Message par nicolho »

Oui je parlais de l'utilisation principale des "SD-trucs" :) , à savoir une sorte d'émulation de disquette pour charger rapidement les programmes, et pas des programmes de démos de streaming vidéo dédiés à ces interfaces (et taillés sur mesure pour obtenir les débits maximum) qui constituent un usage plus anecdotique.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

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

Message par Daniel »

Je ne qualifierais pas les vidéos de __sam__ d'anecdotiques. C'est à ce jour ce que l'on a fait de plus spectaculaire sur Thomson, avec les démos de PULS et le jeu Mission: Liftoff. Les jeux éducatifs de Nathan en BASIC font pâle figure à côté.
Daniel
L'obstacle augmente mon ardeur.
nicolho
Messages : 409
Inscription : 10 nov. 2016 16:53

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

Message par nicolho »

Moi non plus (et pas besoin de déformer mes propos, à moins que tu aies mal lu) puisque c'est seulement leur usage, et pas les démos en elles-mêmes, que je qualifiais d'anectodique.

Et pour les gens qui n'ont pas de quoi flasher leur EPROM SDMOTO avec la nouvelle version, tu leurs proposes de te commander une nouvelle rom, ou tu les laisses se débrouiller avec le fichier ?
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

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

Message par Daniel »

La dernière EPROM est en vente ici --> viewtopic.php?f=10&t=8599
Normalement je diffuse seulement les versions officielles, mais exceptionnellement je peux fournir celle de SDDISK.
Je précise que j'ai fini d'écrire le programme il y a deux heures, je l'ai rapidement testé sur MO5, mais il n'y a pas assez de recul pour garantir son fonctionnement avec tous les ordinateurs. Il est compatible uniquement avec l'interface SDMOTO, la version SDMO n'est pas incluse.

[Edit 15:49] Testé à l'instant sur TO8, ça marche aussi.
Daniel
L'obstacle augmente mon ardeur.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

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

Message par __sam__ »

Autre avantage de SDrive: pas besoin de modifier un switch suivant qu'on est sur TO ou MO. C'est beaucoup plus simple à l'usage.

Sinon nicolho, tu as raison: le stream vidéo est relativement anecdotique (il n'y a qu'à voir combien peu de monde a(ont?) posté(s) des questions ou des demandes de conversions sur le fil en question); mais dans le fond, tout ce qu'on peut faire d'un TO/MO de nos jour est de toute façon intrinsèquement inutile. On fait mieux en beaucoup plus rapide avec des machines plus modernes. Mais perso c'est ce qui me plait: optimiser pour faire des trucs qu'on croyait hors de porté des anciennes machines (dernier xemple en date: des images pour Oric d'une excellente qualité)
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
nicolho
Messages : 409
Inscription : 10 nov. 2016 16:53

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

Message par nicolho »

Oui, désolé, j'ai du mal à m'empêcher de mettre les pieds dans le plat quand je trouve que ça tourne un peu trop autour du pot... :)
Bien que les démos ne soit pas trop ma tasse de thé, ça reste un défi technique sympa et intéressant, surtout quand ça donne lieu à des discussions intéressantes sur les problématiques abordées (compression, tramage, échantillonnage, etc...) qu'on a plaisir à lire. Et même si les gens ne se lèvent pas la nuit pour mater une vidéo sur leur vieux Thomson (quoi que... :mrgreen: ), tout le monde apprécie vos réalisations et vos talents en la matière.
Répondre