; 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