/////Functie om de Parameters van de Aandrijving te krijgen \\\\\
unsigned long getdrivegeometry (int drive)
{
union REGS i, o ;
struct SREGS s ;
struct geometry g = { 26, 0, 0, 0, 0, 0, 0, 0 } ;
i.h.ah = 0x48 ; /*Het Aantal van de functie 0x48 Uitbreidingen van int. 13H ziet de hieronder Commentaren */
i.h.dl = drive; /* Het Aantal van de aandrijving */
i.x.si = FP_OFF ( (void far*)&g ) ;
s.ds = FP_SEG ( (void far*)&g ) ;
/* Aandrijving NumberaInvoke het gespecificeerde functieaantal van de uitbreiding van int. 13H met de Waarden van het Register van het Segment*/
int86x ( 0x13, &i, &o, &s ) ;
printf("\n Head = %lu, Sectors Per Track = %lu, Cylinder =
%lu\n", g.heads, g.spt, g.cyl);
/* Als krijg ontbreekt de functie van de aandrijvingsmeetkunde, de Foutenmelding van de Vertoning En Uitgang */
if(g.spt==0)
{
printf("\n Krijg de Functie van de Meetkunde van de Aandrijving ontbreekt....");
printf("\nDe Gesteunde niet uitbreidingen, duwen op enige Sleutel aan Uitgang...");
getch();
exit(1);
}
return *g.sectors; /*Keer het Aantal Sectoren op Aandrijving terug*/
}
////// Begin van Leiding \\\\\\
void main()
{
unsigned long loop=0, Sectors_in_HDD1=0, Sectors_in_HDD2=0;
unsigned char buffer[61440]; /* De buffer van gegevens van 61440 Bytes aan Lees-schrijf 120 Sectoren van 512 Bytes tegelijkertijd om tijd te besparen. */
char choice;
clrscr();
|