;************************************************************** ;*** EMS590.ASM *** ;*** *** ;*** function EMS_Ems.getHWConfig40( *** ;*** var buffer: EMS_HardwareConfigInfo) *** ;*** : Boolean; *** ;*** *** ;*** HardwareConfigInfo_type structure *** ;*** --------------------------------- *** ;*** WORD raw_p_size; ; size of raw pages in paras *** ;*** WORD alt_regs; ; number of alt reg sets *** ;*** WORD save_area; ; size of map sav area (bytes) *** ;*** WORD regs_to_dma; ; max num regs assigned to dma *** ;*** WORD dma_type; ; 0=alt dma regs OK, *** ;*** ; 1=one dma reg only *** ;*** *** ;*** Returns hardware config info to structure pointer. *** ;*** *** ;*** 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@getHWConfig40 .code EMS_Ems@getHWConfig40 proc buffer:Far Ptr Word, self:DWord push di ; Save DI les di,buffer ; ES:DI gets buffer address mov ax,GetHWConfig40 ; Do the EMS call int Ems or ah,ah ; Set flags jnz error xor ax,ax ; Return OK pop di ; Restore DI ret error: pop di ; Restore DI mov al,ah ; AL gets error code xor ah,ah ; Zero extend mov errno,ax ; Save in errno too ret EMS_Ems@getHWConfig40 endp ; End of procedure end ; End of source file