[Thomson] SDDRIVE

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: [Thomson] SDDRIVE

Message par Daniel »

SDDRIVE Medley est compatible avec toutes les versions de SDDRIVE avant 20210212 (il y a deux cas différents, selon la valeur de l'octet $58).
C'est un programme de __sam__. Il faudrait voir avec lui s'il peut le modifier pour étendre la compatibilité aux nouvelles versions.
- Le type de carte (SD ou SDHC) est passé du bit 0 au bit 7 de <$57
- L'indicateur de sélection ($55) du fichier .sd est passé des bits 0-6 de <$58 aux bits 0-6 de <$57
- Le LBA de début du fichier .sd est resté en <$51, comme en version 20180702. Dans les versions précédentes il était en <$8E.

Voici un exemple de ce que je fais pour retrouver le LBA dans les 3 cas différents (avant 20180702, 20180702-20210211, 20210212 et suivantes).
Pour tester le type de carte il suffit de remplacer BNE <$57 par BMI <$57 s'il y a $55 dans les bits 0-6 de <$57.

Code : Tout sélectionner

;------------------------------------------------------
; Initialisations TO7
; L'adresse de SD_LB0 est passee de $608E a $6051 pour
; tous les controleurs a partir de la version 20180702
; S'il y a $55 en $6058 (valeur de SD_SEL) on utilise
; la nouvelle adresse, sinon l'ancienne 
; A partir de la version 20210212 de SDDRIVE
; - le type de carte en $6057 passe de b0 a b7
; - SD_SEL passe de $6058 a $6057 b0-b6 
;------------------------------------------------------
INIT
  ORCC  #$50
; Calcul adresse SD_LB0  
  LDX   #$6051         ; adresse LB0 des versions recentes
  LDA   $6058          ; SD_SEL contient $55 depuis 20180702   
  CMPA  #$55           ; test version 20180702-20210211
  BEQ   INIT1          ; version 20180702-20210211
  LDA   $6057          ; SD_SEL en $6057 b0-b7 depuis 20210212   
  ANDA  #$7F           ; isole b0-b6 
  CMPA  #$55           ; test version 20210212 ou plus recente
  BEQ   INIT1          ; version 20210212 ou plus recente
  LDX   #$608E         ; adresse LB0 des versions anciennes
INIT1
Dernière modification par Daniel le 02 avr. 2021 17:00, modifié 1 fois.
Daniel
L'obstacle augmente mon ardeur.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [Thomson] SDDRIVE

Message par __sam__ »

Daniel a écrit : 02 avr. 2021 15:03 C'est un programme de __sam__. Il faudrait voir avec lui s'il peut le modifier pour étendre la compatibilité aux nouvelles versions.
Je vais voir pour rendre public mon programme de production de vidéo pour SDDrive ce weekend sur mon github. Je pourrais ainsi tracer les versions et corriger l'outil.
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
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [Thomson] SDDRIVE

Message par __sam__ »

__sam__ a écrit : 02 avr. 2021 16:33 Je vais voir pour rendre public mon programme de production de vidéo pour SDDrive ce weekend sur mon github. Je pourrais ainsi tracer les versions et corriger l'outil.
Bon j'ai pas eu trop le temps de corriger spécifiquement SDDrive, mais uniquement "conv_sd" qui est l"outil antérieur produisant la démo "Bad Apple" en 80x50: https://github.com/Samuel-DEVULDER/SDVi ... r.ass#L295

Demain, peut-être, j'aurais plus de temps pour recréer l'historique de "SDVideo.lua" qui est l'outil travaillant en 320x97 sur TO/MO et qui est capable d'utiliser la palette sur les machines de 2nde génération. C'est lui qui produit Medley.

Le Bad-Apple corrigé est disponible temporairement là: https://www.cjoint.com/doc/21_04/KDfvxm ... Color-.zip

Je me rends compte que depuis j'ai allégrement amélioré la qualité de son sur d'autres projets. Je voudrais bien retravailler le son sur "conv_sd" à l'occasion.
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
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [Thomson] SDDRIVE

Message par __sam__ »

Ayé, j'ai enfin réussi à travailler sur SDVidéo et mis à jour mon GitHub avec une version supportant toutes les versions de l'Eprom, et j'en ai profité pour faire un beau et joli README.md décrivant les outils.

J'ai aussi réussi à recréer les fichiers du Medley (lien temporaire 1 mois), mais mon dieu que ce fût long. Il va falloir que je travaille les optims pour la génération car là le passage par un dossier TMP pose des soucis à Explorer.exe qui ralenti tout (à l'époque ca ne faisait pas ca, en tout cas il me semble).

