Bonjour,
Le format des disquettes a toujours été très varié, je me souviens de posts de TRS80 sur le sujet. Des formats très optimisés ont été conçus pour exploiter le contenu des disquettes au maximum. Pour mémoire, la limite en densité est liée au temps entre 2 pulses index sur une rotation. Le nombre d'octets bruts (y compris le formatage) doit y tenir, avec la cadence de l'horloge du contrôleur. Ceci étant dit, le concepteur du système d'exploitation peut optimiser plus ou moins.
J'ai probablement induit 6502MAN en erreur en lui disant que le flex utilisait 18 secteurs par face en Double Densité. Ses dernières investigations montrent que c'est faut pour le G3, il n'y en a que 16 !
J'ai de mon coté travaillé à un projet d'émulation du Tavernier (ce n'est pas que l'émulateur de Daniel ne me convient pas, mais c'est plus un challenge personnel
) J'y ai analysé les formats utilisés, et il y a bien 18 secteurs par défaut comme défini par la commande FORMAT du Tavernier SIE (extrait de la commande Format en assembleur) :
L083C FCC "TTENTION ! FORMATAGE ! -"
FCC "---",LF,CR," *********"
FCC "************************"
FCC "*",BEL,LF,LF,CR,"ETES VO"
FCC "US SUR ? ",EOT
MSG03 FCC "Le disque est prot{g{ !",BEL
FCC EOT
MSG04 FCC LF,CR,"Le disque @ format"
FCC "er est-il dans le lecteu"
FCC "r ",EOT
MSG05 FCC " ? ",EOT
L08DF FCC "ERREUR IRRECUPERABLE..."
MSGERR FCC "FORMATAGE INTERROMPU",BEL
FCC ESC,"C",EOT
L090E FCC " Mauvais secteur "
FCC "en ",BEL,EOT
L092B FCC "FORMATAGE TERMINE",ESC,"C"
FCC EOT
L093F FCC "Nombre total de secteurs"
FCC " : ",EOT
MSG08 FCC "Disque double face ? ",EOT
MSG09 FCC "Disque double densit{ ? "
FCC EOT
MSG10 FCC "Nom du disque : ",EOT
MSG11 FCC "Num{ro du disque : ",EOT
MSG12 FCC "Piste 0 en double densit"
FCC "{ aussi ? ",EOT
MSG13 FCC "Disque 35,40 ou 80 piste"
FCC "s (3-4-8) ? 4",BS,EOT
MSG14 FCC "Disque 5 ou 8 pouces (5-"
FCC "8) ? 5",BS,EOT
MSG15 FCC "Formatage simple densit{"
FCC EOT
MSG16 FCC "Lecteur 80 pistes utilis"
FCC "{ en 40 pistes ? ",EOT
MSG17 FCC "Secteur 80 pistes utilis"
FCC "{ en 35 pistes ? ",EOT
MSG18 FCC "Etes-vous d'accord ? ",EOT
MSG19 FCC "***** PAS DE LECTEUR *"
FCC "****",BEL,EOT
MSG20 FCC "Nombre de secteurs par f"
FCC "ace sur une piste (valeu"
FCC "r normale 18) ? 18",BS,BS
FCC EOT
MSG21 FCC "Valeur du skew (valeur n"
FCC "ormale ",EOT
MSG22 FCC ") ? ",EOT
MSG23 FCC "Initialisation physique."
FCC " Piste : ",EOT
MSG24 FCC "Initialisation logique. "
FCC "Piste/Secteur : " EOT
De même, on trouve dans la doc du Vegas6809 le paragraphe suivant :
- Vegas6809
- Capture d’écran 2018-04-29 à 08.13.54.png (104.89 Kio) Consulté 5611 fois
390 en SD soit 39 pistes de 10 secteurs (la piste 0 n'est pas disponible pour les données) et 702 secteurs en DD soit 39 pistes de 18 secteurs.
Pour mon émulateur, j'ai opté pour autoriser les 16 et 18 secteurs par piste en DD pour la reconnaissance des formats à priori. En suite pour la lecture/écriture je regarde dans les registres du contrôleur WD1795.
Enfin, une solution possible est de regarder dans les positions 24 et 25 du 3ème secteur de la disquette, on doit y trouver le numéro de la dernière piste et du dernier secteur. S'il y a 10, 16,18, 20, 36 ou 38, on en déduit le format a adopter.