Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Page     1-1


					page 58,132
				;******************************************************************************
					title	EMMINC.ASM - lists all EMMLIB.LIB include files
				;******************************************************************************
				;
				;   (C) Copyright MICROSOFT Corp. 1986
				;
				;   Title:	CEMM.EXE - COMPAQ Expanded Memory Manager 386 Driver
				;		EMMLIB.LIB - Expanded Memory Manager Functions Library
				;
				;   Module:	EMMINC.ASM - lists all EMMLIB.LIB include files
				;
				;   Version:	0.02
				;
				;   Date:	June 14, 1986
				;
				;******************************************************************************
				;
				;	Change Log:
				;
				;	DATE	 REVISION	Description
				;	-------- --------	--------------------------------------------
				;	06/25/86 original	
				;	06/28/86 0.02		Name change from CEMM386 to CEMM (SBP).
				;
				;******************************************************************************
				;   Functional Description:
				;		This module includes all CEMM include files used by EMMLIB
				;   and will provide a listing of all when assembled to produce a listing file.
				;
				;******************************************************************************
				.lfcond
				.386p
				
				;******************************************************************************
				;	I N C L U D E S
				;******************************************************************************
 = 0001				INC_LIST	EQU	1		; list include files
				
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Page     1-2


					page
					include	DESC.INC
			     C	
			     C	
			     C	;******************************************************************************
			     C	;
			     C	;   (C) Copyright MICROSOFT Corp. 1986
			     C	;
			     C	;   Title:    MEMM - MICROSOFT Expanded Memory Manager 386
			     C	;
			     C	;   Module:   DESC.INC - Descriptor Table Definitions for 286/386
			     C	;
			     C	;   Version:  0.02
			     C	;
			     C	;   Date:     January 31, 1986
			     C	;
			     C	;   Author:
			     C	;
			     C	;******************************************************************************
			     C	;
			     C	;   Change log:
			     C	;
			     C	;     DATE    REVISION			DESCRIPTION
			     C	;   --------  --------	-------------------------------------------------------
			     C	;   01/31/86  Original
			     C	;   04/07/86  A 	added bit map base to 386 TSS
			     C	;   05/12/86  B 	Cleanup and segment reorganization
			     C	;   06/25/86  0.02	removed A0 macros
			     C	;   06/28/86  0.02	Name change from MEMM386 to MEMM
			     C	;
			     C	;******************************************************************************
			     C	ifndef INC_LIST
			     C	.xlist
			     C	endif
			     C	
			     C	; ---------------------------------------------------
			     C	;
			     C	; Definitions for the access byte in a descriptor
			     C	;
			     C	; ---------------------------------------------------
			     C	
			     C	
			     C	; Following fields are common to segment and control descriptors
			     C	
 = 0080                      C	D_PRES		equ	080h		; present in memory
 = 0000                      C	D_NOTPRES	equ	0		; not present in memory
			     C	
 = 0000                      C	D_DPL0		equ	0		; Ring 0
 = 0020                      C	D_DPL1		equ	020h		; Ring 1
 = 0040                      C	D_DPL2		equ	040h		; Ring 2
 = 0060                      C	D_DPL3		equ	060h		; Ring 3
			     C	
 = 0010                      C	D_SEG		equ	010h		; Segment descriptor
 = 0000                      C	D_CTRL		equ	0		; Control descriptor
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Page     1-3


			     C	
			     C	
			     C	; Following fields are specific to control descriptors
			     C	
 = 0001                      C	D_TSS			equ	01h		; A Free TSS
 = 0002                      C	D_LDT			equ	02h		; LDT
 = 0003                      C	D_TSS_BUSY		equ	03h		; A Busy TSS
 = 0004                      C	D_CALLGATE		equ	04h		; call gate
 = 0005                      C	D_TASKGATE		equ	05h		; task gate
 = 0006                      C	D_INTGATE		equ	06h		; interrupt gate
 = 0007                      C	D_TRAPGATE		equ	07h		; trap gate
			     C							; 8 is invalid
 = 0009                      C	D_386TSS		equ	9		; available 386 TSS
			     C							; 0ah - Intel Reserved
 = 000B                      C	D_BUSY386TSS		equ	0bh		; busy 386 TSS
 = 000C                      C	D_386CALL_GATE		equ	0ch		; 386 call gate
			     C							; 0dh - Intel Reserved
 = 000E                      C	D_386INT_GATE		equ	0eh		; 386 interrupt gate
 = 000F                      C	D_386TRAP_GATE		equ	0fh		; 386 trap gate
			     C	
			     C	; Following fields are specific to segment descriptors
			     C	
 = 0008                      C	D_CODE		equ	08h		; code
 = 0000                      C	D_DATA		equ	0		; data
			     C	
 = 0004                      C	D_CONFORM	equ	04h		; if code, conforming
 = 0004                      C	D_EXPDN 	equ	04h		; if data, expand down
			     C	
 = 0002                      C	D_RX		equ	02h		; if code, readable
 = 0000                      C	D_X		equ	0		; if code, exec only
 = 0002                      C	D_W		equ	02h		; if data, writable
 = 0000                      C	D_R		equ	0		; if data, read only
			     C	
 = 0001                      C	D_ACCESSED	equ	1		; segment accessed bit
			     C	
			     C	
			     C	; Useful combination access rights bytes
			     C	
 = 0092                      C	D_DATA0 	equ	(D_PRES+D_DPL0+D_SEG+D_DATA+D_W)  ; Ring 0 rw data
 = 009A                      C	D_CODE0 	equ	(D_PRES+D_DPL0+D_SEG+D_CODE+D_RX) ; Ring 0 rx code
 = 0087                      C	D_TRAP0 	equ	(D_PRES+D_DPL0+D_CTRL+D_TRAPGATE) ; Ring 0 trap gate
 = 0086                      C	D_INT0		equ	(D_PRES+D_DPL0+D_CTRL+D_INTGATE)  ; Ring 0 int gate
 = 0081                      C	D_TSS0		equ	(D_PRES+D_DPL0+D_CTRL+D_TSS)	  ; Ring 0 TSS
 = 0089                      C	D_386TSS0	equ	(D_PRES+D_DPL0+D_CTRL+D_386TSS)   ; Ring 0 TSS
 = 0082                      C	D_LDT0		equ	(D_PRES+D_DPL0+D_CTRL+D_LDT)	  ; Ring 0 LDT
 = 008E                      C	D_386INT0	equ	(D_PRES+D_DPL0+D_CTRL+D_386INT_GATE) ; Ring 0 int gate
			     C	
			     C	;D_DATA1	equ	(D_PRES+D_DPL1+D_SEG+D_DATA+D_W)  ; Ring 1 rw data
			     C	;D_CODE1	equ	(D_PRES+D_DPL1+D_SEG+D_CODE+D_RX) ; Ring 1 rx code
			     C	
			     C	;D_DATA2	equ	(D_PRES+D_DPL2+D_SEG+D_DATA+D_W)  ; Ring 2 rw data
			     C	;D_CODE2	equ	(D_PRES+D_DPL2+D_SEG+D_CODE+D_RX) ; Ring 2 rx code
			     C	
 = 00F2                      C	D_DATA3 	equ	(D_PRES+D_DPL3+D_SEG+D_DATA+D_W)  ; Ring 3 rw data
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Page     1-4


 = 00FA                      C	D_CODE3 	equ	(D_PRES+D_DPL3+D_SEG+D_CODE+D_RX) ; Ring 3 rx code
 = 00E6                      C	D_INT3		equ	(D_PRES+D_DPL3+D_CTRL+D_INTGATE)  ; Ring 3 int gate
 = 00E4                      C	D_GATE3 	equ	(D_PRES+D_DPL3+D_CTRL+D_CALLGATE) ; Ring 3 call gate
 = 00EE                      C	D_386INT3	equ	(D_PRES+D_DPL3+D_CTRL+D_386INT_GATE) ; Ring 3 int gate
			     C	
			     C	; 386 Extensions
			     C	
 = 0040                      C	D_B_BIT 	equ	(1 SHL 6)			; 32 bit stack offsets
			     C	
			     C	
			     C	; Masks for selector fields
			     C	
 = FFF8                      C	SELECTOR_MASK	equ	0fff8h		; selector index
 = 00F8                      C	SEL_LOW_MASK	equ	0f8h		; mask for low byte of sel indx
 = 0004                      C	TABLE_MASK	equ	04h		; table bit
 = 0003                      C	RPL_MASK	equ	03h		; privilige bits
 = FFFFFFFC                  C	RPL_CLR 	equ	not 03h 	; clear ring bits
			     C	
			     C	
			     C	; Machine Status Word bits
			     C	
 = 0001                      C	MSW_PROTECT	equ	1		; virtual mode bit
			     C	
			     C	
			     C	; System IOPL
			     C	
 = 3000                      C	SYS_IOPL	equ	3000h		; wide open
 = CFFF                      C	CLEAR_IOPL	equ	0cfffh		; mask to remove IOPL bits
			     C	
			     C	
			     C	; Kernel Stack Size (TO BE ADDED)
			     C	
 = 4000                      C	STK_SIZE	equ	4000h			; TO BE ADDED
			     C	
			     C	
			     C	; --------------------------------------------------
			     C	;
			     C	; Macros for creating descriptor table entries
			     C	;
			     C	; --------------------------------------------------
			     C	
			     C	
			     C	
			     C	;   structure for 386 descriptor
			     C	
			     C	desc	struc
 0000  0000                  C	LIMIT		dw	0	; offset of last byte in segment
 0002  0000                  C	BASE_LOW	dw	0	; Low 16 bits of 24 bit base address
 0004  00                    C	BASE_HIGH	db	0	; High 8 bits of 24 bit base address
 0005  00                    C	RIGHTS		db	0	; access rights
 0006  00                    C	RES386		db	0	; reserved for 386
 0007  00                    C	BASE_XHI	db	0	; High 8 bits of 32 bit base address
 0008                        C	desc	ends
			     C	
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Page     1-5


			     C	; MASK for RES386
			     C	
 = 0080                      C	R_GRAN		equ	10000000b	; granularity bit
 = 0010                      C	R_AVL		equ	00010000b	; available
 = 000F                      C	R_LIMIT_XHI	equ	00001111b	; limit bits 16..19
			     C	
			     C	; IDT_ENTRY - for interrupt and task gate definitions in IDT
			     C	
			     C	IDT_ENTRY	macro	sel, off, acc
			     C			dw	off		; offset
			     C			dw	sel		; selector
			     C			db	0		; word count, unused for trap/int gates
			     C			db	acc		; access rights byte
			     C			dw	0		; reserved, must be 0 for 386
			     C	endm
			     C	
			     C	
			     C	; GDT_ENTRY - for static initialisation of GDT entries
			     C	
			     C	GDT_ENTRY	macro	BaseLow, BaseHi, Size, Access
			     C			dw	Size - 1	; segment limit
			     C			dw	BaseLow 	; low word of 24 bit base address
			     C			db	BaseHi		; high byte of base address
			     C			db	Access		; access rights byte
			     C			dw	0		; reserved, must be 0 for 386
			     C	endm
			     C	
			     C	
			     C	; LDT_ENTRY - for static initialisation of LDT entries
			     C	
			     C	LDT_ENTRY	macro	BaseLow, BaseHi, Size, Access
			     C			dw	Size - 1	; segment limit
			     C			dw	BaseLow 	; low word of 24 bit base address
			     C			db	BaseHi		; high byte of base address
			     C			db	Access		; access rights byte
			     C			dw	0		; reserved, must be 0 for 386
			     C	endm
			     C	
			     C	
			     C	;***	286 TSS Format
			     C	;
			     C	
			     C	TSS286STRUC	struc
			     C	
 0000  0000                  C		TSS286_BackLink dw	0		; back link selector to TSS
 0002  0000                  C		TSS286_SP0	dw	0		; ring 0 sp
 0004  0000                  C		TSS286_SS0	dw	0		; ring 0 ss
 0006  0000                  C		TSS286_SP1	dw	0		; ring 1 sp
 0008  0000                  C		TSS286_SS1	dw	0		; ring 1 ss
 000A  0000                  C		TSS286_SP2	dw	0		; ring 2 sp
 000C  0000                  C		TSS286_SS2	dw	0		; ring 2 ss
 000E  0000                  C		TSS286_IP	dw	0		; entry point IP
 0010  0000                  C		TSS286_Flags	dw	0		; flag word
 0012  0000                  C		TSS286_AX	dw	0		; AX
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Page     1-6


 0014  0000                  C		TSS286_CX	dw	0		; CX
 0016  0000                  C		TSS286_DX	dw	0		; DX
 0018  0000                  C		TSS286_BX	dw	0		; BX
 001A  0000                  C		TSS286_SP	dw	0		; SP
 001C  0000                  C		TSS286_BP	dw	0		; BP
 001E  0000                  C		TSS286_SI	dw	0		; SI
 0020  0000                  C		TSS286_DI	dw	0		; DI
 0022  0000                  C		TSS286_ES	dw	0		; ES
 0024  0000                  C		TSS286_CS	dw	0		; CS
 0026  0000                  C		TSS286_SS	dw	0		; SS
 0028  0000                  C		TSS286_DS	dw	0		; DS
 002A  0000                  C		TSS286_LDT	dw	0		; LDT
			     C	
 002C                        C	TSS286STRUC	ends
			     C	
			     C	;***	386 TSS Format
			     C	;
			     C	
			     C	TSS386STRUC	struc
			     C	
 0000  0000                  C		TSS386_BackLink dw	0		; back link selector to TSS
 0002  0000                  C		TSS386_Unused1	dw	0		; unused
 0004  0000                  C		TSS386_ESP0lo	dw	0		; ring 0 ESP low word
 0006  0000                  C		TSS386_ESP0hi	dw	0		; ring 0 ESP high word
 0008  0000                  C		TSS386_SS0	dw	0		; ring 0 SS
 000A  0000                  C		TSS386_Unused2	dw	0		; unused
 000C  00000000              C		TSS386_ESP1	dd	0		; ring 1 ESP
 0010  0000                  C		TSS386_SS1	dw	0		; ring 1 SS
 0012  0000                  C		TSS386_Unused3	dw	0		; unused
 0014  00000000              C		TSS386_ESP2	dd	0		; ring 2 ESP
 0018  0000                  C		TSS386_SS2	dw	0		; ring 2 SS
 001A  0000                  C		TSS386_Unused4	dw	0		; unused
 001C  00000000              C		TSS386_CR3	dd	0		; CR3
 0020  00000000              C		TSS386_EIP	dd	0		; EIP
 0024  00000000              C		TSS386_EFLAGS	dd	0		; EFLAGS
 0028  00000000              C		TSS386_EAX	dd	0		; EAX
 002C  00000000              C		TSS386_ECX	dd	0		; ECX
 0030  00000000              C		TSS386_EDX	dd	0		; EDX
 0034  00000000              C		TSS386_EBX	dd	0		; EBX
 0038  00000000              C		TSS386_ESP	dd	0		; ESP
 003C  00000000              C		TSS386_EBP	dd	0		; EBP
 0040  00000000              C		TSS386_ESI	dd	0		; ESI
 0044  00000000              C		TSS386_EDI	dd	0		; EDI
 0048  0000                  C		TSS386_ES	dw	0		; ES
 004A  0000                  C		TSS386_Unused5	dw	0		; Unused
 004C  0000                  C		TSS386_CS	dw	0		; CS
 004E  0000                  C		TSS386_Unused6	dw	0		; Unused
 0050  0000                  C		TSS386_SS	dw	0		; SS
 0052  0000                  C		TSS386_Unused7	dw	0		; Unused
 0054  0000                  C		TSS386_DS	dw	0		; DS
 0056  0000                  C		TSS386_Unused8	dw	0		; Unused
 0058  0000                  C		TSS386_FS	dw	0		; FS
 005A  0000                  C		TSS386_Unused9	dw	0		; Unused
 005C  0000                  C		TSS386_GS	dw	0		; GS
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Page     1-7


 005E  0000                  C		TSS386_Unused10 dw	0		; Unused
 0060  0000                  C		TSS386_LDT	dw	0		; LDT
 0062  0000                  C		TSS386_Unused11 dw	0		; Unused
 0064  0000                  C		TaskAttributes	dw	0		; Task Attributes
 0066  0000                  C		BitMapBase	dw	0		; offset of Base of Bit Map
 0068                        C	TSS386STRUC	ends
			     C	
			     C	.list	; end of DESC.INC
			     C	
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Page     1-8


					page
					include	EMMDEF.INC
			     C	;******************************************************************************
			     C	;
			     C	;   (C) Copyright MICROSOFT Corp. 1986
			     C	;
			     C	;   Title:    CEMM.EXE - COMPAQ Expanded Memory Manager 386 Driver
			     C	;		EMMLIB.LIB - Expanded Memory Manager Library
			     C	;
			     C	;   Module:   EMMDEF.INC - defines for EMM code.
			     C	;
			     C	;   Version:  0.04
			     C	;
			     C	;   Date:     June 21, 1986
			     C	;
			     C	;******************************************************************************
			     C	;
			     C	;   Change log:
			     C	;
			     C	;     DATE    REVISION			DESCRIPTION
			     C	;   --------  --------	-------------------------------------------------------
			     C	;   06/21/86  Original
			     C	;   06/25/86  0.02	Changed HANDLE_CNT to 255 to match LIM spec (SBP).
			     C	;   06/28/86  0.02	Name change from CEMM386 to CEMM (SBP).
			     C	;   07/06/86  0.04	Changed save area struct (SBP).
			     C	;   05/25/88            Changed to meet LIM 4.0 Spec (PC)
			     C	;******************************************************************************
			     C	ifndef	INC_LIST
			     C	.xlist
			     C	endif
			     C	
			     C	;******************************************************************************
			     C	;	G E N E R A L	D E F I N E S
			     C	;******************************************************************************
 = 0800                      C	EMM_PAGE_CNT	= 2048			; maximum of 2048 EMM pages (32MB)
 = 00FF                      C	HANDLE_CNT	= 255			; maximum of 255 EMM handles
 = 0010                      C	FRS_COUNT	= 16			; number of 'Fast Register Sets'
			     C	
 = 0004                      C	EMM32_PHYS_PAGES = 4				; page frame contains 4 pages
			     C	;
			     C	; The 0 to 1M contains 64 physical pages.  Of these we are not mapping anything
			     C	; between E000 and FFFF, 0000 and 4000.  So the Maximum physcial pages we can
			     C	; get for mapping is 40.
			     C	
 = 0040                      C	TOT_PHYS_PAGES	equ	64
 = 0028                      C	MAX_PHYS_PAGES	equ	40			; Life, the Universe
			     C							; and Everything
 = 1000                      C	PAGE_SIZE	= 1000h
			     C	;
			     C	; Of the above mappable pages the regions C000h to Dfffh have to be searched
			     C	; for the mappable pages.
			     C	;
 = C000                      C	ABOVE_CONV_STRT_SEG equ 0C000h
 = 0030                      C	ABOVE_CONV_STRT_PG  equ ABOVE_CONV_STRT_SEG SHR 10
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Page     1-9


			     C	;
 = DC00                      C	ABOVE_CONV_END_SEG  equ 0DC00h
 = 0037                      C	ABOVE_CONV_END_PG   equ ABOVE_CONV_END_SEG SHR	10
			     C	;
 = 0008                      C	MAX_ABOVE_CONV_PAGES	EQU 8
			     C	;
			     C	; Also the system memory mappable region starts at 4000h
			     C	;
 = 4000                      C	CONV_STRT_SEG	    equ 4000h
 = 0010                      C	CONV_STRT_PG	    equ CONV_STRT_SEG SHR 10
			     C	;
 = 0018                      C	NUM_CONV_PGS	    equ (0A000h -4000h) SHR 10
			     C	;
			     C	; During init we keep track of mappable pages with an array of mappable_segs
			     C	;
			     C	
 = 00FF                      C	PAGE_MAPPABLE	    equ     0FFh		    ;
 = 0000                      C	PAGE_NOT_MAPPABLE   equ       0h		    ;
			     C	
			     C	
 = FFFF                      C	NULL_PAGE	= 0FFFFh
 = 0FFF                      C	NULL_HANDLE	= 00FFFh
			     C	
			     C	
			     C	;
			     C	; Flags for memory move/xchg
			     C	;
 = 0080                      C	Source_GT_Dest_Flag = 80h		; Source > Destination for copy / xchg
 = 0040                      C	Overlap_Flag	    = 40h		; Copy overlapping memory
 = 0020                      C	Backward_Copy_Flag  = 20h		; copy is going to be backward
			     C	;
			     C	; Flags for PFlag use in Alter Map and Jump
			     C	;
 = 0002                      C	PFLAG_VM		= 0002h		; VM bit in High word of EFLAG
 = 0020                      C	PFLAG_VIRTUAL		= 0020h		; wheather it's call from virtual or proected mode
 = 0008                      C	PFLAG_PATCH_CS_IP	= 0008h		; Tell Protected mode dispatch to
			     C						; patch new CS:IP onto it's return address
			     C	;******************************************************************************
			     C	;	S T A T U S   D E F I N E S
			     C	;******************************************************************************
 = 0000                      C	OK			=	0
 = 0080                      C	EMM_SW_MALFUNCTION	=	80h
 = 0081                      C	EMM_HW_MALFUNCTION	=	81h
 = 0083                      C	INVALID_HANDLE		=	83h
 = 0084                      C	INVALID_FUNCTION	=	84h
 = 0085                      C	NO_MORE_HANDLES 	=	85h
 = 0086                      C	SAVED_PAGE_DEALLOC	=	86h
 = 0087                      C	NOT_ENOUGH_EXT_MEM	=	87h
 = 0088                      C	NOT_ENOUGH_FREE_MEM	=	88h
 = 0089                      C	ZERO_PAGES		=	89h
 = 008A                      C	LOG_PAGE_RANGE		=	8Ah
 = 008B                      C	PHYS_PAGE_RANGE 	=	8Bh
 = 008C                      C	SAVE_AREA_FULL		=	8Ch
 = 008D                      C	MAP_PREV_SAVED		=	8Dh
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Page     1-10


 = 008E                      C	NO_MAP_SAVED		=	8Eh
 = 008F                      C	INVALID_SUBFUNCTION	=	8Fh
			     C	
			     C	; LIM 4.0 extras
			     C	
 = 0092                      C	VALID_OVERLAP		=	92h
 = 0093                      C	INSUFFICIENT_EMM_PAGES	=	93h
 = 0094                      C	CONVENTIONAL_EMM_OVERLAP=	94h
 = 0095                      C	INVALID_OFFSET		=	95h
 = 0096                      C	INVALID_REGION_LENGTH	=	96h
 = 0097                      C	OVERLAPPING_EXCHANGE	=	97h
 = 0098                      C	INVALID_MEMORY_TYPE	=	98h
 = 0099                      C	FRSETS_UNSUPPORTED	=	99h
 = 009A                      C	INVALID_FRSET		=	9Ah
 = 009B                      C	NO_MORE_FRSETS		=	9Bh
 = 009C                      C	FRSET_NON_ZERO		=	9Ch
 = 009D                      C	FRSET_UNDEFINED 	=	9Dh
 = 009E                      C	FRSET_NO_DMA		=	9Eh
 = 009F                      C	FRSET_INVALID_DMA	=	9Fh
 = 00A0                      C	HANDLE_NAME_NOT_FOUND	=      0A0h
 = 00A1                      C	DUPLICATE_HANDLE_NAME	=      0A1h
 = 00A2                      C	INVALID_WRAPAROUND	=      0A2h
 = 00A3                      C	SOURCE_CORRUPTED	=      0A3h
 = 00A4                      C	ACCESS_DENIED		=      0A4h
			     C	
			     C	
			     C	;******************************************************************************
			     C	;	GET/SET PAGE MAP SUBFUNCTION CODES
			     C	;******************************************************************************
 = 0000                      C	GSPM_GET	equ	0
 = 0001                      C	GSPM_SET	equ	1
 = 0002                      C	GSPM_GETSET	equ	2
 = 0003                      C	GSPM_SIZE	equ	3
			     C	
			     C	;
			     C	; OSEnabled Values
			     C	;
 = 0000                      C	OS_IDLE 	equ	0
 = 0001                      C	OS_ENABLED	equ	1
 = 0002                      C	OS_DISABLED	equ	2
			     C	
			     C	;******************************************************************************
			     C	;	 S T R U C T U R E S
			     C	;******************************************************************************
			     C	
			     C	;
			     C	;  stack frame after pushad on real/virtual mode entry
			     C	;
			     C	r67_Frame	struc
 0000  00000000              C	rDI	dd	?
 0004  00000000              C	rSI	dd	?
 0008  00000000              C	rBP	dd	?
 000C  00000000              C	rSP	dd	?
 0010  00000000              C	rBX	dd	?
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Page     1-11


 0014  00000000              C	rDX	dd	?
 0018  00000000              C	rCX	dd	?
 001C  00000000              C	rAX	dd	?
 0020  0000                  C	retaddr dw	?
 0022  0000                  C	rCS	dw	?
 0024  0000                  C	PFlag	dw	?
 0026  0000                  C	rDS	dw	?
 0028  0000                  C	rES	dw	?
 002A  0000                  C	rGS	dw	?
 002C  0000                  C	rFS	dw	?
 002E                        C	r67_Frame	ends
			     C	
			     C	
			     C	;
			     C	; for _handle_table
			     C	;
			     C	HandleTable_struc	struc
 0000  FFFF                  C	ht_index	dw	NULL_PAGE	; index into emm_page for handle's pgs
 0002  0000                  C	ht_count	dw	0		; number of emm_pages for this handle
 0004                        C	HandleTable_struc	ends
			     C	
			     C	;
			     C	; for _save_area
			     C	;
			     C	SaveMap_struc	struc
 0000  0FFF                  C	s_handle	dw	NULL_HANDLE				; owning handle
 0002  0004[                 C	s_map		dw	EMM32_PHYS_PAGES dup (NULL_PAGE)	; EMM page #s
	   FFFF              C	
			 ]   C	
			     C	
 000A                        C	SaveMap_struc	ends
			     C	
			     C	;
			     C	; structure linking segment with physical page number
			     C	;
			     C	Mappable_Page	struc
 0000  0000                  C	mappable_seg	dw	?
 0002  0000                  C	mappable_pg	dw	?
 0004                        C	Mappable_Page	ends
			     C	
			     C	;
			     C	; Get Partial Page Map
			     C	;
			     C	gppm_struc	struc
 0000  0000                  C	gppm_count	dw	?
 0002  0000                  C	gppm_segs	dw	?
 0004                        C	gppm_struc	ends
			     C	
			     C	;
			     C	; Structures used as arguments to Map Handle Array function
			     C	;
			     C	
			     C	; For subfunction 0:
			     C	mha_array0	struc
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Page     1-12


 0000  0000                  C	mha0_log_pg	dw	?
 0002  0000                  C	mha0_phys_pg	dw	?
 0004                        C	mha_array0	ends
			     C	
			     C	; For subfunction 1:
			     C	mha_array1	struc
 0000  0000                  C	mha1_log_pg	dw	?
 0002  0000                  C	mha1_seg	dw	?
 0004                        C	mha_array1	ends
			     C	
			     C	; Used by Map and Jump and Map and Call -- Identical to mha_array0 and 1
			     C	log_phys_map_struct  struc
 0000  0000                  C	log_page_number      dw ?
 0002  0000                  C	phys_page_number_seg dw ?
 0004                        C	log_phys_map_struct  ends
			     C	
			     C	; Map and Jump structure
			     C	maj_struct	struc
 0000  00000000              C	maj_target_address   dd ?
 0004  00                    C	maj_log_phys_map_len db ?
 0005  00000000              C	maj_map_address      dd ?
 0009                        C	maj_struct	ends
			     C	
			     C	; Map and Call structure
			     C	mac_struct	struc
 0000  00000000              C	mac_target_address   dd ?
 0004  00                    C	mac_new_page_map_len db ?
 0005  00000000              C	mac_new_map_address  dd ?
 0009  00                    C	mac_old_page_map_len db ?
 000A  00000000              C	mac_old_map_address  dd ?
 000E  0004[                 C	mac_reserved         dw 4 dup (?)
	   ????              C	
			 ]   C	
			     C	
 0016                        C	mac_struct	ends
			     C	
			     C	; Move / Exchange memory structure
			     C	mem_memory_descriptor_struct	struc
 0000  00                    C	mem_memory_type      db ?
 0001  0000                  C	mem_handle	     dw ?
 0003  0000                  C	mem_initial_offset   dw ?
 0005  0000                  C	mem_initial_seg_page dw ?
 0007                        C	mem_memory_descriptor_struct	ends
			     C	
			     C	
			     C	mem_struct	struc
 0000  00000000              C	mem_region_length   dd	?
 0004  0007[                 C	mem_source	    db	(SIZE mem_memory_descriptor_struct) dup (?)
	   ??                C	
			 ]   C	
			     C	
 000B  0007[                 C	mem_dest	    db	(SIZE mem_memory_descriptor_struct) dup (?)
	   ??                C	
			 ]   C	
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Page     1-13


			     C	
 0012                        C	mem_struct	ends
			     C	
			     C	;
			     C	; Fast Register Set Description
			     C	;
			     C	FRS_struc	struc
 0000  0028[                 C	FRS_Window	dw	MAX_PHYS_PAGES dup (NULL_PAGE)	; emm page numbers
	   FFFF              C	
			 ]   C	
			     C	
 0050  0000                  C	FRS_alloc	dw	0				; Is this set allocated
 0052                        C	FRS_struc	ends
			     C	
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Page     1-14


			     C		page
			     C	;****************************************************************************
			     C	;
			     C	;   Dword_Align -- Aligns code to dword boundry by inserting nops
			     C	;
			     C	;****************************************************************************
			     C	
			     C	Dword_Align MACRO Seg_Name
			     C	IF (($ - OFFSET Seg_Name:0) MOD 4)
			     C		db	90h		     ;; Nop in code / else byte of 90h in data
			     C		Dword_Align Seg_Name
			     C	ENDIF
			     C		    ENDM
			     C	
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Page     1-15


			     C		page
			     C	;***********************************************
			     C	;
			     C	; Validate_Handle - check the handle in DX
			     C	;
			     C	;	ENTRY:	Handle as per LIM4.0 spec. in DX
			     C	;
			     C	;	EXIT:	If the handle is invalid jump To Death_Label, otherwise,
			     C	;		EDX points to the _handle_table entry for the handle
			     C	;
			     C	;	USES:	EDX
			     C	;
			     C	;***********************************************
			     C	Validate_Handle MACRO	Death_Label
			     C	
			     C		cmp	dx, [_handle_table_size]	;Q: handle in range ?
			     C		jae	Death_Label			;  N: go to error label
			     C		shl	dx, 2				;  Y: convert handle to
			     C		add	dx, offset _handle_table	;     pointer
			     C		xchg	bx, dx
			     C		cmp	[bx.ht_index], NULL_PAGE	;Q: is this handle active ?
			     C		xchg	bx, dx
			     C		je	Death_Label			;  N: return error
			     C	
			     C		ENDM
			     C	
			     C	;***********************************************
			     C	;
			     C	; Handle2HandlePtr - convert the handle in DX to
			     C	;		points into handle_table
			     C	;
			     C	;	ENTRY:	Handle as per LIM4.0 spec. in DX
			     C	;
			     C	;	EXIT:	EDX points to the _handle_table entry for the handle
			     C	;
			     C	;	USES:	EDX
			     C	;
			     C	;***********************************************
			     C	Handle2HandlePtr MACRO
			     C	
			     C		shl	dx, 2				;  Y: convert handle to
			     C		add	dx, offset _handle_table	;     pointer
			     C	
			     C		ENDM
			     C	
			     C	.list		; end of EMMDEF.INC
			     C	
			     C	
			     C	
			     C	
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Page     1-16


					page
				;	include	INSTR386.INC
				;	page
					include	OEMDEP.INC
			     C	
			     C	
			     C	;******************************************************************************
			     C	;
			     C	;   (C) Copyright MICROSOFT Corp. 1986
			     C	;
			     C	;   Title:    MEMM - MICROSOFT Expanded Memory Manager 386
			     C	;
			     C	;   Module:   OEMDEP.INC
			     C	;
			     C	;   Version:  0.04
			     C	;
			     C	;   Date:     June 13, 1986
			     C	;
			     C	;   Author:
			     C	;
			     C	;******************************************************************************
			     C	;
			     C	;   Change log:
			     C	;
			     C	;     DATE    REVISION			DESCRIPTION
			     C	;   --------  --------	-------------------------------------------------------
			     C	;   06/13/86  Original
			     C	;   06/28/86  0.02	Name change from MEMM386 to MEMM
			     C	;   07/05/86  0.04	Moved Diagbyte to _DATA
			     C	;   07/06/86  0.04	Change from _DATA assume to DGROUP
			     C	;   08/06/86  0.05	Broke out OEMPROC.ASM from OEMDEP.INC
			     C	;
			     C	;******************************************************************************
			     C	ifndef INC_LIST
			     C	.xlist
			     C	endif
			     C	
			     C	
 0000                        C	_TEXT	segment
			     C	
			     C	extrn	MaskIntAll:near 		; Mask interrupts routine
			     C	extrn	RestIntMask:near		; restore interrupt mask routine
			     C	
			     C	extrn	Map_Lin_OEM:near		; MapLinear hook
			     C	extrn	UMap_Lin_OEM:near		; UnMapLinear hook
			     C	extrn	MB_Map_Src:near 		; Move block map source hook
			     C	extrn	MB_Map_Dest:near		; Move block map destination hook
			     C	extrn	MB_Start:near			; Move block start move hook
			     C	
 0000                        C	_TEXT	ends
			     C	
			     C	
 0000                        C	LAST	segment
			     C	
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Page     1-17


			     C	extrn	VerifyMachine:near		; Verify machine valid for software
			     C	
 0000                        C	LAST	ends
			     C	
			     C	ifndef	NOHIMEM 			; only for high memory
			     C	
			     C	;Define routines in OEMPROC module
			     C	
			     C	_TEXT	segment
			     C	
			     C	extrn	HwMemLock:near
			     C	extrn	HwMemUnlock:near
			     C	
			     C	_TEXT	ends
			     C	
			     C	LAST	segment
			     C	
			     C	extrn	hbuf_chk:near
			     C	extrn	HiAlloc:near
			     C	extrn	HiSysAlloc:near
			     C	extrn	HImod:near
			     C	extrn	LockROM:near
			     C	extrn	UnLockROM:near
			     C	
			     C	LAST	ends
			     C	
			     C	endif
			     C	
			     C	;******************************************************************************
			     C	;
			     C	;   HwTabUnlock - unlocks high system RAM - makes tables writeable
			     C	;
			     C	;	EXIT:	FS points to DIAG segment
			     C	;		high system RAM writeable
			     C	;
			     C	HwTabUnlock	MACRO
			     C	ifndef	NOHIMEM 			; only for high memory
			     C		call	HwMemUnlock
			     C	endif
			     C		ENDM
			     C	
			     C	;******************************************************************************
			     C	;
			     C	;   HwTabLock - update client's hi system RAM write locks state
			     C	;
			     C	;	ENTRY:	CS = _TEXT
			     C	;		CS:[DiagByte] = last byte written to diag byte by user.
			     C	;
			     C	;	EXIT:	high system RAM write protect ON or OFF depenending on
			     C	;		write protect bit in CS:[DiagByte].
			     C	;		Bit 1 = 0 => write protect ON
			     C	;		Bit 1 = 1 => write protect OFF
			     C	;
			     C	HwTabLock	MACRO
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Page     1-18


			     C	ifndef	NOHIMEM 			; only for high memory
			     C		call	HwMemLock
			     C	endif
			     C	
			     C		ENDM
			     C	
			     C	.list	; end of OEMDEP.INC
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Page     1-19


					page
					include	PAGE.INC
			     C	
			     C	
			     C	;******************************************************************************
			     C	;
			     C	;   (C) Copyright MICROSOFT Corp. 1986
			     C	;
			     C	;   Title:    MEMM - MICROSOFT Expanded Memory Manager 386
			     C	;
			     C	;   Module:   PAGE.INC - Definitions for paging on 386
			     C	;
			     C	;   Version:  0.02
			     C	;
			     C	;   Date:     January 31, 1986
			     C	;
			     C	;   Author:
			     C	;
			     C	;******************************************************************************
			     C	;
			     C	;   Change log:
			     C	;
			     C	;     DATE    REVISION			DESCRIPTION
			     C	;   --------  --------	-------------------------------------------------------
			     C	;   01/31/86  Original
			     C	;   05/12/86  A	Cleanup and segment reorganization
			     C	;   06/28/86  0.02	Name change from MEMM386 to MEMM
			     C	;
			     C	;******************************************************************************
			     C	;
			     C	;   Functional Description:
			     C	;
			     C	;******************************************************************************
			     C	ifndef INC_LIST
			     C	.xlist
			     C	endif
			     C	
 = 1000                      C	P_SIZE		equ	1000h		; page size
			     C	
 = 0001                      C	P_PRES		equ	01h		; page present bit
 = 0002                      C	P_WRITE 	equ	02h		; write access bit
 = 0004                      C	P_USER		equ	04h		; access bit for User mode
 = 0010                      C	P_ACC		equ	10h		; page accessed bit
 = 0020                      C	P_DIRTY 	equ	20h		; page dirty bit
			     C	
			     C	
 = 0007                      C	P_AVAIL 	equ	(P_PRES+P_WRITE+P_USER) ; avail to everyone & present
			     C	
			     C	PAGE_ENTRY	macro	addr,stat
			     C			dd	addr		; access & status in low 12
			     C						; address in high 20
			     C	endm
			     C	
			     C	.list		; end of PAGE.INC
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Page     1-20


					page
					include	VDMSEG.INC
			     C	
			     C	
			     C	;******************************************************************************
			     C	;
			     C	;   (C) Copyright MICROSOFT Corp. 1986
			     C	;
			     C	;   Title:    MEMM - MICROSOFT Expanded Memory Manager 386
			     C	;
			     C	;   Module:   VDMSEG.INC - Segment Ordering and attributes for VDM
			     C	;
			     C	;   Version:  0.04
			     C	;
			     C	;   Date:     May 12, 1986
			     C	;
			     C	;   Author:
			     C	;
			     C	;******************************************************************************
			     C	;
			     C	;   Change log:
			     C	;
			     C	;     DATE    REVISION			DESCRIPTION
			     C	;   --------  --------	-------------------------------------------------------
			     C	;	      Original
			     C	;   05/12/86  A 	Cleanup and segment reorganization
			     C	;   06/03/86  C 	changed order and added STACK and STACK0,STACK0_SIZE
			     C	;   06/06/86  C 	changed CODE to _TEXT and DATA to _DATA
			     C	;   06/28/86  0.02	Name change from MEMM386 to MEMM
			     C	;   07/05/86  0.04	Re-organized to allow code seg move
			     C	;   06/03/88		add use16 to all segments
			     C	;
			     C	;******************************************************************************
			     C	ifndef INC_LIST
			     C	.xlist
			     C	endif
			     C	
			     C	ifndef	NOHIMEM
			     C	;
			     C	;  SEGMENT definitions and order
			     C	;
			     C	
			     C	;*     CODE area containing EMM/VDISK headers and writeable Real mode code
			     C	R_CODE		SEGMENT PARA USE16 PUBLIC 'R_CODE'
			     C	R_CODE		ENDS
			     C	
			     C	;*	Contains initialized variables and variables used at startup.
			     C	_DATA		SEGMENT WORD USE16 PUBLIC 'DATA'
			     C	_DATA		ENDS
			     C	
			     C	;* read only constants for C
			     C	CONST		SEGMENT WORD USE16 PUBLIC 'CONST'
			     C	CONST		ENDS
			     C	
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Page     1-21


			     C	;* uninitialized static data for C
			     C	_BSS		SEGMENT WORD USE16 PUBLIC 'BSS'
			     C	_BSS		ENDS
			     C	
			     C	;* Ring 0 stack in VDM
			     C	STACK		SEGMENT PARA USE16 STACK 'STACK'
			     C	STACK		ENDS
			     C	
			     C	;
			     C	; data group
			     C	;
			     C	DGROUP	GROUP	_DATA,CONST,_BSS
			     C	
			     C	;*	The code comprising the system.  Must be READ-ONLY in real mode.
			     C	_TEXT		SEGMENT BYTE USE16 PUBLIC 'CODE'
			     C	_TEXT		ENDS
			     C	
			     C	;*	Global Descriptor Table
			     C	GDT		SEGMENT PARA USE16 COMMON
			     C	GDT		ENDS
			     C	
			     C	;*	Local Descriptor Table
			     C	LDT		SEGMENT PARA USE16 COMMON
			     C	LDT		ENDS
			     C	
			     C	;*	Interrupt Descriptor Table
			     C	IDT		SEGMENT PARA USE16 COMMON
			     C	IDT		ENDS
			     C	
			     C	;*	Task State Segment
			     C	TSS		SEGMENT PARA USE16 COMMON
			     C	TSS		ENDS
			     C	
			     C	;*	Contains initialized variables and variables used at startup.
			     C	PAGESEG 	SEGMENT PARA USE16 PUBLIC 'PAGES'
			     C	PAGESEG 	ENDS
			     C	
			     C	;*	Initialization code and variables.  Used for data later.
			     C	;	Must be last segment.
			     C	LAST		SEGMENT PARA USE16 PUBLIC 'LAST'
			     C	LAST		ENDS
			     C	
			     C	
			     C	
			     C	else
			     C	;
			     C	;  SEGMENT definitions and order
			     C	;
			     C	
			     C	;*     CODE area containing EMM/VDISK headers and writeable Real mode code
 0000                        C	R_CODE		SEGMENT PARA USE16 PUBLIC 'R_CODE'
 0000                        C	R_CODE		ENDS
			     C	
			     C	;*	Global Descriptor Table
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Page     1-22


 0000                        C	GDT		SEGMENT PARA USE16 COMMON
 0000                        C	GDT		ENDS
			     C	
			     C	;*	Local Descriptor Table
 0000                        C	LDT		SEGMENT PARA USE16 COMMON
 0000                        C	LDT		ENDS
			     C	
			     C	;*	Interrupt Descriptor Table
 0000                        C	IDT		SEGMENT PARA USE16 COMMON
 0000                        C	IDT		ENDS
			     C	
			     C	;*	Task State Segment
 0000                        C	TSS		SEGMENT PARA USE16 COMMON
 0000                        C	TSS		ENDS
			     C	
			     C	;*	Contains initialized variables and variables used at startup.
 0000                        C	_DATA		SEGMENT WORD USE16 PUBLIC 'DATA'
 0000                        C	_DATA		ENDS
			     C	
			     C	;* read only constants for C
 0000                        C	CONST		SEGMENT WORD USE16 PUBLIC 'CONST'
 0000                        C	CONST		ENDS
			     C	
			     C	;* uninitialized static data for C
 0000                        C	_BSS		SEGMENT WORD USE16 PUBLIC 'BSS'
 0000                        C	_BSS		ENDS
			     C	
			     C	;* Ring 0 stack in VDM
 0000                        C	STACK		SEGMENT PARA USE16 STACK 'STACK'
 0000                        C	STACK		ENDS
			     C	
			     C	;
			     C	; data group
			     C	;
			     C	DGROUP	GROUP	_DATA,CONST,_BSS
			     C	
			     C	;*	The code comprising the system.  Must be READ-ONLY in real mode.
 0000                        C	_TEXT		SEGMENT BYTE USE16 PUBLIC 'CODE'
 0000                        C	_TEXT		ENDS
			     C	
			     C	;*	Contains dynamically sized emm data structures.
 0000                        C	VDATA		SEGMENT WORD USE16 PUBLIC 'VDATA'
 0000                        C	VDATA		ENDS
			     C	
			     C	;*	Contains initialized variables and variables used at startup.
 0000                        C	PAGESEG 	SEGMENT PARA USE16 PUBLIC 'PAGES'
 0000                        C	PAGESEG 	ENDS
			     C	
			     C	;*	Initialization code and variables.  Used for data later.
			     C	;	Must be last segment.
 0000                        C	LAST		SEGMENT PARA USE16 PUBLIC 'LAST'
 0000                        C	LAST		ENDS
			     C	endif
			     C	;
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Page     1-23


			     C	;  segment related equates
			     C	;
			     C	
			     C	; ring 0 stack size
 = 0200                      C	STACK0_SIZE	equ	512
			     C	
			     C	.list	; end of VDMSEG.INC
			     C	
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Page     1-24


					page
					include	VDMSEL.INC
			     C	
			     C	
			     C	;******************************************************************************
			     C	;
			     C	;   (C) Copyright MICROSOFT Corp. 1986
			     C	;
			     C	;   Title:    MEMM - MICROSOFT Expanded Memory Manager 386
			     C	;
			     C	;   Module:   VDMSEL.INC - Selector Definitions for MEMM
			     C	;
			     C	;   Version:  0.05
			     C	;
			     C	;   Date:     May 12, 1986
			     C	;
			     C	;   Author:
			     C	;
			     C	;******************************************************************************
			     C	;
			     C	;   Change log:
			     C	;
			     C	;     DATE    REVISION			DESCRIPTION
			     C	;   --------  --------	-------------------------------------------------------
			     C	;	      Original
			     C	;   05/12/86  A 	Cleanup and segment reorganization
			     C	;   06/07/86  C 	merged with module from Rick
			     C	;   06/28/86  0.02	Name change from MEMM386 to MEMM
			     C	;   07/10/86  0.05	Changed CODE_GSEL to RCODEA_GSEL
			     C	;   07/20/88		Remove debugger selectors
			     C	;
			     C	;******************************************************************************
			     C	ifndef INC_LIST
			     C	.xlist
			     C	endif
			     C	
			     C	
			     C	;
			     C	;	DESCRIPTION
			     C	;
			     C	;	These are the fixed selector numbers for the GDT and LDT
			     C	;
			     C	;	All are declared with RPL = 0 so they can easily be used
			     C	;	as table indices.
			     C	;
			     C	;	Do not change anything without consulting files which include
			     C	;	this one. Add new selectors to the end and update the
			     C	;	gdt declaration and initialisation code elsewhere.
			     C	;
			     C	
			     C	;	Define LDT and GDT table bits
			     C	
 = 0004                      C	TAB_LDT 	equ	4h
 = 0000                      C	TAB_GDT 	equ	0h
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Page     1-25


			     C	
			     C	
			     C	;	Define GDT selectors
			     C	
 = 0008                      C	GDTD_GSEL	equ	008h OR TAB_GDT		; gdt data alias
 = 0010                      C	IDTD_GSEL	equ	010h OR TAB_GDT		; idt data alias
 = 0018                      C	LDT_GSEL	equ	018h OR TAB_GDT		; ldt
 = 0020                      C	LDTD_GSEL	equ	020h OR TAB_GDT		; ldt data alias
 = 0028                      C	TSS_GSEL	equ	028h OR TAB_GDT		; tss
 = 0030                      C	TSSD_GSEL	equ	030h OR TAB_GDT		; tss data alias
 = 0038                      C	RM_IDT_GSEL	equ	038h OR TAB_GDT		; real mode idt (locn 0)
 = 0040                      C	ROMDATA_GSEL	equ	040h OR TAB_GDT		; maps 40:0 - DON'T CHANGE!!
 = 0048                      C	VDMC_GSEL	equ	048h OR TAB_GDT		; VDM Code selector
 = 0050                      C	VDMD_GSEL	equ	050h OR TAB_GDT		; VDM Data Selector
 = 0058                      C	VDMS_GSEL	equ	058h OR TAB_GDT		; VDM stack selector
 = 0060                      C	MONO_GSEL	equ	060h OR TAB_GDT		; monochrome display memory
 = 0068                      C	COLOUR_GSEL	equ	068h OR TAB_GDT		; colour display memory
 = 0070                      C	EGA1_GSEL	equ	070h OR TAB_GDT		; first EGA sel
 = 0078                      C	EGA2_GSEL	equ	078h OR TAB_GDT		; second EGA sel
 = 0080                      C	LOADALL_GSEL	equ	080h OR TAB_GDT		; loadall buffer - DON'T CHANGE
			     C	;DEBC_GSEL	equ	088h or TAB_GDT		; debugger work descr
			     C	;DEBD_GSEL	equ	090h or TAB_GDT		; debugger work descr
			     C	;DEBW1_GSEL	equ	098h or TAB_GDT		; debugger work descr
			     C	;DEBW2_GSEL	equ	0A0h or TAB_GDT 	; debugger work descr
 = 0088                      C	DEB1_GSEL	equ	088h or TAB_GDT		; deb386 word descr
 = 0090                      C	DEB2_GSEL	equ	090h or TAB_GDT		; deb386 word descr
 = 0098                      C	DEB3_GSEL	equ	098h or TAB_GDT		; deb386 word descr
 = 00A0                      C	DEB4_GSEL	equ	0A0h or TAB_GDT		; deb386 word descr
 = 00A8                      C	DEB5_GSEL	equ	0A8h or TAB_GDT		; deb386 word descr
 = 00B0                      C	DEBX_GSEL	equ	0B0h or TAB_GDT		; deb386 descr for all of addressing space
 = 00B8                      C	K_PUTC286	equ	0B8h OR TAB_GDT 	; 286 call gate to kputc
 = 00C0                      C	K_GETC286	equ	0C0h OR TAB_GDT 	; 286 call gate to kgetc
 = 00C8                      C	RCODEA_GSEL	equ	0C8h OR TAB_GDT 	; data alias for R_CODE segment
 = 00D0                      C	VM1_GSEL	equ	0D0h OR TAB_GDT 	; scratch for vm handler
 = 00D8                      C	VM2_GSEL	equ	0D8h OR TAB_GDT 	; scratch for vm handler
 = 00E0                      C	MBSRC_GSEL	equ	0E0h OR TAB_GDT 	; source sel for move blk
 = 00E8                      C	MBTAR_GSEL	equ	0E8h OR TAB_GDT 	; target sel for move blk
 = 00F0                      C	PAGET_GSEL	equ	0F0h OR TAB_GDT 	; page table area sel
 = 00F8                      C	VDMCA_GSEL	equ	0F8h OR TAB_GDT 	; VDM code segment alias
 = 0100                      C	EMM1_GSEL	equ	100h OR TAB_GDT 	; EMM scratch selector
 = 0108                      C	EMM2_GSEL	equ	108h OR TAB_GDT 	; EMM scratch selector
 = 0110                      C	OEM0_GSEL	equ	110h OR TAB_GDT 	; OEM specific selector
 = 0118                      C	OEM1_GSEL	equ	118h OR TAB_GDT 	; OEM specific selector
 = 0120                      C	OEM2_GSEL	equ	120h OR TAB_GDT 	; OEM specific selector
 = 0128                      C	OEM3_GSEL	equ	128h OR TAB_GDT 	; OEM specific selector
 = 0130                      C	USER1_GSEL	equ	130h OR TAB_GDT		; USER data structure 
			     C	
			     C	.list	; end of VDMSEL.INC
			     C	
				
					end

Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Symbols-1


