;************************************************************** ;*** EMS4F0.ASM *** ;*** *** ;*** function EMS_Ems.savePartialMap40( *** ;*** map: Pointer; *** ;*** buffer: Pointer) *** ;*** : Boolean; *** ;*** *** ;*** Saves the state of a subset of expanded mem page *** ;*** mapping in buffer *** ;*** *** ;*** 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@savePartialMap40 .code EMS_Ems@savePartialMap40 proc map:Far Ptr Word, buffer:Far Ptr Word, self:DWord push ds ; Save some registers push si push di ; ; DS:SI needs a list of segment addresses of pages for which ; to save the mapping state. ; lds si,map ; ; ES:DI gets the address of the buffer to save the info into ; les di,buffer mov ax,SavePartialMap40 ; Do the call int Ems or ah,ah ; Set flags jnz error xor ax,ax ; Return OK pop di ; Restore regs pop si pop ds ret error: pop di ; Restore regs pop si pop ds mov al,ah ; Transfer return code xor ah,ah ; Zero extend mov errno,ax ; Save in errno too ret EMS_Ems@savePartialMap40 endp ; End of procedure end ; End of source file