>>> Continued from previous message
FirstPlace% = (Index1% - Handle.FirstUBound) + 1
SecondPlace% = (Index2% - Handle.SecondUBound) + 1
RealIndex% = -32768 + (FirstPlace% * Handle.Multiplier) + SecondPlace%
OutXMS BUFFER, Handle.MaxHandle, RealIndex%
Length% = Handle.Length ' how long is our ANY parameter?
BufSeg = VARSEG(BUFFER) ' where is our buffer?
BufOff = VARPTR(BUFFER)
! Push DS ; save required registers
! Push SI
! Push DI
! Les DI, [BP+18] ; load ES:DI with address of ANY parameter
! Mov SI, BufOff
! Mov AX, BufSeg
! Mov DS, AX ; load ES:DI with address of BUFFER
! Mov CX, Length% ; load CX with number of bytes to move
! Rep Movsb ; copy CX bytes of BUFFER into ANY param
! Pop DI ; restore the required registers
! Pop SI
! Pop DS
END SUB
'========================================
SUB Erase2XMS (Handle AS TwoDimHandle)
'========================================
EraseXMS Handle.MAXHandle
END SUB
'-------------------------- END CODE ----------------------------
* SLMR 2.1a * MAXLIB For PB v1.2 - Access arrays and files in EMS/XMS!
--- WILDMAIL!/WC v4.12
---------------
* Origin: Com-Dat BBS - Hillsboro, OR. HST DS (1:105/314.0)
|