Comentários no coding do programa:
No coding do programa, cada etapa está mesma que no programa precedente exceto o amortecedor dbuf2 dos dados [512], que nós nos estamos usando segurar o erro gerado pelo setor mau durante a operação de leitura do disco e manter o tamanho da lima da imagem.
Fazendo isto, nós estamos enchendo o espaço da informação, que nós não lemos do setor mau e agora nós estamos escrevendo a informação pseudo de 512 bytes de modo que nós possamos manter a exatidão da imagem do disco.
Colar os dados da lima à superfície física do disco flexível fresco:
Nesta etapa, nós colamos os dados armazenados na lima pelo programa precedente, à superfície física do disco flexível fresco, setor pelo setor na mesma maneira por que nós a copí à lima.
O programa prosegue com as seguintes etapas principais:
- Abrir a lima em que nós armazenamos os dados de superfície do disco flexível ilegível temporariamente.
- Inicializar o sistema de disco corretamente pela função restaurando 00H de 13H INTERNO.
- Escrever a informação nos setores do disco flexível fresco da lima.
- Indicar o status de escrita simultaneamente ao achado ou evitar a ocorrência dos erros.
O código de fonte do programa foi dado abaixo. Deixar-nos examinar como trabalha:
/* Programa para escrever os dados nos setores da superfície do disco flexível fresco da lima, criada pelo programa precedente */
#include <bios.h>
#include <stdio.h>
void main(void)
{
int head,track;
union REGS regs;
int result,i,sector;
int count =0;
char filename[80];
struct diskinfo_t dinfo;
static char dbuf[512];
FILE *fp;
clrscr();
printf("\n Dar entrada com o nome da lima com trajeto para armazenar temporariamente os dados\n");
gets(filename);
if((fp=fopen(filename,"rb"))==NULL)
{
printf("Não podia criar a lima, não pressionam nenhuma chave PARA RETIRAR");
getch();
exit(1);
}
|