Le codage du programme a été donné après:
/* Programme pour faire l'image du premier disque dur (0x80) au deuxième disque dur (0x81) */
#include<stdio.h>
#include<dos.h>
#include<conio.h>
/* Structure à employer par fonction getdrivegeometry en utilisant 13H la prolongation INTERNE, nombre 0x48 de fonction. */
struct geometry
{
unsigned int size ; /* taille (d'appel) d'amortisseur */
unsigned int flags ; /* Drapeaux de l'information */
unsigned long cyl ; /* Nombre de cylindres physiques sur la commande */
unsigned long heads ;/* Nombre de têtes physiques sur la commande */
unsigned long spt ; /* Nombre de secteurs physiques par voie */
unsigned long sectors[2] ; /* Nombre total des secteurs sur la commande */
unsigned int bps ; /* Bytes par secteur */
} ;
/* Structure de format de paquet d'adresse de disque, être employé par les fonctions, les readabsolutesectors et les writeabsolutesectors */
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 */
} ;
|