;************************************************************** ;*** EMS4D.ASM *** ;*** *** ;*** function EMS_Ems.getPagesAllHandles( *** ;*** var info: EMS_HandleInfoArr *** ;*** var num_handles: Word) *** ;*** : Boolean; *** ;*** *** ;*** Gives the number of pages associated with each *** ;*** active EMM handle, and the number of active *** ;*** EMM handles. *** ;*** *** ;*** *** ;*** (Ems Version 3.0) *** ;************************************************************** .model large,pascal include emsdefs.asm extrn errno:WORD ; ; Define entry point ; public EMS_Ems@getPagesAllHandles .code EMS_Ems@getPagesAllHandles proc info:Far Ptr DWord, num_handles:Far Ptr Word, self:DWord push di ; Save DI, we need it ; ; ES:[DI] gets the buffer address ; les di,info mov ah,GetPagesAllHandles ; Move function code int Ems ; Do the ems call or ah,ah ; Set flags jnz error ; ; Return the number of handles: ; mov ax,bx ; Number of handles les bx,num_handles mov es:[bx],ax ; Give it back xor ax,ax ; AX gets 0 pop di ; Restore di ret ; Return to caller error: pop di ; Restore di mov al,ah ; Transfer return code to al xor ah,ah ; Zero high byte mov errno,ax ; Save in errno too ret ; Return to caller EMS_Ems@getPagesAllHandles endp ; End of procedure end ; End of source file