La Web del Programador: Comunidad de Programadores
 
    Pregunta:  17217 - BUSCAR SUBDIRECTORIOS EN UN DISCO DE 31/2
Autor:  Ana Patricia Gomez Cruz
Entro al sector de arranque y me muestra informacin sobre las tablas FAT, pero como ingreso ala infrmación de las tablas FAt y como muestro en pantalla los subdirectorios

  Respuesta:  wilfredo Pérez
Hola colega,
Bueno en realidad en el sector de arranque aparece cierta información que debes tener en cuenta, aunque para los discos de 3 1/2 este tiene dos formatos predefinidos, uno para los antiguos de 720 K y otro para los de 1.44 Mb. La fat siempre la vas ha encontrar sumando la cantidad de sectores especiales y ocultos, y a esta cifra le debes aplicar el siguiente cálculo:
sector= (Suma de sectores MOD cantidad de sectores por pista)+1
calculo=INT(Suma de sectores / cantidad de sectores por pista)
cara=calculo MOD cantidad de caras del disco
pista= int(calculo / cantidad de caras del disco)

Aqui ya tienes la cara, pista y sector donde está tu primer sector de la primera copia de la FAT. Este cálculo es dado un sector lógico del disco obtener su sector físico en el disco.

Sector lógico es un número único, que no es más que la posición de un sector dentro del total de sectores del disco en general, es decir que no se mira por pista, sectores y caras sino lineal, ejemplo el sector 29 en un disco de 5 1/4(de los viejos) estaría ubicado en sector 3, pista 1 y cara 1. Con sectores físicos puedes utilizar la interrupción 13H del BIOS, pero para lógicos la interrupción 25H y 26H del MS-DOS,, estas últimas son compatible en plataforma windows.

Después que tengas en un buffer la fat, su lectura es algo complicada, yo te enviaré el algoritmo en ensamblador si lo deseas?

Un saludo.