CATALOGO/SONIDO.ASM
2021-09-03 17:43:05 +02:00

99 lines
3.7 KiB
NASM
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

_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