;************************************************************** ;*** XMS09.ASM *** ;*** *** ;*** function XMS_XmBlk.allocXM( *** ;*** blockSize: Word) *** ;*** : Boolean; *** ;*** *** ;*** Allocates a block of extended memory blockSize KB *** ;*** long which can be referenced via handle. *** ;*** *** ;************************************************************** .model large,pascal include xmsdefs.asm extrn errno:WORD extrn xmsHandler:DWord ; ; Define entry point ; public XMS_XmBlk@allocXM .code XMS_XmBlk@allocXM proc blockSize:Word, handle: Far Ptr Word mov dx,blockSize ; size in KB of block mov ah,XMSAllocXM ; Function code call xmsHandler ; call the guy or ax,ax ; AX=0 means error jz errorReturn les bx,handle mov es:[bx],dx ; new handle mov ax,XMSErrOK ; No error xor dx,dx ret errorReturn: mov al,bl ; Move error code to AL xor ah,ah ; Zero extend to 16 bits mov errno,ax ; Copy to errno xor dx,dx ret XMS_XmBlk@allocXM endp ; end of procedure end