Map or Unmap Multiple Pages
Input |
Output |
AX |
50h |
Type Flag |
Error
Code |
|
AX |
CX |
Hash
Entries in array |
|
|
BX |
DX |
EMM
Handle |
|
|
CX |
DS:SI |
Pointer
to array |
|
|
DX |
Type Flag: 00h = By physical Page Number
01h = By Segment Number
Notes:
* New function permits multiple logical-to-physical
assignments to be made in a single call.(faster than mapping
individual pages)
* The source map array is an array of word pairs. The first
word of a pair contains the logical page to map (0FFFFh if
the physical page is to be totally unmapped) and the second
word of a pair contains the physical page number
(subfunction 00h) or the segment selector (subfunction 01h)
of the physical page in which the logical page shall be
mapped.
* A map of available physical pages (by physical page number
and segment selectors) can be obtained using function
58h/00h, Get Mappable Physical Address Array.
* Both mapping and unmapping pages can be done simultaneously.
* If a request to map or unmap zero pages is made, nothing is
done and no error is returned.
* Pages can be mapped or unmapped using one of two methods.
Both methods produce identical results.
* A logical page and a physical page at which the logical page
is to be mapped. This method is an extension of Function 5
(Map Handle Page).
* Specifies both a logical page and a corresponding segment
address at which the logical page is to be mapped. While
functionally the same as the first method, it may be easier
to use the actual segment address of a physical page than to
use a number which only represents its location. The memory
manager verifies whether the specified segment address falls
on the boundary of a mappable physical page. The manager
then translates the segment address passed to it into the
necessary internal representation to map the pages. |