Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.os.msdos.programmer > #611
| From | "Rod Pemberton" <do_not_have@notemailntt.cmm> |
|---|---|
| Newsgroups | comp.os.msdos.programmer |
| Subject | Re: Changing a DPMI host, but keeping the DOS extender |
| Date | 2012-05-20 05:38 -0400 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <jpae1d$80q$1@speranza.aioe.org> (permalink) |
| References | <jp9ck9$5eg$1@speranza.aioe.org> <a0f39c43-77d7-451f-9225-736edb4585a3@f14g2000yqe.googlegroups.com> |
"Rugxulo" <rugxulo@gmail.com> wrote in message news:a0f39c43-77d7-451f-9225-736edb4585a3@f14g2000yqe.googlegroups.com... > On May 19, 7:08 pm, "Rod Pemberton" <do_not_h...@notemailntt.cmm> > wrote: > > The other day I had this thought: > > > > "I wish I could keep this DPMI host's DOS extender, > > but change it's DPMI host..." > > > > That would be useful to me. The issue I'm seeing is that if I start a > > DPMI host with a DOS extender, and then start a DPMI host without > > a DOS extender, both as single use, each runs and exits separately of > > the other. That indicates to me both are installed, but neither is > > activated until a DPMI program activates DPMI. Of course, I'm trying > > to get *merged* or *replaced* functionality, i.e., the DPMI host without > > the DOS extender to replace the DPMI functionality of the DPMI host > > with DOS extender. I take it this may require activating the DPMI > > host(s), and messing around with Int 0x21, AH=4C (DPMI's exit, not > > DOS exit) or exiting via some other means to bypass the DPMI exit so > > it stays active(?). Anyone try something like this? Any ideas? > > Does the extender not implement the whole standard? Is it a 0.9 > subset? > I don't know. That didn't concern me. It's DPMI 0.9. > Or are you trying to bypass something complex (like Windows) > to use fuller functionality? No, just a standard DPMI host+DOS extender AFAIK. Specifically, DOS4GW used with OpenWatcom (OW). Japheth's HDPMI32 is a big improvement, but the idea came to me with DOS4GW. I still want to see how CWSDPMI (v5) - specifically - would work as a DPMI host with OpenWatcom DPMI executables. Unfortunately, CWSDPMI doesn't have that DOS extender stuff the OW needs built-in, AIUI. > The latter is possible but very hard (see > Japheth's NTDPMIX or QLINK's DPMIONE shims). Ok. I take a cursory look at those. I don't recall shims with DPMIONE... Yeah, not finding the shims ... Did you mean 386SWAT? NTDPMIX is for Win32... > It sounds like you want to run one DPMI host but then override it > later. Not sure that will work, the extender probably doesn't > initialize anything if already found enabled (int 2Fh, 1687h > succeeds). > > In all fairness, you're probably better off running the main one you > prefer first (e.g. "hdpmi32 -r") and then running whatever, instead of > running a weaker subset and shelling out to something that needs a > fuller implementation. If not made resident, it's more like they're queuing up. E.g., I'll use HDPMI for this example since it can be run from the command line without an executable, whereas DOS4GW and DOS32A etc for OW need a compatible executable as an argument. C:\HDPMI C:\CWSDPMI C:\<dpmi_application> ; REM uses CWSDPMI - CWSDPMI exits C:\<dpmi_application> ; REM uses HDPMI - HDPMI exits C:\<dpmi_application> ; REM uses default host of application C:\<dpmi_application> ; REM uses default host of application No overlap. No collision. No merge of functionality. One runs. Then, the other. If both are made resident, only the last one will become active. C:\HDPMI -r C:\CWSDPMI -p C:\<dpmi_application> ; REM uses CWSDPMI C:\<dpmi_application> ; REM uses CWSDPMI C:\<dpmi_application> ; REM uses CWSDPMI If the "dpmi_application" is a DJGPP app, then it executes, but if it's an OW app, it fails to work because CWSDPMI doesn't work with OW. If reversed, then everything works because HDPMI works for both. If the first is made resident, the second one will be active for one execution of an application, then the permament one takes over. C:\HDPMI -r C:\CWSDPMI C:\<dpmi_application> ; REM uses CWSDPMI C:\<dpmi_application> ; REM uses HDPMI C:\<dpmi_application> ; REM uses HDPMI C:\CWSDPMI C:\<dpmi_application> ; REM uses CWSDPMI C:\<dpmi_application> ; REM uses HDPMI C:\<dpmi_application> ; REM uses HDPMI C:\<dpmi_application> ; REM uses HDPMI I think, more of a guess, the PM entry address for the DPMI host must be called to activate the DPMI host. So, the DPMI hosts chain one of the interrupts, the first one runs and exits, then the second one ... I'm guessing that means I'll have to run something between HDPMI and CWSDPMI to activate HDPMI, but then perhaps not exit properly so it stays active (?) and doesn't cause DOS to crash... Then, load CWSDPMI. But, I suspect that'll leave the first host in PM thereby blocking the second from working ... I suspect the DPMI hosts are chaining an interrupt, probably one of the Int 0x2F calls used by DPMI. So, maybe I could use that to cause both to execute/activate. E.g., trap the call and call it twice ... Most likely, the DPMI exit (same call as DOS exit) unchains a 2F interrupt. I'll give it few days to think about it and poke around it, and then either give it a serious go or forget about it. Another option was to ask Japheth, or just modify his HDPMI source if available, to disable DPMI portion. It seems HDPMI has an argument, like -m or something, which disables DPMI 1.0 calls. So, that could be enhanced, perhaps, to disable all DPMI calls. Rod Pemberton
Back to comp.os.msdos.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Changing a DPMI host, but keeping the DOS extender "Rod Pemberton" <do_not_have@notemailntt.cmm> - 2012-05-19 20:08 -0400
Re: Changing a DPMI host, but keeping the DOS extender Rugxulo <rugxulo@gmail.com> - 2012-05-19 19:07 -0700
Re: Changing a DPMI host, but keeping the DOS extender "Rod Pemberton" <do_not_have@notemailntt.cmm> - 2012-05-20 05:38 -0400
Re: Changing a DPMI host, but keeping the DOS extender Rugxulo <rugxulo@gmail.com> - 2012-05-20 09:15 -0700
Re: Changing a DPMI host, but keeping the DOS extender "Rod Pemberton" <do_not_have@notemailntt.cmm> - 2012-05-20 20:46 -0400
Re: Changing a DPMI host, but keeping the DOS extender Rugxulo <rugxulo@gmail.com> - 2012-05-21 16:26 -0700
Re: Changing a DPMI host, but keeping the DOS extender "Rod Pemberton" <do_not_have@notemailntt.cmm> - 2012-05-22 03:39 -0400
Re: Changing a DPMI host, but keeping the DOS extender Rugxulo <rugxulo@gmail.com> - 2012-05-22 08:41 -0700
Re: Changing a DPMI host, but keeping the DOS extender Rugxulo <rugxulo@gmail.com> - 2012-05-22 16:14 -0700
Re: Changing a DPMI host, but keeping the DOS extender "Rod Pemberton" <do_not_have@notemailntt.cmm> - 2012-05-24 15:38 -0400
Re: Changing a DPMI host, but keeping the DOS extender Rugxulo <rugxulo@gmail.com> - 2012-05-24 14:06 -0700
Re: Changing a DPMI host, but keeping the DOS extender Ross Ridge <rridge@csclub.uwaterloo.ca> - 2012-05-25 02:14 -0400
Re: Changing a DPMI host, but keeping the DOS extender Rugxulo <rugxulo@gmail.com> - 2012-05-25 15:55 -0700
Re: Changing a DPMI host, but keeping the DOS extender Ross Ridge <rridge@csclub.uwaterloo.ca> - 2012-05-25 21:42 -0400
Re: Changing a DPMI host, but keeping the DOS extender Ross Ridge <rridge@csclub.uwaterloo.ca> - 2012-05-25 22:06 -0400
Re: Changing a DPMI host, but keeping the DOS extender Rugxulo <rugxulo@gmail.com> - 2012-05-25 23:03 -0700
Re: Changing a DPMI host, but keeping the DOS extender "Rod Pemberton" <do_not_have@notemailntt.cmm> - 2012-05-26 07:33 -0400
Re: Changing a DPMI host, but keeping the DOS extender Ross Ridge <rridge@csclub.uwaterloo.ca> - 2012-05-26 20:10 -0400
Re: Changing a DPMI host, but keeping the DOS extender "Harry Vaderchi" <admin@127.0.0.1> - 2012-05-28 07:38 +0100
Re: Changing a DPMI host, but keeping the DOS extender Ross Ridge <rridge@csclub.uwaterloo.ca> - 2012-05-20 19:20 -0400
csiph-web