First commit 09/12/1994
This commit is contained in:
98
SONIDO.ASM
Normal file
98
SONIDO.ASM
Normal file
@ -0,0 +1,98 @@
|
||||
|
||||
_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<63>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<73> 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<63>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
|
||||
|
Reference in New Issue
Block a user