I have written a ISR for int 9h by assembly in Real Mode. In this ISR, I call INT 13h, AH=0x02 for writing some data on Hard Disk. But data aren't written on Hard Disk. Also int 13h, ah=0x02 doesn't work too (Read data from Hard Disk). after call int 13h, Carry Flag is On, but AH and AL are zero. When I use this code out of ISR, it's work! Why INT13h in a ISR doesn't work, but other interrupt, for example INT10h work correctly?
Asked
Active
Viewed 374 times
2
-
I'm Writing a boot loader. My code runs before any OS. – CoyBit Sep 15 '11 at 13:24
-
1Please post your ISR code so we can see what you are trying. – ughoavgfhw Sep 15 '11 at 14:14
-
1Int 9 is a hardware interrupt, you have to be careful what you do. I don't expect int13 to be re-entrant. This is otherwise guessing with nothing to look at. – Hans Passant Sep 15 '11 at 16:05
1 Answers
2
The simple answer is thatint 13h
will not complete successfully without the hard drive hardware interrupt IRQ 5 -int 0Dh
which will not occur until the PIC is acknowleged at the end of keyboard hardware interrupt IRQ 1 -int 9h
.
The happy answer is that it is much simpler to use int 16h ah=0
to wait for a keypress.

Mike Gonta
- 644
- 6
- 11