bosjoh, you mention you can't call realmode interrupts in DPMI applications. does this mean that the extender handles interrupts transparently to the application? even if you use a software interrupt called via asm file?
it's because i'm having problems with a 32bit dos app, when calling an interrupt to set the video mode (vbe 2.0). my instinct tells me it's a segment register assumed wrongly or something, which causes the interrupt to execute garbage code and soon after, crash.
the weird thing is, sometimes it works, sometimes it doesn't (a successful compile & link produces and executable that always works or always crashes). i've traced the crash to "int 10h" in the function that sets the video mode. and yes, the video mode is valid at the point where the interrupt is called. as i said, my instinct says it's wrongly assumed segment registers (since the interrupt executes in v86 mode, it relies on CS, DS, SS and stuff...) but how the hell do you fix this? (or even detect it)
i can send the source files if someone thinks they might know the solution or wants to investigate further (at this point, it's all or nothing, so i don't care if some of these files have code that i otherwise wouldn't give out). the compiler is watcom v11.0 and the assembler is TASM 4.1 (could just use WASM if you want). one file, vgovbe20.asm is not written by me (and it contains the mode setting code and crash, go figure)
(crash on line 593 of vgovbe20.asm)