Macros:

		N a m e			Lines

DWORD_ALIGN  . . . . . . . . . .  	   4
GDT_ENTRY  . . . . . . . . . . .  	   5
HANDLE2HANDLEPTR . . . . . . . .  	   2
HWTABLOCK  . . . . . . . . . . .  	   3
HWTABUNLOCK  . . . . . . . . . .  	   3
IDT_ENTRY  . . . . . . . . . . .  	   5
LDT_ENTRY  . . . . . . . . . . .  	   5
PAGE_ENTRY . . . . . . . . . . .  	   2
VALIDATE_HANDLE  . . . . . . . .  	   8

Structures and Records:

                N a m e                 Width   # fields
                                        Shift   Width   Mask    Initial

DESC . . . . . . . . . . . . . .  	0008	0006
  LIMIT  . . . . . . . . . . . .  	0000
  BASE_LOW . . . . . . . . . . .  	0002
  BASE_HIGH  . . . . . . . . . .  	0004
  RIGHTS . . . . . . . . . . . .  	0005
  RES386 . . . . . . . . . . . .  	0006
  BASE_XHI . . . . . . . . . . .  	0007
FRS_STRUC  . . . . . . . . . . .  	0052	0002
  FRS_WINDOW . . . . . . . . . .  	0000
  FRS_ALLOC  . . . . . . . . . .  	0050
