home *** CD-ROM | disk | FTP | other *** search
- {
- ════════════════════════════════════════════════════════════════════════════
-
- Visionix Expanded Memory Services Unit (VEMS)
- Copyright 1991,92,93 Visionix
- ALL RIGHTS RESERVED
-
- ────────────────────────────────────────────────────────────────────────────
-
- Revision history in reverse chronological order:
-
- Initials Date Comment
- ──────── ──────── ────────────────────────────────────────────────────────
-
- mep 03/30/93 Moved EMS 4.0/3.2 code from VMemLow as replacement
-
- lpg 03/15/93 Added Source Documentation
-
- mep 02/11/93 Cleaned up code for beta release
-
- jrt 02/08/93 Sync with beta 0.12 release
-
- jrt 12/07/92 Sync with beta 0.11 release
-
- jrt 11/21/92 Sync with beta 0.08
-
- jrt 11/18/92 First logged revision.
-
- ────────────────────────────────────────────────────────────────────────────
-
- }
-
- Unit VEMS;
-
-
- Uses
-
- VTypes,
- DOS;
-
- {────────────────────────────────────────────────────────────────────────────}
-
- Type
-
- TEMSError = BYTE;
-
- {-----------------------------}
-
- TEMSHandle = WORD;
- PEMSHandle = ^TEMSHandle;
-
- {-----------------------------}
-
- TEMMHandle = WORD;
- PEMMHandle = ^TEMMHandle;
-
- {-----------------------------}
-
- TEMSMapArr = RECORD
-
- LogicPage : WORD; { $FFFF = unmap physical pg }
- PhysicalPage : WORD; { segment address }
-
- END;
- PEMSMapArr = ^TEMSMapArr;
-
- {-----------------------------}
-
- TEMSHandleName = Array[1..8] of BYTE;
- PEMSHandleName = ^TEMSHandleName;
-
- {-----------------------------}
-
- TEMSHandleDir = RECORD
-
- Handle : WORD;
- HandleName : TEMSHandleName;
-
- END;
- PEMSHandleDir = ^TEMSHandleDir;
-
- {-----------------------------}
-
- TEMSMapAddr = RECORD
-
- END;
- PEMSMapAddr = ^TEMSMapAddr;
-
- {-----------------------------}
-
- TEMSCopyData = RECORD
-
- RegionLen : LONGINT;
- SourceMemType : BYTE; { 0 = conventional, 1 = expanded }
- SourceHandle : WORD; { 0 if conventional memory }
- SourceInitOfs : WORD; { within page if EMS, }
- { within segment if conventional }
- SourceInitSegPg : WORD; { segment if conventional memory,}
- { logical page if EMS }
- DestMemType : BYTE; { 0 = conventional, 1 = expanded }
- DestHandle : WORD;
- DestInitOfs : WORD;
- DestInitSegPg : WORD;
-
- END;
- PEMSCopyData = ^TEMSCopyData;
-
- {-----------------------------}
-
- TEMSMapPhyAddr = RECORD
-
- PhysicalPgSeg : WORD;
- PhysicalPgNum : WORD;
-
- END;
- PEMSMapPhyAddr = ^TEMSMapPhyAddr;
-
- {-----------------------------}
-
- TEMSHardwareCfgArr = RECORD
-
- SizeRawEMMPg : WORD; { in paragraphs }
- NumAlternRegSet : WORD;
- SizeSaveMapContext : WORD; { in bytes }
- NumRegSetAssignDMA : WORD;
- DMAOperationType : WORD; { 0 = DMA w/alternate register sets, }
- { 1 = only one DMA register set }
-
- END;
- PEMSHardwareCfgArr = ^TEMSHardwareCfgArr;
-
- {────────────────────────────────────────────────────────────────────────────}
-
- {----------}
- { EMS 3.2+ }
- {----------}
-
- Function VEMSErrorToStr( Status : TEMSError ) : STRING;
-
- Function VEMSInstalled : BOOLEAN;
-
- Function VEMSGetManagerStatus : TEMSError;
-
- Function VEMSGetPgFrameStatus( Var PgFrameSeg : WORD ) : TEMSError;
-
- Function VEMSGetFreePg( Var UnallocPg : WORD;
- Var TotalPg : WORD ) : TEMSError;
-
- Function VEMSNewHandle( LogicalPg : WORD;
- Var EMSHandle : TEMSHandle ) : TEMSError;
-
- Function VEMSMapMemory( EMSHandle : TEMSHandle;
- PhysicalPg : BYTE;
- LogicalPg : WORD ) : TEMSError;
-
- Function VEMSDisposeHandle( EMMHandle : TEMMHandle ) : TEMSError;
-
- Function VEMMGetVersion( Var EMMVersion : BYTE ) : TEMSError;
-
- Function VEMSSaveMapContext( EMSHandle : TEMSHandle ) : TEMSError;
-
- Function VEMSRestoreMapContext( EMSHandle : TEMSHandle ) : TEMSError;
-
- Function VEMMGetNumHandles( Var NumHandles : WORD ) : TEMSError;
-
- Function VEMSPgsOwnedByHandle( EMMHandle : TEMMHandle;
- Var LogicalPgs : WORD ) : TEMSError;
-
- Function VEMSGetPgAllHandles( EMMInfo : POINTER;
- Var NumHandles : WORD ) : TEMSError;
-
- Function VEMSGetPgMap( OutMapReg : POINTER ) : TEMSError;
-
- Function VEMSSetPgMap( InMapReg : POINTER ) : TEMSError;
-
- Function VEMSGetSetPgMap( InMapReg : POINTER;
- OutMapReg : POINTER ) : TEMSError;
-
- Function VEMSGetSizePgMapArr( Var Size : BYTE ) : TEMSError;
-
-
- {────────────────────────────────────────────────────────────────────────────}
-
- {---------}
- { EMS 4.0 }
- {---------}
-
- Function VEMSGetPartPgMap( InPartMap : POINTER;
- OutPartMap : POINTER ) : TEMSError;
-
- Function VEMSSetPartPgMap( InPartMap : POINTER ) : TEMSError;
-
- Function VEMSGetSizePartPgMap( NumMapSeg : WORD;
- Var Size : BYTE ) : TEMSError;
-
- Function VEMSMapMultiHandlePg( EMSHandle : TEMSHandle;
- UseSegAddr : BOOLEAN;
- NumInArr : WORD;
- EMSMapArr : PEMSMapArr ) : TEMSError;
-
- Function VEMSReallocatePg( EMSHandle : TEMSHandle;
- NumPg : WORD;
- Var RealNumP : WORD ) : TEMSError;
-
- Function VEMSGetHandleAttr( EMSHandle : TEMSHandle;
- Var HandleAttr : BYTE ) : TEMSError;
-
- Function VEMSSetHandleAttr( EMSHandle : TEMSHandle;
- HandleAttr : BYTE ) : TEMSError;
-
- Function VEMSGetHandleCapable( EMSHandle : TEMSHandle;
- Var AttrCapable : BYTE ) : TEMSError;
-
- Function VEMSGetHandleName( EMSHandle : TEMSHandle;
- HandleName : POINTER ) : TEMSError;
-
- Function VEMSSetHandleName( EMSHandle : TEMSHandle;
- HandleName : POINTER ) : TEMSError;
-
- Function VEMSGetHandleDir( HandleDir : PEMSHandleDir;
- Var NumEntries : BYTE ) : TEMSError;
-
- Function VEMSSearchNamedHandle( HandleName : PEMSHandleName;
- Var Value : WORD ) : TEMSError;
-
- Function VEMSGetTotalHandles( Var TotalHandles : WORD ) : TEMSError;
-
- Function VEMSAlterPgMapJump( EMSHandle : TEMSHandle;
- UseSegAddr : BOOLEAN;
- MapAddr : PEMSMapAddr) : TEMSError;
-
- Function VEMSAlterPgMapCall( EMSHandle : TEMSHandle;
- UseSegAddr : BOOLEAN;
- MapAddr : PEMSMapAddr) : TEMSError;
-
- Function VEMSGetPgMapStackReq( Var StackSpaceReq: WORD ) : TEMSError;
-
- Function VEMSMoveMemRegion( EMSCopyData : PEMSCopyData): TEMSError;
-
- Function VEMSExchangeMemRegion( EMSCopyData : PEMSCopyData): TEMSError;
-
- Function VEMSGetMapPhyAddrArr( MapPhyAddr : PEMSMapPhyAddr;
- Var NumEntries : WORD ) : TEMSError;
-
- Function VEMSGetEntriesMPAArr( Var NumEntries : WORD ) : TEMSError;
-
- Function VEMSHardwareCfgArr( EMSHardwareCfgArr : PEMSHardwareCfgArr ) : TEMSError;
-
- Function VEMSGetUnallocRawPg( Var UnallocRawPg : WORD;
- Var TotalRawPg : WORD ) : TEMSError;
-
- Function VEMSAllocStandardPg( NumPg : WORD;
- Var EMSHandle : TEMSHandle ) : TEMSError;
-
- Function VEMSAllocRawPg( NumPg : WORD;
- Var EMSHandle : TEMSHandle ) : TEMSError;
-
- Function VEMSGetAltMapRegSet( Var AltMapRegSet : BYTE;
- SaveMapContxt: POINTER ) : TEMSError;
-
- Function VEMSSetAltMapRegSet( AltMapRegSet : BYTE;
- SaveMapContxt: POINTER ) : TEMSError;
-
- Function VEMSGetAltMapSaveArrSize(Var ArrSize : WORD ) : TEMSError;
-
- Function VEMSAllocAltMapRegSet( Var AltMapRegSet : BYTE ) : TEMSError;
-
- Function VEMSDeallocAltMapRegSet( AltMapRegSet : BYTE ) : TEMSError;
-
- Function VEMSAllocDMARegSet( Var DMARegSet : BYTE ) : TEMSError;
-
- Function VEMSEnabDMAAltMapRegSet( DMARegSet : BYTE;
- DMAChannel : BYTE ) : TEMSError;
-
- Function VEMSDisabDMAAltMapRegSet( DMARegSet : BYTE ) : TEMSError;
-
- Function VEMSDeallocDMARegSet( DMARegSet : BYTE ) : TEMSError;
-
- Function VEMSPrepWarmBoot : TEMSError;
-
- Function VEMSEnabOSFuncSet( Var AccessKey : LONGINT ) : TEMSError;
-
- Function VEMSDisabOSFuncSet( Var AccessKey : LONGINT ) : TEMSError;
-
- Function VEMSRetAccessKey( Var AccessKey : LONGINT ) : TEMSError;
-
- {────────────────────────────────────────────────────────────────────────────}
-
-
- ──────────────────────────────────────────────────────────────────────────────
-
-
- [FUNCTION]
-
- Function VEMSInstalled : BOOLEAN;
-
- [PARAMETERS]
-
- (None)
-
- [RETURNS]
-
- Whether EMS Support is Available
-
- [DESCRIPTION]
-
- [SEE-ALSO]
-
- [EXAMPLE]
-
-