diff options
Diffstat (limited to 'trunk/src/emu/cpu/cubeqcpu/cubeqcpu.h')
-rw-r--r-- | trunk/src/emu/cpu/cubeqcpu/cubeqcpu.h | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/trunk/src/emu/cpu/cubeqcpu/cubeqcpu.h b/trunk/src/emu/cpu/cubeqcpu/cubeqcpu.h new file mode 100644 index 00000000000..8b0abd60e31 --- /dev/null +++ b/trunk/src/emu/cpu/cubeqcpu/cubeqcpu.h @@ -0,0 +1,161 @@ +/*************************************************************************** + + cubeqcpu.h + Interface file for the Cube Quest CPUs + Written by Phil Bennett + +***************************************************************************/ + +#ifndef _CUBEQCPU_H +#define _CUBEQCPU_H + + +/*************************************************************************** + COMPILE-TIME DEFINITIONS +***************************************************************************/ + + +/*************************************************************************** + GLOBAL CONSTANTS +***************************************************************************/ + + +/*************************************************************************** + REGISTER ENUMERATION +***************************************************************************/ + +enum +{ + CQUESTSND_PC = 1, + CQUESTSND_Q, + CQUESTSND_RAM0, + CQUESTSND_RAM1, + CQUESTSND_RAM2, + CQUESTSND_RAM3, + CQUESTSND_RAM4, + CQUESTSND_RAM5, + CQUESTSND_RAM6, + CQUESTSND_RAM7, + CQUESTSND_RAM8, + CQUESTSND_RAM9, + CQUESTSND_RAMA, + CQUESTSND_RAMB, + CQUESTSND_RAMC, + CQUESTSND_RAMD, + CQUESTSND_RAME, + CQUESTSND_RAMF, + CQUESTSND_RTNLATCH, + CQUESTSND_ADRCNTR, + CQUESTSND_DINLATCH, +}; + +enum +{ + CQUESTROT_PC = 1, + CQUESTROT_Q, + CQUESTROT_RAM0, + CQUESTROT_RAM1, + CQUESTROT_RAM2, + CQUESTROT_RAM3, + CQUESTROT_RAM4, + CQUESTROT_RAM5, + CQUESTROT_RAM6, + CQUESTROT_RAM7, + CQUESTROT_RAM8, + CQUESTROT_RAM9, + CQUESTROT_RAMA, + CQUESTROT_RAMB, + CQUESTROT_RAMC, + CQUESTROT_RAMD, + CQUESTROT_RAME, + CQUESTROT_RAMF, + CQUESTROT_SEQCNT, + CQUESTROT_DYNADDR, + CQUESTROT_DYNDATA, + CQUESTROT_YRLATCH, + CQUESTROT_YDLATCH, + CQUESTROT_DINLATCH, + CQUESTROT_DSRCLATCH, + CQUESTROT_RSRCLATCH, + CQUESTROT_LDADDR, + CQUESTROT_LDDATA, +}; + +enum +{ + CQUESTLIN_FGPC = 1, + CQUESTLIN_BGPC, + CQUESTLIN_Q, + CQUESTLIN_RAM0, + CQUESTLIN_RAM1, + CQUESTLIN_RAM2, + CQUESTLIN_RAM3, + CQUESTLIN_RAM4, + CQUESTLIN_RAM5, + CQUESTLIN_RAM6, + CQUESTLIN_RAM7, + CQUESTLIN_RAM8, + CQUESTLIN_RAM9, + CQUESTLIN_RAMA, + CQUESTLIN_RAMB, + CQUESTLIN_RAMC, + CQUESTLIN_RAMD, + CQUESTLIN_RAME, + CQUESTLIN_RAMF, + CQUESTLIN_FADLATCH, + CQUESTLIN_BADLATCH, + CQUESTLIN_SREG, + CQUESTLIN_XCNT, + CQUESTLIN_YCNT, + CQUESTLIN_CLATCH, + CQUESTLIN_ZLATCH, +}; + + +/*************************************************************************** + CONFIGURATION STRUCTURE +***************************************************************************/ + +typedef void (*cubeqst_dac_w_func)(device_t *, UINT16); + +typedef struct _cubeqst_snd_config cubeqst_snd_config; +struct _cubeqst_snd_config +{ + cubeqst_dac_w_func dac_w; + const char * sound_data_region; + +}; + +typedef struct _cubeqst_lin_config cubeqst_lin_config; +struct _cubeqst_lin_config +{ + const char * rot_cpu_tag; +}; + +typedef struct _cubeqst_rot_config cubeqst_rot_config; +struct _cubeqst_rot_config +{ + const char * lin_cpu_tag; +}; + +/*************************************************************************** + PUBLIC FUNCTIONS +***************************************************************************/ + +extern READ16_DEVICE_HANDLER( cubeqcpu_sndram_r ); +extern WRITE16_DEVICE_HANDLER( cubeqcpu_sndram_w ); + +extern READ16_DEVICE_HANDLER( cubeqcpu_rotram_r ); +extern WRITE16_DEVICE_HANDLER( cubeqcpu_rotram_w ); + +void cubeqcpu_swap_line_banks(device_t *device); + +void cubeqcpu_clear_stack(device_t *device); +UINT8 cubeqcpu_get_ptr_ram_val(device_t *device, int i); +UINT32* cubeqcpu_get_stack_ram(device_t *device); + +DECLARE_LEGACY_CPU_DEVICE(CQUESTSND, cquestsnd); +DECLARE_LEGACY_CPU_DEVICE(CQUESTROT, cquestrot); +DECLARE_LEGACY_CPU_DEVICE(CQUESTLIN, cquestlin); + +#endif /* _CUBEQCPU_H */ |