; 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