O coding do programa tem sido dado em seguida:
/*Programa para fazer a imagem do primeiro disco duro (0x80) ao segundo disco duro (0x81) */
#include<stdio.h>
#include<dos.h>
#include<conio.h>
/* Estrutura a ser usada pela função getdrivegeometry usando 13H a extensão INTERNA, número 0x48 da função. */
struct geometry
{
unsigned int size ; /* tamanho (da chamada) do amortecedor*/
unsigned int flags ; /* Bandeiras da informação */
unsigned long cyl ; /* Número dos cilindros físicos na movimentação */
unsigned long heads ;/*Número das cabeças físicas na movimentação */
unsigned long spt ; /* Número de setores físicos por a trilha */
unsigned long sectors[2] ; /* Número total dos setores na movimentação */
unsigned int bps ; /* Bytes por o setor */
} ;
/* Estrutura do formato do pacote do endereço de disco, para ser usado pelas funções, pelos readabsolutesectors e pelos writeabsolutesectors */
struct diskaddrpacket
{
char packetsize ; /* Tamanho do pacote, geralmente 10H */
char reserved ; /* Reserved (0) */
int blockcount ; /* Número dos blocos a transferir */
char far *bufferaddress ; /* endereço para transferir o amortecedor */
unsigned long blocknumber[2] ; /* Começando o número de bloco absoluto */
} ;
|