First post, by superfury
I know some code can disable A20 and triple fault/hardware CPU reset(using e.g. the 8042 Controller or the system board port B) etc. to generate a CPU reset and catch the CPU information stored in EDX::EAX(model number etc.) after reset using a #UD handler installed in memory.
Isn't A20 supposed to be reset when the CPU is reset using port B, 8042 Controller and Triple fault? I've built my emulator for any CPU reset(triggered by any of those) to enable the A20 line again(and disable any of those alternative masking the port to wrap from 1-2 (/3-4, 5-6MB etc., depending on the emulated motherboard(Compaq or not)).
Is that correct behaviour on a Compaq Deskpro 386(and IBM AT)?
Edit: What about the shutdown cycle caused by a triple fault? Will it always enable the A20 gate(from both port B and 8042)?
Edit: See also: http://www.rcollins.org/Productivity/A20Reset.html
Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io