"Disco magnetico difettoso di formattazione della pista 0"
Questo programma è usato per formattare quei dischi magnetici che hanno settori difettosi sulla loro pista 0 e quando sono formattati con il DOS o le finestre, messaggi di errore dell'esposizione come “MALE della pista 0„. Tuttavia potete anche usarli per formattare i dischi magnetici normali.
La codificazione del programma è stata data nel disc incluso con questo libro con il nome "TTFORMAT.C". La logica di funzionamento del programma è stessa del programma pubblicato in scomparto del calcolatore di PCQUEST, nel febbraio 2003 edizione.
In questo programma, proviamo a rendere questo tipo dei dischi magnetici riutilizzabile formattandoli. I suoni di programma che potete maneggiare il dischetto anche con alcuni settori difettosi su esso. Tuttavia, se il primo settore del disc è difettoso, il disco magnetico non può essere formattato.
Il programma riscrive tutti i DBR, FAT ed informazioni dell'indice di radice. Se ci sono settori difettosi sulla superficie del disc, sono contrassegnati come Male in FAT.
Nella codificazione del programma, la struttura BPB è usata al produttore il blocchetto di parametro di ESSERE VIVENTE del DBR. Il boot_sector della struttura è usato per scrivere il DBR del disc. Il address_field della struttura è usato per l'interazione con il numero del cilindro, delle teste e dei settori per la pista e con il formato del settore.
Le funzioni differenti usate nella codificazione del programma e della loro descrizione sono state date nella tabella data dopo.
Funzione |
Descrizione |
Random_VolumeID () |
Questa funzione fornisce l'identificazione del volume del disc. (Come il DOS genera il numero di serie del disco magnetico è stato discusso vicino a questa tabella) |
mark_bad () |
Contrassegnare il settore difettoso usando la funzione 04H di 13H INTERNO per verificare i settori. |
sector_no_to_physical () |
Questa funzione è usata per convertire il numero di settori in piste, in teste ed in settori |
format_term () |
Per terminare la formattazione e rimuovere il programma |
write_boot_info () |
Scrive il settore del caricamento del sistema del disc |
set_media_type_for_format () |
La funzione è usata per regolare il tipo di mezzi per la disposizione usando la funzione 18H di 13H INTERNO |
volume_label () |
La funzione convince l'etichetta di volume a scrivere l'etichetta di volume del disc |
disposizione () |
Pulisce la superficie del disc durante la formattazione così come il maneggiamento del conteggio di settori difettoso. |
get_drive_parameters () |
La funzione usa 13H INTERNO, la funzione 08H per ottenere i parametri dell'azionamento. |
mark_bad () |
Tiene le informazioni della serie di ingranaggi difettosa per contrassegnare in FAT |
ask_for_continue () |
Funzione da confermare prima della formattazione del disc |
check_bad () |
Funzionare per controllare se la condizione restituita è codice di errore per il settore DIFETTOSO |
errore () |
Questa funzione visualizza il messaggio di errore per il codice di errore corrispondente |
lock_volume () |
La funzione è usata per bloccare l'azionamento usando 21H INTERNO, la funzione 44H e la funzione secondaria 0DH |
unlock_volume () |
La funzione è usata per sbloccare l'azionamento usando 21H INTERNO, la funzione 44H e la funzione secondaria 0DH |
physical_to_sector_no () |
La funzione è usata per calcolare il numero di settori dal numero della pista, della testa e del settore |
Il numero di serie di volume del dischetto è calcolato dal DOS secondo la data corrente ed il tempo dell'orologio del sistema.
La prima parte del numero di serie è calcolata dalla somma del tempo (secondi e hundredths di un secondo) e della data (mese e giorno). La seconda parte del numero di serie è uguale alla somma del tempo (ore e minuti) e della data (anno).
Tutti i calcoli sono effettuati nel sistema esadecimale. Per esempio, lasciarli suppongono che avete formattato il disco magnetico nell'ambiente del DOS a 11:16: 28: 65 su 10/23/2003. Ora lasciarli calcolano il numero di serie del disc.
Il tempo (secondi e Hundredths dei secondi) nella disposizione è
= (28 and 65)
= (1CH and 41H)
Write it as 1C41
Similmente, la data (mese e giorno) nella disposizione è
= (10 and 23)
= (0AH and 17H)
Write it as 0A17
Similmente, il tempo (ore e minuti) nella disposizione è,
= (11 and 16)
= (0BH and 10H)
Write it as 0B10
E l'anno sarà
= 2003
= 07D3
Ora, lasciarli calcolano il numero di serie del dischetto, secondo la descrizione data prima. La prima parte del pozzo di numero di serie è (1C41 + 0A17) = 2658 e la seconda parte del numero di serie sarà (0B10 + 07D3) = 12E3.
|
page 1 | 2 | 3 | 4 | 5 | 6 |
|
|
|