;************************************************************** ;*** EMS591.ASM *** ;*** *** ;*** function EMS_Ems.getNumRawPages40( *** ;*** var total_pages: Word; *** ;*** var free_pages: Word) *** ;*** : Boolean; *** ;*** *** ;*** Returns the total number of free raw pages and the *** ;*** number of raw pages available. *** ;*** *** ;*** Returns 0 if no error or an error code. *** ;*** *** ;*** *** ;*** (Ems Version 4.0) *** ;************************************************************** .model large,pascal include emsdefs.asm extrn errno:WORD ; ; Define entry point ; public EMS_Ems@getNumRawPages40 .code EMS_Ems@getNumRawPages40 proc total:Far Ptr Word, free:Far Ptr Word, self:DWord mov ax,GetNumRawPages40 ; Do the EMS call int Ems or ah,ah ; Set flags jnz error mov ax,bx ; Save free pages les bx,free ; Return it to caller mov es:[bx],ax les bx,total ; Return total pages to caller mov es:[bx],dx xor ax,ax ; Return OK ret error: mov al,ah ; AL gets error code xor ah,ah ; Zero extend mov errno,ax ; Save in errno too ret EMS_Ems@getNumRawPages40 endp ; End of procedure end ; End of source file