Metropoli BBS
VIEWER: csound.asm MODE: TEXT (ASCII)
;	CSOUND.ASM
;
; interface to resident sound-driver for LATTICE C compiler, LARGE model.
;
; 87/03/18 Ad Lib.
; 88/04/21 Ad Lib Inc.
;
; 
	INCLUDE DOS.MAC			; memory models ...
	INCLUDE DEFS.MAC		; equates & sound-driver version proc.



	PSEG

	INCLUDE VERSION.MAC		; sound-driver signature

	public	GetSoundDrvVersion


;
;	unsigned GetSoundDrvVersion()
;		if the sound-driver is charged in memory, return his
;		version number, else 0.
;
	DrvVersionProc GetSoundDrvVersion




;	int SoundCall( functionNumber, arg_list)
;		int functionNumer;
;		any... arg_list
;
;	Generate interrupt to sound-driver with parameter's address
;	in ES:BX and function number in SI
;
; 	Only registers AX, BX, CX & DX are lost.

BEGIN SoundCall

sframe	STRUC
		dw	?		; old SI ( if using optimizing compiler ... )
		dw	?		; old DI
		dw	?		; old ES
		dw	?		; old BP
		db	CPSIZE DUP (?)	; return addr
args		dw	?
others		dw	?		; other arguments, if any
sframe	ENDS	

	push	bp
	push	es
	push	di
	push	si

	mov	bp, sp
	mov	si, [ bp].args		; get function number
	lea	bx, [ bp].others	; get pointers to other args...
	push	ss
	pop	es
	int	sound_driver_int	; call sound-driver ... return in AL, if any

	pop	si
	pop	di
	pop	es
	pop	bp
	ret
SoundCall	ENDP


	ENDPS
	end


[ RETURN TO DIRECTORY ]