Date: Fri, 20 Oct 2000 18:16:38 +0200 From: "Eli Zaretskii" Sender: halo1 AT zahav DOT net DOT il To: "TeddyLam" 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 Precedence: bulk > From: "TeddyLam" > 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.