;**************************************************************
;***    EMS4E0.ASM                                          ***
;***                                                        ***
;***    function        EMS_Ems.savePageMap32(              ***
;***                        save_buffer:    Pointer)        ***
;***                        : Boolean;                      ***
;***                                                        ***
;***    Returns 0 for OK status or an error                 ***
;***    code.                                               ***
;***                                                        ***
;***    (Ems Version 3.2)                                   ***
;**************************************************************

        .model  large,pascal   

        include emsdefs.asm 

        extrn   errno:WORD  

;
;   Define entry point
;
        public  EMS_Ems@savePageMap32

        .code

EMS_Ems@savePageMap32   proc save_buff:Far Ptr DWord, self:DWord

        push    di                      ; Save di

        les     di,save_buff            ; Get address of buffer into ES:DI
                
        mov     ax,SavePageMap32        ; Make the EMS call to save the map
        int     Ems             

        or      ah,ah                   ; Check for error
        jnz     error

        xor     ax,ax                   ; AX gets 0
        pop     di                      ; Restore di
        ret                             ; Return to caller

error:
        pop     di                      ; Restore di

        mov     al,ah
        xor     ah,ah                   ; Zero high byte
        mov     errno,ax                ; Save in errno too
        ret                             ; Return to caller

EMS_Ems@savePageMap32   endp            ; End of procedure

        end                             ; End of source file

