634 lines
26 KiB
HTML
634 lines
26 KiB
HTML
<HTML>
|
|
<HEAD>
|
|
<TITLE>Int 2F/AX=4310h
|
|
</TITLE>
|
|
<META NAME="Description" CONTENT="
|
|
Int 2F/AX=4310h - EXTENDED MEMORY SPECIFICATION (XMS) v2+ - GET DRIVER ADDRESS -
|
|
AX = 4310h
|
|
Return: ES:BX - driver entry point (see #02749,#02750,#02753,#02760,#02769,#02774)
|
|
Notes: HIMEM.SYS v2.77 chains to previous handler if AH is not 00h or 10h
|
|
HIMEM.SYS requires at least 256 bytes free stack space when calling
|
|
the driver entry point
|
|
SeeAlso: AX=4300h,AX=4310hCloaking,AX=4310hNetroom,AX=4310hXMZ
|
|
Format of XMS driver entry point:
|
|
Offset Size Description (Table 02749)
|
|
00h 5 BYTEs jump to actual handler
|
|
">
|
|
<META NAME="robots" CONTENT="none">
|
|
</HEAD>
|
|
<BODY BGCOLOR="#FFD0A0">
|
|
<center>
|
|
<h2>Int 2F/AX=4310h
|
|
</h2>
|
|
</center><p>
|
|
<table border=1 cellpadding=3 cellspacing=1>
|
|
<td>
|
|
<a href="rb-4767.htm" tppabs="http://www.ctyme.com/intr/rb-4767.htm">
|
|
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
|
|
<a href="rb-4769.htm" tppabs="http://www.ctyme.com/intr/rb-4769.htm">
|
|
<img src="ldown.gif" tppabs="http://graphics.ctyme.com/gif/ldown.gif" border=0 alt=Next></a>
|
|
<a href="javascript:if(confirm('http://www.ctyme.com/rbrown.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/rbrown.htm'" tppabs="http://www.ctyme.com/rbrown.htm">
|
|
<img src="lhome.gif" tppabs="http://graphics.ctyme.com/gif/lhome.gif" border=0 alt=Ralf Brown Page></a>
|
|
<td><a href="int.htm" tppabs="http://www.ctyme.com/intr/int.htm">Interrups</a></td>
|
|
<td><a href="cat.htm" tppabs="http://www.ctyme.com/intr/cat.htm">Categories</a></td>
|
|
<td><a href="alpha.htm" tppabs="http://www.ctyme.com/intr/alpha.htm">Contents</a></td>
|
|
</td></table><p>
|
|
<p><img src="rbline.gif" tppabs="http://graphics.ctyme.com/gif/rbline.gif" width="100%" alt="------"><p>
|
|
<h3><font color=#C00040>EXTENDED MEMORY SPECIFICATION (XMS) v2+ - GET DRIVER ADDRESS</font></h3>
|
|
<PRE>
|
|
AX = 4310h<br>
|
|
<p><b>Return:</b><br>ES:BX -> driver entry point (see #02749,#02750,#02753,#02760,#02769,#02774)
|
|
</PRE>
|
|
<p><b>Notes:</b>
|
|
HIMEM.SYS v2.77 chains to previous handler if AH is not 00h or 10h.
|
|
HIMEM.SYS requires at least 256 bytes free stack space when calling
|
|
the driver entry point
|
|
<p><b>See Also:</b>
|
|
<a href="rb-4765.htm" tppabs="http://www.ctyme.com/intr/rb-4765.htm">AX=4300h</a> - <a href="rb-4769.htm" tppabs="http://www.ctyme.com/intr/rb-4769.htm">AX=4310h"Cloaking"</a> - <a href="rb-4770.htm" tppabs="http://www.ctyme.com/intr/rb-4770.htm">AX=4310h"Netroom"</a> - <a href="rb-4771.htm" tppabs="http://www.ctyme.com/intr/rb-4771.htm">AX=4310h"XMZ"</a>
|
|
<PRE>
|
|
<p>
|
|
Format of XMS driver entry point:
|
|
<a name=table2749></a>
|
|
Offset Size Description (Table 02749)
|
|
00h 5 BYTEs jump to actual handler
|
|
either short jump (EBh XXh) followed by three NOPs or
|
|
far jump (EAh XXXX:XXXX) to a program which has hooked itself
|
|
into the XMS driver chain
|
|
</PRE>
|
|
<p><b>Note:</b>
|
|
To hook into the XMS driver chain, a program should follow the chain of
|
|
far jumps until it reaches the short jump of the driver at the end
|
|
of the chain; this short jump is to be replaced with a far jump to
|
|
the new handler's entry point, which should contain a short jump
|
|
followed by three NOPs. The new handler must return to the address
|
|
pointed at by the short jump which was overwritten. Using this
|
|
method, the new handler becomes the first to see every XMS request.
|
|
<PRE>
|
|
<p>
|
|
<a name=table2750></a>
|
|
(Table 02750)
|
|
Call the XMS driver "Get XMS version number" function with:.
|
|
AH = 00h<br>
|
|
<p><b>Return:</b><br>AX = XMS version (in BCD, AH=major, AL=minor)
|
|
BX = internal revision number (in BCD for HIMEM.SYS)
|
|
DX = High Memory Area (HMA) state
|
|
0001h HMA (1M to 1M + 64K) exists
|
|
0000h HMA does not exist
|
|
</PRE>
|
|
<p><b>See Also:</b>
|
|
#02751 - #02752 - #02757 - #02758 - #02764
|
|
<PRE>
|
|
<p>
|
|
<a name=table2751></a>
|
|
(Table 02751)
|
|
Call the XMS driver "Request High Memory Area" function with:.
|
|
AH = 01h.
|
|
DX = memory in bytes (for TSR or device drivers)
|
|
FFFFh if application program<br>
|
|
<p><b>Return:</b><br>AX = status
|
|
0001h success
|
|
0000h failure
|
|
BL = error code (80h,81h,90h,91h,92h) <a href="rb-4768.htm#Table2775" tppabs="http://www.ctyme.com/intr/rb-4768.htm#Table2775">(see #02775)</a>
|
|
</PRE>
|
|
<p><b>Note:</b>
|
|
HIMEM.SYS will fail function 01h with error code 91h if AL=40h and
|
|
DX=KB free extended memory returned by last call of function 08h
|
|
<p><b>See Also:</b>
|
|
#02752 - #02784
|
|
<PRE>
|
|
<p>
|
|
<a name=table2752></a>
|
|
(Table 02752)
|
|
Call the XMS driver "Release High Memory Area" function with:.
|
|
AH = 02h<br>
|
|
<p><b>Return:</b><br>AX = status
|
|
0001h success
|
|
0000h failure
|
|
BL = error code (80h,81h,90h,93h) <a href="rb-4768.htm#Table2775" tppabs="http://www.ctyme.com/intr/rb-4768.htm#Table2775">(see #02775)</a>
|
|
</PRE>
|
|
<p><b>See Also:</b>
|
|
#02751
|
|
<PRE>
|
|
<p>
|
|
<a name=table2753></a>
|
|
(Table 02753)
|
|
Call the XMS driver "Global enable A20, for using the HMA" function with:.
|
|
AH = 03h<br>
|
|
<p><b>Return:</b><br>AX = status
|
|
0001h success
|
|
0000h failure
|
|
BL = error code (80h,81h,82h) <a href="rb-4768.htm#Table2775" tppabs="http://www.ctyme.com/intr/rb-4768.htm#Table2775">(see #02775)</a>
|
|
</PRE>
|
|
<p><b>See Also:</b>
|
|
#02754 - #02755 - MSR 00001000h
|
|
<PRE>
|
|
<p>
|
|
<a name=table2754></a>
|
|
(Table 02754)
|
|
Call the XMS driver "Global disable A20" function with:.
|
|
AH = 04h<br>
|
|
<p><b>Return:</b><br>AX = status
|
|
0001h success
|
|
0000h failure
|
|
BL = error code (80h,81h,82h,94h) <a href="rb-4768.htm#Table2775" tppabs="http://www.ctyme.com/intr/rb-4768.htm#Table2775">(see #02775)</a>
|
|
</PRE>
|
|
<p><b>See Also:</b>
|
|
#02753 - #02756 - MSR 00001000h
|
|
<PRE>
|
|
<p>
|
|
<a name=table2755></a>
|
|
(Table 02755)
|
|
Call the XMS driver "Local enable A20" function with:.
|
|
AH = 05h<br>
|
|
<p><b>Return:</b><br>AX = status
|
|
0001h success
|
|
0000h failure
|
|
BL = error code (80h,81h,82h) <a href="rb-4768.htm#Table2775" tppabs="http://www.ctyme.com/intr/rb-4768.htm#Table2775">(see #02775)</a>
|
|
</PRE>
|
|
<p><b>Note:</b>
|
|
This function is used for direct access to extended memory
|
|
<p><b>See Also:</b>
|
|
#02753 - #02756
|
|
<PRE>
|
|
<p>
|
|
<a name=table2756></a>
|
|
(Table 02756)
|
|
Call the XMS driver "Local disable A20" function with:.
|
|
AH = 06h<br>
|
|
<p><b>Return:</b><br>AX = status
|
|
0001h success
|
|
0000h failure
|
|
BL = error code (80h,81h,82h,94h) <a href="rb-4768.htm#Table2775" tppabs="http://www.ctyme.com/intr/rb-4768.htm#Table2775">(see #02775)</a>
|
|
</PRE>
|
|
<p><b>See Also:</b>
|
|
#02754 - #02755
|
|
<PRE>
|
|
<p>
|
|
<a name=table2757></a>
|
|
(Table 02757)
|
|
Call the XMS driver "Query A20 state" function with:.
|
|
AH = 07h<br>
|
|
<p><b>Return:</b><br>AX = status
|
|
0001h enabled
|
|
0000h disabled
|
|
BL = error code (00h,80h,81h) <a href="rb-4768.htm#Table2775" tppabs="http://www.ctyme.com/intr/rb-4768.htm#Table2775">(see #02775)</a>
|
|
</PRE>
|
|
<p><b>See Also:</b>
|
|
#02750 - #02758
|
|
<PRE>
|
|
<p>
|
|
<a name=table2758></a>
|
|
(Table 02758)
|
|
Call the XMS driver "Query free extended memory" function with:.
|
|
AH = 08h.
|
|
BL = 00h (some implementations leave BL unchanged on success)<br>
|
|
<p><b>Return:</b><br>AX = size of largest extended memory block in KB
|
|
DX = total extended memory in KB
|
|
BL = error code (00h,80h,81h,A0h) <a href="rb-4768.htm#Table2775" tppabs="http://www.ctyme.com/intr/rb-4768.htm#Table2775">(see #02775)</a>
|
|
</PRE>
|
|
<p><b>Note:</b>
|
|
This function does not include the HMA in the returned memory sizes
|
|
<p><b>See Also:</b>
|
|
#02750 - #02757 - #02759 - #02771
|
|
<PRE>
|
|
<p>
|
|
<a name=table2759></a>
|
|
(Table 02759)
|
|
Call the XMS driver "Allocate extended memory block" function with:.
|
|
AH = 09h.
|
|
DX = Kbytes needed<br>
|
|
<p><b>Return:</b><br>AX = status
|
|
0001h success
|
|
DX = handle for memory block
|
|
0000h failure
|
|
BL = error code (80h,81h,A0h) <a href="rb-4768.htm#Table2775" tppabs="http://www.ctyme.com/intr/rb-4768.htm#Table2775">(see #02775)</a>
|
|
</PRE>
|
|
<p><b>See Also:</b>
|
|
#02758 - #02761 - #02764 - #02765 - #02766 - #02772
|
|
<PRE>
|
|
<p>
|
|
<a name=table2760></a>
|
|
(Table 02760)
|
|
Call the XMS driver "Free extended memory block" function with:.
|
|
AH = 0Ah.
|
|
DX = handle of block to free<br>
|
|
<p><b>Return:</b><br>AX = status
|
|
0001h success
|
|
0000h failure
|
|
BL = error code (80h,81h,A2h,ABh) <a href="rb-4768.htm#Table2775" tppabs="http://www.ctyme.com/intr/rb-4768.htm#Table2775">(see #02775)</a>
|
|
</PRE>
|
|
<p><b>See Also:</b>
|
|
#02759 - #02772
|
|
<PRE>
|
|
<p>
|
|
<a name=table2761></a>
|
|
(Table 02761)
|
|
Call the XMS driver "Move extended memory block" function with:.
|
|
AH = 0Bh.
|
|
DS:SI -> EMM structure <a href="rb-4768.htm#Table2776" tppabs="http://www.ctyme.com/intr/rb-4768.htm#Table2776">(see #02776)</a><br>
|
|
<p><b>Return:</b><br>AX = status
|
|
0001h success
|
|
0000h failure
|
|
BL = error code (80h-82h,A3h-A9h) <a href="rb-4768.htm#Table2775" tppabs="http://www.ctyme.com/intr/rb-4768.htm#Table2775">(see #02775)</a>
|
|
</PRE>
|
|
<p><b>Note:</b>
|
|
If either handle in the EMM structure is 0000h, the corresponding
|
|
offset is considered to be an absolute segment:offset address in
|
|
directly addressable memory
|
|
<p><b>See Also:</b>
|
|
#02759 - #02762
|
|
<PRE>
|
|
<p>
|
|
<a name=table2762></a>
|
|
(Table 02762)
|
|
Call the XMS driver "Lock extended memory block" function with:.
|
|
AH = 0Ch.
|
|
DX = handle of block to lock<br>
|
|
<p><b>Return:</b><br>AX = status
|
|
0001h success
|
|
DX:BX = 32-bit physical address of locked block
|
|
0000h failure
|
|
BL = error code (80h,81h,A2h,ACh,ADh) <a href="rb-4768.htm#Table2775" tppabs="http://www.ctyme.com/intr/rb-4768.htm#Table2775">(see #02775)</a>
|
|
</PRE>
|
|
<p><b>Note:</b>
|
|
MS Windows 3.x rejects this function for handles allocated after
|
|
Windows started
|
|
<p><b>See Also:</b>
|
|
#02759 - #02761 - #02763 - #02777
|
|
<PRE>
|
|
<p>
|
|
<a name=table2763></a>
|
|
(Table 02763)
|
|
Call the XMS driver "Unlock extended memory block" function with:.
|
|
AH = 0Dh.
|
|
DX = handle of block to unlock<br>
|
|
<p><b>Return:</b><br>AX = status
|
|
0001h success
|
|
0000h failure
|
|
BL = error code (80h,81h,A2h,AAh) <a href="rb-4768.htm#Table2775" tppabs="http://www.ctyme.com/intr/rb-4768.htm#Table2775">(see #02775)</a>
|
|
</PRE>
|
|
<p><b>See Also:</b>
|
|
#02762
|
|
<PRE>
|
|
<p>
|
|
<a name=table2764></a>
|
|
(Table 02764)
|
|
Call the XMS driver "Get handle information" function with:.
|
|
AH = 0Eh.
|
|
DX = handle for which to get info<br>
|
|
<p><b>Return:</b><br>AX = status
|
|
0001h success
|
|
BH = block's lock count
|
|
BL = number of free handles left
|
|
DX = block size in KB
|
|
0000h failure
|
|
BL = error code (80h,81h,A2h) <a href="rb-4768.htm#Table2775" tppabs="http://www.ctyme.com/intr/rb-4768.htm#Table2775">(see #02775)</a>
|
|
</PRE>
|
|
<p><b>BUG:</b>
|
|
MS Windows 3.10 acts as though unallocated handles are in use
|
|
<p><b>Note:</b>
|
|
MS Windows 3.00 has problems with this call
|
|
<p><b>See Also:</b>
|
|
#02750 - #02759 - #02773
|
|
<PRE>
|
|
<p>
|
|
<a name=table2765></a>
|
|
(Table 02765)
|
|
Call the XMS driver "Reallocate extended memory block" function with:.
|
|
AH = 0Fh.
|
|
DX = handle of block.
|
|
BX = new size of block in KB<br>
|
|
<p><b>Return:</b><br>AX = status
|
|
0001h success
|
|
0000h failure
|
|
BL = error code (80h,81h,A0h-A2h,ABh) <a href="rb-4768.htm#Table2775" tppabs="http://www.ctyme.com/intr/rb-4768.htm#Table2775">(see #02775)</a>
|
|
</PRE>
|
|
<p><b>See Also:</b>
|
|
#02759 - #02768
|
|
<PRE>
|
|
<p>
|
|
<a name=table2766></a>
|
|
(Table 02766)
|
|
Call the XMS driver "Request upper memory block" function with:.
|
|
AH = 10h.
|
|
DX = size of block in paragraphs<br>
|
|
<p><b>Return:</b><br>AX = status
|
|
0001h success
|
|
BX = segment address of UMB
|
|
DX = actual size of block
|
|
0000h failure
|
|
BL = error code (80h,B0h,B1h) <a href="rb-4768.htm#Table2775" tppabs="http://www.ctyme.com/intr/rb-4768.htm#Table2775">(see #02775)</a>
|
|
DX = largest available block
|
|
</PRE>
|
|
<p><b>Notes:</b>
|
|
Upper Memory consists of non-EMS memory between 640K and 1024K.
|
|
The XMS driver need not implement functions 10h through 12h to be
|
|
considered compliant with the standard.
|
|
Under DOS 5+, if CONFIG.SYS contains the line DOS=UMB, then no upper
|
|
memory blocks will be available for allocation because all blocks
|
|
have been grabbed by MS-DOS while booting
|
|
<p><b>See Also:</b>
|
|
#02759 - #02767 - #02785 - <a href="rb-2601.htm" tppabs="http://www.ctyme.com/intr/rb-2601.htm">INT 21/AH=58h"UMB"</a>
|
|
<PRE>
|
|
<p>
|
|
<a name=table2767></a>
|
|
(Table 02767)
|
|
Call the XMS driver "Release upper memory block" function with:.
|
|
AH = 11h.
|
|
DX = segment address of UMB to release<br>
|
|
<p><b>Return:</b><br>AX = status
|
|
0001h success
|
|
0000h failure
|
|
BL = error code (80h,B2h) <a href="rb-4768.htm#Table2775" tppabs="http://www.ctyme.com/intr/rb-4768.htm#Table2775">(see #02775)</a>
|
|
</PRE>
|
|
<p><b>Note:</b>
|
|
The XMS driver need not implement functions 10h through 12h to be
|
|
considered compliant with the standard
|
|
<p><b>See Also:</b>
|
|
#02760 - #02766 - #02768
|
|
<PRE>
|
|
<p>
|
|
<a name=table2768></a>
|
|
(Table 02768)
|
|
Call the XMS v3.0+ driver "Reallocate upper memory block" function with:.
|
|
AH = 12h.
|
|
DX = segment address of UMB to resize.
|
|
BX = new size of block in paragraphs<br>
|
|
<p><b>Return:</b><br>AX = status
|
|
0001h success
|
|
0000h failure
|
|
BL = error code (80h,B0h,B2h) <a href="rb-4768.htm#Table2775" tppabs="http://www.ctyme.com/intr/rb-4768.htm#Table2775">(see #02775)</a>
|
|
DX = maximum available size (RM386)
|
|
</PRE>
|
|
<p><b>Note:</b>
|
|
The XMS driver need not implement functions 10h through 12h to be
|
|
considered compliant with the standard
|
|
<p><b>See Also:</b>
|
|
#02765 - #02766 - #02767 - #02783
|
|
<PRE>
|
|
<p>
|
|
<a name=table2769></a>
|
|
(Table 02769)
|
|
Call the QEMM v5.11 "???" function with:.
|
|
AH = 34h (QEMM 5.11 only, undocumented).
|
|
???<br>
|
|
<p><b>Return:</b><br>???
|
|
</PRE>
|
|
<p><b>See Also:</b>
|
|
#02770
|
|
<PRE>
|
|
<p>
|
|
<a name=table2770></a>
|
|
(Table 02770)
|
|
Call the QEMM v5.11 "???" function with:.
|
|
AH = 44h (QEMM 5.11 only, undocumented).
|
|
???<br>
|
|
<p><b>Return:</b><br>???
|
|
</PRE>
|
|
<p><b>See Also:</b>
|
|
#02769 - #02783
|
|
<PRE>
|
|
<p>
|
|
<a name=table2771></a>
|
|
(Table 02771)
|
|
Call the XMS v3.0 driver "Query free extended memory" function with:.
|
|
AH = 88h<br>
|
|
<p><b>Return:</b><br>EAX = largest block of extended memory, in KB
|
|
BL = status (00h,80h,81h,A0h) <a href="rb-4768.htm#Table2775" tppabs="http://www.ctyme.com/intr/rb-4768.htm#Table2775">(see #02775)</a>
|
|
ECX = physical address of highest byte of memory
|
|
(valid even on error codes 81h and A0h)
|
|
EDX = total Kbytes of extended memory (0 if status A0h)
|
|
</PRE>
|
|
<p><b>BUG:</b>
|
|
HIMEM v3.03-3.07 crash on an 80286 machine if any of the 8Xh functions
|
|
are called
|
|
<p><b>See Also:</b>
|
|
#02758 - #02772
|
|
<PRE>
|
|
<p>
|
|
<a name=table2772></a>
|
|
(Table 02772)
|
|
Call the XMS v3.0 driver "Allocate any extended memory" function with:.
|
|
AH = 89h.
|
|
EDX = Kbytes needed<br>
|
|
<p><b>Return:</b><br>AX = status
|
|
0001h success
|
|
DX = handle for allocated block (free with AH=0Ah) <a href="rb-4768.htm#Table2760" tppabs="http://www.ctyme.com/intr/rb-4768.htm#Table2760">(see #02760)</a>
|
|
0000h failure
|
|
BL = status (80h,81h,A0h,A1h,A2h) <a href="rb-4768.htm#Table2775" tppabs="http://www.ctyme.com/intr/rb-4768.htm#Table2775">(see #02775)</a>
|
|
</PRE>
|
|
<p><b>See Also:</b>
|
|
#02759 - #02771
|
|
<PRE>
|
|
<p>
|
|
<a name=table2773></a>
|
|
(Table 02773)
|
|
Call the XMS v3.0 driver "Get extended EMB handle information" function with:.
|
|
AH = 8Eh.
|
|
DX = handle<br>
|
|
<p><b>Return:</b><br>AX = status
|
|
0001h success
|
|
BH = block's lock count
|
|
CX = number of free handles left
|
|
EDX = block size in KB
|
|
0000h failure
|
|
BL = status (80h,81h,A2h) <a href="rb-4768.htm#Table2775" tppabs="http://www.ctyme.com/intr/rb-4768.htm#Table2775">(see #02775)</a>
|
|
</PRE>
|
|
<p><b>BUG:</b>
|
|
MS-DOS 6.0 HIMEM.SYS leaves CX unchanged
|
|
<p><b>See Also:</b>
|
|
#02764 - #02772 - #02774
|
|
<PRE>
|
|
<p>
|
|
<a name=table2774></a>
|
|
(Table 02774)
|
|
Call the XMS v3.0 driver "Reallocate any extended memory block" function with:.
|
|
AH = 8Fh.
|
|
DX = unlocked memory block handle.
|
|
EBX = new size in KB<br>
|
|
<p><b>Return:</b><br>AX = status
|
|
0001h success
|
|
0000h failure
|
|
BL = status (80h,81h,A0h-A2h,ABh) <a href="rb-4768.htm#Table2775" tppabs="http://www.ctyme.com/intr/rb-4768.htm#Table2775">(see #02775)</a>
|
|
</PRE>
|
|
<p><b>BUG:</b>
|
|
HIMEM v3.03-3.07 crash on an 80286 machine if any of the 8Xh functions
|
|
are called
|
|
<p><b>See Also:</b>
|
|
#02765 - #02773
|
|
<PRE>
|
|
<p>
|
|
<a name=table2775></a>
|
|
(Table 02775)
|
|
Values for XMS error code returned in BL:
|
|
00h successful
|
|
80h function not implemented
|
|
81h Vdisk was detected
|
|
82h an A20 error occurred
|
|
8Eh a general driver error
|
|
8Fh unrecoverable driver error
|
|
90h HMA does not exist or is not managed by XMS provider
|
|
91h HMA is already in use
|
|
92h DX is less than the /HMAMIN= parameter
|
|
93h HMA is not allocated
|
|
94h A20 line still enabled
|
|
A0h all extended memory is allocated
|
|
A1h all available extended memory handles are allocated
|
|
A2h invalid handle
|
|
A3h source handle is invalid
|
|
A4h source offset is invalid
|
|
A5h destination handle is invalid
|
|
A6h destination offset is invalid
|
|
A7h length is invalid
|
|
A8h move has an invalid overlap
|
|
A9h parity error occurred
|
|
AAh block is not locked
|
|
ABh block is locked
|
|
ACh block lock count overflowed
|
|
ADh lock failed
|
|
B0h only a smaller UMB is available
|
|
B1h no UMB's are available
|
|
B2h UMB segment number is invalid
|
|
<p>
|
|
Format of EMM structure:
|
|
<a name=table2776></a>
|
|
Offset Size Description (Table 02776)
|
|
00h DWORD number of bytes to move (must be even)
|
|
04h WORD source handle
|
|
06h DWORD offset into source block
|
|
0Ah WORD destination handle
|
|
0Ch DWORD offset into destination block
|
|
</PRE>
|
|
<p><b>Notes:</b>
|
|
If source and destination overlap, only forward moves (source base
|
|
less than destination base) are guaranteed to work properly.
|
|
If either handle is zero, the corresponding offset is interpreted
|
|
as a real-mode address referring to memory directly addressable
|
|
by the processor
|
|
<PRE>
|
|
<p>
|
|
Format of XMS handle info [array]:
|
|
<a name=table2777></a>
|
|
Offset Size Description (Table 02777)
|
|
00h BYTE handle
|
|
01h BYTE lock count
|
|
02h DWORD handle size
|
|
06h DWORD handle physical address (only valid if lock count nonzero)
|
|
</PRE>
|
|
<p><b>See Also:</b>
|
|
#02747 - #02762
|
|
<p>
|
|
<b>Category: <a href="cat-024.htm" tppabs="http://www.ctyme.com/intr/cat-024.htm">
|
|
Memory Management</a>
|
|
- <a href="int-2f-1.htm" tppabs="http://www.ctyme.com/intr/int-2F.htm">
|
|
Int 2Fh</a>
|
|
- <a href="alpha-e.htm" tppabs="http://www.ctyme.com/intr/alpha-e.htm">
|
|
E</a>
|
|
</b><p><p><img src="rbline.gif" tppabs="http://graphics.ctyme.com/gif/rbline.gif" width="100%" alt="------"><p>
|
|
<table border=1 cellpadding=3 cellspacing=1>
|
|
<td>
|
|
<a href="rb-4767.htm" tppabs="http://www.ctyme.com/intr/rb-4767.htm">
|
|
<img src="lup.gif" tppabs="http://graphics.ctyme.com/gif/lup.gif" border=0 alt=Prev></a>
|
|
<a href="rb-4769.htm" tppabs="http://www.ctyme.com/intr/rb-4769.htm">
|
|
<img src="ldown.gif" tppabs="http://graphics.ctyme.com/gif/ldown.gif" border=0 alt=Next></a>
|
|
<a href="javascript:if(confirm('http://www.ctyme.com/rbrown.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/rbrown.htm'" tppabs="http://www.ctyme.com/rbrown.htm">
|
|
<img src="lhome.gif" tppabs="http://graphics.ctyme.com/gif/lhome.gif" border=0 alt=Ralf Brown Page></a>
|
|
<td><a href="int.htm" tppabs="http://www.ctyme.com/intr/int.htm">Interrups</a></td>
|
|
<td><a href="cat.htm" tppabs="http://www.ctyme.com/intr/cat.htm">Categories</a></td>
|
|
<td><a href="alpha.htm" tppabs="http://www.ctyme.com/intr/alpha.htm">Contents</a></td>
|
|
</td></table><p>
|
|
|
|
<!-- Bottom Link Start -->
|
|
|
|
<center>
|
|
|
|
<p><table border=1 bgcolor="#ffff99"><tr><td>
|
|
<table border=0 height=80>
|
|
<tr align=center><td width="65">
|
|
|
|
<a href="javascript:if(confirm('http://www.ctyme.com/sponsor.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/sponsor.htm'" tppabs="http://www.ctyme.com/sponsor.htm">
|
|
<img src="tip.gif" tppabs="http://graphics.ctyme.com/gif/tip.gif" ALT="Sponsors" height="40" width="40"></a>
|
|
<br><a href="javascript:if(confirm('http://www.ctyme.com/sponsor.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/sponsor.htm'" tppabs="http://www.ctyme.com/sponsor.htm">Shopping</a>
|
|
|
|
</td><td width="65">
|
|
|
|
<a href="javascript:if(confirm('http://talk.ctyme.com/webx.cgi?13@@.ee6b2be \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://talk.ctyme.com/webx.cgi?13@@.ee6b2be'" tppabs="http://talk.ctyme.com/webx.cgi?13@@.ee6b2be">
|
|
<img src="comment.gif" tppabs="http://graphics.ctyme.com/gif/comment.gif" ALT="Forum" height="40" width="40"></a>
|
|
<br><a href="javascript:if(confirm('http://talk.ctyme.com/webx.cgi?13@@.ee6b2be \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://talk.ctyme.com/webx.cgi?13@@.ee6b2be'" tppabs="http://talk.ctyme.com/webx.cgi?13@@.ee6b2be">Forum</a>
|
|
|
|
</td><td width="65">
|
|
|
|
<a href="javascript:if(confirm('http://www.ctyme.com/mail.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/mail.htm'" tppabs="http://www.ctyme.com/mail.htm">
|
|
<img src="mail.gif" tppabs="http://graphics.ctyme.com/gif/mail.gif" ALT="email" height="40" width="40"></a>
|
|
<br><a href="javascript:if(confirm('http://www.ctyme.com/mail.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/mail.htm'" tppabs="http://www.ctyme.com/mail.htm">EMail</a>
|
|
|
|
</td><td width="65">
|
|
|
|
<a href="javascript:if(confirm('http://www.ctyme.com/map.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/map.htm'" tppabs="http://www.ctyme.com/map.htm">
|
|
<img src="toc.gif" tppabs="http://graphics.ctyme.com/gif/toc.gif" ALT="Index" height="40" width="40"></a>
|
|
<br><a href="javascript:if(confirm('http://www.ctyme.com/map.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/map.htm'" tppabs="http://www.ctyme.com/map.htm">Index</a>
|
|
|
|
</td><td width="65">
|
|
|
|
<a href="javascript:if(confirm('http://www.ctyme.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/'" tppabs="http://www.ctyme.com/">
|
|
<img src="home.gif" tppabs="http://graphics.ctyme.com/gif/home.gif" ALT="Home" height="40" width="40"></a>
|
|
<br><a href="javascript:if(confirm('http://www.ctyme.com/ \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/'" tppabs="http://www.ctyme.com/">Home</a>
|
|
|
|
</td><td width="90">
|
|
|
|
<center>
|
|
<FORM ACTION="https://secure.paypal.com/cgi-bin/webscr" tppabs="https://secure.paypal.com/cgi-bin/webscr" METHOD="POST" traget="_blank">
|
|
<INPUT TYPE="hidden" NAME="cmd" VALUE="_xclick">
|
|
<INPUT TYPE="hidden" NAME="business" VALUE="marc@perkel.com">
|
|
<INPUT TYPE="hidden" NAME="return" VALUE="http://www.perkel.com">
|
|
<INPUT TYPE="hidden" NAME="item_name" VALUE="Donation To Support this Site">
|
|
<INPUT TYPE="hidden" NAME="no_intl" VALUE="1">
|
|
<INPUT TYPE="image" SRC="x-click-but7.gif" tppabs="http://images.paypal.com/images/x-click-but7.gif" vspace=9
|
|
NAME="submit" ALT="Make payments with PayPal - it's fast, free and secure!">
|
|
</FORM>
|
|
|
|
</td></tr></table></td></tr></table><p>
|
|
|
|
|
|
<center>
|
|
<p>
|
|
<a href="javascript:if(confirm('http://www.ctyme.com/hosting/index.htm \n\nThis file was not retrieved by Teleport Pro, because it is addressed on a domain or path outside the boundaries set for its Starting Address. \n\nDo you want to open it from the server?'))window.location='http://www.ctyme.com/hosting/index.htm'" tppabs="http://www.ctyme.com/hosting/index.htm" target="_blank">
|
|
<img src="ctymehost.gif" tppabs="http://graphics.ctyme.com/gif/ctymehost.gif"
|
|
border=3 height=60 width=468></a>
|
|
<p>
|
|
<!-- Ad End --->
|
|
|
|
</center>
|
|
<FORM ACTION="http://service.bfast.com/bfast/click" target="_blank">
|
|
<INPUT TYPE="hidden" NAME="siteid" VALUE="30472466" >
|
|
<INPUT TYPE="hidden" NAME="bfpage" VALUE="horizontal">
|
|
<INPUT TYPE="hidden" NAME="bfmid" VALUE="27253343" >
|
|
<INPUT TYPE="hidden" NAME="num" VALUE="30">
|
|
|
|
<table bgcolor=white border=3><tr><td>
|
|
<table bgcolor=white border=0>
|
|
<tr><td>
|
|
<IMG SRC="serve-bfmid=27253343&siteid=30472466&bfpage=horizontal.gif" tppabs="http://service.bfast.com/bfast/serve?bfmid=27253343&siteid=30472466&bfpage=horizontal" BORDER="0" WIDTH="1" HEIGHT="1" align=right NOSAVE >
|
|
<center><b>Search the web with Google</b></center>
|
|
</td></tr><tr><td>
|
|
<TABLE cellpadding=0 cellspacing=5 bgcolor="#FFFFFF">
|
|
<tr><td bgcolor="#0000cc"><IMG SRC="cleardot.gif" tppabs="http://www.google.com/images/cleardot.gif" height=1 border="0" ALT="Google"></td></tr><tr><td>
|
|
<IMG SRC="affiliate_logo.gif" tppabs="http://www.google.com/affiliates/affiliate_logo.gif" border="0" ALT="Google" align="center">
|
|
<INPUT TYPE=text name=q size=30 maxlength=255 value="">
|
|
<INPUT type=submit name=sa VALUE="Go">
|
|
</td></tr>
|
|
<tr><td bgcolor="#0000cc"><IMG SRC="cleardot.gif" tppabs="http://www.google.com/images/cleardot.gif" height=1 border="0" ALT="Google"></td></tr></TABLE>
|
|
</td></tr></table>
|
|
</tr></td></table>
|
|
</FORM>
|
|
|
|
</center>
|
|
|
|
|
|
<p><img src="rbline.gif" tppabs="http://graphics.ctyme.com/gif/rbline.gif" width="100%" alt="------"><p>
|
|
|
|
<!-- Bottom Link End -->
|
|
|
|
</BODY>
|
|
</HTML>
|