Reply 20 of 22, by maxtherabbit
- Rank
- l33t
mkarcher wrote on 2022-04-02, 11:57:Basic inspection shows: That's true. This AWEUTIL seems to rely on processor-based port-trapping instead of NMI feedback. Probab […]
Tiido wrote on 2022-03-31, 16:15:Here are the files that CT1920 CD installs : http://www.tmeeco.eu/BitShit/PCschit/CT1920.zip
There's AWEUTIL.EXE instead of normal AWEUTIL.COM, with much bigger size. I imagine it has some protected mode component to trap IO writes and whatnot.Basic inspection shows: That's true. This AWEUTIL seems to rely on processor-based port-trapping instead of NMI feedback. Probably, the goldfinch doesn't support NMI feedback at all. Actually, that makes a lot of sense, because contrary to the SB AWE32 which allocates ports for an MPU401 interface, the goldfinch only decodes the EMU8K ports.
Relying on VM86 port trapping doesn't mean this AWEUTIL works fine with protected mode games, though. It's more like the opposite: As long as no central DPMI server is present, protected mode games switch between EMM386 based real mode emulation and their own protected mode kernel which is unrelated to EMM386. So there is not EMM386-based port trapping in protected mode at all. AFAIK this matches the MEGA-EM specification: No protected mode support. The only generic way to get port trapping into a protected mode application is to provide an external protected mode kernel that will be used instead of the protected mode kernel bundled with the game. Nearly all games support interacting with external protected mode kernels using the DPMI specification. This is necessary to work inside the Windows DOS box, because you can't run a second protected mode kernel while Windows (no matter whether 3.1 or newer) is running.
So in fact there are two approaches to get port trapping (or other low-level extensions) into a protected mode game: Provide DPMI (that's what Windows 95 does to provide Soundblaster and MPU401 emulation in the DOS box), or replace the game-bundled protected mode kernel with a custom one (that's the approach of DOS32AWE).
Were someone to develop such a DPMI host, is there any reason this version of AWEUTIL would not work on a normal AWE card?