GPPM_STRUC . . . . . . . . . . .  	0004	0002
  GPPM_COUNT . . . . . . . . . .  	0000
  GPPM_SEGS  . . . . . . . . . .  	0002
HANDLETABLE_STRUC  . . . . . . .  	0004	0002
  HT_INDEX . . . . . . . . . . .  	0000
  HT_COUNT . . . . . . . . . . .  	0002
LOG_PHYS_MAP_STRUCT  . . . . . .  	0004	0002
  LOG_PAGE_NUMBER  . . . . . . .  	0000
  PHYS_PAGE_NUMBER_SEG . . . . .  	0002
MAC_STRUCT . . . . . . . . . . .  	0016	0006
  MAC_TARGET_ADDRESS . . . . . .  	0000
  MAC_NEW_PAGE_MAP_LEN . . . . .  	0004
  MAC_NEW_MAP_ADDRESS  . . . . .  	0005
  MAC_OLD_PAGE_MAP_LEN . . . . .  	0009
  MAC_OLD_MAP_ADDRESS  . . . . .  	000A
  MAC_RESERVED . . . . . . . . .  	000E
MAJ_STRUCT . . . . . . . . . . .  	0009	0003
  MAJ_TARGET_ADDRESS . . . . . .  	0000
  MAJ_LOG_PHYS_MAP_LEN . . . . .  	0004
  MAJ_MAP_ADDRESS  . . . . . . .  	0005
