/*Πληροφορίες 512 ψηφιολέξεων για να γεμίσει το διάστημα του κακού τομέα */
/// Χρησιμοποίησα 512 μηδενικά για να γεμίσω το διάστημα 512 ψηφιολέξεων \\\
static char dbuf2[512] =
"00000000000000000000000000000000" "00000000000000000000000000000000" "00000000000000000000000000000000" "00000000000000000000000000000000" "00000000000000000000000000000000" "00000000000000000000000000000000" "00000000000000000000000000000000" "00000000000000000000000000000000" "00000000000000000000000000000000" "00000000000000000000000000000000" "00000000000000000000000000000000" "00000000000000000000000000000000" "00000000000000000000000000000000" "00000000000000000000000000000000" "00000000000000000000000000000000" "00000000000000000000000000000000";
FILE *tt;
clrscr();
printf("\nΕισάγετε το όνομα του αρχείου με την πορεία για να αποθηκεύσετε τα στοιχεία προσωρινά\n");
gets(filename);
if((tt=fopen(filename,"wb"))==NULL)
{
printf("Δεν θα μπορούσε να δημιουργήσει το αρχείο, να πιέσει οποιοδήποτε πλήκτρο στην ΕΞΟΔΟ");
getch();
exit(0);
}
printf("\n Μονογράφοντας σύστημα δισκετών...\n");
/// Μονογράψτε το σύστημα δίσκων\\\
for(i=0; i<3; i++)
{
regs.h.ah = 0x00; /* Σύστημα δίσκων αναστοιχειοθέτησης */
regs.h.dl = 0x00; /* Δισκέτα α:*/
int86(0x13, ®s, ®s);
}
for(track=0;track<=79;track++)
{
for(head=0;head<=1;head++)
{
for(sector=1;sector<=18;sector++)
{
dinfo.drive = 0; /* αριθμός κίνησης για το Α: */
dinfo.head = head; /*επικεφαλής αριθμός δίσκων*/
dinfo.track = track; /*αριθμός διαδρομής*/
dinfo.sector = sector; /* αριθμός τομέα*/
dinfo.nsectors = 1; /* αρίθμηση τομέα */
dinfo.buffer = dbuf; /* απομονωτής στοιχείων */
result = _bios_disk(_DISK_READ, &dinfo);
if ((result & 0xff00) == 0)
{
for(i=0;i<512;i++)
fprintf(tt,"%c",dbuf[i] & 0xff);
}
else
{
printf("Μην μπορέστε να διαβάσετε να οδηγήσει το Α, status =
0x%02x\t%d\t%d\t%d\n", result, head, track, sector);
/* Εάν ο τομέας δεν είναι αναγνώσιμος, καταλάβετε 512 ψηφιολέξεις από dbuf2*/
fwrite(dbuf2,512,1,tt);
}
printf("Διαδρομή ανάγνωσης= %d Head= %d Sector= %d\n",
track, head, sector);
}
}
}
}
|