Hi,

On Mon, Jun 17, 2024 at 6:41 PM Jim Hall via Freedos-devel
<freedos-devel@lists.sourceforge.net> wrote:
>
> You might be interested in this video I recorded yesterday about
> running FreeDOS on the Pocket386:
> https://www.youtube.com/watch?v=2h96UseZs6Q
>
> It shows several apps and games on the Pocket386, mostly running some
> shareware games, plus Word for DOS, and As Easy As spreadsheet.

Definitely cool. More videos of testing would be interesting.

Try rebuilding the FreeDOS kernel with OpenWatcom on it, heh.

Or install ZipSlack [Slackware 11, 2006??] Linux atop your FAT
partition, I think it supports 8 MB of RAM. (Seriously, people always
suggest an old Linux distro instead of DOS, but I think that's not
realistic in most ways. Still, no worse than trying to run ancient
Windows 3.1.)

> If you're curious about its performance, here's a quick rundown of some
> games and apps: [not all of these are shown in the video]
>
> Games:
>
> - Doom - runs fine at small size

I did leave a comment suggesting Fastdoom from Github, which has been
specifically optimized for 386s and 486s.

* https://github.com/viti95/FastDoom

> - Duke Nukum - runs fine, uses PC speaker

3D, right? Not the original 2D one?

> - Rise of the Triad - runs fine at small sizes, uses AdLib for sound

I forgot this was 386 DOS4GW. (It's based upon an improved Wolf 3D
engine, which was 286 / VGA.) I assume Wolf 3D would run faster but
maybe not. Hmmm, I vaguely recall some OpenWatcom 386 rebuilds of Wolf
3D.

* https://github.com/TobiasKarnat/Wolf4GW

> - Shadow Warrior - doesn't run (requires 9MB, this has 8MB)

I have no idea. DOS4GW 1.97 is limited in total RAM available, but it
does supposedly support VM swapping. But maybe they disabled that here
(and/or it's too slow to be usable). You could also try "CWSTUB
blah.exe" which supports swapping, but that may not work.

> - Tomb Raider - crashes during setup (not a surprise, this is a 1996
> game and requires way more memory and CPU than this laptop has - the
> game should have done a memory check)

I don't think the Pentium (1993 debut) was really widespread even in
1996 (too expensive), but indeed it was much faster. But I also don't
think a lot of things were optimized for legacy hardware (actual 386s)
even back then. Quake (1996) has no chance on this machine, for
instance.

> - Wolfenstein 3D - runs great!

Oh, okay, you did test this (it wasn't shown in the video).

> - Biomenace - runs fine

286 / EGA, I love that game!

> Apps:
>
> - Borland Turbo C++ compiler - editor runs fine, I've used the
> compiler to write a few test programs, no issues there

It seems quaint, but back in the day they told us the "optional" math
coprocessor was an unnecessary expense and "wasn't needed" unless we
were going to do a lot of scientific calculations. Normal home users
didn't "need" it. (And of course every cpu since the Pentium has it
included by default, go figure. Some software like GCC always assumed
an FPU present.)

Even ignoring that, the 386 itself was not pipelined like the 486, so
the fastest instruction was like 2 clocks. So a comparably-clocked 486
(40 Mhz) would, in theory, run twice as fast. Also 486s often had
(very small) on-chip caches which helped. But as far as cpu
instructions, the 486 only offered very little advantage.

Some expert (Michael Abrash??) once said that the 8086 and 386
preferred small code while the 486 was very sensitive to (code and
data) alignment and preferred more RISC-y simpler unrolled code. I'm
far from an expert, but docs always warned about AGI stalls and using
suboptimal code sequences, even suggesting "blended" code (or separate
code paths for distinct cpus).

One thing that always bugged me was how much slower GCC (DJGPP) got in
later versions after 2.7.2.1. That version ran okay on my 486, but
later versions like 2.95.3 (even with -O0) ran much slower. In the
race to constantly upgrade to newer hardware, a lot of software was
just never optimized properly because nobody cared enough. In fact, I
recall that GCC claimed that their 486 code was just the exact same
386 code only with extra alignment. Sad, really, that it never got the
full support it deserved. (You can actually rebuild GCC 2.7.2.1 in
DOS, I've done it. On my old Pentium it took about 10 minutes. I miss
the days when things were simpler and faster!) I don't think GCC even
got Pentium support until later (2.8.1). Pentium-scheduled code (U and
weaker V pipes) was a big improvement on those machines (and no huge
slowdown on older cpus).

Not everything can be "fixed" or optimized to run at lightning speeds
on such machines, but at least some noticeable improvements are
definitely possible.

Seriously, most code is just suboptimal, and without proper testing on
old hardware you'll never be aware of it.


_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to