Fabrication de l'image du disque d'initialisation de DOS d'un bon disque souple
Pour stocker l'image du disque d'initialisation du disque souple frais, la nécessité de programme font les trois suivants charge :
- Exactement lus 512 premiers bytes du bon disque souple
- Vérifier l'opération "lecture" réussie (la plus importante)
- Stocker ces derniers 512 bytes au chemin indiqué de nom de fichier et de destination
Le secteur du disque souple est de 512 bytes et il est nécessaire de copier l'image exacte du secteur. C'est l'étape la plus importante et la plus nécessaire en cas de n'importe quel type d'opérations appliquées sur le disque souple au contrôle, que l'opération ait été réussie ou pas.
Il peut y avoir n'importe quel problème d'initialisation même avec la bonne et fraîche disquette. C'est pourquoi dans la plupart des cas quand l'opération est effectuée sur les disquettes, d'abord de toute l'initialisation des disquettes est exécuté dans la programmation avec l'opération de disque de remise (fonction 00 H de 13H INTERNE).
Si même après l'initialisation la disquette récemment insérée ou la disquette changée cause n'importe quelle erreur de lecture que vous êtes conseillés d'exécuter le programme encore, il peut fonctionner le plus probablement cette fois.
Le programme suivant est d'exécuter ces derniers indiqué charge. Voyons comment il procède :
/* Stocker l'image d'initialisation à un dossier à partir d'une disquette fraîche */
#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; /* nombre d'entraînement pour A : */
dinfo.head = 0; /* nombre principal de disque */
dinfo.track = 0; /*nombre de voie */
dinfo.sector = 1; /* nombre de secteur */
dinfo.nsectors = 1; /* compte de secteur */
dinfo.buffer = dbuf; /* amortisseur de données*/
clrscr();
gotoxy(10,3);cprintf("Entrer dans le nom de fichier et le chemin pour stocker l'image d'initialisation");
gotoxy(5,5);
gets(fname);
fp=fopen(fname,"wb");
if((fp=fopen(fname,"wb"))==NULL)
{
highvideo();
gotoxy(10,10);cprintf("Le dossier n'a pas pu être créé");
getch();
exit(0);
}
|