home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / dos / memory / emslib / emsinita.asm < prev    next >
Encoding:
Assembly Source File  |  1988-04-25  |  1.8 KB  |  55 lines

  1.  
  2. emm_int   equ      67h
  3.  
  4.           if1
  5.           INCLUDE  model.mac
  6.           endif
  7.  
  8. header
  9.  
  10. begdataseg
  11.           EXTRN    _EMSPgNum   :word
  12.           EXTRN    _EMSAvPgs   :word
  13.           EXTRN    _EMSPgFrm   :word
  14.           EXTRN    _EMSVer     :byte
  15.           EXTRN    _EMStat     :byte
  16.           EXTRN    _emserr     :byte
  17. enddataseg
  18.  
  19. begcodeseg
  20. procstart __emsinit 
  21.           push     bp
  22.           mov      bp,sp
  23.           mov      ah,40h              ; Status function
  24.           int      emm_int             ; call EMM
  25.           cmp      ah,0                ; check for error
  26.           jnz      error
  27.           mov      ah,41h              ; Get page frame segment function
  28.           int      emm_int             ; Call EMM
  29.           cmp      ah,0                ; check for error
  30.           jnz      error
  31.           mov      _EMSPgFrm,bx        ; store page frame in EMSPgFrm
  32.           mov      ah,42h              ; Get number of pages
  33.           int      emm_int             ; Call EMM
  34.           cmp      ah,0                ; check for error
  35.           jnz      error
  36.           mov      _EMSAvPgs,bx        ; Store available pages in EMSAvail
  37.           mov      _EMSPgNum,dx        ; Store total pages in EMSPgNum
  38.           mov      ah,46h              ; Get EMM version.
  39.           int      emm_int             ; Call EMM
  40.           cmp      ah,0                ; check for error
  41.           jnz      error
  42.           mov      _EMSVer,al          ; Store EMM version in EMSVer
  43.           xor      ax,ax
  44.           mov      _emserr,0           ; Update emserr
  45.           jmp      fini
  46. error:    mov      _emserr,ah          ; Update emserr
  47.           mov      al,ah               ; return error code
  48.           xor      ah,ah
  49. fini:     pop      bp
  50.           ret
  51. procend   __emsinit 
  52. endcodeseg
  53.           END
  54.  
  55.