Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

MPXplay under CWSDPMI (Users)

posted by Rugxulo Homepage, Usono, 17.10.2010, 06:02

(long reply follows, sorry!!)

> From a mail I got from Charles last month, in reply to some bug reports and
> feature requests (related to DOS TSR stuff):
>
> CWS> First, it's quite interesting to get an email about CWSDPMI. In the
> CWS> last 10 years, I have only gotten about a dozen emails, almost all
> CWS> more than 7 years ago.

While it's true that he never got many e-mails about it, part of that is a bit of an oversimplification. It's been pretty darn "stable" since 2000 (original r5). Everything before that had bugs, even if plenty of people still shipped r3 or r4 (and I had to track down and nag a few).

Unofficial r5 2002 (also on DJ's server) had three bug fixes, and there were other minor issues, but it was mostly moot because it worked fine. There wasn't much other work on alternative DPMI servers, esp. since r5 added CWSDSTUB support. What others still exist (EDIT: for DJGPP) are mostly leftover from years past and fairly abandoned (e.g. D3X, whose original Geocities site is long dead, and which I don't think anybody even mirrors besides me, sheesh, but DJ didn't like the non-commercial license, whereas I liked that it could totally build in NASM+GCC and also supports OpenWatcom).

For some reason, FreeDOS shipped an (old, buggy?) version of HDPMI32 renamed as CWSDPMI, which didn't help things.

CWS was (and still is, barely) a big fan of Win2k, but that had various bugs (as did original NT 4) in DPMI. Nevertheless, until Vista, NTVDM "mostly" worked with some workarounds (for leaking selectors) in DJGPP 2.03p2 (2001) and unfinished 2.04 beta (2003). So XP was a good platform for DJGPP, which is mostly frozen but still gets updated ports of major GNU tools (GCC, BinUtils, Emacs). So yeah, the need for CWSDPMI wasn't as crucial because Windows (multitasking, networking) "mostly" worked. But with sloppy Vista and AMD64, the need has become more apparent again. (Oh, and I nagged him to add SSE support for my lousy paq8o8 tweaked port.)

> At the time it was included as part of
> CWS> Symantec Ghost image. That was the last major usage I'm
> CWS> aware of.

Cygnus also (allegedly) used to use DJGPP a lot, and they are the reasons for v2 being less reliant on Turbo C (for the stub). Of course, I always wondered why they never bothered nagging about CWSDPMI (Borland C), but whatever. Remember that DJGPP has been around since 1989, and a decent Win32 port of GCC didn't appear until at least 1998 (Cygwin), maybe later, and MinGW forked from Cygwin initially.

A lot of people wanted to use DJGPP to write DOS graphics games, but with Allegro dropping support, XP being flaky, Vista being broken, and AMD64 being completely incompatible, that doesn't help either. (Plus many migrated exclusively to Linux and refused to port their apps or accept patches, which I think is a bit snobbish, but anyways ....)

> CWS> I have one outstanding
> CWS> request for some VLM window mapping software (>4GB
> CWS> testing), but other than that I was convinced that DOS (and
> CWS> the need for CWSDPMI) was completely dead.

Obviously that can't be true or he'd have never updated r5 in 2008 nor r7 in early 2010. Old "stable" r5 had issues with > 512 MB machines. Initially, they thought 128 or 256 MB would be "plenty for everyone" (famous last words), but when it doesn't load page tables high (like HDPMI32 or MWDPMI), that has issues and needs swapping somewhere (even to RAM drive). r7 uses 4 MB pages, if available, to avoid this. (This really only became apparently when machines started having 1 GB or more of RAM, circa 2007, due to Vista's heavily-increased footprint.)

He knows DOS isn't "dead" because one bugfix was for FreeDOS EMM386. FD 1.0 was released as "recently" as 2006, which took many volunteers a long time to build. It wasn't developed overnight or in a closet somewhere. (DOSEMU has its own DPMI host but does rely on a real DOS, like FreeDOS, to work, unlike DOSBox which only needs CWSDPMI or similar, by default.)

