[Thomson] Format des disquettes pour emulateur

Couvre tous les domaines de l'émulation ou de la virtualisation ainsi que les discussions sur les divers outils associés.

Modérateurs : Carl, Papy.G, fneck

Répondre
Avatar du membre
jb_jb_fr
Messages : 295
Enregistré le : 29 mars 2010 10:36
Localisation : Essonne (91)
Contact :

[Thomson] Format des disquettes pour emulateur

Message par jb_jb_fr » 08 sept. 2016 23:29

Bonsoir

Je suis en train de travailler sur l'émulateur XEmul5 pour ajouter la gestion des disquettes pour le TO9
Et au début je travaillais avec des fichiers au format SAP (de PUKALL)
Puis il m'a pris l'envie d'aller chercher des fichiers sur le site de Daniel (DCMOTO) et la j'ai découvert un autre format de fichier : .FD
Qui n'est ni plus ni moins que la série des secteurs à la queuleuleu dans le fichier.

Donc je voudrait savoir, actuellement qu'elle est le format utilisé?
Si un emulateur ne gere que du SAP, comment exploiter la bibliothèque de Daniel?
Ce format SAP est-il toujours utilisé? d'actualité?

De plus, ce format SAP a un avantage: Il y a pour chaque secteur, les info IDAM que l'on retrouve sur une vrai disquette.
Ca a l'avantage de savoir ce que l'on lit.

Et en effet, mon développement n'est pas anodin. Je voudrais émuler des disquette pour OS9.
Et le driver de disquette qui a été écrit pour OS9 est en 80 pistes, 19 secteurs par piste, double face
Donc avec le format FD, je n'ai pas ce genre d'info, d'ou l'interet pour moi de gerer le format SAP

Et enfin derniere question:
Le format SAP contient un entête au début du fichier.
Que contient cet entête? Y'a t'il une doc quelque part?

Merci pour vos commentaires et vos lumières

Jacques

Zaxxon
Messages : 318
Enregistré le : 22 mai 2013 01:10
Localisation : Paris / Eure

Re: [Thomson] Format des disquettes pour emulateur

Message par Zaxxon » 09 sept. 2016 00:37

Bonsoir Jacques,

L'avantage du format SAP est qu'il reproduit fidèlement la disquette, contrairement, comme tu le mentionnes au fichiers fd qui sont une série de secteurs à la suite.

L'avantage du sap est donc surtout pour les protections (et les programmes faisant des appels très spécifiques au lecteur), mais je crois que toutes les disquettes présentes sur le site de Daniel au format fd sont déprotégées.

Pour les émulateurs, je crois que la majorité d'entre eux reconnaissent nativement le format sap et/ou fd. Dcmoto de Daniel quant à lui, crée une version fd dans son répertoire (pratique pour les conversions en fd ;)) du fichier SAP chargé.

Les pilotes mess/mame Thomson lisent le format SAP et FD.

Thom ne lit que le sap, quant à Teo, si mes souvenirs sont bons, il lit aussi bien les fichiers fd que SAP (à vérifier).

Pour passer de l'un à l'autre, il y a le logiciel CC90 du groupe PULS, qui permet de faire des conversions (ou passer par dcmoto dans le sens sap vers fd, cf plus haut), tu pourras le trouver ici :
http://www.pulsdemos.com/cc90.html

Bonne soirée
Thomas,

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

Re: [Thomson] Format des disquettes pour emulateur

Message par __sam__ » 09 sept. 2016 00:38

L'outil SAPFS est dispo en source dans celui de TEO: https://sourceforge.net/p/teoemulator/c ... tools/sap/

La lecture de libsap.c et en particulier la fonction sap_CreateArchive() permet de comprendre. Le header fait 66 octets et contient en position 0 le type d'archive (1=40 pistes, 2=80 pistes) et du texte de copyright d'Alexandre PUKALL.

Si tu ne veux pas te compliquer la vie, je te conseille de passer par cette libsap.c qui contient toutes les fonctions dont tu as besoin je pense.
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
Xavier
Messages : 1000
Enregistré le : 03 avr. 2014 14:42

Re: [Thomson] Format des disquettes pour emulateur

Message par Xavier » 09 sept. 2016 01:08

"Dskcenter" (conversion de 'SAP' en 'Fast Disk') sources incluses, et j'ai du mettre les infos sur le header.
Par contre, c'est du VB...

Avatar du membre
jb_jb_fr
Messages : 295
Enregistré le : 29 mars 2010 10:36
Localisation : Essonne (91)
Contact :

Re: [Thomson] Format des disquettes pour emulateur

Message par jb_jb_fr » 09 sept. 2016 09:05

Bonjour à tous

Merci beaucoup pour toutes ces informations.
Maintenant c'est plus clair.
Je vais donc continuer à gerer les 2 formats

Jacques

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

Re: [Thomson] Format des disquettes pour emulateur

Message par Daniel » 09 sept. 2016 09:28

