From: Travis Kuhn Subject: Interrupts To: djgpp AT sun DOT soe DOT clarkson DOT edu Date: Tue, 22 Nov 1994 20:14:22 -0800 (PST) I can't seem to find an answer to my question in any documents I can find, and no one on comp.os.msdos.programmer could help me, so this is my last resort. If I need to call an interrupt that expects a segment:offset pair to be in the registers, how do I do that in DJGPP? Here's the things that I've tried, with no success: 1. Put the segment and offset in the SREGS struct with segment = (unsigned int)(some_pointer) >> 4) and offset = some_pointer. Then call int86x passing the appropriate REGS and the SREGS. 2. Put the pointer in REGS in the offset register (ie, if the segment:offset pair go into es:di, I put the pointer in di) and call int86x. 3. Put the segment offset pair in _go32_dpmi_registers and call int86x, passing _go32_dpmi_registers instead of REGS. 4. Put the segment offset pair in _go32_dpmi_registers and call _go32_dpmi_simulate_int. 5. Put the pointer in _go32_dpmi_registers in the extended offset register (ie, if es:di is the pair, then put the pointer in edi) and call int86x. 6. Put the pointer in _go32_dpmi_registers in the extended offset register (as above) and call _go32_dpmi_simulate_int. None of these work. I can do other interrupts (without the need to set segment:offset pairs) with no trouble with either REGS/int86 or _go32_dpmi_registers/_go32_dpmi_simulate_int. Can someone tell me how to do this? Thanks for your time. ------------------------------------------------------------------------------ Travis Kuhn Clark College, Vancouver, Washington | PGP key trav AT clark DOT edu TIP#316 Play paintball! Fence! | available "But now I refuse to obey." -- Emacs | upon request.