[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Free memory managers - My adventure and some no-cost success



First, I hope that this hasn't all already been hashed out and posted.  I
tried looking through earlier posts to cut down on duplication.  If I am
repeating a long hashed out topic {probably hard NOT to sometimes when
you're dealing with a machine over ten years old :-) } then I beg your
forgiveness.

I was hoping to be able to use a specialized EPROM and Microcontroller
programmer that runs under DOS but I'm guessing that it must need a 286 or
maybe XMS support as it still doesn't work with the PC-3000.  That's OK,
because as you'll see, I DID find a couple of ways to use some free software
to make another 64K of RAM available to DOS.  I remembered reading a post
about QRAM, but I guess it's discontinued, so I decided to try and find some
FREEWARE!

I started out on my quest for a free memory manager to use with the
PC-3000/PC-3100.  All I was really hoping to do was to be able to map a 64K
block of LIM EMS expanded memory into the range from A000:0000 -> A000:FFFF.
Way back when, I used to have old licensed copies of stuff like QEMM and
such floating around, but hurricanes and various moves have them all long
gone.

I love the Google search engine.  I started plugging in search terms and
after looking at a whole bunch of Freeware and Shareware solutions, I came
up with what I felt were two really good candidates.  As it turns out, after
a bit of brief and very informal testing, both seem to work just fine with
the little PC3K.  Here they are:

You can find version 1.0 of the ADDRAM program in a .ZIP file (ADDRAM10.ZIP)
at:
http://www.simtel.net/pub/pd/47797.html
http://www.funet.fi/pub/msdos/Simtel/memutil/
and a lot of other sites.  Just do a search for ADDRAM10.

You can find version 2.1 of the EEMRAM program in a .ZIP file (EMMRAM21.ZIP)
at:
http://www.simtel.net/pub/pd/47802.html
http://www.funet.fi/pub/msdos/Simtel/memutil/
and a lot of other sites.  Just do a search for EEMRAM21.

The ADDRAM10 .ZIP file includes a nice little utility called EMSDATA.EXE
which tells you all about your machine's particular version of EMS.  It
explains in plain language what you can probably expect YOUR PC to be able
to do when you run the ADDRAM.COM program.  It also includes SUBRAM.COM
which seems to be a sort of "undo" facility to put the memory map back the
way that it was and free up the EMS used.  The version of ADDRAM.COM that I
have experimented with showed as:

ADDRAM.COM   1606 Bytes   2-14-89   1:36 AM

The EEMRAM21.ZIP file includes a tiny utility called MS.COM that just shows
you how much regular memory in total is there, how much is free, and the
size of the largest free block.  It also includes an EMSINFO.EXE utility
that reveals the bare technical details of your machine's EMS capabilities.
It showed that the PC-3000 could support 4 EMS pages and as EMS pages are
16K each, that can give the 64K that I wanted.  Even better, the EMSINFO
utility said that the SHARP/DIP factory supplied EMM.SYS device driver
conveniently placed the page frame starting right at A000:0000.  The version
of EEMRAM.COM that I experimented with showed as:

EEMRAM.COM   2398 Bytes   4-11-89   2:39 PM

Here was how I tested things.  I have a 32MB SanDisk CompactFlash card in a
PCMCIA adapter in the "B:" memory card slot.  I have a PC-3000, so there's
1MB of RAM.  I used the C:\UTILS\INSTALL.EXE program to configure the
allocation of the system RAM.  It is set for 640K of Program memory, 288K of
RAM disk, and 64K of EMS.  I then edited up the CONFIG.SYS and AUTOEXEC.BAT
files as I wished.  The CONFIG.SYS looks like this:

DEVICE=C:\DOS\EMM.SYS
DEVICE=C:\UTILS\CLOCK.SYS
DEVICE=D:\UPDATE.SYS          <-- This is the 11-16-92 update file from the
SUNDRV archive file.
DEVICE=D:\DIPSSDP.SYS         <-- This is the flash card driver from the
SUNDRV archive file.
FILES=32
BUFFERS=16
SHELL=C:\COMMAND.COM C:\ /E:1024 /P

Here is how my AUTOEXEC.BAT is configured:

@ECHO OFF
D:\ADDRAM                     <-- Or D:\EEMRAM if using the other driver
PROMPT $p$g
E:
CD \
MD TEMP
CLS
D:
SET COMSPEC=C:\COMMAND.COM
PATH C:\UTILS\;C:\DOS
CALL B:\U\PC3KINIT\U.BAT      <-- Calls batch file to add path to utilities
on the B: flash card
CALL B:\BC7\PC3KINIT\BC7.BAT  <-- Calls batch file: Environment for
Microsoft Basic Compiler 7.1 on flash card
SET TEMP=E:\TEMP
SET TMP=E:\TEMP
SET LAPFILE=D:\
E:
CD \
CLS
POPUP /I                      <-- Commented out with a preceding "REM" for
"maximum RAM" tests
POPUP                         <-- Commented out with a preceding "REM" for
"maximum RAM" tests

Here is what I found using either the ADDRAM.COM or EEMRAM.COM utilities in
conjunction with having 64K set aside for EMS use:

With the two "POPUP" loaded as shown about, when exiting to the DOS prompt
and running the "MS.COM" utility from the EEMRAM package, the memory shows
as:

720896 bytes total memory
550080 bytes free
549968 bytes in largest memory block

By commenting out the two POPUP lines at the end of the AUTOEXEC.BAT file
and then rebooting, even more memory becomes available:

720896 bytes total memory
627072 bytes free
627024 bytes in largest free block.

Compare this with what happens if we DON'T load EMM.SYS in the CONFIG.SYS
file and then DON'T use either the ADDRAM.COM or EEMRAM.COM programs and
then also go ahead and load POPUP as before and reboot:

655360 bytes total memory
492640 bytes free
492528 bytes in largest free block

I hope that you have fun experimenting with these two nice memory managers.
The extra 64K of usable DOS RAM is nice to have and it's hard to beat the
price!

Best wishes to all,
Jack