Mal” disco blando de la “pista que ajusta a formato 0
Este programa se utiliza para ajustar a formato esos discos blandos que tengan malos sectores en su pista 0 y cuando se ajustan a formato con el DOS o las ventanas, mensajes de error de la exhibición como “MALO de la pista 0”. Sin embargo puedes también utilizarlo para ajustar a formato los discos blandos normales.
La codificación del programa se ha dado en el disco incluido con este libro con el nombre “TTFORMAT.C”. La lógica de trabajo del programa es igual que el programa publicado en el compartimiento de la computadora de PCQUEST, en febrero de 2003 edición.
En este programa, intentamos hacer este tipo de discos blandos reutilizable ajustándolos a formato. Los sonidos del programa que puedes manejar la diskette incluso con algunos malos sectores en ella. Sin embargo, si el primer sector del disco es malo, el disco blando no puede ser ajustado a formato.
El programa reescribe todo el DBR, FAT e información del directorio de raíz. Si hay malos sectores en la superficie del disco, están marcados como malo en el FAT.
En la codificación del programa, la estructura BPB se utiliza al escritor el bloque del parámetro del BIOS del DBR. El boot_sector de la estructura se utiliza para escribir el DBR del disco. El address_field de la estructura se utiliza para obrar recíprocamente con el número del cilindro, de las cabezas, y de los sectores por pista y con el tamaño del sector.
Diversas funciones usadas en la codificación del programa y de su descripción se han dado en la tabla dada después.
Función |
Descripción |
Random_VolumeID () |
Esta función proporciona la identificación del volumen del disco. (Cómo el DOS genera el número de serie del disco blando se ha discutido al lado de esta tabla) |
mark_bad () |
Marcar el mal sector usando la función 04H de 13H INTERNO para verificar los sectores. |
sector_no_to_physical () |
Esta función se utiliza para convertir el número de sectores en pistas, cabezas y sectores |
format_term () |
Para terminar el formato y salir del programa |
write_boot_info () |
Escribe el sector del cargador del disco |
set_media_type_for_format () |
La función se utiliza para fijar el tipo de medios para el formato usando la función 18H de 13H INTERNO |
volume_label () |
La función consigue la etiqueta de volumen escribir la etiqueta de volumen del disco |
formato () |
Limpia la superficie del disco durante el formato así como la manipulación de la mala cuenta de sectores. |
get_drive_parameters () |
La función utiliza 13H INTERNO, función 08H para conseguir parámetros de la impulsión. |
mark_bad () |
Lleva a cabo la información del mal racimo para marcar en el FAT |
ask_for_continue () |
Función a confirmar antes de ajustar a formato el disco |
check_bad () |
Funcionar para comprobar si el estado vuelto es código de error para el MAL sector |
error () |
Esta función exhibe el mensaje de error para el código de error correspondiente |
lock_volume () |
La función se utiliza para trabar la impulsión usando 21H INTERNO, la función 44H y la función secundaria 0DH |
unlock_volume () |
La función se utiliza para abrir la impulsión usando 21H INTERNO, la función 44H y la función secundaria 0DH |
physical_to_sector_no () |
La función se utiliza para calcular el número de sectores del número de la pista, de la cabeza y del sector |
El número de serie de volumen de la diskette es calculado por el DOS según fecha actual y la hora del reloj del sistema.
La primera parte del número de serie es calculada por la suma de la hora (los segundos y los centésimo de un segundo) y de la fecha (mes y día). La segunda parte del número de serie es igual a la suma de la hora (las horas y los minutos) y de la fecha (año).
Todos los cálculos se realizan en sistema hexadecimal. Por ejemplo, dejarnos asumen que ajustaste a formato el disco blando en el ambiente del DOS en 11:16: 28: 65 en 10/23/2003. Ahora dejarnos calculan el número de serie del disco.
El tiempo en (los segundos y los centésimo de segundos) formato es
= (28 and 65)
= (1CH and 41H)
Write it as 1C41
Semejantemente, la fecha en (mes y día) formato es
= (10 and 23)
= (0AH and 17H)
Write it as 0A17
Semejantemente, el tiempo en (las horas y los minutos) formato es,
= (11 and 16)
= (0BH and 10H)
Write it as 0B10
Y el año será
= 2003
= 07D3
Ahora, dejarnos calculan el número de serie de la diskette, según la descripción dada antes. La primera parte del pozo del número de serie sea (1C41 + 0A17) = 2658 y la segunda parte del número de serie será (0B10 + 07D3) = 12E3.
|
page 1 | 2 | 3 | 4 | 5 | 6 |
|
|
|