MAPPABLE_PAGE  . . . . . . . . .  	0004	0002
  MAPPABLE_SEG . . . . . . . . .  	0000
  MAPPABLE_PG  . . . . . . . . .  	0002
MEM_MEMORY_DESCRIPTOR_STRUCT . .  	0007	0004
  MEM_MEMORY_TYPE  . . . . . . .  	0000
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Symbols-2


  MEM_HANDLE . . . . . . . . . .  	0001
  MEM_INITIAL_OFFSET . . . . . .  	0003
  MEM_INITIAL_SEG_PAGE . . . . .  	0005
MEM_STRUCT . . . . . . . . . . .  	0012	0003
  MEM_REGION_LENGTH  . . . . . .  	0000
  MEM_SOURCE . . . . . . . . . .  	0004
  MEM_DEST . . . . . . . . . . .  	000B
MHA_ARRAY0 . . . . . . . . . . .  	0004	0002
  MHA0_LOG_PG  . . . . . . . . .  	0000
  MHA0_PHYS_PG . . . . . . . . .  	0002
MHA_ARRAY1 . . . . . . . . . . .  	0004	0002
  MHA1_LOG_PG  . . . . . . . . .  	0000
  MHA1_SEG . . . . . . . . . . .  	0002
R67_FRAME  . . . . . . . . . . .  	002E	000F
  RDI  . . . . . . . . . . . . .  	0000
  RSI  . . . . . . . . . . . . .  	0004
  RBP  . . . . . . . . . . . . .  	0008
  RSP  . . . . . . . . . . . . .  	000C
  RBX  . . . . . . . . . . . . .  	0010
  RDX  . . . . . . . . . . . . .  	0014
  RCX  . . . . . . . . . . . . .  	0018
  RAX  . . . . . . . . . . . . .  	001C
  RETADDR  . . . . . . . . . . .  	0020
  RCS  . . . . . . . . . . . . .  	0022
  PFLAG  . . . . . . . . . . . .  	0024
  RDS  . . . . . . . . . . . . .  	0026
  RES  . . . . . . . . . . . . .  	0028
  RGS  . . . . . . . . . . . . .  	002A
  RFS  . . . . . . . . . . . . .  	002C
