www.delorie.com/archives/browse.cgi | search |
Xref: | news-dnh.mv.net comp.os.msdos.djgpp:1468 |
Path: | news-dnh.mv.net!mv!news.sprintlink.net!howland.reston.ans.net!swrinde!news.uh.edu!uuneo.neosoft.com!news!sandmann |
From: | Charles Sandmann <sandmann AT praline DOT no DOT NeoSoft DOT com> |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | Re: V2 interrupts |
Date: | Wed, 09 Aug 1995 15:25:23 CDT |
Organization: | NeoSoft Internet Services +1 713 968 5800 |
Lines: | 17 |
References: | <DD15Mt DOT IHz AT jade DOT mv DOT net> |
Reply-To: | sandmann AT clio DOT rice DOT edu |
Nntp-Posting-Host: | praline.no.neosoft.com |
To: | djgpp AT sun DOT soe DOT clarkson DOT edu |
Dj-Gateway: | from newsgroup comp.os.msdos.djgpp |
> Especially since I want to log 4 Channels at about 10-20kHz. > I hear that V2.0beta handles interrupts better. > Is it just that the interrupt routines don't get paged out of memory > or are there other fixes/advantages. There are many fixes. The wrappers had bugs, and GO32 had bugs. Do not hook both RM & PM interrupts in V2, only PM (since RM intertups are reflected). You need to lock all the memory your handler uses; this is virtually impossible to track down in C and the wrappers don't lock. I only suggest using the wrappers for environments that will not page, and to write assembler routines for production/unknown environment code. On a 486/33 you can handle about 10K interrupts per second if each requires a mode swap. If you EOI/IRET the interrupt instead of chaining you should be able to get a higher frequency which might meet your needs. If this doesn't work, you might need a ring 0 DPMI which does not support virtual memory, which could cut the interrupt overhead.
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |