Formatterend "Spoor 0 Slechte" floppy
Dit programma wordt gebruikt om die floppies te formatteren die slechte sectoren op hun spoor 0 hebben en wanneer geformatteerd met Dos of vensters zijn, vertoningsfoutenmeldingen zoals "SLECHT Spoor 0". Nochtans kunt u het aan formaat normale floppies ook gebruiken.
De codage van het programma is gegeven in de schijf inbegrepen met dit boek met de naam "TTFORMAT. C". De het werk logica van het programma is zelfde zoals het programma dat in Pcquest- computertijdschrift wordt gepubliceerd, in de uitgave van Februari 2003.
In dit programma, proberen wij om dit type van floppies opnieuw te gebruiken te maken door hen te formatteren. De programmageluiden dat u de floppy disk zelfs met sommige slechte sectoren op het kunt behandelen. Nochtans, als de eerste sector van de schijf slecht is, kan floppy niet worden geformatteerd.
Het programma herschrijft al informatie van de Folder van DBR, van het VET en van de Wortel. Als er slechte sectoren op de oppervlakte van de schijf zijn, zijn zij duidelijk slecht in VET.
In de codage van het programma, wordt de structuur BPB gebruikt aan schrijver het BIOS Blok van de Parameter van DBR. Structuurboot_sector wordt gebruikt om DBR van de schijf te schrijven. De structuur wordt address_field gebruikt voor het in wisselwerking staan met aantal cilinder, hoofden, en sectoren per spoor en met de grootte van de sector.
De verschillende functies die in de codage van het programma en hun beschrijving worden gebruikt zijn gegeven in de daarna gegeven lijst.
Functie |
Beschrijving |
Random_VolumeID() |
Deze functie verstrekt volumeidentiteitskaart van de schijf. (Hoe Dos produceert is het serienummer van floppy besproken naast deze lijst) |
mark_bad() |
De slechte sector die van het teken functie 04H van int. 13H gebruikt om de sectoren te verifiëren. |
sector_no_to_physical() |
Deze functie wordt gebruikt om het aantal sectoren in sporen, Hoofden en sectoren om te zetten |
format_term() |
Om het formatteren te eindigen en het programma weg te gaan |
write_boot_info() |
Schrijft de laarssector van de schijf |
set_media_type_for_format() |
De functie wordt gebruikt om het Type van Media voor formaat te plaatsen gebruikend functie 18H van int. 13H |
volume_label() |
De functie brengt het volumeetiket ertoe om volumeetiket van de schijf te schrijven |
format() |
Veegt de oppervlakte van de schijf tijdens het formatteren van evenals de behandeling van de slechte sectorentelling af. |
get_drive_parameters() |
De Functie gebruikt int. 13H, Functie 08H om aandrijvingsparameters te krijgen. |
mark_bad() |
Houdt de informatie van slechte cluster aan teken in VET |
ask_for_continue() |
Te bevestigen functie alvorens de schijf te formatteren |
check_bad() |
Te controleren functie als de teruggekeerde status foutencode voor SLECHTE sector is |
error() |
Deze functie toont Foutenmelding voor Overeenkomstige foutencode |
lock_volume() |
De functie wordt gebruikt om de Aandrijving te sluiten gebruikend int. 21H, functie 44H en Subfunctie 0DH |
unlock_volume() |
De functie wordt gebruikt om de Aandrijving te openen gebruikend int. 21H, functie 44H en Subfunctie 0DH |
physical_to_sector_no() |
De functie wordt gebruikt om aantal sectoren van spoor, hoofd en sectoraantal te berekenen |
Het Serienummer van het Volume van de Floppy disk wordt berekend tegen Dos volgens huidige datum en tijd van de systeemklok.
Het eerste deel van het serienummer wordt berekend door de som van de tijd (seconden en honderdste van tweede) en de datum (maand en dag). Het tweede deel van het serienummer is gelijk aan de som van de tijd (uren en notulen) en datum (jaar).
Alle berekeningen worden uitgevoerd in hexadecimaal systeem. Bijvoorbeeld, veronderstellen dat u formatteerde floppy in het milieu van Dos bij 11:16:28:65 op 10/23/2003, Nu bereken het serienummer van de schijf.
De tijd in (seconden en Honderdste seconden) formaat is
= (28 and 65)
= (1CH and 41H)
Write it as 1C41
Op dezelfde manier is de datum in (maand en dag) formaat
= (10 and 23)
= (0AH and 17H)
Write it as 0A17
Op dezelfde manier is de tijd in (uren en notulen) formaat,
= (11 and 16)
= (0BH and 10H)
Write it as 0B10
En het jaar zal zijn
= 2003
= 07D3
Nu, berekenen het serienummer van de floppy disk, volgens de voordien gegeven beschrijving. Het eerste deel van het serienummer is goed (1C41 0A17) = 2658 en het tweede deel van het serienummer zal zijn (0B10 + 07D3) = 12E3.
|
page 1 | 2 | 3 | 4 | 5 | 6 |
|
|
|