SAVEMAP_STRUC  . . . . . . . . .  	000A	0002
  S_HANDLE . . . . . . . . . . .  	0000
  S_MAP  . . . . . . . . . . . .  	0002
TSS286STRUC  . . . . . . . . . .  	002C	0016
  TSS286_BACKLINK  . . . . . . .  	0000
  TSS286_SP0 . . . . . . . . . .  	0002
  TSS286_SS0 . . . . . . . . . .  	0004
  TSS286_SP1 . . . . . . . . . .  	0006
  TSS286_SS1 . . . . . . . . . .  	0008
  TSS286_SP2 . . . . . . . . . .  	000A
  TSS286_SS2 . . . . . . . . . .  	000C
  TSS286_IP  . . . . . . . . . .  	000E
  TSS286_FLAGS . . . . . . . . .  	0010
  TSS286_AX  . . . . . . . . . .  	0012
  TSS286_CX  . . . . . . . . . .  	0014
  TSS286_DX  . . . . . . . . . .  	0016
  TSS286_BX  . . . . . . . . . .  	0018
  TSS286_SP  . . . . . . . . . .  	001A
  TSS286_BP  . . . . . . . . . .  	001C
  TSS286_SI  . . . . . . . . . .  	001E
  TSS286_DI  . . . . . . . . . .  	0020
  TSS286_ES  . . . . . . . . . .  	0022
  TSS286_CS  . . . . . . . . . .  	0024
  TSS286_SS  . . . . . . . . . .  	0026
  TSS286_DS  . . . . . . . . . .  	0028
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Symbols-3


  TSS286_LDT . . . . . . . . . .  	002A
