--- hatari/src/falcon/dsp.h 2019/04/01 07:14:54 1.1.1.2 +++ hatari/src/falcon/dsp.h 2019/04/09 08:58:17 1.1.1.10 @@ -16,23 +16,67 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + along with this program; if not, write to the Free Software Foundation, + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */ #ifndef DSP_H #define DSP_H -#if DSP_EMULATION +#if ENABLE_DSP_EMU # include "dsp_core.h" #endif +#define DSP_CPU_FREQ_RATIO 2 /* Dsp Freq = 2 * Cpu Freq (32 MHz vs 16 MHz on Falcon) */ + +extern bool bDspEnabled; +extern bool bDspHostInterruptPending; + +extern Uint64 DSP_CyclesGlobalClockCounter; + +/* 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(FILE *fp, 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(FILE *fp); +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 */