Si je me suis planté dans le bugfix de l'octet $6058, vous pouvez le reporter ici, ou mieux ouvrir une "Issue" sur github () pour que je puisse tracer tous les changements. De même si vous avez des suggestions d'évolutions à ajouter.
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
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] SDDRIVE

Message par Daniel »

Excellente initiative !
Dans les très longs fils de discussion du forum sur ce sujet (et d'autres) la recherche d'informations pertinentes est difficile, et on risque de trouver des versions périmées ou erronées. Il est nécessaire d'avoir un document de référence donnant la dernière version du projet.

Concernant le problème de l'octet densité en $6058, je crois qu'il est doublement résolu :
- Par la correction du test dans les outils de __sam__
- Par la modification de SDDRIVE à partir de la version 2021.02.11 (l'octet $6058 n'est plus modifié par le contrôleur).
Le bug concerne uniquement les utilisateurs de versions plus anciennes de SDDRIVE.

Un autre problème est l'inversion des deux moitiés de la FAT, introduite dans SDDRIVE à partir de la version 2021.02.09. Dans les versions plus anciennes la FAT n'est pas inversée et seules les quarante premières pistes de la disquette sont lues correctement. Cette erreur impacte quelques diaporamas (Elvis Live), mais aussi plusieurs jeux commerciaux (dont La Marque Jaune). Si vous rencontrez ce problème il est possible de commander une nouvelle EPROM. Je la fournirai gratuitement si votre SDDRIVE a moins d'un an (La garantie d'un an est appliquée même si elle n'est pas écrite 8) ).
Ce problème ne concerne pas les applications de streaming, pour lesquelles il n'y a pas de structure de disquette.

Dans le site dcmoto la page sddrive-medley3 contenait sept vidéos : n°0, 1, 3, 5, 7, 9, 11
Elles ont été remplacées par les nouvelles versions. Je ne peux pas mettre la série complète à cause de la taille des fichiers.
Daniel
L'obstacle augmente mon ardeur.
bender6502
Messages : 9
Inscription : 11 mars 2021 14:39

Re: [Thomson] SDDRIVE

Message par bender6502 »

Bonjour,

Pour tester le SDDRIVE et commencer un peu de dev sur 6809, j'ai essayé de créer un disque avec secteur de démarrage pour le TO8D. (La méthode avec AUTO.BAT fonctionne mais ça n'est pas ce que je veux faire).

Du coup j'ai mis l'équivalent en assembleur dans le secteur de démarrage d'une disquette :

Code : Tout sélectionner

        lda     #$d4
        sta     $e7e7
        sta     $0681
        jsr     $e025
        ???
Ça lance bien le menu SDDRIVE mais lors de la sélection d'une image, le retour au Basic ne se fait pas bien. J'imagine qu'il y a quelques précautions à prendre (sauvegarde de registres ? swi ?).

Les Thomsons, c'est un poil plus compliqué que les Apple II apparemment :)
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] SDDRIVE

Message par Daniel »

Il n'est pas simple de répondre, car tout dépend de l'application qui sera lancée avec le menu de SDDRIVE.

La plupart des démonstrations sont bootables et n'utilisent pas le BASIC, donc à priori elles se lanceront et fonctionneront si on remplace JSR $E025 par JMP $E007 dans le secteur de démarrage de la disquette. Plusieurs jeux commerciaux sont également bootables et fonctionneront avec la même méthode.

