In the init_floppy routine, trying to re-calibrate... I am using the first drive...
so I send the cmd and drive # to the FDC, got stuck in the infinite loop that is
supposed to exit upon irq6 interrupt... what could go wrong here?
floppy re calibration not getting irq6
Re: floppy re calibration not getting irq6
Anything that can go wrong with IRQs normally: IRQ not enabled in the sender, IRQ masked in the PIC/APIC, interrupt flag not set, IDTR points to Nirvana, IDT gate for the interrupt is garbled. Try to exclude some of these possibilities (e.g. if IDTR was set wrong, then no other interrupt would work, either).ITchimp wrote:what could go wrong here?
Carpe diem!
Re: floppy re calibration not getting irq6
I have made a few checks. eflag's irq enable bit is on...
also the previous times the interrupt and irq routine works... (as I reset FDC by
writing a zero to DOR)...
any suggestions??
My code snippet below, I got stuck in the while loop
also the previous times the interrupt and irq routine works... (as I reset FDC by
writing a zero to DOR)...
any suggestions??
My code snippet below, I got stuck in the while loop
Code: Select all
int st0, cy1;
floppy_motor(1);
print("start the timer \n");
//magic();
//exec(run_floppy_timer);
int i=0;
for (i=0;i<10;i++){
floppy_write_cmd(RECALIBERATE); // 7
floppy_write_cmd(1); // select first drive
//irq6 = 1;
//sti();
while(irq6);