228 lines
4.6 KiB
NASM
228 lines
4.6 KiB
NASM
;*──────────────────────────────────────────────────────────────────────────*
|
|
; SAMP_A.ASM 386
|
|
; (c) Adeline 1993
|
|
;*──────────────────────────────────────────────────────────────────────────*
|
|
|
|
;*--------------------------------------------------------------------------*
|
|
|
|
.386
|
|
jumps
|
|
|
|
.model SMALL, SYSCALL
|
|
|
|
.DATA
|
|
|
|
PUBLIC NoLanguage Wave_listfcts
|
|
PUBLIC NoLanguage Wave_Driver_Enable
|
|
|
|
|
|
Wave_listfcts dd 0
|
|
Wave_Driver_Enable dd 0
|
|
|
|
.CODE
|
|
|
|
PUBLIC NoLanguage _InitCard
|
|
PUBLIC NoLanguage _ClearCard
|
|
PUBLIC NoLanguage WaveAskVars
|
|
PUBLIC NoLanguage WavePlay
|
|
PUBLIC NoLanguage WaveGiveInfo0
|
|
PUBLIC NoLanguage WaveStop
|
|
PUBLIC NoLanguage WaveStopOne
|
|
PUBLIC NoLanguage WaveInList
|
|
PUBLIC NoLanguage WaveGetSnap
|
|
PUBLIC NoLanguage WavePause
|
|
PUBLIC NoLanguage WaveContinue
|
|
PUBLIC NoLanguage WaveSaveState
|
|
PUBLIC NoLanguage WaveRestoreState
|
|
PUBLIC NoLanguage WaveChangeVolume
|
|
PUBLIC NoLanguage WaveGetAddr
|
|
PUBLIC NoLanguage _GetBufferSize
|
|
PUBLIC NoLanguage WaveChangeVolume
|
|
PUBLIC NoLanguage WaveMove
|
|
PUBLIC NoLanguage WaveStopOneLong
|
|
|
|
;----------------------------------------------------------------------------
|
|
;----------------------------------------------------------------------------
|
|
|
|
WaveCallFuncs PROC
|
|
|
|
cmp byte ptr[Wave_Driver_Enable], 0
|
|
je return
|
|
|
|
shl eax, 2
|
|
add eax, dword ptr[Wave_listfcts]
|
|
jmp dword ptr[eax]
|
|
return:
|
|
xor eax, eax ; FALSE, NULL or 0
|
|
ret
|
|
|
|
WaveCallFuncs ENDP
|
|
|
|
;----------------------------------------------------------------------------
|
|
;----------------------------------------------------------------------------
|
|
|
|
|
|
_InitCard PROC
|
|
|
|
mov eax, 0
|
|
jmp WaveCallFuncs
|
|
|
|
_InitCard ENDP
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
_ClearCard PROC
|
|
|
|
mov eax, 1
|
|
jmp WaveCallFuncs
|
|
|
|
_ClearCard ENDP
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
WaveAskVars PROC
|
|
|
|
mov eax, 2
|
|
jmp WaveCallFuncs
|
|
|
|
WaveAskVars ENDP
|
|
|
|
;*--------------------------------------------------------------------------*
|
|
|
|
WavePlay PROC
|
|
|
|
mov eax, 3
|
|
jmp WaveCallFuncs
|
|
|
|
WavePlay ENDP
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
WaveGiveInfo0 PROC
|
|
|
|
mov eax, 4
|
|
jmp WaveCallFuncs
|
|
|
|
WaveGiveInfo0 ENDP
|
|
|
|
;*--------------------------------------------------------------------------*
|
|
|
|
WaveStop PROC
|
|
|
|
mov eax, 5
|
|
jmp WaveCallFuncs
|
|
|
|
WaveStop ENDP
|
|
|
|
;*--------------------------------------------------------------------------*
|
|
|
|
WaveStopOne PROC
|
|
|
|
mov eax, 6
|
|
jmp WaveCallFuncs
|
|
|
|
WaveStopOne ENDP
|
|
|
|
;*--------------------------------------------------------------------------*
|
|
|
|
WaveInList PROC
|
|
|
|
mov eax, 7
|
|
jmp WaveCallFuncs
|
|
|
|
WaveInList ENDP
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
WaveGetSnap PROC
|
|
|
|
mov eax, 8
|
|
jmp WaveCallFuncs
|
|
|
|
WaveGetSnap ENDP
|
|
|
|
;*--------------------------------------------------------------------------*
|
|
|
|
WavePause PROC
|
|
|
|
mov eax, 9
|
|
jmp WaveCallFuncs
|
|
|
|
WavePause ENDP
|
|
|
|
;*--------------------------------------------------------------------------*
|
|
|
|
WaveContinue PROC
|
|
|
|
mov eax, 10
|
|
jmp WaveCallFuncs
|
|
|
|
WaveContinue ENDP
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
WaveSaveState PROC
|
|
|
|
mov eax, 11
|
|
jmp WaveCallFuncs
|
|
|
|
WaveSaveState ENDP
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
WaveRestoreState PROC
|
|
|
|
mov eax, 12
|
|
jmp WaveCallFuncs
|
|
|
|
WaveRestoreState ENDP
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
WaveGetAddr PROC
|
|
|
|
mov eax, 13
|
|
jmp WaveCallFuncs
|
|
|
|
WaveGetAddr ENDP
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
_GetBufferSize PROC
|
|
|
|
mov eax, 14
|
|
jmp WaveCallFuncs
|
|
|
|
_GetBufferSize ENDP
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
WaveChangeVolume PROC
|
|
|
|
mov eax, 15
|
|
jmp WaveCallFuncs
|
|
|
|
WaveChangeVolume ENDP
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
WaveMove PROC
|
|
|
|
mov eax, 16
|
|
jmp WaveCallFuncs
|
|
|
|
WaveMove ENDP
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
WaveStopOneLong PROC
|
|
|
|
mov eax, 17
|
|
jmp WaveCallFuncs
|
|
|
|
WaveStopOneLong ENDP
|
|
|
|
;----------------------------------------------------------------------------
|
|
|
|
END
|