/* La structure du format de paquet d'adresse de disque, être employé par les writeabsolutesectors fonctionnent */
struct diskaddrpacket
{
char packetsize ; /* Taille du paquet, généralement 10H */
char reserved ; /* Réservé (0) */
int blockcount ; /* Nombre de blocs à transférer */
char far *bufferaddress ; /* adresse pour transférer l'amortisseur */
unsigned long blocknumber[2] ; /* Commencer le nombre de bloc absolu */
} ;
///// Fonction pour obtenir des paramètres d'entraînement \\\\\
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 ; /* Nombre 0x48 de fonction des prolongements 13H INTERNES */
i.h.dl = drive; /* Nombre d'entraînement */
i.x.si = FP_OFF ( (void far*)&g ) ;
s.ds = FP_SEG ( (void far*)&g ) ;
/* Appeler le nombre indiqué de fonction de la prolongation 13H INTERNE avec des valeurs de registre de segment */
int86x ( 0x13, &i, &o, &s ) ;
printf("\n Head = %lu, Secteurs par voie = %lu, Cylinder =
%lu\n",
g.heads,g.spt,g.cyl);
|