X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f From: JJ Newsgroups: comp.os.msdos.djgpp,comp.os.msdos.programmer Subject: Re: resident service providers Date: Sat, 22 Feb 2014 04:40:21 +0700 Organization: ? Lines: 60 Message-ID: <1c5guowhliwu1$.1f6ifzip4rzv9$.dlg@40tude.net> References: Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Injection-Info: mx05.eternal-september.org; posting-host="18890b685e16d42ea865902e4c1b85ae"; logging-data="9950"; mail-complaints-to="abuse AT eternal-september DOT org"; posting-account="U2FsdGVkX19gOPwx6OVq4hLXJfFgzgoAJioa7SUOODs=" User-Agent: 40tude_Dialog/2.0.15.1 X-Face: \*\`0(1j~VfYC>ebz[&O.]=,Nm\oRM{of,liRO#7Eqi4|!]!(Gs=Akgh{J)605>C9Air?pa d{sSZ09u+A7f<^paR"/NH_# On Fri, 21 Feb 2014 03:17:50 -0500, Martin Str|mberg > wrote: >> In comp.os.msdos.djgpp Rod Pemberton >> wrote: > >>> What I really need to know is how to code a resident service provider >>> (DPMI enabled TSR) for a DPMI 0.9 host which doesn't support the two >>> DPMI TSR calls (0c00h, 0c01h) that DPMI 1.0 supports. >> >> This isn't exactly what you want, but it should do that quickly and >> easily: >> Take the source code from CWSDPMI and remove support for those two TSR >> calls and recompile... >> > > What?!?! It's not April 1st yet ... And, I don't see a smiley. > > DJGPP provides functions for calling those two DPMI 1.0 calls, but CWSDPMI > being mostly DPMI 0.9 doesn't implement those two calls. So, I don't see > how removing two non-existant calls from the CWSDPMI source and recompiling > would help me quickly and easily ... If you're saying it's a long, painful > path not worth traveling, that would've been clearer to simply say. > > AIUI, CWSDPMI is DPMI 0.9 compliant with a few DPMI 1.0 calls and features. > But, CWSDPMI doesn't support the DPMI 1.0 TSR calls 0c00h and 0c01h. > AFAIK, > eighteen other DPMI hosts don't support the DPMI 1.0 calls 0c00h and 0c01h > either. Even DPMIONE which is almost DPMI 1.0 compliant doesn't support > 0c00h and 0c01h. I know there is probably another twenty DPMI hosts I > could check ... > > The issue is I'd like to code a resident service provider. That's a PM > TSR which uses DPMI to install PM interrupts. The first issue is DPMI 1.0 > specification provides for this via 0c00h and 0c01h calls. However, I've > not been able to find a DPMI 1.0 host that supports 0c00h and 0c01h calls. > The second issue is DPMI 0.9 hosts don't have support for resident service > providers at all. A handful of DPMI 0.9 hosts is what I need the resident > service provider to work with. > > If I could code a test resident service provider for a DPMI 1.0 host which > supports 0c00h and 0c01h, it might help me figure out how to code one for > a DPMI 0.9 host which doesn't support 0c00h and 0c01h, or whether it's > even possible without needing to update each DPMI host. > > Rod Pemberton Implementing the DPMI TSR functions outside the DPMI host that has no TSR support will depend on its client termination handling. Whether the host perform client cleanups on DOS TSR call, or not. Without this knowledge, it would be difficult to implement and to get consistent result between different DPMI hosts. If the DPMI host does client cleanups on DOS TSR call, implementation of DPMI TSR functions will require the original Int 21h, since DPMI hosts hook Int 21h for client termination handling. So, a small DOS TSR must be loaded first, before the DPMI host is loaded, in order to save the original Int 21h, where it can be retrieved later by the DPMI TSR functions implementation.