home *** CD-ROM | disk | FTP | other *** search
- /************************************************************************/
- /* Version of Dspbind.h for Lattice v5.0 */
- /* Uses #pragma inline code */
- /* to get round Atari's inconsistant use of */
- /* short int's and other silly things */
- /* Copyright 29 March 1993 Dave Malham, Music Technology Group */
- /* University of York, England - with thanks to Martin Atkins */
- /* for showing me how to do it! */
- /************************************************************************/
-
-
-
-
- extern long xbios();
-
- /* DSP XBIOS functions (trap #14) */
-
- short __sxpsp(int, void *, int, void *);
- void __vxplpl(int, void *,long, void *,long);
- void __vxpllp(int, void *,long,long, void *);
- void __vxpplllp(int,void *,void *,long,long,void *);
- void __vxs(int,int);
- short __sxv(int);
- void __vxv(int);
- short __sxs(int,int);
- short __sxpls(int,void *,long,int);
- char __cxv(char,int);
- void __vxll(int,long,long);
- short __sxll(int,long,long);
- void __vxpls(int,void *,long,int);
- long __lxpp(int,void *,void *);
- void __vxpp(int,void*,void*);
- void __vxllpp(int,long,long,void*,void*);
- short __sxpp(int,void*,void*);
-
-
- #pragma inline d0=__sxpsp((short),,(short),) {register d2,a2; "4e4e";}
- #pragma inline __vxplpl((short),,,,) {register d2,a2; "4e4e";}
- #pragma inline __vxpllp((short),,,,) {register d2,a2; "4e4e";}
- #pragma inline __vxpplllp((short),,,,,,) {register d2,a2; "4e4e";}
- #pragma inline __vxs((short),(short)) {register d2,a2; "4e4e";}
- #pragma inline d0=__sxv((short)) {register d2,a2; "4e4e";}
- #pragma inline __vxv((short)) {register d2,a2; "4e4e";}
- #pragma inline d0=__sxs((short),(short)) {register d2,a2; "4e4e";}
- #pragma inline d0=__sxpls((short),,,(short)) {register d2,a2; "4e4e";}
- #pragma inline d0=__cxv((short)) {register d2,a2; "4e4e";}
- #pragma inline __vxll((short),,,) {register d2,a2; "4e4e";}
- #pragma inline d0=__sxll((short),,,) {register d2,a2; "4e4e";}
- #pragma inline __vxpls((short),,,(short)) {register d2,a2; "4e4e";}
- #pragma inline __lxpp((short),,,) {register d2,a2; "4e4e";}
- #pragma inline __vxpp((short),,,) {register d2,a2; "4e4e";}
- #pragma inline __vxllpp((short),,,,) {register d2,a2; "4e4e";}
- #pragma inline d0=__sxpp((short),,,) {register d2,a2; "4e4e";}
-
-
- #define Dsp_DoBlock(a,b,c,d) __vxplpl(96,a,b,c,d) /** T **/
- #define Dsp_BlkHandShake(a,b,c,d) __vxplpl(97,a,b,c,d)
- #define Dsp_BlkUnpacked(a,b,c,d) __vxplpl(98,a,b,c,d) /** T **/
- #define Dsp_InStream(a,b,c,d) __vxpllp(99,a,b,c,d)
- #define Dsp_OutStream(a,b,c,d) __vxpllp(100,a,b,c,d)
- #define Dsp_IOStream(a,b,c,d,e,f) __vxpplllp(101,a,b,c,d,e,f)
- #define Dsp_RemoveInterrupts(a) __vxs(102,a)
- #define Dsp_GetWordSize() __sxv(103)
- #define Dsp_Lock() __sxv(104) /** T **/
- #define Dsp_Unlock() __vxv(105) /** T **/
- #define Dsp_Available(a,b) __vxpp(106,a,b) /** T **/
- #define Dsp_Reserve(a,b) __sxpp(107,a,b)
- #define Dsp_LoadProg(a,b,c) __sxpsp(108,a,b,c) /** T **/
- #define Dsp_ExecProg(a,b,c) __vxpls(109,a,b,c)
- #define Dsp_ExecBoot(a,b,c) __vxpls(110,a,b,c)
- #define Dsp_LodToBinary(a,b) __lxpp(111,a,b)
- #define Dsp_TriggerHC(a) __vxs(112,a)
- #define Dsp_RequestUniqueAbility() __sxv(113) /** T **/
- #define Dsp_GetProgAbility() __sxv(114) /** T **/
- #define Dsp_FlushSubroutines() __vxv(115) /** T **/
- #define Dsp_LoadSubroutine(a,b,c) __sxpls(116,a,b,c) /** T **/
- #define Dsp_InqSubrAbility(a) __sxs(117,a) /** T **/
- #define Dsp_RunSubroutine(a) __sxs(118,a) /** T **/
- #define Dsp_Hf0(a) __sxs(119,a) /** T **/
- #define Dsp_Hf1(a) __sxs(120,a) /** T **/
- #define Dsp_Hf2() __sxv(121)
- #define Dsp_Hf3() __sxv(122)
- #define Dsp_BlkWords(a,b,c,d) __vxplpl(123,a,b,c,d)
- #define Dsp_BlkBytes(a,b,c,d) __vxplpl(124,a,b,c,d)
- #define Dsp_HStat() __cxv(125)
- #define Dsp_SetVectors(a,b) __vxpp(126,a,b)
- #define Dsp_MultBlocks(a,b,c,d) __vxllpp(127,a,b,c,d)
-