Qué tienes que hacer es justo tomar un disco blando fresco y nuevo para hacer la imagen de su DBR y para copiar la salida de este programa del archivo de la destinación especificado y para pegar estos datos en tu programa. Hacer un cierto formato si procede. Veamos cómo trabaja:
/* Programa para hacer la imagen del cargador de la diskette en carácter de la TUERCA HEXAGONAL */
#include <bios.h>
#include <stdio.h>
int main(void)
{
struct diskinfo_t dinfo;
union REGS regs;
int result,i;
int count=0;
char fname[80];
static char dbuf[512];
FILE *fp;
dinfo.drive = 0x00; /* número de impulsión para A:*/
dinfo.head = 0; /* número principal del disco */
dinfo.track = 0; /* número de la pista */
dinfo.sector = 1; /* número del sector */
dinfo.nsectors = 1; /* cuenta de sector */
dinfo.buffer = dbuf; /* almacenador intermediario de los datos*/
clrscr();
gotoxy(10,3);cprintf("Entrar en el nombre del archivo y la trayectoria para almacenar la imagen del cargador en sistema de la TUERCA HEXAGONAL");
gotoxy(5,5);
gets(fname);
fp=fopen(fname,"wb");
if((fp=fopen(fname,"wb"))==NULL)
{
highvideo();
gotoxy(10,10);cprintf("El archivo no podía ser creado");
getch();
exit(0);
}
/// Inicializar el sistema de disco \\\
for(i=0; i<3; i++)
{
regs.h.ah = 0x00; /* Reajustar el sistema de disco */
regs.h.dl = 0x00; /* Diskette a: */
int86(0x13, ®s, ®s);
}
gotoxy(10,9); cprintf("El procurar leer en la impulsión de diskette:\n");
result = _bios_disk(_DISK_READ, &dinfo);
if ((result & 0xff00) == 0)
{
gotoxy(10,14);
cprintf("El disco leyó en la impulsión de diskette: acertado.\n");
while(count<512)
{
fprintf(fp,"0x%X, ",dbuf[count] & 0xff );
count++;
}
fclose(fp);
}
else
{
gotoxy(10,14);
cprintf("No puede leer la impulsión A, estado= 0x%02x\n",
result);
}
return 0;
}
|