delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1993/06/25/18:12:38

To: dave AT echologic DOT com (Dave Hayden 908- 946-1107)
Cc: djgpp AT sun DOT soe DOT clarkson DOT edu
Subject: Re: getvect() and setvect()
Date: Fri, 25 Jun 1993 15:02:49 -0700
From: Darryl Okahata <darrylo AT hpnmxx DOT sr DOT hp DOT com>

> Getvect() and setvect() don't appear to be supported in djgpp,
> apparently because the interrupts involve a task switch back to 16 bit
> land.  I've thought of a couple things that might get getvect() and
> setvect() working, but they are all really ugly and might not work at all.

     Another problem is that, when system(3) is executed, *ALL* 32-bit
code is swapped out to disk, including any 32-bit interrupt handlers.
This means that the interrupt vectors would be pointing off into deep
space ....  You'd probably have to add code to GO32 that temporarily
restores any changed interrupt vectors during system(3), but it's
conceivable that you'd want the interrupt handlers active during a
system(3) call (but you can't, because the handler code is sitting on
disk and not in memory).

     You're best off rewriting the code to not need the interrupts.  If
you can't, your only choice is to modify GO32, and the biggest problem
here is that the DEBUG32 code is currently as big as it can get (DEBUG32
is compiled using the small memory model, and the DEBUG32 code occupies
about 64KB).  I assume that you'd like to be able to debug the code?  ;-)

     -- Darryl Okahata
	Internet: darrylo AT sr DOT hp DOT com

DISCLAIMER: this message is the author's personal opinion and does not
constitute the support, opinion or policy of Hewlett-Packard or of the
little green men that have been following him all day.

- Raw text -


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