hi,
the section about virtual-8086-mode extension in the intel manual is a bit confusing to my. I hope you can clarify this a bit.
I've enabled vme already (bit 0 of cr4) and I've set up my v8086 task correctly. It is runing so far. Then I have added a Interrupt Redirection Map in the TSS and set the bit for interrupt 0xFF. When I'm calling this interrupt from v8086 then it raises a general protectetion fault. Is this the behaviour normal? I thought it would call the protected mode interrupt 0xFF, or not?
To verify that I set the right bit in the TSS, I cleared it and the v8086 interrupt is correctly executed.
Thanks in Advance!
Virtual-8086-Mode Extensions
- Pype.Clicker
- Member
- Posts: 5964
- Joined: Wed Oct 18, 2006 2:31 am
- Location: In a galaxy, far, far away
- Contact:
Re:Virtual-8086-Mode Extensions
raising a GPF when "int nn" is invoked in v86 mode is normal. What the interrupt redirection map allows is to "bypass" that GPF and directly invoke "int nn" _in the realmode interrupt vector table_ ... so if you set the 16th bit of the table, "int 0x10" will happily invoke VGA BIOS interrupt without going through your virtual mode monitor.
Re:Virtual-8086-Mode Extensions
according to the Intel Manual it should be cleared, shouldn't it? :Pype.Clicker wrote:... so if you set the 16th bit of the table, "int 0x10" will happily invoke VGA BIOS interrupt without going through your virtual mode monitor.
"When a bit in this bit map is set, it indicates that the associated software interrupt (interrupt generated with an INT n instruction) should be handled through the protected-mode IDT and interrupt and exception handlers. When a bit in this bit map is clear, the processor redirects the associated software interrupt back to the interrupt table in the 8086 program (located at linear address 0 in the program?s address space)."
Thanks pype. I got that now.