sgdk
|
00001 00015 #ifndef _Z80_CTRL_H_ 00016 #define _Z80_CTRL_H_ 00017 00018 00019 #define Z80_HALT_PORT 0xA11100 00020 #define Z80_RESET_PORT 0xA11200 00021 00027 #define Z80_RAM_START 0xA00000 00028 00033 #define Z80_RAM_END 0xA01FFF 00034 00039 #define Z80_RAM Z80_RAM_START 00040 00045 #define Z80_RAM_LEN ((Z80_RAM_END - Z80_RAM_START) + 1) 00046 00051 #define Z80_YM2612 0xA04000 00052 00057 #define Z80_BANK_REGISTER 0xA06000 00058 00064 #define Z80_DRV_COMMAND 0xA00100 00065 00070 #define Z80_DRV_STATUS 0xA00102 00071 00076 #define Z80_DRV_PARAMS 0xA00104 00077 00078 // default command and status value 00079 #define Z80_DRV_COM_PLAY_SFT 0 00080 #define Z80_DRV_COM_STOP_SFT 4 00081 #define Z80_DRV_STAT_PLAYING_SFT 0 00082 #define Z80_DRV_STAT_READY_SFT 7 00083 00088 #define Z80_DRV_COM_PLAY (1 << Z80_DRV_COM_PLAY_SFT) 00089 00093 #define Z80_DRV_COM_STOP (1 << Z80_DRV_COM_STOP_SFT) 00094 00098 #define Z80_DRV_STAT_PLAYING (1 << Z80_DRV_STAT_PLAYING_SFT) 00099 00103 #define Z80_DRV_STAT_READY (1 << Z80_DRV_STAT_READY_SFT) 00104 00105 00106 #define Z80_DRV_CH0_SFT _Pragma("GCC error \"This method is deprecated, use SOUND_PCM_CH1 instead.\"") 00107 #define Z80_DRV_CH1_SFT _Pragma("GCC error \"This method is deprecated, use SOUND_PCM_CH2 instead.\"") 00108 #define Z80_DRV_CH2_SFT _Pragma("GCC error \"This method is deprecated, use SOUND_PCM_CH3 instead.\"") 00109 #define Z80_DRV_CH3_SFT _Pragma("GCC error \"This method is deprecated, use SOUND_PCM_CH4 instead.\"") 00110 00111 #define Z80_DRV_CH0 _Pragma("GCC error \"This method is deprecated, use SOUND_PCM_CH1_MSK instead.\"") 00112 #define Z80_DRV_CH1 _Pragma("GCC error \"This method is deprecated, use SOUND_PCM_CH2_MSK instead.\"") 00113 #define Z80_DRV_CH2 _Pragma("GCC error \"This method is deprecated, use SOUND_PCM_CH3_MSK instead.\"") 00114 #define Z80_DRV_CH3 _Pragma("GCC error \"This method is deprecated, use SOUND_PCM_CH4_MSK instead.\"") 00115 00116 00121 #define Z80_DRIVER_NULL 0 00122 00127 #define Z80_DRIVER_PCM 1 00128 00133 #define Z80_DRIVER_DPCM2 2 00134 00140 #define Z80_DRIVER_PCM4 3 00141 00148 #define Z80_DRIVER_XGM 4 00149 00157 #define Z80_DRIVER_XGM2 5 00158 00162 #define Z80_DRIVER_CUSTOM -1 00163 00164 00165 #define Z80_DRIVER_4PCM_ENV _Pragma("GCC error \"This definition is deprecated, use Z80_DRIVER_PCM4 instead.\"") 00166 #define Z80_DRIVER_2ADPCM _Pragma("GCC error \"This definition is deprecated, use Z80_DRIVER_DPCM2 instead.\"") 00167 00168 00175 void Z80_init(void); 00176 00181 bool Z80_isBusTaken(void); 00188 void Z80_requestBus(bool wait); 00197 bool Z80_getAndRequestBus(bool wait); 00198 00203 void Z80_releaseBus(void); 00204 00209 void Z80_startReset(void); 00214 void Z80_endReset(void); 00215 00222 void Z80_setBank(const u16 bank); 00223 00234 u8 Z80_read(const u16 addr); 00247 void Z80_write(const u16 addr, const u8 value); 00248 00257 void Z80_clear(void); 00268 void Z80_upload(const u16 dest, const u8 *data, const u16 size); 00280 void Z80_download(const u16 from, u8 *dest, const u16 size); 00281 00295 u16 Z80_getLoadedDriver(void); 00300 void Z80_unloadDriver(void); 00316 void Z80_loadDriver(const u16 driver, const bool waitReady); 00326 void Z80_loadCustomDriver(const u8 *drv, u16 size); 00327 00332 bool Z80_isDriverReady(void); 00333 00342 void Z80_useBusProtection(u16 signalAddress); 00343 00362 void Z80_setBusProtection(bool value); 00371 void Z80_enableBusProtection(); 00380 void Z80_disableBusProtection(); 00381 00388 bool Z80_getForceDelayDMA(void); 00402 void Z80_setForceDelayDMA(bool value); 00403 00404 #endif // _Z80_CTRL_H_