Page 53 sur 53

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

Publié : 28 mars 2019 20:16
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 !

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

Publié : 29 mars 2019 10:06
par vitrollo
J'ai fait un don pour les lots 1234. Bravo pour tous les projets et pour le site web. Merci.

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

Publié : 29 mars 2019 15:25
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).

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

Publié : 26 oct. 2019 11:51
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...

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

Publié : 26 oct. 2019 12:25
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.

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

Publié : 26 oct. 2019 14:42
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.

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

Publié : 26 oct. 2019 14:54
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.

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

Publié : 26 oct. 2019 15:06
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é 4471 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.

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

Publié : 26 oct. 2019 15:12
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.

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

Publié : 26 oct. 2019 15:17
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é.

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

Publié : 26 oct. 2019 15:24
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 ?

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

Publié : 26 oct. 2019 15:40
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.

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

Publié : 26 oct. 2019 15:54
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é)

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

Publié : 26 oct. 2019 16:19
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.