La Web del Programador: Comunidad de Programadores
 
    Pregunta:  34777 - MANEJO DE DISCO
Autor:  jose luis lizcano
necesito saber en que sector del diskette empieza el directorio claro en terminos normales junto con el numero de cilindro , cabeza, pista y que funciones del ensamblador me sirven para acceder al directorio y manipular los nombres de los archivos pues necesito hacer un progarama que simule el comando undelete del dos

  Respuesta:  David Cañadas
Creo que tienes un pequeño lío. Por una parte, no necesitas saber cilindro, cabeza ni pista para simular un undelete, y por otra parte, no existen funciones propiamente en ensamblador para acceder a los directorios.

Primero es importante que sepas las especificaciones del sistema de ficheros que estás usando (presumiblemente FAT32, pero puede ser cualquier otro). Esto te servirá para conocer cómo acceder a directorios, archivos, etc.

Por otra parte, no existen en ensamblador instrucciones específicas para acceder a disco. Depende de lo que quieras hacer, puedes usar el despachador de servicios del DOS (interrupción 21H), o bien acceder a medios en bajo nivel mediante la interrupción 13H.

Debes tener en cuenta que un undelete no es más que un cambio de un byte en el nombre del archivo. Cuando borras un archivo, DOS sustituye el primer carácter del nombre en la FAT por el código 229 ASCII. De lo que se trata es de cambiar ese código a uno válido para recuperar el fichero. Ojo: aunque exista esa entrada en la FAT el fichero puede haber sido borrado "físicamente". Entonces, quizás sí sea bueno que compruebes con anterioridad si está íntegro.

Salu2.