/// 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);
}
while(count<512)
{
fscanf(fp,"%c",&dbuf[count]);
count++;
}
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 */
result = _bios_disk(_DISK_WRITE, &dinfo);
if ((result & 0xff00) == 0)
{
fclose(fp);
gotoxy(10,14);cprintf("¡Acertado!!! Espero que el disco blando pueda ahora trabajar.\n");
}
else
{
gotoxy(10,14);
cprintf("No puede leer la impulsión A, estado = 0x%02x\n",result);
gotoxy(10,16);
switch(result)
{
case 0x00:
cprintf("\n\nESTADO:¡Ningún error!!");
break;
case 0x01:
cprintf("\n\n ESTADO: Mal comando");
break;
case 0x02:
cprintf("\n\n ESTADO: Marca de la dirección no encontrada");
break;
case 0x03:
cprintf("\n\n ESTADO: Tentativa de escribir al disco write-protected");
break;
case 0x04:
cprintf("\n\n ESTADO: Sector no encontrado");
break;
|