Making the image of DOS Boot Record of a good floppy
To store the image of boot record of fresh floppy, the program must do the following three tasks:
- Read exactly first 512 bytes of the good floppy
- Check for the successful read operation (Most important)
- Store these 512 bytes to the specified filename and destination path
The sector of floppy is 512 bytes and it is necessary to copy the exact image of the sector. It is most important and necessary step in case of any type of operations applied on floppy to check whether the operation was successful or not.
There may be any initialization problem even with the good and fresh floppy disk. That is why in most of the cases when the operation is performed on floppy disks, first of all initialization of floppy disks is performed in the programming with the reset disk operation (Function 00 H of INT 13H).
If Even after initialization the recently inserted floppy disk or changed floppy disk causes any reading error you are advised to run the program again, most probably it may work this time.
The following program is to perform these specified tasks. Let us see how it proceeds:
/* Store The Boot Image to a file from a Fresh Floppy
Disk */
#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; /* drive number for A: */
dinfo.head = 0; /* disk head number */
dinfo.track = 0; /* track number */
dinfo.sector = 1; /* sector number */
dinfo.nsectors = 1; /* sector count */
dinfo.buffer = dbuf; /* data buffer */
clrscr();
gotoxy(10,3);cprintf("Enter The File Name And Path To Store Boot Image");
gotoxy(5,5);
gets(fname);
fp=fopen(fname,"wb");
if((fp=fopen(fname,"wb"))==NULL)
{
highvideo();
gotoxy(10,10);cprintf("File Could Not Be created");
getch();
exit(0);
}
|