Recordar sempre que o tamanho da lima que prende a imagem dos dados de disco flexível deve ser 1.474.560 bytes exatos porque o disco flexível tem 80) das trilhas (0 a 79, 2 lados ou cabeças (cabeça 0 e cabeça 1), cada trilha tem 18 setores nele e em preensões de cada setor os 512 bytes dos dados, assim
Bytes totais = (número das trilhas) * (número das cabeças) * (número dos setores por a trilha) * 512
= 80*2*18*512
= 1.474.560 Bytes
Assim, se houver qualquer erro na leitura em qualquer setor do disco flexível, mudará o tamanho da lima de 1.474.560 Bytes, que farão a informação inteira completamente ou parcialmente de nenhum uso para o disco do destino em que nós estamos indo escrever o setor da imagem do disco pelo setor desta lima.
Isto é assim porque o computador lê a informação de toda a lima na superfície dos meios do disco flexível dentro da escala do setor porque foi alocado em sua unidade de alocamento. Agora se os setores dos dados das limas forem mudados, a informação completa da lima é mudada.
Pensar para a solução do erro de leitura dos setores
É possível com o mau ou o disco flexível ilegível que pode ter tal área má em sua superfície que nós não podemos lê a informação da superfície do disco.
Nesta circunstância a informação desta vontade que dos setores nós saltamos e a imagem do disco flexível será distorcida mesmo para os outros setores como o tamanho da lima da imagem neste caso difere de 1.474.560 Bytes.
Para manter o tamanho da lima da imagem e para colar o descanso da informação nas posições de setor exatas no disco do destino, nós escrevemos alguma outra informação em nome dos dados originais de 512 bytes e nesta maneira, nós seremos capazes conservar o descanso da informação entretanto que a recuperação em tal caso pode ser a recuperação parcial.
Se seu sistema também não ler o primeiro setor do disco flexível da fonte, após ter colado a imagem ao disco flexível do destino você deve funcionar o programa descrito antes, para reescrever o registro do carregador do DOS do disco flexível.
Deixar-nos ver como nós podemos o fazer programando:
#include <bios.h>
#include <stdio.h>
void main(void)
{
int head,track;
union REGS regs;
int result,i,sector;
char filename[80];
struct diskinfo_t dinfo;
static char dbuf[512];
|