LIM Expanded Memory Specification V4: Appendix A

From Lo-tech Wiki
Revision as of 21:45, 12 February 2014 by Lo-tech>James (Initial content (source: http://www.phatcode.net/res/218/files/limems40.txt))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This appendix contains two cross reference tables: one lists this function codes and the status codes they return; the other lists the status codes and the functions that return them.

TABLE A-1. FUNCTION AND STATUS CODE CROSS REFERENCE

Function Status Description
40h 00h 80h 81h 84h Get memory manager status
41h 00h 80h 81h 84h Get Page Frame Segment Address
42h 00h 80h 81h 84h Get Unallocated Page Count
43h 00h 80h 81h 84h 85h 87h 88h Allocate Pages
44h 00h 80h 81h 83h 84h 8Ah 8Bh Map/Unmap Handle Page
45h 00h 80h 81h 83h 84h 86h Deallocate Pages
46h 00h 80h 81h 84h Get EMM Version
47h 00h 80h 81h 83h 84h 8Ch 8Dh Save Page Map
48h 00h 80h 81h 83h 84h 8Eh Restore Page Map
49h Reserved
4Ah Reserved
4Bh 00h 80h 81h 84h Get EMM Handle Count
4Ch 00h 80h 81h 83h 84h Get EMM Handle Pages
4Dh 00h 80h 81h 84h Get All EMM Handle Pages
4E00h 00h 80h 81h 84h 8Fh Get Page Map
4E01h 00h 80h 81h 84h 8Fh A3h Set Page Map
4E02h 00h 80h 81h 84h 8Fh A3h Get & Set Page Map
4E03h 00h 80h 81h 84h 8Fh Get Size of Page Map Save Array
4F00h 00h 80h 81h 84h 8Bh 8Fh A3h Get Partial Page Map
4F01h 00h 80h 81h 84h 8Fh A3h Set Partial Page Map
4F02h 00h 80h 81h 84h 8Bh 8Fh Get Size of Partial Page Map Array
5000h 00h 80h 81h 83h 84h 8Ah 8Bh 8Fh Map/Unmap Multiple Handle Pages (Physical page mode)
5001h 00h 80h 81h 83h 84h 8Ah 8Bh 8Fh Map/Unmap Multiple Handle Pages (Segment address mode)
51h 00h 80h 81h 83h 84h 87h 88h Reallocate Pages
5200h 00h 80h 81h 83h 84h 8Fh 91h Get Handle Attribute
5201h 00h 80h 81h 83h 84h 8Fh 90h 91h Set Handle Attribute
5202h 00h 80h 81h 84h 8Fh Get Handle Attribute Capability
5300h 00h 80h 81h 83h 84h 8Fh Get Handle Name
5301h 00h 80h 81h 83h 84h 8FH A1h Set Handle Name
5400h 00h 80h 81h 84h 8Fh Get Handle Directory
5401h 00h 80h 81h 84h 8Fh A0h A1h Search for Named Handle
5402h 00h 80h 81h 84h 8Fh Get Total Handles
5500h 00h 80h 81h 83h 84h 8Ah 8Bh 8Fh Alter Page Map & Jump (Physical page mode)
5501h 00h 80h 81h 83h 84h 8Ah 8Bh 8Fh Alter Page Map & Jump (Segment address mode)
5600h 00h 80h 81h 83h 84h 8Ah 8Bh 8Fh Alter Page Map & Call (Physical page mode)
5601h 00h 80h 81h 83h 84h 8Ah 8Bh 8Fh Alter Page Map & Call (Segment address mode)
5602h 00h 80h 81h 84h 8Fh Get Alter Page Map & Call Stack Space Size
5700h 00h 80h 81h 83h 84h 8Ah 8Fh 92h 93h 94h 95h 96h 98h A2h Move Memory Region
5701h 00h 80h 81h 83h 84h 8Ah 8Fh 93h 94h 95h 96h 97h 98h A2h Exchange Memory Region
5800h 00h 80h 81h 84h 8Fh Get Mappable Physical Address Array
5801h 00h 80h 81h 84h 8Fh Get Mappable Physical Address Array Entries
5900h 00h 80h 81h 84h 8Fh A4h Get Expanded Memory Hardware Information
5901h 00h 80h 81h 84h 8Fh Get Unallocated Raw Page Count
5A00h 00h 80h 81h 84h 85h 87h 88h 8Fh Allocate Standard Pages
5A01h 00h 80h 81h 84h 85h 87h 88h 8Fh Allocate Raw Pages
5B00h 00h 80h 81h 84h 8Fh A4h Get Alternate Map Register Set
5B01h 00h 80h 81h 84h 8Fh 9Ah 9Ch 9Dh A3h A4h Set Alternate Map Register Set
5B02h 00h 80h 81h 84h 8Fh A4h Get Alternate Map Save Array Size
5B03h 00h 80h 81h 84h 8Fh 9Bh A4h Allocate Alternate Map Register Set
5B04h 00h 80h 81h 84h 8Fh 9Ch 9Dh A4h Deallocate Alternate Map Register Set
5B05h 00h 80h 81h 84h 8Fh 9Bh A4h Allocate DMA Register Set
5B06h 00h 80h 81h 84h 8Fh 9Ah 9Ch 9Dh 9Eh 9Fh A4h Enable DMA on Alternate Map Register Set
5B07h 00h 80h 81h 84h 8Fh 9Ah 9Ch 9Dh 9Eh 9Fh A4h Disable DMA on Alternate Map Register Set
5B08h 00h 80h 81h 84h 8Fh 9Ch 9Dh A4h Deallocate DMA Register Set
5Ch 00h 80h 81h 84h Prepare Expanded Memory Hardware for Warmboot
5D00h 00h 80h 81h 84h 8Fh A4h Enable Operating System Function Set
5D01h 00h 80h 81h 84h 8Fh A4h Disable Operating System Function Set
5D02h 00h 80h 81h 84h 8Fh A4h Return Operating System Access Key


TABLE A-2. STATUS AND FUNCTION CODE CROSS REFERENCE

Status Functions Description
00h All The function completed normally.
80h All The memory manager has detected a malfunction in the expanded memory software.
81h All The memory manager has detected a malfunction in the expanded memory hardware.
82h None This error code is not returned in version 3.2 of the memory manager or above. In earlier versions of the memory manager this code meant a "busy" status. This status indicated that the memory manager was already processing an expanded memory request when the current request was made and is unable to process another request. In versions 3.2 of the memory manager and above, the memory manager is never "busy" and can always honor requests.
83h 44h 45h 47h 48h 4Ch 5000h 5001h 51h 5200h 5201h 5300h 5301h 5500h 5501h 5600h 5601h 5700h 5701h The memory manager can not find the handle specified.
84h All The function code passed to the manager is not currently defined.
85h 43h 5A00h 5A01h No handles are currently available. All assignable handles are currently in use.
86h 45h A mapping context restoration error has been detected. This error occurs when a program attempts to return a handle and there is still a "mapping context" on the context stack for the indicated handle.
87h 43h 51h 5A00h 5A01h The number of total pages that are available in the system is insufficient to honor the request.
88h 43h 51h 5A00h 5A01h The number of unallocated pages currently available is insufficient to honor the allocation request.
89h 43h Zero pages could not be assigned to a handle.
8Ah 44h 5000h 5001h 5500h 5501h 5600h 5601h 5700h 5701h The logical page to map into memory is out of the range of logical pages which are allocated to the handle.
8Bh 44h 4F00h 4F02h 5000h 5001h 5600h 5601h 5500h 5501h One or more of the physical pages is out of the range of allowable physical pages.
8Ch 47h The mapping register context save area is full.
8Dh 47h The mapping register context stack already has a context associated with the handle. The program has attempted to save the mapping register context when there was already a context for the handle on the stack.
8Eh 48h The mapping register context stack does not have a context associated with the handle. The program has attempted to restore the mapping register context when there was no context for the handle on the stack.
8Fh All The subfunction parameter passed to the function requiring a subfunction code is not defined.
90h 5201h The attribute type is undefined.
91h 5200h 5201h The system configuration does not support non-volatility.
92h 5700h The source and destination expanded memory regions have the same handle and overlap. This is valid for a move. The move has been completed and the destination region has a full copy of the source region. However, at least a portion of the source region has been overwritten by the move.
93h 5700h 5701h The length of the specified source or destination expanded memory region exceeds the length of the expanded memory region allocated to the specified source or destination handle. There are insufficient pages allocated to this handle to move/exchange a region of the size specified.
94h 5700h 5701h The conventional memory region and expanded memory region overlap. This is invalid, the conventional memory region cannot overlap the expanded memory region.
95h 5700h 5701h The offset within the logical page exceeds the length of the logical page. The initial source or destination offsets within an expanded memory region must be between 0 and the (length of a logical page - 1) or 16383 (3FFFh).
96h 5700h 5701h Region length exceeds 1M-byte limit.
97h 5701h The source and destination expanded memory regions have the SAME handle AND overlap. This is invalid; the source and destination expanded memory regions cannot have the same handle and overlap when they are being exchanged.
98h 5700h 5701h The memory source and destination types are undefined/not supported.
9Ah 5B01h 5B06h 5B07h Alternate map register sets are supported, but the alternate map register set specified is not supported.
9Bh 5B03h 5B05h Alternate map/DMA register sets are supported. However, all alternate map/DMA register sets are currently allocated.
9Ch 5B01h 5B04h 5B06h 5B07h 5B08h Alternate map/DMA register sets are not supported, and the alternate map/DMA register set specified is not zero.
9Dh 5B01h 5B04h 5B06h 5B07h 5B08h Alternate map/DMA register sets are supported, but the alternate map register set specified is not defined, not allocated, or is the currently allocated map register set.
9Eh 5B06h 5B07h Dedicated DMA channels are not supported.
9Fh 5B06h 5B07h Dedicated DMA channels are supported. But the DMA channel specified is not supported.
A0h 5401h No corresponding handle value could be found for the handle name specified.
A1h 5301h 5401h A handle with this name already exists. The specified handle was not assigned a name.
A2h 5700h 5701h An attempt was made to "wrap around" the 1M-byte address space during the move/exchange. The source starting address together with the length of the region to be moved/exchanged exceeds 1M-byte. No data was moved/exchanged.
A3h 4E01h 4E02h 4F00h 4F01h 5B01h The contents of the data structure passed to the function have either been corrupted or are meaningless.
A4h 5900h 5B00h 5B01h 5B02h 5B03h 5B04h 5B05h 5B06h 5B07h 5B08h 5D00h 5D01h 5D02h The operating system has denied access to this function. The function cannot be used at this time.

LIM Expanded Memory Specification V4 Contents

See Also