Metropoli BBS
VIEWER: defs.mac MODE: TEXT (ASCII)
;	DEFS.MAC
;	87/03/18, Marc Savary, Ad Lib.

dos_terminate		equ	20H
dos_tsr			equ	27H
dos_function_call	equ	21H
dos_get_vector_function	equ	35H
dos_set_vector_function	equ	25H
dos_print_string_function equ	9H

sound_driver_int	equ	101



; cette macro definie la procedure 'GetSoundDrvVersion'
; qui retourne le numero de version du sound-driver dans
; AH et AL, ou 0 dans AX s'il n'est pas charge.
;
; la signature est situee immediatement avant le point d'entree
; de la fonction d'interruption.
;
DrvVersionProc MACRO NAME
	IF LPROG
NAME proc FAR
	ELSE
NAME proc NEAR
	ENDIF

	push	es
	push	si
	push	di

	mov	al, sound_driver_int
	mov	ah, dos_get_vector_function
	int	dos_function_call		; es:bx
; comparer les deux signatures:
	mov	cx, sig_cmp_len			; longueur a comparer...
;	IF LPROG EQ 0
;	mov	si, offset PGROUP:signature
;	ELSE
;	mov	si, offset _CODE:signature
;	ENDIF
	mov	si, offset signature

	mov	di, bx
	sub	di, sig_len+2			; offset de la signature dans driver
	mov	ax, es:[di]			; version # ( 1.3 & +)
	add	di, 2
	cld					; forward comparaison	
	repz	cmps cs:byte ptr [si], es:[di]	; compare string
	jz	fin
	xor	ax, ax
fin:
	pop	di
	pop	si
	pop	es
	ret
NAME ENDP

	ENDM


[ RETURN TO DIRECTORY ]