www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1995/05/26/16:28:42

Subject: What's wrong with this code?
To: djgpp AT sun DOT soe DOT clarkson DOT edu
Date: Fri, 26 May 1995 15:35:14 -0400 (EDT)
From: "Ned T. Crigler" <crigler AT sol DOT cms DOT uncwil DOT edu>

#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, &regs);
        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 -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019