Dec 222017
XMS.ZIP Reporting utility for XMS memory. Directly from QuarterDeck BBS. DOS Utility similar to QuarterDeck's EMS Utility.
File XMS.ZIP from The Programmer’s Corner in
Category Alternate Operating Systems
XMS.ZIP Reporting utility for XMS memory. Directly from QuarterDeck BBS. DOS Utility similar to QuarterDeck’s EMS Utility.
File Name File Size Zip Size Zip Type
TPCREAD.ME 199 165 deflated
XMS.COM 7204 3142 deflated
XMS.DOC 4006 1523 deflated

Download File XMS.ZIP Here

Contents of the XMS.DOC file


XMS.COM allows you to exercise all the functions of the XMS specification
at the DOS prompt. It is a rough analogue of Quarterdeck's EMS.COM, though no
one must judge EMS.COM from their experience with XMS.COM.
When you run XMS with no parameters it reports the state of XMS. For

XMS Version Number: 3.00
XMS Internal Version Number: 6.03
The HMA exists.
The HMA is not available.
The A20 line is enabled.
Total Free XMS: 4128 kilobytes
Largest free EMB: 4112 kilobytes
Total free XMS handles: 49
Handle: 12 Lock count: 0 Length: 17 Address: 0052:8000
Handle: 14 Lock count: 0 Length: 33 Address: 0053:0000
Largest free UMB: 6.9 kilobytes
Address of largest free UMB: B646

NOTE: The address reported in the EMB directory is a 32-bit address.
NOTE: If you use DOS 5 and load DOS=HIGH, XMS will also report the amount of
the HMA that is available and the first available starting address in the HMA.

When you run XMS with the "?" parameter, it returns the syntax for all
the commands. For example:

RequestHMA xxxxx: Requests the HMA, using xxxxx of it (XMS Function 1)
ReleaseHMA: Releases the HMA (XMS Function 2)
GlobalEnableA20: Globally enables address line 20 (XMS Function 3)
GlobalDisableA20: Globally disables address line 20 (XMS Function 4)
LocalEnableA20: Locally enables address line 20 (XMS Function 5)
LocalDisableA20: Locally disables address line 20 (XMS Function 6)
CreateEMB xxxxx: Creates extended memory block of size xxxxxK (XMS Function 9)
FreeEMB xx: Free extended memory block xx (XMS Function A)
MoveEMB aaaa bb cccc:dddd ee ffff:gggg: Moves a block of data aaaaK long from
handle bb at 32-bit offset cccc:dddd (relative to the beginning address
of the handle) to handle ee at 32-bit offset ffff:gggg (relative to the
beginning of the handle) (XMS Function B)
LockEMB xx: Locks EMB xx (XMS Function C)
UnlockEMB xx: Unlocks EMB xx (XMS Function D)
QueryEMB xx: Queries EMB xx (XMS Function E)
ResizeEMB aaaa bb: Resizes EMB bb to aaaaK (XMS Function F)
CreateUMB xxxxx: Creates a UMB of size xxxx bytes (XMS Function 10)
FreeUMB xxxx: Releases UMB at segment xxxxH (XMS Function 11)
ResizeUMB xxxx yyyyy: Resizes UMB at segment xxxxH to size yyyyy (in bytes)
(XMS function 12)

Functions 7 (Query A20) and 8 (Query free XMS) are informational
functions whose responses XMS (with no parameters) reports. There are no
functions above 12.

Please note that there is absolutely no security in the XMS
specification. If some program is using the HMA the XMS specification does
not prevent another program from de-allocating the HMA and using it for its
own purposes. The same is true for de-allocating an EMB or a UMB. If you de-
allocate the HMA or a UMB or EMB another program is using, then use that
memory for other purposes, when the first user of the HMA (or that UMB or EMB)
tries to use that memory, you will crash. There is NO active security in this
program to prevent you from doing any foolish thing the XMS specification
Current limitations: You cannot allocate a UMB larger than 64k. XMS
does not currently support the "super" XMS functions (These provide support
for users with more than 64 megabytes of RAM; if you do not have more than 64
megabytes of RAM they return the same values as their "sister" regular XMS

* This document may be copied and distributed freely as long as it *
* is distributed in its entirety and it is not distributed for profit. *
* Copyright (C) 1992 by Quarterdeck Office Systems *
************************ E N D O F F I L E *************************

 December 22, 2017  Add comments

Leave a Reply