Xref: news-dnh.mv.net comp.os.msdos.djgpp:1603 Path: news-dnh.mv.net!mv!news.sprintlink.net!in1.uu.net!salliemae!europa.chnt.gtegsc.com!cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!oitnews.harvard.edu!news.sesqui.net!rice!news!sandmann From: Charles Sandmann Newsgroups: comp.os.msdos.djgpp Subject: Re: v2.interrupts Date: Wed, 16 Aug 1995 13:51:44 CDT Organization: Rice University, Houston, Texas Lines: 21 References: Reply-To: sandmann AT clio DOT rice DOT edu Nntp-Posting-Host: clio.rice.edu To: djgpp AT sun DOT soe DOT clarkson DOT edu Dj-Gateway: from newsgroup comp.os.msdos.djgpp > interrupt with the _go32 calls AND the -go32 wrapper function. It now works > with out crashing but I can only get an interrupt rate of around 5khz which > doesn't crash the program. (I'm using a DX4/100 with 16Mb of RAM). > I'm was hoping to get anywhere between 20 & 40 Khz (at least 10khz). I would expect you to be able to get around 20Khz if: 1) You were running under Windows, QDPMI, or at least a better EMM than EMM386 (something like QEMM, 386max). 2) Your interrupt routine was coded in GAS (so did a minimal number of instructions, only saving/setting/restoring a few items). You set up the routine with __dpmi routines avoiding the wrapper overhead. 3) Your CPU was running almost completely in Protected Mode (ie no DOS or BIOS calls to be interrupted) and no page faulting. 4) You don't chain, and EOI the interrupt directly (from GAS code). > I was under the impression that dpmi interrupts didn't require these wrappers. The wrappers are not needed if you handle it all yourself (assembler). You must have wrappers if you expect a GCC subroutine to work, since it expects SS=DS=ES=CS base, and many other things which probably won't be true.