  The following files should be enclosed in the ZIP file:

    QBSWAP.BI  ---  QB "'$INCLUDE" file for the QBSwap definitions
    SWAPPAT.TXT  ---  How to patch SWAP.ASM to work with QB
    NOTES.TXT  ---  This file


  Because QB doesn't allow underscores ("_") in variable names, all of the 
codes for "ExecRet%" (although specified as "exec_ret" or "return" in the 
SWAP.DOC file, we can't use the first due to the underscore or the latter 
because RETURN is a QB reserved statement) have the exact same names as in 
the SWAP.DOC file but without the underscores. For example, "SWAP_NO_EXEC" 
in the docs would be specified as "SWAPNOEXEC" in the QB program. Also, the 
2 functions "ems4_installed" and "xms_installed" have been changed (through 
the ALIAS keyword on the DECLARE FUNCTION line) to "EMS4%" and "XMS%", 
respectively.

  I have only changed the code to support QB -- nothing else has changed. 
You can still compile the routine to work with only XMS, or only disk, or 
only EMS, or combinations of all 3. You can still turn off support for 
memory fragmentation (although I don't recommend it because QB can do some 
weird things to memory). I have tested the code thoroughly and it works 
flawlessly. Note, however, that it refuses to swap the code to disk if the 
.EXE file has been compressed with an .EXE compresser, such as PKLite, Diet, 
or LZEXE. But this is probably true of C programs as well, and isn't a side- 
effect of the QB conversion. This routine has also been tested under DOS 5 
without anything unusual happenning.

  Also note that there may be 1 of 2 new error codes returned through 
ExecRet% if QBSwap returns SWAPNOSAVE. The first, &HFF (255 decimal), says 
that the string which was supposed to contain the child program's name was 
instead a NULL string. The second, which can be enabled by uncommenting
certain lines in the patch (see SWAPPAT.TXT), returns &HFE (254 decimal). 
This informs the programmer that the string holding the swap file name was a 
NULL string. They are defined in QBSWAP.BI (which you MUST include in any 
program using QBSwap) as SWAPNULPROG and SWAPNULFILE, respectively.
