Lecture/ecriture sur disquette

cs_Stormy Messages postés 255 Date d'inscription samedi 20 avril 2002 Statut Membre Dernière intervention 16 janvier 2007 - 9 févr. 2004 à 17:55
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 - 13 févr. 2004 à 12:05
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

cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
11 févr. 2004 à 03:33
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 ;-)
0
cs_Stormy Messages postés 255 Date d'inscription samedi 20 avril 2002 Statut Membre Dernière intervention 16 janvier 2007
11 févr. 2004 à 21:56
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!
0
cs_patatalo Messages postés 1466 Date d'inscription vendredi 2 janvier 2004 Statut Modérateur Dernière intervention 14 février 2014 2
13 févr. 2004 à 12:05
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.

@++
0
Rejoignez-nous