(7599)  Thu 20 May 93 11:25a
By: Wilbert van Leijen
To: Terry Carmen
Re: high memory
St: Rcvd                                                                  <5794
---------------------------------------------------------------------------
@MSGID: 2:281/256.14 2bfb6b87
@REPLY: 1:260/338@Fidonet 440ccf51
@PID: GE 1/b8
16 May 93, Terry Carmen writes to All:

 TC> Does anybody know how to get a memory manager (QEMM, 386MAx, EMM386, etc.)
 TC> to give the location or size of available high memory blocks?

Since these memory managers are also XMS servers, use the XMS interface via INT
2Fh, AH=43h.  Here's a snippet of code from a TSR I wrote:

;  Check presence of an XMS driver
;  (such as HIMEM or QEMM386)

XMSCheck:  MOV     AX, 4300h
           INT     2Fh
           CMP     AL, 80h
           JNE     NoXMS
           MOV     AL, 10h
           INT     2Fh
           MOV     Word Ptr [XMSDriver], BX
           MOV     Word Ptr [XMSDriver+2], ES

;  Allocate upper memory block to store alternative font in

           MOV     AH, 10h
           MOV     DX, 4096 / 16
           CALL    [XMSDriver]
           OR      AL, AL
           JZ      NoXMS

           XOR     AX, AX
           MOV     Word Ptr [NewORG+AltFontPtr], AX
           MOV     Word Ptr [NewORG+AltFontPtr+2], BX
           CLD

;  Copy alternative font into the UMB

           MOV     SI, Offset NewORG+AltFont
           MOV     ES, BX
           XOR     DI, DI
           MOV     CX, 4096 / 2
           REP     MOVSW
           MOV     [FontUpper], 1
           JMP     Short Activate

NoXMS:

Wilbert

--- GEcho 1.00/beta
 * Origin: Charge of the Light Bregade (2:281/256.14)

@PATH: 281/256 1 280/0 28/777 500/1 105/42 334 138/112 13/13 260/1
