Comentarios sobre la codificación del programa:
En la codificación del programa dada anterior, estamos procediendo básicamente a realizar las tareas siguientes gradualmente:
- el dinfo señala a la estructura del diskinfo_t que contiene la información de los parámetros requeridos por la operación realizada por la función del _bios_disk.
- Pues vamos a escribir la información en el primer sector del disco por lo tanto la localización del sector será como sigue:
Parámetro |
Qué significa |
dinfo.drive = 0x00 |
Indica la impulsión 0 que es la impulsión de diskette (a:) |
dinfo.head = 0 |
Señala al número principal 0 |
dinfo.track = 0 |
Señala a la pista 0 |
dinfo.sector = 1 |
Primer sector del disco blando que es el sector 1 |
dinfo.sector = 1 |
El número de los sectores a considerar para escribe la operación = 1 |
dinfo.buffer = dbuf |
Los datos protegen para la operación |
- Abrir el archivo en el cual la información de la imagen del cargador de 512 octetos de un disco blando fresco fue almacenada por el programa anterior. El nombre del archivo y la trayectoria se almacena en el fname de la matriz de caracteres.
- Inicializar el sistema de disco usando la interrupción 13H (función 00h) donde regs.h.ah = 0x00 señala a la función 00 H y regs.h.dl = 0x00 se utiliza para a: flojo. E int86 (0x13, ®s, ®s) invoca el servicio 13 INTERNOS H. de la interrupción del MS-DOS.
- el _bios_disk (_DISK_WRITE, &dinfo) escribe la información del cargador del archivo especificado al primer sector (especificado) de la diskette.
- El estado vuelto se almacena en el resultado que se utiliza para exhibir el mensaje para la operación acertada o para exhibir un mensaje de error en la pantalla si ocurre cualquier error.
Hagámoslo con solo programa
Espero, ahora tú he entendido el concepto detrás de tal tipo de recuperación de los datos de la diskette. Después de que esto nos dejara imaginar un solo programa que da los mismos resultados que conseguimos con la ayuda de dos programas discutidos previamente.
Hacíamos las tareas siguientes con los programas recientemente discutidos:
- Almacenar la información del cargador de una buena diskette a un archivo
- Pegar esta información al primer sector del disco blando actualmente ilegible
El archivo que utilizábamos almacenar la imagen del cargador trabajaba como puente intermedio para conectar las operaciones de ambos el programa. Pero si definimos esta información en nuestra codificación del programa sí mismo del cargador, no necesitamos crear un archivo tan bien como no necesitamos leer la información del cargador del disco blando del archivo.
En nuestro programa siguiente estamos diciendo nuestro programa sobre lo que tiene que escribir en el primer sector de la diskette ilegible y podemos así evitar dos diversos programas para hacer la misma tarea y podemos recuperar nuestros datos de la misma forma que antes del nuevo solo programa.
El programa llega a ser así simple con menos codificación y podemos reducir la probabilidad de la ocurrencia del archivo leída, los errores escribimos o de la creación. Estamos haciendo las cuatro tareas importantes siguientes en este programa:
No pensar el programa difícil de escribir y de entender viendo la información hexadecimal de 512 octetos del dbuf [512]. Más adelante, discutiremos la manera fácil de escribir esta información para tu codificación del programa. |
- Definir la información de registro del cargador del DOS en el sistema hexadecimal que se escribirá en el primer sector de disco blando actualmente ilegible.
- Reajustar el sistema de disco para inicializar la diskette (13H INTERNO, la función 00H).
- Escribir el expediente del cargador del DOS al primer sector de disco blando
- Comprobar para saber si hay la terminación acertada de la operación y del error, si está ocurrido.
|