--- hatari/src/falcon/dsp.h 2019/04/01 07:14:54 1.1.1.2 +++ hatari/src/falcon/dsp.h 2019/04/09 08:55:49 1.1.1.8 @@ -23,16 +23,58 @@ #ifndef DSP_H #define DSP_H -#if DSP_EMULATION +#if ENABLE_DSP_EMU # include "dsp_core.h" #endif +#define DSP_FREQ (CPU_FREQ*4) + +extern bool bDspEnabled; +extern bool bDspHostInterruptPending; + +/* Dsp commands */ +extern bool DSP_ProcessIRQ(void); extern void DSP_Init(void); extern void DSP_UnInit(void); - extern void DSP_Reset(void); +extern void DSP_Enable(void); +extern void DSP_Disable(void); +extern void DSP_Run(int nHostCycles); + +/* Save Dsp state to snapshot */ +extern void DSP_MemorySnapShot_Capture(bool bSave); +/* Dsp Debugger commands */ +extern void DSP_SetDebugging(bool enabled); +extern Uint16 DSP_GetPC(void); +extern Uint16 DSP_GetNextPC(Uint16 pc); +extern Uint16 DSP_GetInstrCycles(void); +extern Uint32 DSP_ReadMemory(Uint16 addr, char space, const char **mem_str); +extern Uint16 DSP_DisasmMemory(Uint16 dsp_memdump_addr, Uint16 dsp_memdump_upper, char space); +extern Uint16 DSP_DisasmAddress(FILE *out, Uint16 lowerAdr, Uint16 UpperAdr); +extern void DSP_Info(FILE *fp, Uint32 dummy); +extern void DSP_DisasmRegisters(void); +extern int DSP_GetRegisterAddress(const char *arg, Uint32 **addr, Uint32 *mask); +extern bool DSP_Disasm_SetRegister(const char *arg, Uint32 value); + +/* Dsp SSI commands */ +extern Uint32 DSP_SsiReadTxValue(void); +extern void DSP_SsiWriteRxValue(Uint32 value); +extern void DSP_SsiReceive_SC0(void); +extern void DSP_SsiReceive_SC1(Uint32 value); +extern void DSP_SsiReceive_SC2(Uint32 value); +extern void DSP_SsiReceive_SCK(void); +extern void DSP_SsiTransmit_SC0(void); +extern void DSP_SsiTransmit_SC1(void); +extern void DSP_SsiTransmit_SC2(Uint32 frame); +extern void DSP_SsiTransmit_SCK(void); + + +/* Dsp Host interface commands */ extern void DSP_HandleReadAccess(void); extern void DSP_HandleWriteAccess(void); +extern Uint8 DSP_GetHREQ ( void ); +extern int DSP_ProcessIACK ( void ); + #endif /* DSP_H */