Comments on Program coding:
In the coding of the program, every step is same as in previous program except the data buffer dbuf2[512], which we are using to handle the error generated by bad sector during the Disk reading operation and to maintain the size of the image file.
By doing this, we are filling the space of the information, which we failed to read from the bad sector and now we are writing the pseudo information of 512 bytes so that we may maintain the accuracy of disk image.
Paste the Data from the file to the physical surface of fresh floppy:
In this step, we paste the data stored in the file by the previous program, to the physical surface of the fresh floppy, sector by sector in the same way by which we copied it to the file.
The program proceeds with the following main steps:
- Open the file in which we stored the surface data of the unreadable floppy temporarily.
- Initialize the disk system properly by the resetting function 00H of INT 13H.
- Write the information on the sectors of the fresh floppy from the file.
- Display the write status simultaneously to find or avoid the occurrence of errors.
The program source code has been given below. Let us examine how it works:
/* Program to write the data on the sectors of the surface of fresh floppy from the file, created by the previous program */
#include <bios.h>
#include <stdio.h>
void main(void)
{
int head,track;
union REGS regs;
int result,i,sector;
int count =0;
char filename[80];
struct diskinfo_t dinfo;
static char dbuf[512];
FILE *fp;
clrscr();
printf("\n Enter The Name of file with Path to store The Data Temporarily\n");
gets(filename);
if((fp=fopen(filename,"rb"))==NULL)
{
printf("Could Not Create The File, Press any Key To EXIT");
getch();
exit(1);
}
|