Hi,
Post by Marco van de VoortFPC uses v2, apparantly I'm mistaking/outdated since go32.exe is no longer
in SVN
From the looks of it, FPC 1.0.10 used to perhaps support v1 also
(source/rtl/go32v1 and source/rtl/go32v2). I think I've read that
DJGPP decided it was too much trouble to support both DPMI and e.g.
VCPI or whatever, so they didn't bother in v2. DPMI was usually the
best way to use lots of RAM on OS/2 and Windows "back in the day."
However, nowadays it's fairly moot as NTVDM isn't regarded as having
much of a future (even on 32-bit).
P.S. I could be wrong, but it seems go32v1 apps run fine on Vista but
not on XP (you can use RSX, though). This is probably the only
improvement I know of, offhand. ;-)
Post by Marco van de VoortWhen I still used Dos, I used qemm, and had 64MB iirc. No problems with
fpc/go32v2.
But did you use QDPMI or not? I think CWSDPMI is still considered
better.
Post by Marco van de VoortSure, but since they are not memory mapped, they have to be loaded first,
and only then paged out. And that doesn't matter for UPX, if the pages in
mem were compressed before or not.
Well, there are other DOS extenders that were demand loaded (e.g.
MOSS, I think), but those were rare. And even that was mostly written
to support a commercial game on 486s, so you kinda had to have
something (as the main .EXE had data combined with it for a 17 MB
whopper).
Post by Marco van de VoortPost by RugxuloUPX is probably more reliable than DoubleSpace or Stacker,
Well, I never had a antivirus balking at stacker. In dos times, I kept the
sources that were for reference only on a small stacker drive.
I think various things would have issues, but I never bothered finding
out. The compression ratio is probably subpar anyways (although I
never converted all my .ZIPs to .7z either, so ...). Also not good for
dual booting.
Post by Marco van de VoortPost by RugxuloIMHO, but I've never really tried those (too timid), so I can't say for
sure. However, high cluster size (*shakes fist at 16k for > 512 MB FATs*)
is annoying, so anything to stem the waste ...!
I kept one 1GB partition FAT16, and the rest FAT32 for a long time, till
*nix FAT32 support was mature enough.
MS patents on FAT32 still exist, which is annoying. Last I heard,
Linux moved to a "read-only" hack, then made it where it would only
save the LFN part, not SFN, to avoid problems. Kinda silly in this day
and age, but oh well.
BTW, what I mainly meant was that several DOSes (e.g. official DR-DOS)
never had FAT32 support (and mine never came with any beta TSRs
either), so you're kinda stuck. In short, never ever use FAT16 with >
512 MB. I should've split mine up into several FAT16 partitions so
that it would be 8k clusters instead of 16k (horrible for lots of
small files).
Post by Marco van de VoortPost by RugxuloI guarantee that various modern machines vary in their speed of old
code, esp. 16-bit. And it definitely won't run faster than FPC in
DOSEMU x86-64!!!
On fast computers, I never saw TP code outperform the same code in 32-bit if
the code was non-trivial.
Well, x86-64 has no 16-bit, so DOSEMU has to emulate it. It's
noticeably slow for that, but 32-bit (e.g. DJGPP) is "native speed".
But you're right, even on 486s, 32-bit code is faster because that was
the design intention. So there usually is no comparison. Doesn't mean
there aren't corner cases, but for the most part it does run pretty
fast. DJGPP has never been considered slow.
Post by Marco van de VoortPost by Rugxulo(joking) Don't test me, man, or I'll benchmark compile speeds on my
486.
You only say that because you know I threw out my 386SX25 last year :-)
My 486 still runs (barely), so if you have any reasonable benchmarks,
I'll try them for ya.
Post by Marco van de Voort- the C disease to reparse headers again and again
- IIRC FPC/go32v2 has AS built in, so no need to call a separate assembler.
Precompiled headers are pretty much unsupported in DOS, last I heard.
Post by Marco van de VoortHowever I don't know how big this latter difference is. When FPC got the
internal assembler, the speed up was gigantic, but the "older" FPC model
might not match the GCC model (specially if GCC pipes the assembler to AS),
because afaik FPC wrote it to disk.
DJGPP's GCC doesn't support -pipe (although EMX under OS/2 does,
IIRC). However, using a RAM disk probably helps. That's what I use
when compiling (and cache).
As you probably know, OpenWatcom has a built-in assembler, and it
directly outputs to .OBJ, so usually it's much faster than GCC (e.g.
Windows). Then again, one particular C++ app I hacked a bit compiles
at almost the same speed on my P166 (DR-DOS) when using OW 1.8 or G++
3.4.4. (Even using DOS/32A vs. DOS/4GW was slower.) So it highly
depends. (Of course, I've heard that the Win32 version of OpenWatcom
uses .DLLs and is thus much faster due to less reloading.)
Post by Marco van de VoortI never understood this. Size was always only a side objective, even when I
was on Dos with a 260MB HD. It was always primarily about getting things
done. After the gigabyta era, that pretty much went away
A lot of times it doesn't matter much, that's true. And as mentioned,
smallest != fastest anymore. But there are still limits on certain
things: bandwidth, attachment size, download speed, cpu cache,
available memory (DPMI, VCPI, XMS), USB drive capacity, cluster size,
etc.
It's mainly when you *know* that things could be smaller but aren't. I
mean, why the heck does Vista / 7 need 16 GB when XP only needs like 1
or 2 GB?? Where did all that space go? I know it's been said that it
can shrink to 7 GB (gee, wow), but that's still strange to me. So a
DOS app that runs in DOS or Vista or OS/2 is (IMHO) superior to a
Vista-only app, esp. because a Vista install is so huge and expensive
(vs. FreeDOS, at least). Well, eCS ain't cheap either.
Post by Marco van de VoortI even assisted people with 4k and 64k demo compos at a certain point, but
these never said it was "necessary", and never posted about their
self-inflicted limitations in newsgroups as if it were a general, universal
rule, something that has always greatly annoyed me in the residual TP
circles.
Unless they are assembly programmers, the whiners aren't going to have
much of a guess at why things are larger. You can indeed use high-
level optimizations for size, but a lot of that won't make as much of
a difference unless you get down to the bare metal. Even then it's
extremely tough. Long story short: 16-bit code is always smaller, and
compilers are only oriented towards speed. And 16-bit DPMI (16 MB
limit ftw!) was never utilized much, esp. since you can't co-mingle
with 32-bit DPMI without DPMI 1.0 (which Windows never supported, even
OS/2 only goes halfway to pseudo "0.95", I think).
Post by Marco van de VoortPost by RugxuloWell, 5.5 is the latest freeware version, so that's all most of us
have available.
Wasn't it TP7 french?
I don't know. At the very least, I never investigated that too
closely. Besides, no parlais francais. ;-)
Post by Marco van de VoortPost by RugxuloBTW, that's one major complaint from DOS / DJGPP users: that XP (and
moreso Vista, 7) crippled or broke RHIDE, which they preferred for its
nice interface.
One can also turn it the otherway around and blame RHIDE (or its users) for
never updating it to support windows.
DPMI *is* for Windows (and OS/2). So much work has gone into revising
DJGPP, working around bugs, being LFN-aware, etc. But there's only so
much they can do. I really don't want to blame MS, but it really is
indirectly their fault. I know they probably didn't intend that, but
that's the way it is.
Porting RHIDE to Windows doesn't help DOS, and DJGPP is only a DOS
compiler. While in theory you can have dual DOS / Win apps (or DOS /
OS2), nobody ever does. And most linkers can't handle binding those
together anyways. (Besides, RHIDE needs GCC 3.x, I think. So that
would need fixing too.) For instance, RSXNT/DJ is long since abandoned
(ten years).
Post by Marco van de VoortThough afaik currently the dos IDE also works on XP, and even Vista.
No, not on Vista, there is no full-screen unless you find / install
old XP drivers, which disables Aero. Apparently even disabling
"desktop composition" disables Aero (I think??), which is how I'm
setup now. Otherwise at every UAC popup (ugh), the screen would go
black for five seconds before becoming responsive. I got tired of
that, found the cause, but now I can't use Flip3D, and Chess Titans
ain't 3D (sniff, heh, like I care). Could be a driver issue on my end,
but there's not much I can do about that.
FP.EXE (IDE) works in DOSBox, but that's about it.
Post by Marco van de VoortI always avoided such dead ends, and moved to the next one that had at least
some life in it, and started working. Or moved on if I didn't care enough to
do that.
Life is to precious to massively invest time to keep tools running
apparantly nobody cares around anymore. Specially when that is time that
isn't invested in the tool.
It just seems easier to me to have one working binary instead of ten.
There's no good reason for breaking old compatibility when it just
complicates things further. Sadly, we're all at the mercy of our
hardware and available drivers. So even the OS isn't fully to blame
(sometimes). But I don't really think C#/.NET or Java is the answer
either. Maybe virtualization is, but it's still got a ways to go.