'Gap' dans la Diskette Param Table ?

Pour tout ce qui touche au PC d'IBM et ses nombreux descendants. Attention tout de même, au delà de quelques MHz la discussion devient vite hors sujet.

Modérateurs : Carl, Papy.G, fneck

gotcha
Messages : 2122
Inscription : 30 mars 2017 11:39
Localisation : Isère

'Gap' dans la Diskette Param Table ?

Message par gotcha »

Hello,

La 'Diskette Param Table' du BIOS d'un PC XT donne des infos sur le lecteur floppy physique et sur le formatage entre autre. C'est la table pointée par le vecteur d'interruption 1Eh.

Dans cette table, il y a étrangement 2 champs qui concerne le 'gap' entre les secteurs:
- un donne la 'longueur du gap'
- une autre donne la 'longueur du gap en formatage'

Dans la table que j'ai, ils ont des valeurs très différentes.
Est-ce que quelqu'un comprend la différence entre ces 2 gaps ?
Amstrad CPC addict :mrgreen:
gotcha
Messages : 2122
Inscription : 30 mars 2017 11:39
Localisation : Isère

Re: 'Gap' dans la Diskette Param Table ?

Message par gotcha »

Ce n'est pas encore totalement clair, mais j'ai trouvé des éléments de réponses ici : https://wiki.osdev.org/Floppy_Disk_Controller
  • La première longueur de gap (GPL1) serait le gap minimum que le contrôleur floppy doit s'attendre à voir entre les secteur en read/write. C'est la valeur de GPL qu'on donne au FDC lors d'une opération de read/write
  • La deuxième longueur de gap (GPL2) serait la vraie longueur créée quand on fait le formatage bas niveau de la disquette. C'est la valeur de GPL qu'on donne au FDC lors d'une opération de 'format track'
Gap Lengths
There are two different gap lengths that are controlled by software for specifying the amount of blank space between sectors. The gap lengths are used by the floppy hardware to help find the "start of sector" markers, and to avoid problems caused by speed variations in different floppy drives (for e.g. writing a sector on a slower drive would cause the sector to take up more physical space on the disk, potentially overwriting the next sector). The first gap length (typically called "GPL1") is used when reading or writing data, and sets the length of the gap between sectors that the floppy should expect (but doesn't change this gap). The second (typically called "GPL2") is the gap length for the "format track" command, which specifies the amount of space between sectors to use. The actual gap lengths depend on many factors, but GPL1 is always a bit less than GPL2 so that the floppy hardware starts expecting the next sector near the end of the blank space.
Par contre, pourquoi le contrôleur aurait besoin d'une estimation du gap pour les phases de lecteur/écriture de secteur ?

Pour en savoir plus, il faudrait à mon avis lire la doc d'un FDC comme le NEC 765. Mais ça devient très technique sur le fonctionnement interne du contrôleur.
Amstrad CPC addict :mrgreen:
Répondre