> CWS> I'm well aware of the hackiness of CWSDPMI - it was
> CWS> supposed to be an interim solution until MWDPMI was
> CWS> completed. But it worked well enough such that I really
> CWS> had lost interest in DPMI by 1997. Every few years someone
> CWS> would convince me to fix a problem over a vacation.

r5 fixed some stuff and added CWSDSTUB, "mostly" obsoleting the need for PMODE/DJ. It's just that many DJGPP ports started requiring LFNs more and more, which was much more convenient to build on XP or similar. (This was before MS totally gave up the ghost on DOS NTVDM support. Ever since 2001 with XP, Windows has been much much weaker in DOS and DPMI support. Part of the decline is due to that alone, which means no more native MS-DOS 7, only emulated NTVDM, a hacked MS-DOS 5 with bugs.)

Also, I don't think MW (Morten Welinder) has been involved in DJGPP in well over 15 years. So yeah, MWDPMI is still in CVS, but it's more than just a little painful to build it (old tools needed, esp. due to inline asm syntax changes, stupid GNU). And it lacks support for exceptions (or whatever) anyways, I think Eli Z. said once. So I'm not sure it was ever even considered stable or usable. If so, I'd be highly surprised. (I did build it once or twice, it sorta worked, but CWSDPMI is better. Heck, I even barely converted CWSDPMI r5 to asm to avoid a C compiler for build simplicity, but I never bothered finishing, esp. since I didn't like nor understand all the TASM constructs.)

> CWS> This was purely for size and simplicity reasons. The 3 lines to do
> it
> CWS> were trivial to write and worked without problems in testing, so
> since
> CWS> it never broke it never was fixed.

Don't forget that CWS is an extremely busy person (engineer for big oil). I'm just saying, he doesn't have tons of free time to update it every year or so because of his constant overtime and family, etc. I'm just saying, we're extremely lucky to have him contribute. I'm not a very good x86 programmer, so I don't understand pmode very well. Maybe it does have some more latent bugs, but overall it seems to work just fine.

> CWS> If you or someone else is actually still using CWSDPMI for real work,
> CWS> let me know !

"Real work" probably means commercial business. Last I heard, he still had various boxes running Win2k that he used DJGPP on (Bash, etc). He liked the lower footprint of 2K compared to XP. I know he wasn't happy about upgrading his company to Vista a year or so back (and I can't say I blame him). MS VS2010 doesn't even support Win2k or XP less than SP2 anymore without unofficial hacks. (I can't remember, was it July of this year when MS dropped 2K? Was that "extended" support? Most projects haven't totally dropped it, but that's been coming for a while, sadly. Luckily, XP users are more stubborn, barely. And no, I don't know of any reason why Win7 is truly any better, I don't understand the hype behind that.)

> So please send him a mail if you really want to use CWSDPMI, because I'm
> not using it. (I did not yet reply to him either. Maybe I'll prepare some
> patches for a CWSDPMI r8 first, but then again, who uses CWSDPMI?)

Who uses CWSDPMI? RAINE, VIM, FPC, UPX, 4tH, etc. Obviously DJGPP still uses it if available (stubedit -v blah.exe). Oh, and FBC, GPC, etc compilers and their outputs. Pretty much anybody using "GO32v2" or DJGPP or DPMI under DOS (if not already using HDPMI32 or one of the OpenWatcom extenders). Remember, OpenWatcom 1.0 was "only" released in 2003, and Debian hates their license, so it wasn't immediately available as early as DJGPP was, nor did it include modern updated Causeway (OW 1.8?) or DOS/32A (still doesn't, 7.2 is old). It can't be any worse than DOS/4GW or PMODE/W, which are either barely sold or totally abandoned, respectively (EDIT: and closed src).

 

Complete thread:

Back to the forum
Board view  Mix view
22762 Postings in 2122 Threads, 402 registered users (1 online)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum