X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f From: Rugxulo Newsgroups: comp.os.msdos.djgpp Subject: Re: D. Borca's old ELF fork: mirror needed Date: Mon, 14 Dec 2009 22:20:52 -0800 (PST) Organization: http://groups.google.com Lines: 150 Message-ID: References: <5e9570db-ab42-4639-8be0-fa379184a4f7 AT o10g2000yqa DOT googlegroups DOT com> <83ocmunw2f DOT fsf AT gnu DOT org> <200911222338 DOT nAMNc3F4029885 AT delorie DOT com> <200911232318 DOT nANNIKok011648 AT delorie DOT com> <45c9cb3b-fae5-4b4c-9b06-bed5c0931015 AT p8g2000yqb DOT googlegroups DOT com> <200912140126 DOT nBE1QoI7013517 AT delorie DOT com> <38caef0f-6980-43b4-b215-6c05ff434010 AT z41g2000yqz DOT googlegroups DOT com> <200912142331 DOT nBENVT6j000793 AT delorie DOT com> NNTP-Posting-Host: 65.13.115.246 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: posting.google.com 1260858053 10550 127.0.0.1 (15 Dec 2009 06:20:53 GMT) X-Complaints-To: groups-abuse AT google DOT com NNTP-Posting-Date: Tue, 15 Dec 2009 06:20:53 +0000 (UTC) Complaints-To: groups-abuse AT google DOT com Injection-Info: s20g2000yqd.googlegroups.com; posting-host=65.13.115.246; posting-account=p5rsXQoAAAB8KPnVlgg9E_vlm2dvVhfO User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.33 Safari/532.0,gzip(gfe),gzip(gfe) Bytes: 8354 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Hi, On Dec 14, 5:31=A0pm, DJ Delorie wrote: > > Maybe not, but it's almost definitely "good enough" for most people > > here. > > I agree, I'm just trying to manage the slippery slope between "hosting > djgpp" and "hosting everything on the planet". Well, it's obviously not a very big file. I just hate the idea that some useful software would disappear. Sure, I guess *somebody* might not like the "need permission for commercial use" clause, but I'd be surprised if such a person existed in modern DOS circles. The main appeal to me was that a). it works (even with OpenWatcom), and b). it's very very easy to build with free tools (GCC + NASM). WDOSX has similar support for both, but it has some bugs and quirks that annoy me (esp. needing TASM), e.g. can't unpack or remove/replace the stub. Don't get me wrong, CWSDPMI is better, no doubt (virtual memory ftw!), but it needs (minimum) free Turbo C and TASM (which used to be in Turbo C++ Explorer 2006, but that's not online anymore ...). My attention span is too short and I'm too wimpy for most stuff, but I did take a stab at CWSDPMI about nine months ago: Archive: cws-new.zip Zip file size: 96694 bytes, number of entries: 27 -rw-a-- 3.0 fat 39786 t- defX 09-Mar-28 22:26 constub.asm -rw-a-- 3.0 fat 42778 t- defX 09-Mar-28 21:31 CONTROL.asm -rw-a-- 3.0 fat 2130 t- defX 00-Oct-18 20:46 CONTROL.H -rw-a-- 3.0 fat 24323 t- defX 00-Oct-08 19:34 CWSDSTUB.ASM -rw-a-- 3.0 fat 7341 t- defX 00-Oct-01 14:28 CWSPARM.C -rw-a-- 3.0 fat 12987 t- defX 09-Mar-28 21:35 DALLOC.ASM -rw-a-- 3.0 fat 428 t- defX 94-Dec-02 15:10 DOUTILS.ASM -rw-a-- 3.0 fat 13835 t- defX 97-Oct-15 23:10 DPMISIM.ASM -rw-a-- 3.0 fat 3169 t- defX 08-Jul-31 21:57 EHDRFIX.C -rw-a-- 3.0 fat 108044 t- defX 09-Mar-28 21:36 EXPHDLR.ASM -rw-a-- 3.0 fat 1352 t- defX 96-Jun-15 16:24 GDT.INC -rw-a-- 3.0 fat 913 t- defX 96-Jun-15 16:22 GOTYPES.H -rwxa-- 3.0 fat 2400 t- defX 09-Mar-28 23:03 make-cws.bat -rw-a-- 3.0 fat 3515 t- defX 09-Mar-28 22:46 MAKEFILE -rw-a-- 3.0 fat 11666 t- defX 08-Aug-18 23:25 MSWITCH.ASM -rw-a-- 3.0 fat 48949 t- defX 09-Mar-28 21:36 PAGING.ASM -rw-a-- 3.0 fat 1494 t- defX 96-Jun-15 16:24 SEGDEFS.INC -rw-a-- 3.0 fat 6472 t- defX 00-Oct-04 18:43 START.ASM -rw-a-- 3.0 fat 10878 t- defX 97-Oct-19 21:44 TABLES.ASM -rw-a-- 3.0 fat 1307 t- defX 96-Jun-15 16:24 TSS.INC -rw-a-- 3.0 fat 1282 t- defX 96-Jun-15 16:25 UNLOAD.ASM -rw-a-- 3.0 fat 5361 t- defX 09-Mar-28 21:30 UTILS.ASM -rw-a-- 3.0 fat 34303 t- defX 09-Mar-28 21:37 VALLOC.ASM -rw-a-- 3.0 fat 4026 t- defX 99-Nov-14 16:35 VCPI.ASM -rw-a-- 3.0 fat 415 t- defX 94-Nov-14 20:26 VCPI.INC -rw-a-- 3.0 fat 31332 t- defX 09-Mar-28 21:36 VDS.ASM -rw-a-- 3.0 fat 2347 t- defX 97-Oct-06 22:57 XMS.ASM 27 files, 422833 bytes uncompressed, 94106 bytes compressed: 77.7% And here's what the .BAT says: @echo off if "%DJGPP%"=3D=3D"" echo DJGPP needed only for EHDRFIX.EXE and CWSPARAM.EXE. if "%DJGPP%"=3D=3D"" echo TC++ works but isn't FOSS, so I'm trying to avoid it. if "%DJGPP%"=3D=3D"" goto end goto begin --------------------------------------------------------------------------- This is still not perfect conversion, but for now it at least works!! No longer needs TC++ (used it to make C -> ASM), but ... + needs TASM for half the .ASM files (can't be too hard to use JWasm here) + needs TLINK for linking .OBJs to the main .EXEs (standalone and stub) + needs JWasm for the .ASMs converted from C srcs (via TC++ 1.01) + needs LZASM for CWSDSTUB.ASM ("ideal", TASM32 5.3 doesn't work ???) + needs DJGPP only for EHDRFIX.EXE and CWSPARAM.EXE Future: only require JWasm (or NASM?) + WLINK (or Warplink?) + DJGPP -- rugxulo _AT_ gmail _DOT_ com -- Sunday, March 29, 2009 3:53 --------------------------------------------------------------------------- :begin if exist cwsd*.exe del cwsd*.exe for %%a in (cwsparam ehdrfix) do if exist %%a.exe del %%a.exe for %%a in (map rng obj) do if exist *.%%a del *.%%a echo 3 > 3.rng tasm32 /mx /t /drun_ring=3D3 /dI31PROT start; jwasmd -Zm control.asm jwasmd -Zm dalloc.asm tasm32 /mx /t /drun_ring=3D3 /dI31PROT doutils; tasm32 /mx /t /drun_ring=3D3 /dI31PROT dpmisim; jwasmd -Zm exphdlr.asm tasm32 /mx /t /drun_ring=3D3 /dI31PROT mswitch; jwasmd -Zm paging.asm tasm32 /mx /t /drun_ring=3D3 /dI31PROT tables; jwasmd -Zm utils.asm tasm32 /mx /t /drun_ring=3D3 /dI31PROT unload; jwasmd -Zm valloc.asm tasm32 /mx /t /drun_ring=3D3 /dI31PROT xms; tasm32 /mx /t /drun_ring=3D3 /dI31PROT vcpi; gcc -s ehdrfix.c -o ehdrfix.exe gcc -s cwsparm.c -o cwsparam.exe echo start.obj control.obj+ > cws.lnk echo dalloc.obj doutils.obj dpmisim.obj exphdlr.obj mswitch.obj paging.obj tables.obj utils.obj+ >> cws.lnk echo unload.obj valloc.obj xms.obj vcpi.obj,cwsdpmi.exe,cwsdpmi.map >> cws.lnk tlink /3 /c @cws.lnk del cws.lnk ehdrfix cwsdpmi.exe cwsparam -v cwsdpmi.exe lzasmx cwsdstub.asm jwasmd -Zm constub.asm echo cwsdstub.obj start.obj constub.obj+ > cws.lnk echo dalloc.obj doutils.obj dpmisim.obj exphdlr.obj mswitch.obj paging.obj tables.obj utils.obj+ >> cws.lnk echo valloc.obj xms.obj vcpi.obj,cwsdstub.exe,cwsdstub.map >> cws.lnk tlink /3 /c @cws.lnk del cws.lnk ehdrfix cwsdstub.exe cwsparam -v cwsdstub.exe :end Yeah, kinda insane, I used three assemblers, but none of them accepted every file, and I'm too green re: TASM syntax to be able to directly (or quickly) fix it. Still, as is, I made it 100% assembly (tcc -S), and IMHO, it's much simpler to build. Obviously the goal was to convert to a free/libre assembler. Even as far back as 1995, CWS said he wanted to convert it to GCC + DJASM. I'm sure that's possible, but probably beyond me and my skills. Maybe Devore's NOMYSO.PL would help, I dunno, I should try it. Even JWasm 2.01 came out like two days ago (and it can optionally compile with DJGPP, heh). So whatever. I never finished. Just telling you my thoughts and motivations just to give a clearer idea. And I know CWS is always perpetually busy (heh, that's what you get for being so smart, heh). P.S. That reminds me, MWDPMI is still in the CVS, but it's a *big* pain to compile (needs old old DJGPP tools), and, AFAICT, "lacks support for exceptions" or whatever (ask Eli, he knows). It's obviously abandoned, so I don't consider that worthwhile, but I guess anything's possible, just unlikely at this point. (I have the interest, just not the brains or energy ... ugh.)