/// Initialiseer het Systeem van de Schijf \\\
for(i=0; i<3; i++)
{
regs.h.ah = 0x00; /* Reset Disk System */
regs.h.dl = 0x00; /* Floppy Disk a: */
int86(0x13, ®s, ®s);
}
for(track=0;track<=79;track++)
{
for(head=0;head<=1;head++)
{
for(sector=1;sector<=18;sector++)
{
count =0;
while(count<512 )
{
fscanf(fp,"%c",&dbuf[count]);
count++;
}
dinfo.drive = 0x00; /* aandrijvings aantal voor A:*/
dinfo.head = head; /* schijf hoofdaantal */
dinfo.track = track; /*spoor aantal */
dinfo.sector = sector;/* sector aantal */
dinfo.nsectors = 1; /* sector telling */
dinfo.buffer = dbuf; /* gegevens buffer */
result= _bios_disk(_DISK_WRITE, &dinfo);
if ((result & 0xff00) == 0)
printf("Succesvol schrijf op Spoor = %d, Head = %d,
Sector = %d.\n", track, head, sector);
else
printf("Kan lezen niet A drijven,status = 0x%02x\n",
result);
}
}
}
}
Commentaren op de codage van het Programma:
In de vroeger gegeven programmacodage, fundamenteel te werk gaan wij om de volgende takenstap door stap uit te voeren:
- De serie filename[80 van het karakter ] houdt de weg en dossiernaam van het dossier waarin wij de gegevens tijdelijk van de oppervlakte van onleesbare floppy opsloegen.
- dinfo punten aan de diskinfo_tstructuur die de informatie van parameters bevat die door de handeling worden vereist die door de _ bios_diskfunctie wordt uitgevoerd.
- Initialiseer schijfsysteem gebruiken onderbreken 13H (functie 00h) waar regs.h.ah = 0x00 de punten aan functie 00 H en regs.h.dl = 0x00 voor a wordt gebruikt: slap. En int86(0x13, ®s, ®s) halen MS-dos aan onderbreken de dienst int. 13 H.
- Aangezien wij de informatie aan sectoren van de oppervlakte van schijf gaan rechtstreeks schrijven, zullen de parameters van _ bios_disk als volgt zijn:
|