;*****************************************
;** MACRO pour l'acces a la memoire EMS **
;*****************************************
;*     NOTE:                             *
;*     Un code d'erreur est renvoy‚      *
;*      par toute les fonctions du DRV   *
;*      dans le registre AH.             *
;*****************************************



EMS_INSTALLER MACRO
 JMP SUITEems_inst 
EMSdrv DB  "EMM"  

SUITEems_inst:  
  MOV AX,3567H
  INT 21H
  PUSH DS
  PUSH CS
  POP  DS
  MOV DI,10
  MOV SI,OFFSET EMSdrv
  MOV CX,3
  CLD 
  REPZ CMPSB
  POP DS
ENDM  
  
EMS_TOTALE_PAGE MACRO PAGE
  MOV AH,42H
  INT 67H
  MOV PAGE,DX
ENDM

EMS_TOTALE_LIBRE MACRO PAGE
  MOV AH,42H
  INT 67H
  MOV PAGE,BX
ENDM

EMS_ADDRESSE MACRO ADDRESSE
  MOV AH,41H
  INT 67H
  MOV ADDRESSE,BX
ENDM

EMS_RESERVE MACRO PAGE,HANDLE 
  MOV AH,43H
  MOV BX,PAGE
  INT 67H
  MOV HANDLE,DX
ENDM


EMS_CALQUE MACRO HANDLE,PAGEconv,PAGEram
  MOV AH,44H
  MOV AL,PAGEconv
  MOV BX,PAGEram
  MOV DX,HANDLE
  INT 67H
ENDM

EMS_LIBRE MACRO HANDLE
  MOV AH,45H
  MOV DX,HANDLE
  INT 67H
ENDM

EMS_VERSION MACRO VERSION
  MOV AH,46H
  INT 67H
  MOV AH,AL
  SHR AL,4
  MOV BL,10
  MUL BL
  AND AH,15
  MOV VERSION,AL
  ADD VERSION,AH
ENDM

EMS_SAUVE_CALQUE MACRO HANDLE
  MOV AH,47H
  MOV DX,HANDLE
  INT 67H
ENDM

EMS_RESTORE_CALQUE MACRO HANDLE
  MOV AH,48H
  MOV DX,HANDLE
  INT 67H
ENDM



