From: George Foot Newsgroups: comp.os.msdos.djgpp Subject: Re: Intermittent Run-Time of DJGPP App under Win95 Date: 26 Nov 1997 19:21:57 GMT Organization: Oxford University, England Lines: 24 Message-ID: <65hssl$h8s$1@news.ox.ac.uk> References: <348488fe DOT 61835728 AT news DOT uni-duisburg DOT de> NNTP-Posting-Host: sable.ox.ac.uk To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk On Wed, 26 Nov 1997 12:13:31 +0100 in comp.os.msdos.djgpp Michael Mauch wrote: : ******* wintimer.c: ******** [code snipped] Why do you use real mode calls for this? I thought there was a speed penalty in doing so. I don't suppose this is that significant since our timing resolution is milliseconds, though. AFAICS you can simply use inline assembler, in protected mode -- it works fine for me. On performing a raw int 0x2f, you get the protected mode entry point in %es and %edi; stick these in consecutive memory locations and do an lcall to call the VxD. I haven't yet had any problems with this technique on the VTD VxD (nor on the wsock VxD, where Dan Hedlund does this); it didn't work quite properly for the registry access VxD though. [The calls worked fine, and valid error codes were returned; I just couldn't pass parameters to it properly.] If you want to see code showing what I mean, look in vtd.c in this zip file: http://users.ox.ac.uk/~mert0407/downloads/vtd.zip. I wrote this before finding out what the different functions in the VTD were for, so please excuse the erroneous guesses in some of the comments ;). -- george DOT foot AT merton DOT oxford DOT ac DOT uk