[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

Zebulon
Messages : 2787
Inscription : 02 nov. 2020 14:03

Re: [Thomson] SDDRIVE

Message par Zebulon »

Super merci. Par contre j'ai cru comprendre dans un message de Brochiman que les EEPROM que tu fournis en standard nécessitent un programmateur avec un voltage assez élevé? Donc je ne pense pas que je puisse la réécrire juste avec mon TL866?

Sinon si je peux faire des tests sur l'émulateur si tu as incorporé cette modif.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] SDDRIVE

Message par Daniel »

Les versions anciennes de SDDRIVE, avec support DIP24, ont des EPROMs M2732A, effaçables aux ultra-violets et programmables en 21V.
Les nouvelles versions, depuis 2020, ont un support DIP28 et des EEPROMs W27C512, programmables en 12V.

Sinon la version 2021.06.13 de dcmoto est ici --> http://dcmoto.free.fr/emulateur/index.html
Daniel
L'obstacle augmente mon ardeur.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] SDDRIVE

Message par Daniel »

__sam__ a écrit : 13 juin 2021 15:57 Ok. En fait un bit suffirait si je pige bien pour savoir si la FAT a été inversée et que l'adresse pointe sur la 2e moitié.
Oui, un bit suffit, mais il faut être sûr de sa valeur initiale, et sûr que rien d'autre ne le modifie, même pas un reset à chaud.
Ce qu'il faut faire est finalement très simple :
- La première fois charger la FAT à l'adresse donnée par SD_FAT (<$ED), inverser les deux moitiés, ajouter $80 au contenu de SD_FAT.
- Les fois suivantes retrancher $80 au contenu de SD_FAT puis faire la même opération.
Le problème est de savoir si c'est ou pas la première fois. Et de réinitialiser l'indicateur dans certains cas, par exemple si on change d'unité, ou de disquette. Pas seulement après un hard reset. Ce n'est finalement pas si simple.

Quand on appelle la fonction de chargement de la FAT, la FAT n'est pas forcément en mémoire. Evidemment elle n'y est pas si elle n'a pas été chargée. Si elle a déjà été chargée, elle peut avoir été écrasée entre temps par d'autres données. Stocker un flag dans cette zone n'est donc pas possible.

C'est un cas typique de bidouille affreuse pour préserver la compatibilité avec les versions précédentes des contrôleurs. Malheureusement elle a des effets indésirables.
Daniel
L'obstacle augmente mon ardeur.
Zebulon
Messages : 2787
Inscription : 02 nov. 2020 14:03

Re: [Thomson] SDDRIVE

Message par Zebulon »

Nickel je regarderai ça cette semaine et te ferai un retour. Encore merci. :wink:
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [Thomson] SDDRIVE

Message par __sam__ »

Daniel a écrit : 13 juin 2021 17:28 Quand on appelle la fonction de chargement de la FAT, la FAT n'est pas forcément en mémoire. Evidemment elle n'y est pas si elle n'a pas été chargée. Si elle a déjà été chargée, elle peut avoir été écrasée entre temps par d'autres données. Stocker un flag dans cette zone n'est donc pas possible.
C'est un peu différent ce que je propose. Le marqueur n'est présent que sur une FAT chargée et inversée par "nous" autrement la probabilité que le marqueur soit là avant toute inversion par nos soins est nulle. Le marqueur que je propose est un peu trop simple (il ne change pas avec l'unité de diskette ce qui coincera si on change de diskette à un moment), mais on peut imaginer une sorte de somme de contrôle de la FAT + unité disk + nouveau pointeur. Si on le retrouve c'est que la FAT a été inversée, et que donc on doit décaler le pointeur ant le prochain chargement. Si on ne le retrouve pas c'est que l'unité disk ou le pointeur a été changé, et il faut utiliser le pointeur tel quel. Ca semble quand même assez compliqué. Vraiment le fait de changer un pointeur donné par l'utilisateur est une très mauvaise idée. L'extramon est mieux fichu de ce coté.
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 »

En fait je ne suis même pas sûr que le changement de l'adresse DK_FAT et du flag d'inversion soit nécessaire au changement de disquette.
Il faudrait aussi savoir si le pointeur est réinitialisé ou pas par le bouton reset. Et que se passe-t-il sur TO8 quand on commute le contrôleur interne et le contrôleur externe ? Et après un plantage, si on redémarre le programme, le pointeur peut être détruit ou pas, comment se passe le prochain chargement de la FAT ? Tout ça est bien compliqué.

Dans les corrections faites ce matin, j'ai recopié le traitement effectué par le contrôleur du TO8, en changeant l'adresse de sauvegarde du pointeur pour qu'elle devienne compatible avec tous les MO et TO. Je vais en rester là, et si on découvre un nouveau cas à problème il sera toujours temps de trouver autre chose. Tant que tous les logiciels connus fonctionnent, il vaut mieux ne rien faire de plus.

Code : Tout sélectionner

;------------------------------------------------------
; LECFA = Chargement de la FAT
;------------------------------------------------------
LECFA
  LDD   <DK_FAT        ; adresse actuelle de la FAT
  SUBD  <DK_SAV        ; adresse sauvegardee de la FAT
  CMPB  #$80           ; test de la difference 
  BEQ   LECFA1         ; $80 ==> adresse déjà sauvegardee 
  LDX   <DK_FAT        ; sinon lire l'adresse        
  STX   <DK_SAV        ; et la sauvegarder
LECFA1
  LDX   <DK_SAV        ; lire l'adresse sauvegardee  
  STX   <DKBUF         ; adresse du buffer secteur
  LDA   #$02           ; numero secteur a lire
  BSR   LSEC20         ; lecture secteur piste 20
  LEAX  128,X          ; ajout de $80
  STX   <DK_FAT        ; stocker le nouveau pointeur

;------------------------------------------------------
; INVFA = Inversion des deux moities de la FAT
; En entree X pointe au milieu du buffer de la FAT
; En sortie X pointe sur le buffer de la FAT 
;------------------------------------------------------
INVFA
  LDY   #$80           ; nombre de boucles
INVFA1    
  LDA   -128,X         ; octet premiere moitie 
  LDB   ,X             ; octet deuxieme moitie
  STB   -128,X         ; 2ere moitie dans 1ere
  STA   ,X+            ; 1ere moitie dans 2eme
  LEAY  -1,Y           ; decrementation compteur 
  BNE   INVFA1         ; nouvelle boucle
  LEAX  -256,X         ; X pointe sur le buffer de la FAT
  RTS                  ; retour
Daniel
L'obstacle augmente mon ardeur.
Zebulon
Messages : 2787
Inscription : 02 nov. 2020 14:03

Re: [Thomson] SDDRIVE

Message par Zebulon »

Mes premiers résultats avec LOGO dans l'émulateur sont très bons.

Sur les configurations suivantes je n'ai pas de souci avec la commande CATALOGUE alternée aves les autres commandes accédant aux fichiers :
- MO5 v1.0, v1.1, v2.1
- MO5E
- T9000 + 16K
- TO7 + 16K
- TO7/70
- TO8
- TO8D (lecteur disquettes désactivé)
- TO9+

Sur MO5N et MO6 la commande CATALOGUE pose problème.

Donc le panel de machines sur lequel tout fonctionne bien est assez large.

Reste comme tu le dis à voir si un effet indésirable pourrait se produire avec un tout autre logiciel...

Je vais essayer de voir si je peux reprogrammer l'EEPROM du premier SDRRIVE que tu m'avais envoyé pour tester sur mes machines physiques. La W27C512 fait 64 Ko si j'ai bien lu, du coup faut-il charger le fichier rom au début ou à un emplacement précis ?

EDIT j'ai commandé des puces pour ne pas bricoler celle que tu m'as envoyé. Ça prendra un peu plus de temps mais au moins je ne perdrai pas tout.
Dernière modification par Zebulon le 14 juin 2021 10:38, modifié 2 fois.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] SDDRIVE

Message par Daniel »

Le fichier sddrive_rom.bin doit être chargé dans les derniers 2Ko de l'EEPROM W27C512.
Le plus simple est de le reproduire 32 fois pour faire un fichier de 64 Ko, et de charger ce fichier dans la W27C512.
sddrive_rom_64k_20210613.zip
(2.21 Kio) Téléchargé 87 fois

Avec les vraies machines, il faudrait vérifier que le crayon optique fonctionne normalement. Je n'ai pas trop d'inquiétude, mais tant qu'on n'a pas essayé il n'y a pas de certitude. Dans l'émulateur dcmoto le buffer du crayon optique n'est pas utilisé, il ne peut pas y avoir de conflit.

Pour les MO6 et MO5N, c'est probablement un débordement de la pile système. Avec le MO5 ça passe tout juste, à un octet près. A l'occasion je vérifierai.
Dernière modification par Daniel le 14 juin 2021 10:40, modifié 1 fois.
Daniel
L'obstacle augmente mon ardeur.
Zebulon
Messages : 2787
Inscription : 02 nov. 2020 14:03

Re: [Thomson] SDDRIVE

Message par Zebulon »

D'accord merci pour le fichier comme ça c'est plus simple. Je venais juste de préciser dans mon message d'hier que j'ai commandé quelques puces (en France) pour ne pas bricoler celle que tu m'as envoyé et risquer de tout perdre. Du coup je testerai en fin de semaine.
Brochiman
Messages : 3405
Inscription : 02 juin 2019 11:26
Localisation : Angers

Re: [Thomson] SDDRIVE

Message par Brochiman »

c'est plutôt bien de pouvoir utiliser une 27c512 😊😊😊
Dernière modification par Brochiman le 14 juin 2021 16:35, modifié 1 fois.
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] SDDRIVE

