Mail Archives: djgpp/1995/05/26/20:12:17
> _go32_dpmi_set_real_mode_interrupt_vector(0x63, &info);
> system("myprog.exe");
> _go32_dpmi_set_real_mode_interrupt_vector(0x63, &old_vector);
> _go32_dpmi_free_real_mode_callback(&info);
> }
>
> myprog.exe crashes when it does the int 0x63.
When you call system(), your program is paged out to memory. It
doesn't exist in the system. You are, effectively, asking to jump to
nothing.
go32 restores the interrupt vector table to the original values when
it system()s for you, and sets it back afterwards, since it knows that
you can't possibly service the interrupts.
In V2, this doesn't happen, and you should be able to do what you
want.
- Raw text -