_TEXT SEGMENT BYTE PUBLIC 'CODE' ASSUME CS:_TEXT DIR_VOC DD 0 DIR_SFXDRV DD 0 ;------------------------------------------------------------------------------; ; INICIALIZACION DEL SFX DRIVER ; ;------------------------------------------------------------------------------; ; entrada: BX = n§ de la funci¢n ; ; ES:DI = dir. de la variable word de estado ; ; [CS:DIR_SFXDRV] = dir. de la rutina ct-voice ; ; ; ; salida: AX = 0 si la tarjeta de sonido est  instalada ; ; = -1 si no hay tarjeta de sonido ; ;------------------------------------------------------------------------------; PUBLIC _INICIALIZADRV _INICIALIZADRV PROC NEAR PUSH BP MOV BP,SP PUSH BX PUSH DI PUSH ES LES DI,[BP+4] MOV WORD PTR CS:[DIR_SFXDRV],DI MOV WORD PTR CS:[DIR_SFXDRV+2],ES MOV BX,3 CALL DWORD PTR CS:[DIR_SFXDRV] CMP AX,0 JNZ NO_HAY_TARJ MOV BX,5 LES DI,[BP+8] CALL DWORD PTR CS:[DIR_SFXDRV] XOR AX,AX NO_HAY_TARJ: POP ES POP DI POP BX POP BP RET _INICIALIZADRV ENDP ;------------------------------------------------------------------------------; ; ELIGE UN FICHERO DE SONIDO ; ;------------------------------------------------------------------------------; ; entrada: ES:DI = dir. del fichero de sonido .VOC ; ;------------------------------------------------------------------------------; PUBLIC _ELIGEFICHFX _ELIGEFICHFX PROC NEAR PUSH BP MOV BP,SP PUSH DI PUSH ES LES DI,[BP+4] MOV WORD PTR CS:[DIR_VOC],DI MOV WORD PTR CS:[DIR_VOC+2],ES POP ES POP DI POP BP RET _ELIGEFICHFX ENDP ;------------------------------------------------------------------------------; ; LLAMADA AL CT-SOUND DRIVER ; ;------------------------------------------------------------------------------; ; entrada: BX = n§ de la funci¢n ; ; ES:DI = dir. del fichero de sonido .VOC ; ; [CS:DIR_SFXDRV] = dir. de la rutina ct-voice ; ;------------------------------------------------------------------------------; PUBLIC _SOUNDFXDRIVER _SOUNDFXDRIVER PROC NEAR PUSH BP MOV BP,SP PUSH BX PUSH DI PUSH ES MOV BX,[BP+4] LES DI,CS:[DIR_VOC] CMP BX,6 JNE NO_INI ADD DI,ES:[DI+14h] ;ES:DI=dir. del data block NO_INI: CALL DWORD PTR CS:[DIR_SFXDRV] POP ES POP DI POP BX POP BP RET _SOUNDFXDRIVER ENDP _TEXT ENDS END