Message par Daniel »

J'ai fait ce choix parce que les M2732A du commerce sont de moins en moins bonnes. Sur dix commandées il y en avait parfois 4 ou 5 mauvaises, et souvent c'étaient des EPROMs programmables en 25V d'autres marques, maquillées en M2732A 21V.

Les W27C512 sont elles aussi des composants de récupération, mais moins anciennes et presque toujours bonnes. Elles ont l'inconvénient d'être un peu plus encombrantes, mais ne nécessitent pas d'ultra-violets pour l'effacement et se programment en 12 V. Elles existent aussi en boîtier PLCC 32, nettement plus petit. J'ai déjà essayé, elles permettent de diminuer la taille du circuit imprimé.

sddrive-plcc_01.jpg
sddrive-plcc_01.jpg (100.13 Kio) Consulté 2680 fois
Daniel
L'obstacle augmente mon ardeur.
Asic512
Messages : 128
Inscription : 30 juin 2019 21:13

Re: [Thomson] SDDRIVE

Message par Asic512 »

Si j'ai bien suivi, il y a encore la solution, certes pas aussi élégante et pratique, d'avoir une EPROM pour chaque famille d'ordinateurs.
Asic512
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] SDDRIVE

Message par Daniel »

Il n'est pas nécessaire d'avoir des EPROMs différentes, car SDDRIVE s'adapte à l'ordinateur. Les zones de travail et les appels de routines système sont déjà différents entre les MO et les TO, les initialisations sont aussi différentes, même entre les MO5 et les MO6, entre les TO7, les TO7/70 et les TO8.

