;************************************************************** ;*** XMS00.ASM *** ;*** *** ;*** function XMS_Xms.getVersion( *** ;*** var xmsVersion: Word; *** ;*** var xmmVersion: Word; *** ;*** var hmaFlag: Word) *** ;*** : Boolean; *** ;*** *** ;*** Returns the version number of the XMS, the XMM, *** ;*** and indicates whether HMA is available. *** ;*** *** ;************************************************************** .model large,pascal include xmsdefs.asm extrn errno:WORD extrn xmsHandler:DWord ; ; Define entry point ; public XMS_Xms@getVersion .code XMS_Xms@getVersion proc xmsVer:Far Ptr Word, xmmVer: Far Ptr Word, HMAFlag: Far Ptr Word, self:DWord mov ah,XMSGetVersion ; Function code call xmsHandler ; call the guy or ax,ax ; AX=0 means error jz errorReturn ; ; Save BX, which has the XMM version. ; mov cx,bx ; ; Now return the values. ; les bx,xmsVer mov es:[bx],ax ; XMS version returned les bx,xmmVer mov es:[bx],cx ; XMM version returned les bx,HMAFlag mov es:[bx],dx ; HMA indicator mov ax,XMSErrOK ; No error ret errorReturn: mov al,bl ; Move error code to AL xor ah,ah ; Zero extend to 16 bits mov errno,ax ; Copy to errno ret XMS_Xms@getVersion endp ; End of procedure end ; End of source file