Jukka Heinonen,
FPU handling got broken over half a year ago when I removed separate interrupt DLL and added support for DPMI32. Interrupt DLL made sure that builtin protected mode interrupt handlers saw regular IRET return record on stack. Current protected mode interrupt code does not provide an IRET record and real mode interrupt code never did provide it.
The EIP on the stack, from what I saw in the trace, was pointing to the interrupt. If we have that CS:IP available, then the offset math that I am unsure of could be avoided and we could just use those values. It would be optimal if we could tell the return code not to increment the instruction pointer, although I doubt that we could do that. My pointer math problem lies in the possibility that I could cross a real mode segment boundary while working on the interrupt in protected mode. Is there any way of forcing a return to the point at which the exception happened rather than having program flow return at the next instruction? Since you are working on code that handles both the real and protected mode pointers, I figure that you would be the best source of information. I'd like tog et time to work on making some more of the dos graphics code work. God Bless, --Robert 'Admiral' Coeyman