Mail Archives: djgpp/1995/05/26/16:28:42
#include <go32.h>
#include <dpmi.h>
#include <stdlib.h>
_go32_dpmi_registers regs;
my_handler(_go32_dpmi_registers *r)
{
}
main()
{
_go32_dpmi_seginfo info;
_go32_dpmi_seginfo old_vector;
_go32_dpmi_get_real_mode_interrupt_vector(0x63, &old_vector);
info.pm_offset = (u_long)my_handler;
info.pm_selector = _go32_my_cs();
_go32_dpmi_allocate_real_mode_callback_iret(&info, ®s);
printf("%x %x\n", info.rm_segment, info.rm_offset);
_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.
--
Ned T. Crigler
(crigler AT sol DOT cms DOT uncwil DOT edu)
- Raw text -