Xref: news2.mv.net comp.os.msdos.djgpp:4638 From: jpdelprat AT teaser DOT fr (Jean-Pierre) Newsgroups: comp.os.msdos.djgpp Subject: Help about Critical Error Irq Handler Date: Wed, 05 Jun 1996 18:20:34 GMT Organization: Guest of France-Teaser Lines: 67 Message-ID: <4p4q52$ic4@teaser.fr> NNTP-Posting-Host: clt-e26233c2.teaser.fr To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Mayday !! Could anyone tell me what this piece of code doesn't work ? #include #include #pragma pack(1) #include #pragma pack() #include #include void Int24Handler() {}; // Should set al register to 0 but // I don't know how to void main() { char buffer[260]; _go32_dpmi_seginfo old_int24_handler; _go32_dpmi_seginfo addr; // Install Critical Error handler addr.pm_offset=(int)(Int24Handler); addr.pm_selector=_go32_my_cs(); _go32_dpmi_get_protected_mode_interrupt_vector(0x24,&old_int24_handler); _go32_dpmi_set_protected_mode_interrupt_vector(0x24,&addr); // Read disk a: (no disk in drive) setdisk(0); // A: getcwd(buffer,260); setdisk(2); // C: // Remove Critical Error handler _go32_dpmi_set_protected_mode_interrupt_vector(0x24,&old_int24_handler); } What i get is : Exiting due to signal SIGSEGV General Protection Fault at eip=00001001 eax=00001800 ebx=c0ee0320 ecx=00000071 edx=0000000f esi=000001d6 edi=00040002 ebp=000000d7 esp=00000fdf cs=00a7 ds=00af es=00b7 fs=0087 gs=00bf ss=017b Call frame traceback EIPs: 0x00001001 Drive not ready--close door R(etry), I(gnore), F(ail), or A(bort)? Thank you very much, Jeepy