Che cosa dovete fare è giusto prendere un disco magnetico fresco e nuovo per fare l'immagine del relativo DBR e per copiare l'uscita di questo programma dalla lima della destinazione specificata e per incollare questi dati nel vostro programma. Fare una certa formattazione a richiesta. Vediamo come funziona:
/*Programma per fare l'immagine del caricamento del sistema del dischetto nel carattere del HEX*/
#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; /* numero di azionamento per A: */
dinfo.head = 0; /* numero capo del disc */
dinfo.track = 0; /* numero della pista*/
dinfo.sector = 1; /* numero del settore*/
dinfo.nsectors = 1; /* conteggio di settore */
dinfo.buffer = dbuf; /* amplificatore di dati */
clrscr();
gotoxy(10,3);cprintf("Entrare nel nome di archivio e nel percorso per immagazzinare l'immagine del caricamento del sistema nel sistema del HEX");
gotoxy(5,5);
gets(fname);
fp=fopen(fname,"wb");
if((fp=fopen(fname,"wb"))==NULL)
{
highvideo();
gotoxy(10,10);cprintf("La lima non ha potuto essere generata");
getch();
exit(0);
}
/// Inizializzare il sistema di disc \\\
for(i=0; i<3; i++)
{
regs.h.ah = 0x00; /* Ripristinare il sistema di disc */
regs.h.dl = 0x00; /* Dischetto a: */
int86(0x13, ®s, ®s);
}
gotoxy(10,9); cprintf("Attempting to read from Floppy
disk drive :\n");
result = _bios_disk(_DISK_READ, &dinfo);
if ((result & 0xff00) == 0)
{
gotoxy(10,14);
cprintf("Il disc ha letto dall'azionamento di dischetto: riuscito.\n");
while(count<512)
{
fprintf(fp,"0x%X, ",dbuf[count] & 0xff );
count++;
}
fclose(fp);
}
else
{
gotoxy(10,14);
cprintf("Non può leggere l'azionamento A, condizione = 0x%02x\n",
result);
}
return 0;
}
|