home *** CD-ROM | disk | FTP | other *** search
-
- emm_int equ 67h
-
- if1
- INCLUDE model.mac
- endif
-
- header
-
- begdataseg
- EXTRN _EMSPgNum :word
- EXTRN _EMSAvPgs :word
- EXTRN _EMSPgFrm :word
- EXTRN _EMSVer :byte
- EXTRN _EMStat :byte
- EXTRN _emserr :byte
- enddataseg
-
- begcodeseg
- procstart __emsinit
- push bp
- mov bp,sp
- mov ah,40h ; Status function
- int emm_int ; call EMM
- cmp ah,0 ; check for error
- jnz error
- mov ah,41h ; Get page frame segment function
- int emm_int ; Call EMM
- cmp ah,0 ; check for error
- jnz error
- mov _EMSPgFrm,bx ; store page frame in EMSPgFrm
- mov ah,42h ; Get number of pages
- int emm_int ; Call EMM
- cmp ah,0 ; check for error
- jnz error
- mov _EMSAvPgs,bx ; Store available pages in EMSAvail
- mov _EMSPgNum,dx ; Store total pages in EMSPgNum
- mov ah,46h ; Get EMM version.
- int emm_int ; Call EMM
- cmp ah,0 ; check for error
- jnz error
- mov _EMSVer,al ; Store EMM version in EMSVer
- xor ax,ax
- mov _emserr,0 ; Update emserr
- jmp fini
- error: mov _emserr,ah ; Update emserr
- mov al,ah ; return error code
- xor ah,ah
- fini: pop bp
- ret
- procend __emsinit
- endcodeseg
- END
-
-