ralf@B.GP.CS.CMU.EDU (Ralf Brown) (12/06/87)
Remove headers and trailers and concatenate onto part 2. This part continues the INT 67 - Get/Set Handle Name function. *-*-*---------cut-------------cut-------------cut-------------*-*-* AH = 53h AL = subfunction 00h get handle name ES:DI = pointer to 8-byte handle name array 01h set handle name DS:SI = pointer to 8-byte handle name DX = handle Return: AH = status 00h successful 80h internal error 81h hardware malfunction 83h invalid handle 84h undefined function requested 8Fh undefined subfunction A1h duplicate handle name ----------------------------------------------------------- INT 67 - LIM EMS 4.0 - Get Handle Directory AH = 54h AL = subfunction 00h get handle directory ES:DI = pointer to buffer for handle directory 01h search for named handle DS:SI = pointer to 8-byte name 02h get total number of handles Return: AL = number of entries in handle directory (subfunction 00h) DX = value of named handle (subfunction 01h) BX = total number of handles (subfunction 02h) AH = status 00h successful 80h internal error 81h hardware malfunction 84h undefined function requested 8Fh undefined subfunction A0h no such handle name A1h a handle found had no name ----------------------------------------------------------- INT 67 - LIM EMS 4.0 - Alter Page Map and Jump AH = 55h AL = subfunction 00h physical page numbers provided by caller 01h segment addresses provided by caller DX = handle DS:SI = pointer to structure containing map and jump address Return: (at target address unless error) AH = status 00h successful 80h internal error 81h hardware failure 83h invalid handle 84h undefined function requested 8Ah invalid logical page number encountered 8Bh invalid physical page number encountered 8Fh invalid subfunction ----------------------------------------------------------- INT 67 - LIM EMS 4.0 - Alter Page Map and Call AH = 56h AL = subfunction 00h physical page numbers provided by caller DX = handle DS:SI = pointer to structure containing page map and call address 01h segment addresses provided by caller DX = handle DS:SI = pointer to structure containing page map and call address 02h get page map stack space required Return: (if successful, the target address is called. Use a RETF to return and restore mapping context) BX = stack space required (subfunction 02h) AH = status 00h successful 80h internal error 81h hardware failure 83h invalid handle 84h undefined function requested 8Ah invalid logical page number encountered 8Bh invalid physical page number encountered 8Fh undefined subfunction ----------------------------------------------------------- INT 67 - LIM EMS 4.0 - Move/Exchange Memory Region AH = 57h AL = subfunction 00h move memory region 01h exchange memory region DS:SI = pointer to structure describing source and destination Return: AH = status 00h successful 80h internal error 81h hardware failure 83h invalid handle 84h undefined function requested 8Ah invalid logical page number encountered 8Fh undefined subfunction 92h successful, but a portion of the source region has been overwritten 93h length of source or destination region exceeds length of region allocated to either source or destination handle 94h conventional and expanded memory regions overlap 95h offset within logical page exceeds size of logical page 96h region length exceeds 1M 97h source and destination EMS regions have same handle and overlap 98h memory source or destination type undefined A2h attempted to wrap around 1M conventional address space ----------------------------------------------------------- INT 67 - LIM EMS 4.0 - Get Mappable Physical Address Array AH = 58h AL = subfunction 00h get mappable physical address array ES:DI = pointer to buffer to be filled with array 01h get number of entries in m.p.a. array Return: CX = number of entries in array AH = status 00h successful 80h internal error 81h hardware failure 84h undefined function requested 8Fh undefined subfunction ----------------------------------------------------------- INT 67 - LIM EMS 4.0 - Get Expanded Memory Hardware Information AH = 59h AL = subfunction 00h get hardware configuration array ES:DI = pointer to buffer to be filled with array 01h get unallocated raw page count Return: BX = unallocated raw pages (subfunction 01h) DX = total raw pages (subfunction 01h) AH = status 00h successful 80h internal error 81h hardware failure 84h undefined function requested 8Fh undefined subfunction A4h access denied by operating system Note: subfunction 00h is for use by operating systems only, and can be enabled or disabled at any time by the operating system ----------------------------------------------------------- INT 67 - LIM EMS 4.0 - Allocate Standard/Raw Pages AH = 5Ah AL = subfunction 00h allocate standard pages 01h allocate raw pages BX = number of pages to allocate Return: DX = handle AH = status 00h successful 80h internal error 81h hardware failure 84h undefined function requested 85h no more handles available 87h insufficient memory pages in system 88h insufficient memory pages available 8Fh undefined subfunction ----------------------------------------------------------- INT 67 - LIM EMS 4.0 - Alternate Map Register Set AH = 5Bh AL = subfunction 00h get alternate map register set 01h set alternate map register set BL = new alternate map register set number ES:DI = pointer to map register context save area if BL=0 02h get alternate map save array size 03h allocate alternate map register set 04h deallocate alternate map register set BL = number of alternate map register set Return: BL = current active alternate map register set number if nonzero (AL=0) ES:DI = pointer to a map register context save area if BL=0 (AL=0) DX = array size in bytes (subfunction 02h) BL = number of alternate map register set; zero if not supported (AL=3) AH = status 00h successful 80h internal error 81h hardware malfunction 84h undefined function requested 8Fh undefined subfunction 9Ah specified alternate map register set not supported 9Bh all alternate map register sets currently allocated 9Ch alternate map register sets not supported 9Dh undefined or unallocated alternate map register set A3h source array corrupted A4h operating system denied access Note: this function is for use by operating systems only, and can be enabled or disabled at any time by the operating system ----------------------------------------------------------- INT 67 - LIM EMS 4.0 - Alternate Map Register Set - DMA registers AH = 5Bh AL = subfunction 05h allocate DMA register set 06h enable DMA on alternate map register set BL = DMA register set number DL = DMA channel number 07h disable DMA on alternate map register set BL = DMA register set number 08h deallocate DMA register set BL = DMA register set number Return: BL = DMA register set number; zero if not supported (subfunction 05h) AH = status 00h successful 80h internal error 81h hardware malfunction 84h undefined function requested 8Fh undefined subfunction 9Ah specified DMA register set not supported 9Bh all DMA register sets currently allocated 9Ch alternate DMA sets not supported 9Dh undefined or unallocated DMA register set 9Eh dedicated DMA channels not supported 9Fh specified dedicated DMA channel not supported A3h source array corrupted A4h operating system denied access Note: this function is for use by operating systems only, and can be enabled or disabled at any time by the operating system ----------------------------------------------------------- INT 67 - LIM EMS 4.0 - Prepare Expanded Memory Hardware for Warm Boot AH = 5Ch Return: AH = status 00h successful 80h internal error 81h hardware malfunction 84h undefined function requested ----------------------------------------------------------- INT 67 - LIM EMS 4.0 - Enable/Disable OS Function Set Functions AH = 5Dh AL = subfunction 00h enable OS Function Set 01h disable OS Function Set 02h return access key (resets memory manager, returns access key at next invocation) BX,CX = access key returned by first invocation Return: BX,CX = access key, returned only on first invocation of function AH = status 00h successful 80h internal error 81h hardware malfunction 84h undefined function requested 8Fh undefined subfunction A4h operating system denied access ----------------------------------------------------------- INT 68 -> unused ----------------------------------------------------------- INT 69 -> unused ----------------------------------------------------------- INT 6A -> unused ----------------------------------------------------------- INT 6B -> unused ----------------------------------------------------------- INT 6C -> unused ----------------------------------------------------------- INT 6D -> unused ----------------------------------------------------------- INT 6E -> unused ----------------------------------------------------------- INT 6F -> unused ----------------------------------------------------------- INT 70 thru 77 - AT Vectored Hardware Lines IRQ8 - real-time clock IRQ9 - LAN adapter 1 (rerouted to INT 0Ah by BIOS) IRQ10 - reserved IRQ11 - reserved IRQ12 - reserved IRQ13 - 80287 error (rerouted to INT 2 by BIOS) IRQ14 - fixed disk IRQ15 - reserved ----------------------------------------------------------- INT 86 - Relocated (by NETBIOS) INT 18 ----------------------------------------------------------- INT E4 - Logitech Modula v2.0 - MonitorEntry AX = 5 BX = priority ----------------------------------------------------------- INT E4 - Logitech Modula v2.0 - MonitorExit AX = 6 ----------------------------------------------------------- INT F8 - INTERVAL TIMER (10 MSEC) ----------------------------------------------------------- INT FA - USART READY (RS-232C) ----------------------------------------------------------- INT FB - USART Rx READY (keyboard) ----------------------------------------------------------- *-*-*-----------cut--------------EOF---------------cut--------------*-*-* -- {harvard,uunet,ucbvax}!b.gp.cs.cmu.edu!ralf -=-=- AT&T: (412)268-3053 (school) ARPA: RALF@B.GP.CS.CMU.EDU |"Tolerance means excusing the mistakes others make. FIDO: Ralf Brown at 129/31 | Tact means not noticing them." --Arthur Schnitzler BITnet: RALF%B.GP.CS.CMU.EDU@CMUCCVMA -=-=- DISCLAIMER? I claimed something?