Message-ID: <3D02677A.A84460B8@erols.com> Date: Sat, 08 Jun 2002 16:22:18 -0400 From: Peter Harbour X-Mailer: Mozilla 4.7 [en] (Win98; U) X-Accept-Language: en MIME-Version: 1.0 To: djgpp AT delorie DOT com Subject: IRQ handling in windows DOS box Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Reply-To: djgpp AT delorie DOT com I have written an application in DJGPP version 2.03 which uses the printer port and its IRQ to communicate with another embedded computer (the physical host). The application needs to run in a slave mode, being commanded by the physical host, to respond to polling inquires from that physical host. It uses the PC's printer port IRQ to recognize the polls. The application uses a protected mode ISR written in C. I have run the application in pure DOS under CWSDPMI version 5 without any problems - the ISR recognizes the physical hosts polls just fine. However when I try to run the DJGPP application from within a DOS box under Windows98 the ISR will never recognize any polls. I use the services _go32_dpmi_set_protected_mode_interrupt_vector and _go32_dpmi_allocate_iret_wrapper under a Windows98 DOS box and they return properly. I just don't ever get any ISR hits. I have tried setting up the PC to run the HW interrupt on both IRQ5 and IRQ7 - neither of them work. I am not very knowledgeable about the intricacies of the DPMI host in a Windows98 DOS box (or if I'm even using the correct terminology). I just want to ask if anyone has any ideas or thoughts on what is different between the DPMI server in a Windows98 DOS box and CWSDPMI in pure DOS that would case an ISR servicing a HW IRQ to not ever be called. The C code of my application is somewhat big (>20 kbytes) so I won't list any of it here. But I would be happy to provide it if anyone has any suggestions. Pete.