TSS386STRUC  . . . . . . . . . .  	0068	0027
  TSS386_BACKLINK  . . . . . . .  	0000
  TSS386_UNUSED1 . . . . . . . .  	0002
  TSS386_ESP0LO  . . . . . . . .  	0004
  TSS386_ESP0HI  . . . . . . . .  	0006
  TSS386_SS0 . . . . . . . . . .  	0008
  TSS386_UNUSED2 . . . . . . . .  	000A
  TSS386_ESP1  . . . . . . . . .  	000C
  TSS386_SS1 . . . . . . . . . .  	0010
  TSS386_UNUSED3 . . . . . . . .  	0012
  TSS386_ESP2  . . . . . . . . .  	0014
  TSS386_SS2 . . . . . . . . . .  	0018
  TSS386_UNUSED4 . . . . . . . .  	001A
  TSS386_CR3 . . . . . . . . . .  	001C
  TSS386_EIP . . . . . . . . . .  	0020
  TSS386_EFLAGS  . . . . . . . .  	0024
  TSS386_EAX . . . . . . . . . .  	0028
  TSS386_ECX . . . . . . . . . .  	002C
  TSS386_EDX . . . . . . . . . .  	0030
  TSS386_EBX . . . . . . . . . .  	0034
  TSS386_ESP . . . . . . . . . .  	0038
  TSS386_EBP . . . . . . . . . .  	003C
  TSS386_ESI . . . . . . . . . .  	0040
  TSS386_EDI . . . . . . . . . .  	0044
  TSS386_ES  . . . . . . . . . .  	0048
  TSS386_UNUSED5 . . . . . . . .  	004A
  TSS386_CS  . . . . . . . . . .  	004C
  TSS386_UNUSED6 . . . . . . . .  	004E
  TSS386_SS  . . . . . . . . . .  	0050
  TSS386_UNUSED7 . . . . . . . .  	0052
  TSS386_DS  . . . . . . . . . .  	0054
  TSS386_UNUSED8 . . . . . . . .  	0056
  TSS386_FS  . . . . . . . . . .  	0058
  TSS386_UNUSED9 . . . . . . . .  	005A
  TSS386_GS  . . . . . . . . . .  	005C
  TSS386_UNUSED10  . . . . . . .  	005E
  TSS386_LDT . . . . . . . . . .  	0060
  TSS386_UNUSED11  . . . . . . .  	0062
  TASKATTRIBUTES . . . . . . . .  	0064
  BITMAPBASE . . . . . . . . . .  	0066

