Important Notice
The pages on this site contain documentation for very old MS-DOS software,
purely for historical purposes.
If you're looking for up-to-date documentation, particularly for programming,
you should not rely on the information found here, as it will be woefully
out of date.
Int 15H Function 87H
◄Summary► ◄Notes► ◄Back►
──────────────────────────────────────────────────────────────────────────────
Conventional memory lies at addresses below the 640 KB boundary, and is
used for the execution of MS-DOS and its application programs. Extended
memory lies at addresses above 1 MB, and can only be accessed by an 80286
or 80386 CPU running in protected mode. As much as 15 MB of extended
memory can be installed in a PC/AT or compatible.
The Global Descriptor Table (GDT) used by this function must be set up as
follows:
Byte(s) Contents
═══════ ═════════════════════════════════════════════════
00H-0FH reserved (should be 0)
10H-11H segment length in bytes (2 * CX - 1 or greater)
12H-14H 24-bit source address
15H access rights byte (always 93H)
16H-17H reserved (should be 0)
18H-19H segment length in bytes (2 * CX - 1 or greater)
1AH-1CH 24-bit destination address
1DH access rights byte (always 93H)
1EH-2FH reserved (should be 0)
The table is composed of six 8-byte descriptors to be used by the CPU in
protected mode. The four descriptors in offsets 00H-0FH and 20H-2FH are
filled in by the ROM BIOS before the CPU mode switch.
The addresses used in the descriptor table are linear (physical) 24-bit
addresses in the range 000000H-FFFFFFH -- not segments and offsets --
with the least significant byte at the lowest address and the most
significant byte at the highest address.
The block move is performed with interrupts disabled; thus, use of this
function may interfere with the operation of communications programs,
network drivers, or other software that relies on prompt servicing of
hardware interrupts.
Programs and drivers that access extended memory with this function
cannot be executed in the Compatibility Environment of OS/2.
This function is not supported on the PS/2 Models 25 and 30.
-♦-