Lecture/ecriture sur disquette

Signaler
Messages postés
255
Date d'inscription
samedi 20 avril 2002
Statut
Membre
Dernière intervention
16 janvier 2007
-
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
-
Voici ma question (TangyX, tu es exempté de réponse). Une disquette est composée de 2 faces (jusque là c 'est bon) chacune composée de 80 pistes de 18 segments (512 Oct). Puisque les 33 premiers segments sont réservées pour différentes allocations (dont segment 0 pour le boot), il se trouve où le premier secteur (cluster) réservé aux datas?

Mov Ah, 00h
Mov Dl, 0
Int 13h

Mov Ax, 0301h
Mov Dx, 0
Mov Cx, ? <<< Piste+Secteur
Lea Bx, Buffer
Int 13h
JNC Okay

Merci à tous

3 réponses

Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
salut,

déjà, je suppose que ta question est relative a l'OS windows et donc au system FAT.

1 - ce que tu appelle segment, s'appelle secteur.2 - un cluster 8 secteurs (8*512 4Ko pour FAT)
3 - l'emplacement du répertoire root se calcule comme pour un disque dur a l'aide des informations du MBR.

00h - Branchement vers la routine de chargement
03h - Nom du fabricant et numéro de version du DOS
0Bh - Nombre d'octets par secteur
0Dh - Nombre de secteurs par cluster
0Eh - Nombre de secteurs réservés
10h - Nombre de FATs
11h - Nombre maximum d'entrées dans le répertoire racine
13h - Nombre de secteurs du volume
15h - Code de description du support
16h - Nombre de secteurs par FAT
18h - Nombre de secteurs par piste
1Ah - Nombre de têtes de lecture/écriture
1Ch - Nombre de secteurs cachés

cela donne:
MBR :
+ Nombre de secteurs réservés
+ Nombre de secteurs cachés ( a verifier )
FAT
+ Nombre de secteurs par FAT * Nombre de FATs
DATAS (REPERTOIRE ROOT)

avec:
DH = Numéro de la face de disquette (0 ou 1)
CH = Numéro de piste
CL = Numéro de secteur ( commence a 1 )

donc:
PISTE = ((total secteur+1) / 18)
SECTEUR = reste de ((total secteur+1) / 18)

j'espere que cela t'aidera mais c tout a verifier ;-)
Messages postés
255
Date d'inscription
samedi 20 avril 2002
Statut
Membre
Dernière intervention
16 janvier 2007

Merci pour ton aide. Je connaisais la structure d'une disquette mais ce que je voulais savoir c'est où débute (un chiffre relatif à un secteur) la zone pour les Datas. Je m'explique:
Le secteur de 512 octet pour le boot est à 00h. Alors je pensais que la zone susdite se trouvée dès 21h. Qu'en penses-tu?
En attendant, ta façon de trouver le bon secteur est très bonne. Je n'y avais pas pensé.

PISTE = ((total secteur+1) / 18)
SECTEUR = reste de ((total secteur+1) / 18)

Merci!
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1
salut,

je ne comprends pas tres bien ce que tu veux exactement,

1 - le secteur de boot se trouve a 01h (CX=0001h)
2 - tu ne peux pas avoir le secteur 21h etant donné que le max est 18 (12h)
3 - il est effectivement fort probable que les données commences au premier secteur d'une piste mais a ce moment là, CX = 0201h ( si 3eme piste 0001h,0101h,0201h)

une fois que tu a calculé l'emplacement ROOT pour une disquette, tu peux eventuellement considerer que toutes les autre auront la meme structure mais a tes risque et perils.

@++