Segments and Groups:

                N a m e         	Size	Length	 Align	Combine Class

DGROUP . . . . . . . . . . . . .  	GROUP
  _DATA  . . . . . . . . . . . .  	16 Bit	0000	WORD	PUBLIC	'DATA'
  CONST  . . . . . . . . . . . .  	16 Bit	0000	WORD	PUBLIC	'CONST'
  _BSS . . . . . . . . . . . . .  	16 Bit	0000	WORD	PUBLIC	'BSS'
GDT  . . . . . . . . . . . . . .  	16 Bit	0000	PARA	COMMON	
IDT  . . . . . . . . . . . . . .  	16 Bit	0000	PARA	COMMON	
LAST . . . . . . . . . . . . . .  	16 Bit	0000	PARA	PUBLIC	'LAST'
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Symbols-4


LDT  . . . . . . . . . . . . . .  	16 Bit	0000	PARA	COMMON	
PAGESEG  . . . . . . . . . . . .  	16 Bit	0000	PARA	PUBLIC	'PAGES'
R_CODE . . . . . . . . . . . . .  	16 Bit	0000	PARA	PUBLIC	'R_CODE'
STACK  . . . . . . . . . . . . .  	16 Bit	0000	PARA	STACK	'STACK'
TSS  . . . . . . . . . . . . . .  	16 Bit	0000	PARA	COMMON	
VDATA  . . . . . . . . . . . . .  	16 Bit	0000	WORD	PUBLIC	'VDATA'
_TEXT  . . . . . . . . . . . . .  	16 Bit	0000	BYTE	PUBLIC	'CODE'

Symbols:            

                N a m e         	Type	 Value	 Attr

ABOVE_CONV_END_PG  . . . . . . .  	NUMBER	0037	
ABOVE_CONV_END_SEG . . . . . . .  	NUMBER	DC00	
ABOVE_CONV_STRT_PG . . . . . . .  	NUMBER	0030	
ABOVE_CONV_STRT_SEG  . . . . . .  	NUMBER	C000	
ACCESS_DENIED  . . . . . . . . .  	NUMBER	00A4	

BACKWARD_COPY_FLAG . . . . . . .  	NUMBER	0020	

CLEAR_IOPL . . . . . . . . . . .  	NUMBER	CFFF	
COLOUR_GSEL  . . . . . . . . . .  	NUMBER	0068	
CONVENTIONAL_EMM_OVERLAP . . . .  	NUMBER	0094	
CONV_STRT_PG . . . . . . . . . .  	NUMBER	0010	
CONV_STRT_SEG  . . . . . . . . .  	NUMBER	4000	

DEB1_GSEL  . . . . . . . . . . .  	NUMBER	0088	
DEB2_GSEL  . . . . . . . . . . .  	NUMBER	0090	
DEB3_GSEL  . . . . . . . . . . .  	NUMBER	0098	
DEB4_GSEL  . . . . . . . . . . .  	NUMBER	00A0	
DEB5_GSEL  . . . . . . . . . . .  	NUMBER	00A8	
DEBX_GSEL  . . . . . . . . . . .  	NUMBER	00B0	
DUPLICATE_HANDLE_NAME  . . . . .  	NUMBER	00A1	
D_386CALL_GATE . . . . . . . . .  	NUMBER	000C	
D_386INT0  . . . . . . . . . . .  	NUMBER	008E	
D_386INT3  . . . . . . . . . . .  	NUMBER	00EE	
D_386INT_GATE  . . . . . . . . .  	NUMBER	000E	
D_386TRAP_GATE . . . . . . . . .  	NUMBER	000F	
D_386TSS . . . . . . . . . . . .  	NUMBER	0009	
D_386TSS0  . . . . . . . . . . .  	NUMBER	0089	
D_ACCESSED . . . . . . . . . . .  	NUMBER	0001	
D_BUSY386TSS . . . . . . . . . .  	NUMBER	000B	
D_B_BIT  . . . . . . . . . . . .  	NUMBER	0040	
D_CALLGATE . . . . . . . . . . .  	NUMBER	0004	
D_CODE . . . . . . . . . . . . .  	NUMBER	0008	
D_CODE0  . . . . . . . . . . . .  	NUMBER	009A	
D_CODE3  . . . . . . . . . . . .  	NUMBER	00FA	
D_CONFORM  . . . . . . . . . . .  	NUMBER	0004	
D_CTRL . . . . . . . . . . . . .  	NUMBER	0000	
D_DATA . . . . . . . . . . . . .  	NUMBER	0000	
D_DATA0  . . . . . . . . . . . .  	NUMBER	0092	
D_DATA3  . . . . . . . . . . . .  	NUMBER	00F2	
D_DPL0 . . . . . . . . . . . . .  	NUMBER	0000	
D_DPL1 . . . . . . . . . . . . .  	NUMBER	0020	
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Symbols-5


D_DPL2 . . . . . . . . . . . . .  	NUMBER	0040	
D_DPL3 . . . . . . . . . . . . .  	NUMBER	0060	
D_EXPDN  . . . . . . . . . . . .  	NUMBER	0004	
D_GATE3  . . . . . . . . . . . .  	NUMBER	00E4	
D_INT0 . . . . . . . . . . . . .  	NUMBER	0086	
D_INT3 . . . . . . . . . . . . .  	NUMBER	00E6	
D_INTGATE  . . . . . . . . . . .  	NUMBER	0006	
D_LDT  . . . . . . . . . . . . .  	NUMBER	0002	
D_LDT0 . . . . . . . . . . . . .  	NUMBER	0082	
D_NOTPRES  . . . . . . . . . . .  	NUMBER	0000	
D_PRES . . . . . . . . . . . . .  	NUMBER	0080	
D_R  . . . . . . . . . . . . . .  	NUMBER	0000	
D_RX . . . . . . . . . . . . . .  	NUMBER	0002	
D_SEG  . . . . . . . . . . . . .  	NUMBER	0010	
D_TASKGATE . . . . . . . . . . .  	NUMBER	0005	
D_TRAP0  . . . . . . . . . . . .  	NUMBER	0087	
D_TRAPGATE . . . . . . . . . . .  	NUMBER	0007	
D_TSS  . . . . . . . . . . . . .  	NUMBER	0001	
D_TSS0 . . . . . . . . . . . . .  	NUMBER	0081	
D_TSS_BUSY . . . . . . . . . . .  	NUMBER	0003	
D_W  . . . . . . . . . . . . . .  	NUMBER	0002	
D_X  . . . . . . . . . . . . . .  	NUMBER	0000	

EGA1_GSEL  . . . . . . . . . . .  	NUMBER	0070	
EGA2_GSEL  . . . . . . . . . . .  	NUMBER	0078	
EMM1_GSEL  . . . . . . . . . . .  	NUMBER	0100	
EMM2_GSEL  . . . . . . . . . . .  	NUMBER	0108	
EMM32_PHYS_PAGES . . . . . . . .  	NUMBER	0004	
EMM_HW_MALFUNCTION . . . . . . .  	NUMBER	0081	
EMM_PAGE_CNT . . . . . . . . . .  	NUMBER	0800	
EMM_SW_MALFUNCTION . . . . . . .  	NUMBER	0080	

