Fazer a imagem do registro do carregador do DOS de um disco flexível bom
Para armazenar a imagem do registro do carregador do disco flexível fresco, a obrigação do programa faz as seguintes três tarefas:
- Primeiros 512 bytes exatamente lidos do disco flexível bom
- Verificar para ver se há a operação lida bem sucedida (a mais importante)
- Armazenar estes 512 bytes ao trajeto especificado do nome de arquivo e do destino
O setor do disco flexível é 512 bytes e é necessário copí a imagem exata do setor. É a etapa a mais importante e a mais necessária em caso de qualquer tipo de operações aplicadas no disco flexível à verificação se a operação era bem sucedida ou não.
Pode haver todo o problema da iniciação mesmo com o disco flexível bom e fresco. Isso é porque em a maioria dos casos quando a operação é executada em discos flexíveis, de toda a iniciação de discos flexíveis é executado primeiramente na programação com a operação do disco da restauração (função 00 H de 13H INTERNO).
Se mesmo depois que a iniciação o disco flexível recentemente introduzido ou disco flexível mudado causa todo o erro de leitura você for recomendado funcionar outra vez o programa, o mais provavelmente pode trabalhar esta vez.
O seguinte programa é executar estas tarefas especificadas. Deixar-nos ver como prosegue:
/* Armazenar a imagem do carregador a uma lima de um disco flexível fresco */
#include <bios.h>
#include <stdio.h>
int main(void)
{
struct diskinfo_t dinfo;
union REGS regs;
int result;
int count=0, i;
char fname[80];
static char dbuf[512];
FILE *fp;
dinfo.drive = 0x00; /* número de movimentação para A: */
dinfo.head = 0; /* número principal do disco*/
dinfo.track = 0; /* número da trilha */
dinfo.sector = 1; /* número do setor */
dinfo.nsectors = 1; /* contagem de setor */
dinfo.buffer = dbuf; /* amortecedor dos dados */
clrscr();
gotoxy(10,3);cprintf("Entrar na lima - nome e trajeto para armazenar a imagem do carregador");
gotoxy(5,5);
gets(fname);
fp=fopen(fname,"wb");
if((fp=fopen(fname,"wb"))==NULL)
{
highvideo();
gotoxy(10,10);cprintf("A lima não podia ser criada");
getch();
exit(0);
}
|