Pour info :

J'ai créé le format .fd car le format .sap est crypté et ne permet pas de manipuler les images de disquettes avec un éditeur hexadécimal. En fait je n'ai rien inventé : le format .fd est le format "raw". Je l'ai simplement baptisé .fd pour ne pas confondre les images de disquettes Thomson avec les images .raw de disquettes MS-DOS. Notez que le format .fd est plus général que .sap, puisqu'il permet de faire des images de disquettes simple face, double face ou quadruple face (2 disquettes double face), et ceci aussi bien en simple densité qu'en double densité, et en 40 pistes comme en 80 pistes.

Le seul avantage du format SAP est de prévoir des informations supplémentaires pour contourner certains types de protections (mais pas toutes). Dans la pratique je n'ai jamais vu de fichier .sap contenant de telles informations.

L'avantage décisif du fichier .fd est de ne pas être crypté. Il permet aussi d'avoir un seul fichier pour une disquette double face, alors qu'une image .sap nécessite deux fichiers. Le format .fd est le seul reconnu par le driver Omniflop, pour les transferts de disquettes Thomson avec un PC Windows 32 bits ou 64 bits. Les autres utilitaires de transfert de disquettes Thomson, dctransferts et sdtransfert utilisent exclusivement le format .fd. L'utilitaire FD2SD de création de fichiers .sd (pour simulation de disquettes Thomson avec une carte SD) nécessite aussi le format .fd.

Le format .fd étant un format "raw", il n'est pas limité aux disquettes Thomson. On peut l'utiliser pour tous types de disquettes : par exemple l'émulateur dcalice utilise les fichiers .fd pour des images de disquettes au format Alice (MS-DOS 1,44Mo). L'émulateur dcsquale (non diffusé) utilise le format .fd pour les disquettes au format Squale. L'émulateur dcexel utilise le format .fd pour des disquettes au format Exeldisk.
http://alice32.free.fr/index.html
http://dcsquale.free.fr/
http://dcexel.free.fr/index.html

@Xavier : j'ai choisi .fd pour "Floppy Disk". Je ne comprends pas pourquoi tu écris "Fast Disk" ?
Daniel
L'obstacle augmente mon ardeur.

Avatar du membre
jb_jb_fr
Messages : 295
Enregistré le : 29 mars 2010 10:36
Localisation : Essonne (91)
Contact :

Re: [Thomson] Format des disquettes pour emulateur

Message par jb_jb_fr » 09 sept. 2016 10:22

Merci Daniel pour ces précisions