FRSETS_UNSUPPORTED . . . . . . .  	NUMBER	0099	
FRSET_INVALID_DMA  . . . . . . .  	NUMBER	009F	
FRSET_NON_ZERO . . . . . . . . .  	NUMBER	009C	
FRSET_NO_DMA . . . . . . . . . .  	NUMBER	009E	
FRSET_UNDEFINED  . . . . . . . .  	NUMBER	009D	
FRS_COUNT  . . . . . . . . . . .  	NUMBER	0010	

GDTD_GSEL  . . . . . . . . . . .  	NUMBER	0008	
GSPM_GET . . . . . . . . . . . .  	NUMBER	0000	
GSPM_GETSET  . . . . . . . . . .  	NUMBER	0002	
GSPM_SET . . . . . . . . . . . .  	NUMBER	0001	
GSPM_SIZE  . . . . . . . . . . .  	NUMBER	0003	

HANDLE_CNT . . . . . . . . . . .  	NUMBER	00FF	
HANDLE_NAME_NOT_FOUND  . . . . .  	NUMBER	00A0	

I386 . . . . . . . . . . . . . .  	TEXT  		
IDTD_GSEL  . . . . . . . . . . .  	NUMBER	0010	
INC_LIST . . . . . . . . . . . .  	NUMBER	0001	
INSUFFICIENT_EMM_PAGES . . . . .  	NUMBER	0093	
INVALID_FRSET  . . . . . . . . .  	NUMBER	009A	
INVALID_FUNCTION . . . . . . . .  	NUMBER	0084	
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Symbols-6


INVALID_HANDLE . . . . . . . . .  	NUMBER	0083	
INVALID_MEMORY_TYPE  . . . . . .  	NUMBER	0098	
INVALID_OFFSET . . . . . . . . .  	NUMBER	0095	
INVALID_REGION_LENGTH  . . . . .  	NUMBER	0096	
INVALID_SUBFUNCTION  . . . . . .  	NUMBER	008F	
INVALID_WRAPAROUND . . . . . . .  	NUMBER	00A2	

K_GETC286  . . . . . . . . . . .  	NUMBER	00C0	
K_PUTC286  . . . . . . . . . . .  	NUMBER	00B8	

LDTD_GSEL  . . . . . . . . . . .  	NUMBER	0020	
LDT_GSEL . . . . . . . . . . . .  	NUMBER	0018	
LOADALL_GSEL . . . . . . . . . .  	NUMBER	0080	
LOG_PAGE_RANGE . . . . . . . . .  	NUMBER	008A	

Map_Lin_OEM  . . . . . . . . . .  	L NEAR	0000	_TEXT	External
MAP_PREV_SAVED . . . . . . . . .  	NUMBER	008D	
MaskIntAll . . . . . . . . . . .  	L NEAR	0000	_TEXT	External
MAX_ABOVE_CONV_PAGES . . . . . .  	NUMBER	0008	
MAX_PHYS_PAGES . . . . . . . . .  	NUMBER	0028	
MBSRC_GSEL . . . . . . . . . . .  	NUMBER	00E0	
MBTAR_GSEL . . . . . . . . . . .  	NUMBER	00E8	
MB_Map_Dest  . . . . . . . . . .  	L NEAR	0000	_TEXT	External
MB_Map_Src . . . . . . . . . . .  	L NEAR	0000	_TEXT	External
MB_Start . . . . . . . . . . . .  	L NEAR	0000	_TEXT	External
MONO_GSEL  . . . . . . . . . . .  	NUMBER	0060	
MSW_PROTECT  . . . . . . . . . .  	NUMBER	0001	

NOHIMEM  . . . . . . . . . . . .  	TEXT  		
NOT_ENOUGH_EXT_MEM . . . . . . .  	NUMBER	0087	
NOT_ENOUGH_FREE_MEM  . . . . . .  	NUMBER	0088	
NO_MAP_SAVED . . . . . . . . . .  	NUMBER	008E	
NO_MORE_FRSETS . . . . . . . . .  	NUMBER	009B	
NO_MORE_HANDLES  . . . . . . . .  	NUMBER	0085	
NULL_HANDLE  . . . . . . . . . .  	NUMBER	0FFF	
NULL_PAGE  . . . . . . . . . . .  	NUMBER	FFFF	
NUM_CONV_PGS . . . . . . . . . .  	NUMBER	0018	

OEM0_GSEL  . . . . . . . . . . .  	NUMBER	0110	
OEM1_GSEL  . . . . . . . . . . .  	NUMBER	0118	
OEM2_GSEL  . . . . . . . . . . .  	NUMBER	0120	
OEM3_GSEL  . . . . . . . . . . .  	NUMBER	0128	
OK . . . . . . . . . . . . . . .  	NUMBER	0000	
OS_DISABLED  . . . . . . . . . .  	NUMBER	0002	
OS_ENABLED . . . . . . . . . . .  	NUMBER	0001	
OS_IDLE  . . . . . . . . . . . .  	NUMBER	0000	
OVERLAPPING_EXCHANGE . . . . . .  	NUMBER	0097	
OVERLAP_FLAG . . . . . . . . . .  	NUMBER	0040	

PAGET_GSEL . . . . . . . . . . .  	NUMBER	00F0	
PAGE_MAPPABLE  . . . . . . . . .  	NUMBER	00FF	
PAGE_NOT_MAPPABLE  . . . . . . .  	NUMBER	0000	
PAGE_SIZE  . . . . . . . . . . .  	NUMBER	1000	
PFLAG_PATCH_CS_IP  . . . . . . .  	NUMBER	0008	
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Symbols-7


PFLAG_VIRTUAL  . . . . . . . . .  	NUMBER	0020	
PFLAG_VM . . . . . . . . . . . .  	NUMBER	0002	
PHYS_PAGE_RANGE  . . . . . . . .  	NUMBER	008B	
P_ACC  . . . . . . . . . . . . .  	NUMBER	0010	
P_AVAIL  . . . . . . . . . . . .  	NUMBER	0007	
P_DIRTY  . . . . . . . . . . . .  	NUMBER	0020	
P_PRES . . . . . . . . . . . . .  	NUMBER	0001	
P_SIZE . . . . . . . . . . . . .  	NUMBER	1000	
P_USER . . . . . . . . . . . . .  	NUMBER	0004	
P_WRITE  . . . . . . . . . . . .  	NUMBER	0002	

RCODEA_GSEL  . . . . . . . . . .  	NUMBER	00C8	
RestIntMask  . . . . . . . . . .  	L NEAR	0000	_TEXT	External
RM_IDT_GSEL  . . . . . . . . . .  	NUMBER	0038	
ROMDATA_GSEL . . . . . . . . . .  	NUMBER	0040	
RPL_CLR  . . . . . . . . . . . .  	NUMBER	FFFFFFFC 
RPL_MASK . . . . . . . . . . . .  	NUMBER	0003	
R_AVL  . . . . . . . . . . . . .  	NUMBER	0010	
R_GRAN . . . . . . . . . . . . .  	NUMBER	0080	
R_LIMIT_XHI  . . . . . . . . . .  	NUMBER	000F	

SAVED_PAGE_DEALLOC . . . . . . .  	NUMBER	0086	
SAVE_AREA_FULL . . . . . . . . .  	NUMBER	008C	
SELECTOR_MASK  . . . . . . . . .  	NUMBER	FFF8	
SEL_LOW_MASK . . . . . . . . . .  	NUMBER	00F8	
SOURCE_CORRUPTED . . . . . . . .  	NUMBER	00A3	
SOURCE_GT_DEST_FLAG  . . . . . .  	NUMBER	0080	
STACK0_SIZE  . . . . . . . . . .  	NUMBER	0200	
STK_SIZE . . . . . . . . . . . .  	NUMBER	4000	
SYS_IOPL . . . . . . . . . . . .  	NUMBER	3000	

TABLE_MASK . . . . . . . . . . .  	NUMBER	0004	
TAB_GDT  . . . . . . . . . . . .  	NUMBER	0000	
TAB_LDT  . . . . . . . . . . . .  	NUMBER	0004	
TOT_PHYS_PAGES . . . . . . . . .  	NUMBER	0040	
TSSD_GSEL  . . . . . . . . . . .  	NUMBER	0030	
TSS_GSEL . . . . . . . . . . . .  	NUMBER	0028	

UMap_Lin_OEM . . . . . . . . . .  	L NEAR	0000	_TEXT	External
USER1_GSEL . . . . . . . . . . .  	NUMBER	0130	

VALID_OVERLAP  . . . . . . . . .  	NUMBER	0092	
VDMCA_GSEL . . . . . . . . . . .  	NUMBER	00F8	
VDMC_GSEL  . . . . . . . . . . .  	NUMBER	0048	
VDMD_GSEL  . . . . . . . . . . .  	NUMBER	0050	
VDMS_GSEL  . . . . . . . . . . .  	NUMBER	0058	
VerifyMachine  . . . . . . . . .  	L NEAR	0000	LAST	External
VM1_GSEL . . . . . . . . . . . .  	NUMBER	00D0	
VM2_GSEL . . . . . . . . . . . .  	NUMBER	00D8	

ZERO_PAGES . . . . . . . . . . .  	NUMBER	0089	

@CPU . . . . . . . . . . . . . .  	TEXT  3471		
@FILENAME  . . . . . . . . . . .  	TEXT  emminc		
Microsoft (R) Macro Assembler Version 5.10                  5/17/24 09:44:42
EMMINC.ASM - lists all EMMLIB.LIB include files             Symbols-8


@VERSION . . . . . . . . . . . .  	TEXT  510		


   1095 Source  Lines
   1095 Total   Lines
    343 Symbols

  46632 + 166602 Bytes symbol space free

      0 Warning Errors
      0 Severe  Errors
