www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2002/06/08/16:39:15

Message-ID: <3D02677A.A84460B8@erols.com>
Date: Sat, 08 Jun 2002 16:22:18 -0400
From: Peter Harbour <pharbour AT erols DOT com>
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
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.

- Raw text -


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