#ifdef __cplusplus extern "C" { #endif APIRET UltraSetNVoices(int); APIRET UltraEnableOutput(void); APIRET UltraDisableOutput(void); APIRET UltraBlockTimerHandler1(); APIRET UltraBlockTimerHandler2(); APIRET UltraUnblockAll(void); APIRET UltraStartTimer(int, int); APIRET UltraStopTimer(int); APIRET UltraSetBalance(int, int); APIRET UltraSetFrequency(int, int); APIRET UltraSetAll(int, char, int, int, unsigned char, unsigned char); APIRET UltraPokeData(long, int); APIRET UltraPeekData(int *); APIRET UltraMemAlloc(unsigned long, unsigned long *, unsigned char); APIRET UltraMemFree(void); APIRET UltraMemInit(void); APIRET UltraSizeDram(int *); APIRET UltraStartVoice(int, unsigned int, unsigned int, unsigned int, unsigned char); APIRET UltraStopVoice(int); APIRET UltraVectorLinearVolume(int, unsigned int, unsigned char, unsigned char); APIRET UltraDownload(void *, unsigned char, unsigned long, unsigned int, int); APIRET UltraGetAccess(void); APIRET UltraReleaseAccess(void); APIRET UltraGetDriverVersion(int *); APIRET UltraSetLoopMode(int, int); APIRET UltraVoiceStopped(int *); APIRET UltraSetLoopStart(int, int); APIRET UltraGetUltraType(int *); APIRET UltraAddEffectToVoice(int, int); APIRET UltraRemoveEffectFromVoice(int, int); APIRET UltraStartEffectVoice(int, int, int, int, int, int, int, int); // Type of samples needed for UltraDownload (control byte) #define DMA_16 0x40 //16 bits sample #define DMA_8 0x00 //8 bits sample #define DMA_CVT_2 0x80 //unsigned data #define DMA_NO_CVT 0x00 //signed data //voice register bits needed for UltraStartVoice (mode byte) #define VC_DATA_TYPE 0x04 /* 0=8 bit,1=16 bit */ #define VC_LOOP_ENABLE 0x08 /* 1=enable */ #define VC_BI_LOOP 0x10 /* 1=bi directional looping */ /* ($0,$80) Voice control register */ #define VOICE_STOPPED 0x01 /* voice has stopped */ #define STOP_VOICE 0x02 /* stop voice */ #define VC_DATA_TYPE 0x04 /* 0=8 bit,1=16 bit */ #define VC_LOOP_ENABLE 0x08 /* 1=enable */ #define VC_BI_LOOP 0x10 /* 1=bi directional looping */ #define VC_WAVE_IRQ 0x20 /* 1=enable voice's wave irq */ #define VC_DIRECT 0x40 /* 0=increasing,1=decreasing */ #define VC_IRQ_PENDING 0x80 /* 1=wavetable irq pending */ #ifdef __cplusplus }; #endif