First post, by superfury
Usually, in virtual 8086 mode, the IVT isn't used at all.
The IDTR would point to a protected-mode IDT instead (for handling virtual-8086 mode interrupts in protected mode).
But when you enable Pentium's (and newer) VME mode, the extra bits below the IOPB table (interrupt redirection bitmap(IRB)) will (when cleared) cause interrupts to be handled in a 8086 (IVT) way apparently?
Will the CPU effectively force the IDTR's base and limit to 8086-compatiblity values (base 0 limit 3FFh) in that case?
Also, what happens when there's less than 32 bytes (256 IVT entries) between the IOPB pointer and the location it's pointing to? So for example, if you set it to 31 bytes ahead of the IOPB pointer, will it fetch into the top 8 bits for IVT entries 0-8?
Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io