First post, by superfury
Does the 16-bit windows 3.0 kernel use CPU features the 32-bit windows 3.0 kernel doesn't?
Somehow, the 386 kernel boots just fine in my x86 emulator, while the /s standard mode boot crashes (triple faults) executing a call to segment 0 in protected mode, which shouldn't happen (from segment 51h, so at privilege level 1)?
It seems somehow related to the protected mode changes I implemented recently (all protected mode mechanics using the BIU instead of direct memory accesses), but all testsuites I run tell me the implementation is fine (checking pretty much any protected mode feature of the 386 that's documented in the programmer's reference manual)?
Edit: From what I can tell, that selector 51h is supposed to maybe be the first loaded protected mode driver or something like that? The first time I see it entering protected mode, it jumps to a fixed address, from where various segment registers are setup, the LDTR is loaded (with base 110000h), after which a jump to the 51h selector is performed? So what is this 51h selector loaded program (that's faulting on an invalid CALL instruction with a NULL segment selector (literally jumping to 0:FFFFh))?
Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io