delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/10/20/12:15:16

Date: Fri, 20 Oct 2000 18:16:38 +0200
From: "Eli Zaretskii" <eliz AT is DOT elta DOT co DOT il>
Sender: halo1 AT zahav DOT net DOT il
To: "TeddyLam" <teddylam AT geocities DOT com>
Message-Id: <9743-Fri20Oct2000181636+0300-eliz@is.elta.co.il>
X-Mailer: Emacs 20.6 (via feedmail 8.3.emacs20_6 I) and Blat ver 1.8.5h
CC: djgpp AT delorie DOT com
In-reply-to: <8spl4n$8qb1@imsp212.netvigator.com> (teddylam@geocities.com)
Subject: Re: Automatic EOI in DJGPP
References: <8sls17$6bk30 AT imsp212 DOT netvigator DOT com> <8smp19$iku$1 AT nets3 DOT rz DOT RWTH-Aachen DOT DE> <8sp1s3$2bh3 AT imsp212 DOT netvigator DOT com> <9003-Fri20Oct2000133109+0300-eliz AT is DOT elta DOT co DOT il> <8spl4n$8qb1 AT imsp212 DOT netvigator DOT com>
Reply-To: djgpp AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

> From: "TeddyLam" <teddylam AT geocities DOT com>
> Newsgroups: comp.os.msdos.djgpp
> Date: Fri, 20 Oct 2000 22:33:04 +0800
> 
> Since I've already replaced ISR of timer interrupt by my own, therefore I
> suppose DPMI can't do anything behind my back. Am I right?

No, you are wrong.  What exactly is wrong depends on the DPMI server,
among other factors.  The DJGPP startup code is also hooking the
keyboard interrupt, Int 9, and Int 75h, the co-processor interrupt.

> Turning on auto-EOI is not just so stright forward in DJGPP. I suscepts that
> the ICW2 (Vector base address?) is not 0x08h as usually should be set to.
> Every time after I set up the 8259, the program crash immediately, no matter
> whether I set or clear the auto-EOI bit.

I don't think the base address is the problem here.  Please post the
code that crashes, and also the complete crash message printed when it
crashes.

> Another factor that prevents me from further increase the data rate, is that
> it seems when you issue EOI by writing 20h to 8259, the DPMI will thinks
> that the protect mode ISR fails, it then switch to real mode and
> call the real mode ISR routine.

This is not true, in general.

> I read this from the README of PCTIME14 program.

PCTIME14 says that this happens only on Windows, and is most probably
some misfeature of Windows.  It doesn't happen with other DPMI
servers, AFAIK.

> I think except using Auto-EOI, there should
> be another method to prevent DPMI from calling the real mode ISR? isn't it?

The DPMI spec says that the interrupt is reflected to the real-mode
handler only if it is unhandled in protected mode.  So this should not
happen, and does not happen, according to what I know, except on
Windows.

And no, I'm not aware of any way to prevent this from happening on
Windows.

- Raw text -


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