INT 15h, 87h (135) Move Block XT-286, AT
Provides the ability for a Real Mode program to move a block of data
to or from the area above 1 Megabyte in the Protected Mode.
On entry: AH 87h
CX Size in words of block to move (maximum:
8000h = 32K)
ES:SI Pointer to a Global Descriptor Table (GDT)
(see below)
Returns: Carry Set if error, else cleared
Zero Cleared if error, else set
AH Status of Operation
00h - Successful
01h - Memory Parity error
02h - Exception interrupt error occurred
03h - Gate address line 20h failed
--------------------------------------------------------------------------
Notes: This service is available only for the AT and XT-
286.
ES:SI points to a list of 6 descriptors. Each
descriptor is 8 bytes long. A descriptor is
formatted as follows:
Offset Bytes Description
00h 2 Word containing segment limit
02h 2 Low word of 24-bit address
04h 1 High byte of 24-bit address
05h 1 Access rights byte
06h 2 Reserved (must be 0)
The Global Descriptor Table (GDT) pointed to by
ES:SI consists of a list of 6 descriptors. The
descriptors are defined below, appearing in the same
order as they appear in memory.
Offset Bytes Description
00h 8 Dummy Descriptor. Initialized by
user to 0.
08h 8 Descriptor of this GDT.
Initialized by user to 0.
Modified by BIOS.
10h 8 Descriptor of Source block.
Initialized by user.
18h 8 Descriptor of Destination block.
Initialized by user.
20h 8 Descriptor for Protected Mode
Code Segment. Initialized by user
to 0. Modified by BIOS.
28h 8 Descriptor for Protected Mode
Stack Segment. Initialized by
user to 0. Modified by BIOS.
Therefore, for a block move to be performed, only
the third and fourth descriptors need to contain
values other than 0s. The source and target
descriptor fields should be initialized as follows:
* The segment limit field (offset 00h) must contain 2 *
(CX - 1) or greater.
* The 24-bit address field (offset 02h) must contain
the source or destination address.
* The Access Rights byte (offset 05h) must contain 93h
(CPL0-R/W).
Transfers of large blocks of data may result in lost
interrupts, since no interrupts are allowed during
the move.
Seealso:
This page last updated on Fri Nov 30 10:49:50 MSK 2001
Copyright © 1992-2001, Vitaly Filatov, Moscow, Russia
Webmaster