;************************************************************** ;*** EMS500.ASM *** ;*** *** ;*** function EMS_EmBlk.mapPagesByNum40( *** ;*** pages: Word; *** ;*** buffer: Pointer) *** ;*** : Boolean; *** ;*** *** ;*** Fill buffer with 32 bit entries which control pages *** ;*** to be mapped by page number *** ;*** *** ;*** 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@mapPagesByNum40 .code EMS_EmBlk@mapPagesByNum40 proc num:Word, buffer:Far Ptr Word, handle:Far Ptr DWord push ds ; Save regs push si les bx,handle mov dx,es:[bx] ; EMS handle mov cx,num ; Number of pages to map lds si,buffer ; Map info buffer mov ax,MapPagesByNum40 ; Make the EMS call int Ems or ah,ah ; Set flags jnz error xor ax,ax ; return OK pop si ; Restore regs pop ds ret error: pop si ; Restore regs pop ds mov al,ah ; AL get error code xor ah,ah ; Zero extend mov errno,ax ; Save in errno too ret EMS_EmBlk@mapPagesByNum40 endp ; End of procedure end ; End of source file