Comentários no coding do programa:
No coding do programa dado mais cedo, bàsicamente nós estamos proseguindo executar step-by-step as seguintes tarefas:
- o dinfo aponta à estrutura do diskinfo_t que contem a informação dos parâmetros requeridos pela operação executada pela função do _bios_disk.
- Porque nós estamos indo escrever a informação no primeiro setor do disco conseqüentemente a posição do setor será como segue:
Parâmetro |
O que significa |
dinfo.drive = 0x00 |
Indica a movimentação 0 que é a movimentação de disco flexível (a:) |
dinfo.head = 0 |
Aponta ao número principal 0 |
dinfo.track = 0 |
Aponta à trilha 0 |
dinfo.sector = 1 |
Primeiro setor do disco flexível que é o setor 1 |
dinfo.sector = 1 |
O número dos setores a considerar para escreve a operação = 1 |
dinfo.buffer = dbuf |
Os dados protegem para a operação |
- Abrir a lima em que a informação da imagem do carregador de 512 bytes de um disco flexível fresco foi armazenada pelo programa precedente. A lima - o nome e o trajeto são armazenados no fname da disposição de caráter.
- Inicializar o sistema de disco usando a interrupção 13H (função 00h) onde regs.h.ah = 0x00 apontam à função 00 H e regs.h.dl = 0x00 são usados para a: flexível. E int86 (0x13, ®s, ®s) invoca o serviço 13 INTERNOS H. da interrupção do MS-DOS.
- o _bios_disk (_DISK_WRITE, &dinfo) escreve a informação do carregador da lima especificada ao primeiro setor (especificado) do disco flexível.
- O status retornado é armazenado no resultado que está usado indicar a mensagem para a operação bem sucedida ou indicar uma mensagem de erro na tela se qualquer erro ocorrer.
Deixar-nos fazê-lo com único programa
Eu espero, você tenho compreendido agora o conceito atrás de tal tipo de recuperação dos dados do disco flexível. Depois que isto nos deixou imaginar um único programa que dê os mesmos resultados que nós começamos com a ajuda do discutido previamente dois programas.
Nós fazíamos as seguintes tarefas com os programas recentemente discutidos:
- Armazenar a informação do carregador de um disco flexível bom a uma lima
- Colar esta informação ao primeiro setor do disco flexível atualmente ilegível
A lima que nós nos estávamos usando armazenar a imagem do carregador estava trabalhando como a ponte intermediária para conectar as operações de ambos o programa. Mas se nós definirmos esta informação em nosso coding do programa própria do carregador, nós não necessitamos criar uma lima assim como nós não necessitamos ler a informação do carregador do disco flexível da lima.
Em nosso programa seguinte nós estamos dizendo nosso programa sobre o que tem que escrever no primeiro setor do disco flexível ilegível e assim nós podemos evitar dois programas diferentes para fazer a mesma tarefa e nós podemos recuperar nossos dados na mesma maneira que antes do único programa novo.
O programa torna-se assim simples com menos coding e nós podemos reduzir a probabilidade da ocorrência da lima lida, erros escrevemos ou dos criações. Nós estamos fazendo as seguintes quatro tarefas importantes neste programa:
Não pensar do programa difícil de escrever e compreender vendo a informação hexadecimal de 512 bytes do dbuf [512]. Mais tarde, nós discutiremos a maneira fácil escrever esta informação para seu coding do programa. |
- Definir a informação record do carregador do DOS no sistema hexadecimal a ser escrito no primeiro setor do disco flexível atualmente ilegível.
- Restaurar o sistema de disco para inicializar o disco flexível (13H INTERNO, a função 00H).
- Escrever o registro do carregador do DOS ao primeiro setor do disco flexível
- Verificar para ver se há a conclusão bem sucedida da operação e do erro, se ocorrido.
|