Le secteur boot
Le secteur boot se trouve toujours sur le secteur 1 de la piste 0, sur la face 0 d'une disquette.
On pourra utiliser la fonction 8 du XBIOS pour lire les informations, la fonction 9 du XBIOS pour les mettre à jour.
ATTENTION:
Très souvent, sur une disquette originale d'un jeu, il y a un code dans le secteur boot. Ce code permettant de lancer le jeu. Toutes modifications du secteur boot sur ce type de disquette est donc à vos risques et périls (comme toutes autres modifications d'ailleurs et quelque soit le média utilisé).
Par précaution, il vaut mieux ne jamais déprotéger la disquette d'un jeu original. Surtout que les virus s'installent facilement dans ce secteur...
Voici les informations que l'on trouve dans le secteur boot:
ATTENTION: Pour rester plus ou moins compatible avec le PC, la structure du boot est identique avec celle d'une disquette formatée sur un PC. Comme le PC utilise des microprocesseurs INTEL ou dérivés mais compatibles, l'écriture d'un WORD est donc celle utilisée chez INTEL. Ce qui veut dire que la partie basse d'un WORD est en fait l'octet à gauche. La partie haute est le nombre à droite !
Par exemple, pour connaître le nombre d'octets par secteur, il faut faire le contenu de l'offset $0B + 256 * le contenu de l'offset $0C.
Nom |
Offset |
Désignation |
BRA |
$00-$01 |
Contient l'instruction machine d'un 680x0: BRA.S suivi de la valeur du branchement. |
OEM |
$02-$07 |
6 octets réservés comme identificateur |
SERIAL |
$08 à $0A |
Numéro de série qui doit être unique par disquette. Pour rappel, le ST ne dispose pas de capteur sur son lecteur de disquette indiquant que l'utilisateur a sorti ou non la disquette. Par conséquent, la fonction Mediach du bios n'est pas fiable et le système va vérifier ce n° de série avant de mettre à jour les informations de la FAT et des noms de fichiers. Si le n° est le même d'une disquette à une autre, il y aura risque d'écrasement de FAT et des noms de fichiers sur la nouvelle disquette insérée avec celles de la disquette précédente. Donc gros risque de perdre l'accès aux données de la disquette ! |
BPS |
$0B à $0C |
Nombre d'octets par secteur |
SPC |
$0D |
Nombre de secteusr par cluster |
RES |
$0E à $0F |
Nombre de secteusr réservés |
NFATS |
$10 |
Nombre de FAT (File Allocation Table: Cf.: Table d'allocation des fichiers) |
NDIRS |
$11 à $12 |
Nombre d'entrée par répertoire |
NSECTS |
$13 à $14 |
Nombre de secteurs sur le disque (y compris les réservés) |
MEDIA |
$15 |
Type de média: $F8 par un disque dur. |
SPF |
$16 à $17 |
Nombre de secteurs par FAT |
SPT |
$18 à $19 |
Nombre de secteur par piste |
NSIDES |
$1A à $1B |
Nombre de faces sur le média |
NHID |
$1C à $1D |
Nombre de secteurs cachés |
BOOTCODE |
$1E à $01FD |
Cette espace peut être utilisé pour y mettre du code machine. Ce code devant être 100% relogeable. |
CHECKSUM |
$01FE à $01FF |
Ces deux octets permettent d'équilibrer le secteur boot. Pour savoir si un secteur boot est équilibré, on fait la somme de tous les mots du secteur boot. Si la partie basse de ce nombre calculé sur 32 bits vaut $1234, alors le secteur boot est exécutable. |
Voir aussi comment rendre un secteur boot exécutable.
Voici un exemple en GFA BASIC de programme accédant au secteur boot et affichant les informations qui y sont contenues:
Le BPB de l'Atari ST
Les informations qui sont comprises entre les positions 0 et $1D du secteur boot compose le BPB càd le Bios Parameter Bloc qui est une table de configuration du disque/disquette.
Ce BPB pourra être accédé directement à partir de la fonction du BIOS getBpb.
Le boot du DOS
Le système de fichier de l'Atari ST est fort ressemblant à celui du FAT du DOS. Par conséquent, il y a de forte similitude entre le bpb du ST et celui du DOS.