Page 1 of 1

DPMI TSR issues

Posted: Sat Sep 14, 2013 11:29 am
by bristlehog
Hail,

I am trying to make a DPMI-compatible TSR, that would leave no interrupt handlers or callbacks, but a memory block within lower 1Mb memory for further usage by hardware.

Using OpenWatcom C, I made a simple enough program that calls 0C00h (TSR preparation routine) and 0C01h (termination routine) DPMI functions. However, with different four DOS extenders available to use with OpenWatcom I get these results:

PMODE/W: 0C00h call fails with generic error
Causeway: 0C00h call succeeds, but 0C01h won't terminate the program - it works further, though it shouldn't after such a call
DOS/4GW: crashes
DOS/32A: crashes

I have read over the net, that those extenders do not support DPMI 1.0 specification, in which DPMI TSR are defined. There is a DPMIONE extender that supports DPMI 1.0... but except TSR functions :(

Is there a way to make a protected mode compatible TSR, or are that DPMI TSR functions (0C00h and 0C01h) completely hypothetic?