Pour les fichiers .sd utilisant le BASIC, en revanche, c'est différent. Pour pouvoir revenir au BASIC, il faut sauvegarder les registres avant l'appel du menu SDDRIVE et les restaurer après. Je crois qu'un PSHS U,Y,X,DP,B,A avant le LDA #$D4 et un PULS A,B,DP,X,Y,U,PC après le JSR $E025 devraient le faire, mais ça reste à vérifier car je n'ai pas eu le temps de tester. Si ça ne marche pas je prendrai un peu plus de temps pour trouver la bonne méthode.

Attention à la faute de frappe (sans rapport avec la question) : c'est STA $6081 (et pas $0681).
Daniel
L'obstacle augmente mon ardeur.
bender6502
Messages : 9
Inscription : 11 mars 2021 14:39

Re: [Thomson] SDDRIVE

Message par bender6502 »

D'accord merci. J'avais testé la sauvegarde de registres sans succès. Je ne suis pas sûr que le SDDRIVE termine par un rts parce qu'en mettant une boucle infinie juste après le jsr, bah ça fait quand même n'importe quoi après l'affichage des commandes.
C'est vrai que ça n'est pas très important, je ne comptais pas utiliser le Basic in fine (une fois que j'aurai trouvé la routine qui lit tout un secteur du disque d'un coup).
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] SDDRIVE

Message par Daniel »

Le menu SDDRIVE sauvegarde les registres, les restaure et se termine par un RTS. Mais selon le contexte et selon le fichier .sd sélectionné il ne revient pas forcément au programme appelant.

Si le fichier .sd est bootable, c'est le secteur de boot du fichier .sd qui s'exécute, et il revient rarement au BASIC, sauf dans des cas particuliers (un fichier .sd du DOS, par exemple).

S'il y a un fichier AUTO.BAT dans le fichier .sd, c'est l'AUTO.BAT qui se lance.

Sinon il peut y avoir un retour au programme appelant, mais ce n'est pas le cas le plus fréquent.
Daniel
L'obstacle augmente mon ardeur.
bender6502
Messages : 9
Inscription : 11 mars 2021 14:39

Re: [Thomson] SDDRIVE

Message par bender6502 »

Merci pour ces infos. Je pense que mon problème est plus général : comment initialiser correctement le basic après le lancement du secteur de démarrage. Mais c'est un peu hors-sujet par rapport à ce fil de discussion.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] SDDRIVE

Message par Daniel »

Il y a un autre point à préciser : le TO8D contient deux versions du BASIC : le BASIC 512 et le BASIC 1.0.
Le DOS est intégré au BASIC 512 et lui permet d'accéder directement aux disquettes (ou aux fichiers .sd avec SDDRIVE).
Le BASIC 1.0 ne contient pas le DOS, et nécessite de le charger en bootant sur une disquette DOS (ou un fichier .sd bootable contenant le DOS).
Certains jeux fonctionnent avec l'un ou l'autre BASIC, d'autres nécessitent impérativement le BASIC 512 ou le BASIC 1.0.

Ce sont autant de cas particuliers, qui nécessitent chacun une approche différente. C'est pourquoi il est difficile de donner des méthodes générales. Il est plus facile d'apporter une réponse à un cas concret, en donnant en particulier la référence du fichier .sd et l'objectif recherché.

Toutefois, si on reste dans les généralités, une bonne pratique consiste à toujours utiliser des disquettes bootables avec le DOS. Elle fonctionneront aussi bien en BASIC512 (dans ce cas le DOS n'est pas chargé) ou en BASIC 1.0. Au lancement le BASIC 1.0 cherche automatiquement à booter sur la disquette si elle est présente, et si elle contient le DOS il est chargé.

Et pour faire bref : Le TO8D et le TO9+ sont les plus complexes de tous les Thomson. Il existe une machine plus simple, le MO5 :lol:
Daniel
L'obstacle augmente mon ardeur.
Zebulon
Messages : 2787
Inscription : 02 nov. 2020 14:03

Re: [Thomson] SDDRIVE

Message par Zebulon »

Bonjour Daniel. J'ai un questionnement concernant le SDDRIVE et la possibilité de le loger dans un boitier.

J'ai démonté un contrôleur SX90-018 pour me rendre compte et j'ai l'impression que la carte 2021-03 logerait dedans avec un connecteur bord de carte (hors le lecteur de carte SD qu'il faudrait déporter et la ROM sur son support). J'ai vu dans un des fils que tu mentionnes dans la FAQ, celui de Brochiman et Stouf49, qu'ils ont créé des boitiers compatibles avec ceux des extensions TO comportant notamment une découpe pour la ROM sur son support. C'est probablement cela que je devrais regarder.

