sgdk
z80_ctrl.h
Go to the documentation of this file.
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_
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines