ReC98/libs/master.lib/ems_exist.asm

63 lines
869 B
NASM

; master library - PC98 - MSDOS - EMS
;
; Description:
; EMS ドライバの存在確認
;
; Function/Procedures:
; int ems_exist(void) ;
;
; Parameters:
; none
;
; Returns:
; int 0 ... 存在しない
; 1 ... 存在する
;
; Binding Target:
; Microsoft-C / Turbo-C / Turbo Pascal
;
; Running Target:
; PC-9801
;
; Requiring Resources:
; CPU: 8086
; EMS: LIM EMS 4.0
;
; Notes:
; すべての EMS関数を実行する前にかならずこれで存在判定を行うこと。
;
; Compiler/Assembler:
; TASM 3.0
; OPTASM 1.6
;
; Author:
; 恋塚昭彦
;
; Revision History:
; 92/11/16 Initial
func EMS_EXIST
push SI
push DI
push DS
xor AX,AX
mov ES,AX
mov ES,ES:[67h*4+2]
mov DI,000ah
mov BX,CS
mov DS,BX
mov SI,offset emm_device_name
mov CX,4
repe cmpsw
jne short @@NAI
inc AX
@@NAI:
pop DS
pop DI
pop SI
ret
endfunc
emm_device_name db 'EMMXXXX0'