La codificación del programa se ha dado después:
/* Programa para hacer la imagen del primer disco duro (0x80) al segundo disco duro (0x81) */
#include<stdio.h>
#include<dos.h>
#include<conio.h>
/* Estructura que se utilizará por la función getdrivegeometry usando 13H la extensión INTERNA, número 0x48 de la función. */
struct geometry
{
unsigned int size ; /* tamaño (de la llamada) del almacenador intermediario*/
unsigned int flags ; /* Banderas de la información */
unsigned long cyl ; /* Número de cilindros físicos en la impulsión */
unsigned long heads ;/* Número de cabezas físicas en la impulsión */
unsigned long spt ; /* Número de sectores físicos por pista */
unsigned long sectors[2] ; /* Número total de sectores en la impulsión */
unsigned int bps ; /* Octetos por sector*/
} ;
/* Estructura del formato del paquete de la dirección de disco, ser utilizado por las funciones, los readabsolutesectors y los writeabsolutesectors */
struct diskaddrpacket
{
char packetsize ; /* Tamaño del paquete, generalmente 10H*/
char reserved ; /* Reservado (0) */
int blockcount ; /* Número de los bloques a transferir */
char far *bufferaddress ; /* dirección para transferir el almacenador intermediario */
unsigned long blocknumber[2] ; /* Comenzar número de bloque absoluto */
} ;
|