2025-01-05 - FreeDOS Virtual Memory
===================================

When i tried to view large images on my FreeDOS system with 32 MB of
memory, all image viewers ran out of memory and crashed.  For this
post, i will use DosView 1.7 as the example.

DosView 1.7
<https://github.com/SuperIlu/DosView/releases/download/v1.7/
dosview-1.7.zip>

I chose an image Jason Scott shared of an archivists lair.  The image
size is 8 MB compressed, and GIMP reports that it takes over 67 MB
decompressed.

"No, You Have A Problem"
<gopher://tilde.pink/I/~bencollver/log/2025-01-05-freedos-virtual-memory/
no-you-have-a-problem.png>

When i tried to view this image, i got the following error:

   C:\DOSVIEW>dosview no-you-have-a-problem.png
   Can't load image no-you-have-a-problem.png
   ERROR

After i ran "LH CWSDPMI -p -sC:\CWSDPMI.SWP", then DosView churned
the disk for a while and displayed the image.

   C:\DOSVIEW>dosview no-you-have-a-problem.png
   OK

This morning i tried again in a virtual machine and was not able to
repeat my success.  DosView always failed.  This led me to suspect
that my configuration was wrong.  I searched for DPMI diagnostic
information.  At first i didn't find much.  Finally, i found that
DJGPP GDB can report DPMI details.

   C:\DOSVIEW>copy con sysinfo.gdb
   set pagination off
   info dos sysinfo
   quit
   ^Z

When DosView fails, GDB reports the following:

   C:\DOSVIEW>gdb --command=sysinfo.gdb | find.com "Swap"
   DPMI Swap Space................0 Bytes

When DosView succeeds, GDB reports the following:

   C:\DOSVIEW>gdb --command=sysinfo.gdb | find.com "Swap"
   DPMI Swap Space................131072 KB (128 MB)

Yesterday, DosView failed using CWSDPMI's default configuration, but
succeeded when i loaded it manually.  Today it is the opposite.  I
don't understand why this changed.  Now at least i know how to check
the DPMI host using DJGPP GDB.

tags: bencollver,retrocomputing,technical

Tags
====

bencollver
<gopher://tilde.pink/1/~bencollver/log/tag/bencollver/>
retrocomputing
<gopher://tilde.pink/1/~bencollver/log/tag/retrocomputing/>
technical
<gopher://tilde.pink/1/~bencollver/log/tag/technical/>