Mon objectif est de garder le programme actuel commun à toutes les machines et de le modifier à chaque anomalie rencontrée pour la corriger.
La dernière version est compatible à 99% avec tous les modèles. Il y a juste un petit souci d'écrasement de la pile système avec le DOS LOGO sur MO6, un contournement est certainement possible.

Il y a peut-être un millier de MO6 dans la nature, moins de 10% utilisés (ça fait 100), un sur dix a une cartouche LOGO (ça fait 10) et sur ces dix 2 seulement ont SDDRIVE et un seul utilise le DOS-LOGO. Et pas tous les jours :wink: Donc pas de quoi s'alarmer :wink: :wink: :wink:

Le contrôleur SDDRIVE est utilisé dans la majorité des cas par des joueurs (pour lancer des jeux commerciaux) et par des développeurs (pour tester leurs programmes sur les vraies machines). Pour ces deux utilisations il fonctionne parfaitement bien, c'est l'essentiel. Même le contrôleur Thomson CD90-351 n'est pas aussi compatible que SDDRIVE : il fonctionne sur TO7+16K, TO7/70, MO5, MO6, mais pas sur TO8, TO8D, TO9+. SDDRIVE fait mieux 8)
Daniel
L'obstacle augmente mon ardeur.
Zebulon
Messages : 2787
Inscription : 02 nov. 2020 14:03

Re: [Thomson] SDDRIVE

Message par Zebulon »

Tu as raison Daniel c'est clair qu'on est sur un cas d'utilisation exotique. :D

Pour moi c'est déjà topissime que tu aies pu résoudre le problème sur autant de machines et notamment celles que j'utilise. :wink:
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson] SDDRIVE

Message par Daniel »

Pour la suite, j'attends le test de la version 2021.06.13 avec le crayon optique.
S'il n'y a pas de problème, je garderai la sauvegarde du pointeur de la FAT commune pour tous les ordinateurs, en $20E3/$60E3.
Sinon j'utiliserai les mêmes adresses que Thomson : $6025 pour les TO8, TO8D et TO9+, $2055/$6055 pour tous les autres ordinateurs.
Daniel
L'obstacle augmente mon ardeur.
Répondre