VOGONS


First post, by superfury

User metadata
Rank l33t++
Rank
l33t++

What happens with the LVT or IO APIC delivery bit when a request is lowered(e.g. INTR is lowered) or kept raised(not changing) and acnowledged to the hardware(INTA presumably doesn't lower INTR when others are still pending)?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 1 of 1, by superfury

User metadata
Rank l33t++
Rank
l33t++

Well, Windows 95 revealed an APIC issue with multiple pending IRQs. It would INTA the first one, then until INTR was lowered and raised again(re-registering the request), it wouldn't register it anymore, since it only triggered the delivery bit when lowering/raising INTR(which doesn't lower in that case).

So, when handling a APIC-based hardware interrupt or LVT, it would need to re-check all raised/lowered connected INTR/NMI/IR lines to properly handle the effect of keeping the delivery bit set properly.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io