|
Formatierender „Schiene 0 schlechter“ Floppy-Disc
Dieses Programm wird verwendet, um jene Floppy-Discs, die schlechte Sektoren auf ihrer Schiene 0 und haben wenn mit DOS oder Fenstern formatiert werden, Anzeige Fehlermeldungen zu formatieren wie „Schiene 0 SCHLECHTES“. Jedoch kannst du es auch verwenden, um normale Floppy-Discs zu formatieren.
Die Kodierung des Programms ist in der Scheibe gegeben worden, die mit diesem Buch mit dem Namen „TTFORMAT.C“ eingeschlossen ist. Die Arbeits-Logik des Programms ist selbe wie das Programm, das in der PCQUEST Computerzeitschrift, im Februar 2003 Ausgabe veröffentlicht wird.
In diesem Programm versuchen wir, diese Art von den Floppy-Discs mehrfachverwendbar zu bilden, indem wir sie formatieren. Die Programmtöne, daß du die Diskette sogar mit einigen schlechten Sektoren auf ihr anfassen kannst. Jedoch wenn der erste Sektor der Scheibe schlecht ist, kann der Floppy-Disc nicht formatiert werden.
Das Programm schreibt alles DBR, FAT und Wurzelverzeichnisinformationen neu. Wenn es schlechte Sektoren auf der Oberfläche der Scheibe gibt, werden sie als Schlechtes in FAT gekennzeichnet.
In der Kodierung des Programms, wird die Struktur BPB zum Verfasser der BIOS Parameter-Block des DBR benutzt. Das Struktur boot_sector wird verwendet, um das DBR der Scheibe zu schreiben. Das Struktur address_field wird für das Aufeinander einwirken mit der Anzahl des Zylinders, der Köpfe und der Sektoren pro Schiene und mit der Größe des Sektors benutzt.
Die unterschiedlichen Funktionen, die in der Kodierung des Programms und ihrer Beschreibung verwendet werden, sind in der Tabelle gegeben worden, die zunächst gegeben wird.
Funktion |
Beschreibung |
Random_VolumeID () |
Diese Funktion liefert das Volumen Identifikation der Scheibe. (Wie DOS erzeugt, ist die Seriennummer des Floppy-Discs nahe bei dieser Tabelle besprochen worden) |
mark_bad () |
Schlechten Sektor mit Funktion 04H INTERNEN 13H kennzeichnen, die Sektoren zu überprüfen. |
sector_no_to_physical () |
Diese Funktion wird verwendet, um die Zahl Sektoren in Schienen, Köpfe und Sektoren umzuwandeln |
format_term () |
Die Formatierung beenden und das Programm herausnehmen |
write_boot_info () |
Schreibt den Aufladung Sektor der Scheibe |
set_media_type_for_format () |
Die Funktion wird verwendet, um Mittel-Art für Format mit Funktion 18H INTERNEN 13H einzustellen |
volume_label () |
Die Funktion erhält den Datenträgerkennsatz, Datenträgerkennsatz der Scheibe zu schreiben |
Format () |
Wischt die Oberfläche der Scheibe während der Formatierung sowie die Behandlung der schlechten Sektoranzahl ab. |
get_drive_parameters () |
Die Funktion verwendet INTERNES 13H, Funktion 08H, um Antrieb Parameter zu erhalten. |
mark_bad () |
Hält die Informationen des schlechten Blockes, um in FAT zu kennzeichnen |
ask_for_continue () |
Bevor zu bestätigen Funktion, die Scheibe formatiert wird |
check_bad () |
Arbeiten, um zu überprüfen, ob der zurückgebrachte Status Störung Code für SCHLECHTEN Sektor ist |
Störung () |
Diese Funktion zeigt Fehlermeldung für entsprechenden Störung Code an |
lock_volume () |
Die Funktion wird verwendet, um den Antrieb mit INTERNEM 21H, Funktion 44H und Vorfunktion 0DH zu verriegeln |
unlock_volume () |
Die Funktion wird verwendet, um den Antrieb mit INTERNEM 21H, Funktion 44H und Vorfunktion 0DH zu entriegeln |
physical_to_sector_no () |
Funktion wird verwendet, um Zahl der Sektoren Schiene, Kopf- und Sektorvon der zahl zu errechnen |
Die Datenträgernummer der Diskette wird durch das DOS entsprechend Tagesdatum und Zeit des System Taktgebers errechnet.
Das erste Teil der Seriennummer wird durch die Summe der Zeit (Sekunden und Hundertstel einer Sekunde) und des Datums errechnet (Monat und Tag). Das zweite Teil der Seriennummer ist der Summe der Zeit (Stunden und Minuten) und des Datums (Jahr) gleich.
Alle Berechnungen werden im hexadezimalen System durchgeführt. Z.B. uns lassen annehmen, daß du den Floppy-Disc im DOS Klima bei 11:16 formatiertest: 28: 65 auf 10/23/2003. Uns jetzt lassen errechnen die Seriennummer der Scheibe.
Die Zeit (Sekunden und Hundertstel von Sekunden) im Format ist
= (28 and 65)
= (1CH and 41H)
Write it as 1C41
Ähnlich ist Datum (Monat und Tag) im Format
= (10 and 23)
= (0AH and 17H)
Write it as 0A17
Ähnlich ist Zeit (Stunden und Minuten) im Format,
= (11 and 16)
= (0BH and 10H)
Write it as 0B10
Und das Jahr ist
= 2003
= 07D3
Jetzt uns lassen errechnen die Seriennummer der Diskette, entsprechend der Beschreibung, die vorher gegeben wird. Das erste Teil des Seriennummerbrunnens ist (1C41 + 0A17) = 2658 und das zweite Teil der Seriennummer ist (0B10 + 07D3) = 12E3.
|
page 1 | 2 | 3 | 4 | 5 | 6 |
|
|
|
|