/// Disco de incialización reajustando el sistema de disco \\\
gotoxy(10,2); printf("Inicializando el disco…");
for(i=0;i<3;i++)
{
inregs.h.ah=0x00; // Número de la función
inregs.h.dl=0x00; // Diskette
int86(0x13,&inregs,&outregs);
}
gotoxy(10,2); printf("El estado del disco es como…\n");
/* Explorar la diskette a partir de la 0 a 79 pistas (pistas totales 80) */
for(track=0;track<=79;track++)
for(head=0;head<=1;head++)
for(sector=1;sector<=18;sector++)
{
inregs.h.ah = 0x04; /// número de la función
inregs.h.al = 1; /// Número de sectores
inregs.h.dl = 0x00; /// Diskette
inregs.h.ch = track;
inregs.h.dh = head;
inregs.h.cl = sector;
inregs.x.bx = FP_OFF(buf);
sregs.es = FP_SEG(buf);
int86x(0x13,&inregs,&outregs,&sregs);
//// Imprimir el estado del sector explorado \\\\
switch(outregs.h.ah)
{
case 0x00:
cprintf("ESTADO: ¡Ningún error!!");
break;
case 0x01:
cprintf("ESTADO: Mal comando");
break;
case 0x02:
cprintf("ESTADO: Marca de la dirección no encontrada");
break;
case 0x03:
cprintf("ESTADO: Tentativa de escribir al disco write-protected");
break;
|