Mais du coup proposes-tu une version montée avec un connecteur bord de carte au lieu du connecteur Minibus, ou bien je dois le remplacer moi-même ?

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

Re: [Thomson] SDDRIVE

Message par Daniel »

Les premiers modèles de SDDRIVE avaient un connecteur nez de carte, c'étaient les SDDRIVE "classiques". J'ai arrêté de les proposer en août 2020 pour passer au modèle "minibus". Il permet d'ajouter facilement un contrôleur Thomson derrière SDDRIVE, ce qui est pratiquement indispensable pour le MO5. Il permet aussi de connecter un autre contrôleur de conception "minibus", par exemple SDSTREAM ou SX90-2018.

Les circuits imprimés de la version actuelle de SDDRIVE comportent trois rangées de trous pour le connecteur, ce qui permet de souder, au choix, un connecteur minibus ou un connecteur nez de carte. Tous les circuits imprimés à trois rangées ont déjà été montés avec un connecteur minibus. Je ne peux donc plus fabriquer un contrôleur SDDRIVE "classique".

La solution est de dessouder le connecteur minibus pour le remplacer par un connecteur nez de carte, ou d'échanger un SDDRIVE "minibus" contre un SDDRIVE "classique" si un autre utilisateur accepte l'échange. Je dois avoir aussi d'anciens prototypes de SDDRIVE "classique" que je pourrais éventuellement fournir (à moitié prix), mais ils n'ont pas forcément le même schéma ni la même taille que le modèle actuel. Cette taille varie à chaque nouveau lot de circuits imprimés. Elle a diminué depuis la première version et diminuera encore pour les prochaines, avec la suppression de la troisième rangée de trous pour le connecteur. C'est ce qui rend difficile la création d'un boîtier, car il faut modifier la taille en fonction de l'évolution du contrôleur.
Daniel
L'obstacle augmente mon ardeur.
Zebulon
Messages : 2787
Inscription : 02 nov. 2020 14:03

Re: [Thomson] SDDRIVE

Message par Zebulon »

Merci Daniel pour ton retour et ces explications détaillées. Il n'y a pas d'urgence en la matière. Si tu refais une série elle ne sera désormais plus compatible avec le connecteur nez de carte c'est celà ?

Si je veux remplacer le connecteur minibus par un connecteur nez de carte que dois-je faire avec la résistance qui est soudée entre deux points de la rangée inoccupée ?
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] SDDRIVE

Message par Daniel »

Il doit être très difficile de dessouder d'un seul coup le connecteur, car les trous métallisés sont juste au diamètre des broches, il n'y a pratiquement pas de jeu. Je crois qu'il faut couper toutes les broches et les retirer une par une.

La résistance de 20 K a été ajouté à cause d'une instabilité constatée avec certains TO8D. Elle n'est pas forcément nécessaire, mais dans le doute il vaut mieux la garder. Il suffit de l'enlever de la troisième rangée pour la mettre à la deuxième, qui sera libre après avoir enlevé le connecteur d'origine.

La prochaine série est en cours de mise au point. Le schéma change significativement, il y aura moins de composants et le circuit sera plus petit. Je n'ai pas gardé la troisième rangée de trous pour le connecteur. Le projet n'est pas encore définitif, je donnerai plus de détails quand tout fonctionnera.
Daniel
L'obstacle augmente mon ardeur.
Répondre