I've put a jump instruction to the protected mode loader right before the interrupt call:
Code: Select all
[...]
cmp dl, [DriveNumber]
je drive_number_ok
mov [DriveNumber], dl
mov ah, 8
jmp ent_pmode ; SKIP LOADING KERNEL
int 0x13
[...]
Code: Select all
[...]
cmp dl, [DriveNumber]
je drive_number_ok
mov [DriveNumber], dl
mov ah, 8
int 0x13
jmp ent_pmode
[...]
I've also tried to skip this interrupt call, by setting my disk variables manually, but then in my next interrupt call (INT13/2, to actually read information from the disk) the same problem occurs.
I can't make any sense out of this, especially because INT13/8 shouldn't change anything else except a few registers that have no influence whatsoever on the protected mode code/jump.
If it changes anything, I have a Gigabyte G31M-ES2L motherboard with an Intel Core 2 Duo E7500 processor.
Thanks.