-------------------------------
Turbo C++ XMS Interface Library
by Richard Vuduc
Version 1.1

Copyright 1990, Richard Vuduc
-------------------------------

Well, I'm glad to see you followed directions and are now
'reading.me'.  Here's a list of files included in this package
(XMSCPP11.ZIP):

    - XMSCPPS.LIB       // Turbo C++ linkable routines for accessing
                           extended memory (small model).
    - XMSCPPL.LIB       // Turbo C++ linkable routines for accessing
                           extended memory (large model).
    - XMSHRW.CPP        // Src for Get/Store routines (XMSHandle)
    - XMS.H             // Turbo C++ XMS header file
    - XMSHNDL.H         // XMSHandle Class Header file
    - README.TXT        // That would be this file
    - XMSCPP.TXT        // Documentation on how to use the library
    - XMSDEMO.CPP       // Library demonstration program source code
    - XMSDEMO.EXE       // Library demonstration executable
    - XMSDEMO2.CPP      // Demonstration file 2 (XMSHandle Class)
    - XMSDEMO2.EXE      // Demonstration file 2 executable

Hardware and Software Requirements:
-----------------------------------
You need a 286 or above IBM AT compatible, enough conventional memory
to run the Turbo C++ compiler, and 64k of extended memory to run the
first demonstration program (XMSDEMO.EXE).  The 2nd demo program
(XMSDEMO2.EXE) has the same requirements.

You also need to install HIMEM.SYS.  I haven't worked out any
distribution agreements with Microsoft, but you can get it from them
in HIMEM.ARC on MSSYS on CompuServe.  HIMEM is also bundled with
Microsoft Windows 286 and MS Windows 3.0 (I don't know about Windows
386, but I imagine it's in there, too).

Usage:
------
You can reach me about any technical problems or any comments on 
improvements at my CIS Account: Richard Vuduc, 70022,1332.

To link this library with your programs, just type:
   'tcc -mz xxxxx.cpp xmscppz.lib'
          ^                 ^
Notice that I've marked that 'z' in 'xmscppz.lib' and '-mz'.  You 
should replace this 'z' with the letter that corresponds to the 
correct library model (currently, the (s)mall and (l)arge models are
supported.  I hope to get the other models, and the source, out
real soon now.  The demo programs were compiled in the small
model).

So, to compile the demonstration program, just type:
    'tcc -ms xmsdemo.cpp xmscpps.lib'  <== for the small model
    'tcc -ml xmsdemo.cpp xmscppl.lib'  <== for the large model

You can also link xmscpp[S|L].lib into the standard library.  See 
the Turbo C++ manual for details.

I encourage you to give me any comments on the lib.  By doing that,
you help ensure that I'll keep at it, with even BIGGER and GREATER
things...  Also, there is NO fee, but any contributions to a
starving, young programmer would be most appreciated.

To run the first demo, just type 'xmsdemo' and the program will go
through a whole bunch of checks.  It will read from and write to 
extended memory, and the High Memory Area.

To run the second demo, just type 'xmsdemo2.'  The program will fill
three 4K blocks of extended memory with the letters 'a', 'b', and 
'c', and then display play them on screen.  After a screen has been
filled with letters, strike any key to move on to the next screen.
You will notice a slight delay while the program stuffs the extended
memory blocks, but bear with it.  As a test, you can play around with
the cache size (see source and documentation) and see the performance
differences with the different sizes.

Things to Come...
-----------------
I hate to make this thing into vapor ware and spill the beans on my
future plans, so I won't.  I still haven't added support for the
Upper Memory Block functions HIMEM provides, and I know those are
worth implementing.  If there's something else YOU'D like to see in
this library, ASK FOR IT.