Mais je me trouve du coup face a un probleme
- le format FD peut gerer les 2 faces (ca tombe bien c'est ce qu'il me faut)
- le Format SAP a les info de secteurs (ca tombe bien il me les faut car j'ai 19 secteurs/piste à gerer)

Donc il me faudrait un mix des 2 formats :(
Je voudrais être capable de gerer dynamiquement le nombre de secteurs par piste (16 en format standard sur les Thomson)
Mais aussi être capable de gerer les têtes car je veux être capable de savoir sur quel coté je suis

Il y a dans le format SAP 2 infos qui pourraient être modifiées, mais comment le traiter:
Le 1er octet de l'entête : 40 ou 80 piste ==> simple ou double densité
- Ne pourrais pas ajouter des valeurs pour dire en plus simple face ou double face ?
Dans les infos secteurs il y a un champ protection : Quel sont les différents valeurs (j'ai vu 1 et 3 dans libsap.c)
- Ne pourrais-je pas utiliser d'autre bits pour dire quel tête est utilisée?

Jacques

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

Re: [Thomson] Format des disquettes pour emulateur

Message par Daniel » 09 sept. 2016 11:28

Pour un émulateur n'ayant que deux ou trois formats à gérer, la taille du fichier image permet de déterminer le type de format. Je reconnais que ce n'est pas une solution aussi propre que la lecture de l'information dans le fichier, mais pour l'usage qu'on en fait c'est suffisant. C'est ainsi que je distingue, dans dcmoto, les fichiers .fd simple ou double densité et simple ou double face.

Un fichier .fd OS9 aura forcément une taille différente de tous les fichiers .fd Thomson, ce qui permettra de le reconnaître. La position dans le fichier donne le numéro de tête : tête 0 pour les pistes de numéro pair, tête 1 pour les pistes de numéro impair. Le numéro de piste est obtenu avec une division entière : position dans le fichier / taille d'une piste.

L'astuce d'utiliser la taille du fichier n'étant pas très satisfaisante intellectuellement, on peut aussi changer l'extension des disquettes OS/9, par exemple les baptiser .fd9, mais ça ne me semble pas indispensable. On peut aussi, comme le font certains logiciels d'images de disquette, ajouter une en-tête décrivant le format des données qui suivent, mais là encore ce n'est pas indispensable quand on n'a que quelques formats immuables à gérer.

De grâce, quel que soit le format choisi, ne crypte pas les données. C'est totalement inutile et l'examen de l'image de disquette devient impossible avec des outils standard. La justification avancée par Alexandre Pukall pour le cryptage était le contrôle de l'intégrité de la disquette, pour détecter d'éventuels octets mal copiés. Mais aujourd'hui je crois qu'une erreur de copie est détectée par le système d'exploitation du PC et un dispositif supplémentaire n'apporte rien de plus. Par contre il pénalise l'utilisateur, qui ne peut plus voir ce que contient sa disquette, et surtout il interdit toute modification manuelle.
Daniel
L'obstacle augmente mon ardeur.

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

Re: [Thomson] Format des disquettes pour emulateur

Message par __sam__ » 09 sept. 2016 11:54

Il me semble que TEO gère aussi le format HFE qui contient tous les bits de la diskette. Mais c'est sans doute un format trop précis.
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)

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

Re: [Thomson] Format des disquettes pour emulateur

Message par Daniel » 09 sept. 2016 13:23

C'est une excellente idée de mettre dans l'image de disquette le contenu physique de la piste. En théorie on peut ainsi stocker tous les formats spéciaux et les protections. Par contre le créateur du format HFE a mis en garde les utilisateurs potentiels : ce format n'est pas une référence car il peut évoluer en permanence, il est donc très imprudent de l'utiliser.

Pour ma part je reconnais que l'idée est séduisante, tout comme l'idée d'émuler complètement les contrôleurs de disquette au niveau le plus bas. Mais est-ce bien nécessaire dans un émulateur Thomson ? Je me suis souvent posé la question, aussi bien pour les disquettes que pour les cassettes. Jusqu'à maintenant je m'en suis tenu à l'émulation de haut niveau, à l'échelle du secteur pour les disquettes et du bit pour les cassettes. C'est largement suffisant pour faire fonctionner tous les programmes existants, à la seule condition de supprimer les protections par formatage spécial.
Daniel
L'obstacle augmente mon ardeur.

Avatar du membre
jb_jb_fr
Messages : 295
Enregistré le : 29 mars 2010 10:36
Localisation : Essonne (91)
Contact :

Re: [Thomson] Format des disquettes pour emulateur

Message par jb_jb_fr » 10 sept. 2016 18:19

En fait Daniel je vais reprendre tes idées et les appliquer au format SAP.
Car ce que j'aime bien dans ce format c'est le fait qu'il y ait les infos d'identifications secteurs, qui ne sont pas présentent dans ton format. Par contre ton format a l'avantage d'avoir plus de face possible

Et je vais faire ta suggestion : ne pas encoder les secteurs.

Alors comment je vais procéder.
En fait c'est très simple.
Dans l’entête du fichier SAP, il y a le 1er octets qui doit valoir 1 ou 2 (80 ou 40 pistes)
Mois, je vais m'octroyer le 3eme bit (000001xx) et s'il est positionné, alors c'est le nouveaux format.
Si le bit 3 du 1er octet de l’entête est positionné, alors cela voudra dire que c'est le nouveau format et que les secteurs ne seront pas encodés.
Ainsi la librairie SAP libsap.c sortira en erreur car c'est un format non reconnue.

Puis dans les info secteur il y a 4 champs de 8 bits:
- Format
- Protection
- Piste
- Secteur

Je vais donc utiliser le champs Protection: Les 4 bits de poids faible seront pour l'utilisation actuelle. Les 4 bits de poids fort seront pour la tête. Ainsi, pour la tête 0, il n'y a pas de soucis ca sera retro compatible.


Et dans l'émulateur, je vais lire les secteurs 1 par 1 jusqu’à ce qu'il n'y en ait plus (je ne prends pas en compte le fait que l'on ait 40 ou 80 pistes, et je ne me pose pas la question de savoir combien de secteurs par piste il y a).
Pour chaque secteur lu, je vais lire les infos Piste, Tête, Secteur, Format, et je range le secteurs lu en mémoire avec ces infos la.
Ainsi l'image disquette peut être mise dans le désordre, ça n'a pas d'importance (mais aussi aucun intérêt, mais on peu simuler de l'entrelacement :D )
Avec cette méthode on peut gérer 40, 80, ou même 200 pistes si l'on veut.
Mais on peut aussi gérer plus de 16 secteurs par piste.
Par contre il faut modifier le code car il faut dimensionner un tableau pouvant recevoir plus de 16 secteurs par piste. Pour l'instant j'en ai mis 20, mais je ne sais pas si ça à un intérêt d'entre mettre plus :?

Avec cette méthode, le logiciel est capable de lire l'ancien format SAP, mais aussi le nouveau.
Et si certains veulent adapter la librairie SAP pour être capable de gérer le nouveau format ce sera tres simple à faire.

Le but de ma méthode est de ne pas casser le format actuel, mais aussi être capable de gérer de nouvelles informations avec un format existant. :o

Jacques

Répondre