Dec 072017
C Functions that will test and allocate EMS 3.2 and later memory.
File EMSFUN.ZIP from The Programmer’s Corner in
Category C Source Code
C Functions that will test and allocate EMS 3.2 and later memory.
File Name File Size Zip Size Zip Type
EMMTEST.C 4424 981 deflated
EMMTEST.EXE 9431 5620 deflated
EMSFUNCS.C 16339 3695 deflated
README.TXT 2664 1164 deflated

Download File EMSFUN.ZIP Here

Contents of the README.TXT file

This .ARC file should contain 4 files. They are:

1. emsfuncs.c

This C language source code file contains C functions used to
access expanded memory using the Lotus/Intel/Microsoft Expanded
Memory specification. These functions were written to support
EMS versions 3.2 and later. They are coded using Microsoft C
5.0. These functions require Microsoft C in order to compile,
since they make use of Microsoft's int86() function. The
source code is verbosely commented (like all my source code),
and all specific details as to the form and usage of function
calls can be found there.

2. emmtest.c

This C language source code file is a short routine which tests
all the functions in emsfuncs.c. It also provides a basic test
of the EMM hardware, since it actually accesses expanded memory,
writing to it, reading from it, and displaying the results. It
also demonstrates usage of expanded memory from a C program.

3. emmtest.exe

This is the run time version of emmtest for those without a
Microsoft C compiler with which to build it.

4. readme.txt

This text file.

I hope you can get some use from these routines. They do not raise the
usage of expanded memory to a higher level than specified in the EM
specification, but they do simplify usage by providing straight-forward
C function calls. A useful set of functions would be one which would
actually manage these low-level routines that map pages, and would
provide a higher level type of interface for C programs. If anyone
would care to put such routines together and upload them, that would be
great. For my own purposes, these routines I wrote will fit the bill,
and I don't have the free time now to take them any higher.

Feel free to use these routines in any software you write, but I will
assume no responsibility in the event that they don't perform for you.
(They are pretty straight-forward though, and I don't think you will
have any trouble with them.)

If you have any comments (or enhancements) that you would like to share
with me, my compuserve user ID number is 72727,1612. You can leave me
messages there on the Microsoft Systems Forum message board (in the C
or Windows Developers sections).

For the record, these functions were developed using MS C 5.0, on an AT
clone 20Mhz 386 (Gateway 2000), with 2 megs of memory, running MSDOS
3.3. Have fun . . . . . . .

Richard Bowler

 December 7, 2017  Add comments

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>