qa.hlp (Table of Contents; Topic list)
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.
                                    -♦-