;************************************************************** ;*** EMS541.ASM *** ;*** *** ;*** function EMS_EmBlk.searchHandleName40( *** ;*** var name: EMS_HandleName) *** ;*** : Boolean; *** ;*** *** ;*** Returns handle number of specified handle name. *** ;*** *** ;*** 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_EmBlk@searchHandleName40 .code EMS_EmBlk@searchHandleName40 proc handle_name:Far Ptr Byte, handle:Far Ptr Word push ds ; Save regs push si lds si,handle_name ; DS:SI gets handle name mov ax,SearchHandleName40 ; Do EMS call int Ems or ah,ah ; Set flags jnz error les bx,handle ; Return handle we found mov es:[bx],dx xor ax,ax ; Return OK pop si ; Restore regs pop ds ret error: pop si ; Restore regs pop ds mov al,ah ; AL gets error code xor ah,ah ; Zero extend mov errno,ax ; Save in errno too ret EMS_EmBlk@searchHandleName40 endp ; End of procedure end ; End of source file