sgdk
|
Z80 control. More...
Go to the source code of this file.
Defines | |
#define | Z80_HALT_PORT 0xA11100 |
#define | Z80_RESET_PORT 0xA11200 |
#define | Z80_RAM_START 0xA00000 |
Z80 RAM start address. | |
#define | Z80_RAM_END 0xA01FFF |
Z80 RAM end address. | |
#define | Z80_RAM Z80_RAM_START |
Z80 RAM address. | |
#define | Z80_RAM_LEN ((Z80_RAM_END - Z80_RAM_START) + 1) |
Z80 RAM length in byte. | |
#define | Z80_YM2612 0xA04000 |
Z80 YM2612 port address. | |
#define | Z80_BANK_REGISTER 0xA06000 |
Z80 Bank register address. | |
#define | Z80_DRV_COMMAND 0xA00100 |
Z80 default driver command address. | |
#define | Z80_DRV_STATUS 0xA00102 |
Z80 default driver status address. | |
#define | Z80_DRV_PARAMS 0xA00104 |
Z80 default driver parameters address. | |
#define | Z80_DRV_COM_PLAY_SFT 0 |
#define | Z80_DRV_COM_STOP_SFT 4 |
#define | Z80_DRV_STAT_PLAYING_SFT 0 |
#define | Z80_DRV_STAT_READY_SFT 7 |
#define | Z80_DRV_COM_PLAY (1 << Z80_DRV_COM_PLAY_SFT) |
Z80 default driver play command. | |
#define | Z80_DRV_COM_STOP (1 << Z80_DRV_COM_STOP_SFT) |
Z80 default driver stop command. | |
#define | Z80_DRV_STAT_PLAYING (1 << Z80_DRV_STAT_PLAYING_SFT) |
Z80 default driver play status. | |
#define | Z80_DRV_STAT_READY (1 << Z80_DRV_STAT_READY_SFT) |
Z80 default driver ready status. | |
#define | Z80_DRV_CH0_SFT 0 |
#define | Z80_DRV_CH1_SFT 1 |
#define | Z80_DRV_CH2_SFT 2 |
#define | Z80_DRV_CH3_SFT 3 |
#define | Z80_DRV_CH0 (1 << Z80_DRV_CH0_SFT) |
Z80 default driver channel 0 id. | |
#define | Z80_DRV_CH1 (1 << Z80_DRV_CH1_SFT) |
Z80 default driver channel 1 id. | |
#define | Z80_DRV_CH2 (1 << Z80_DRV_CH2_SFT) |
Z80 default driver channel 2 id. | |
#define | Z80_DRV_CH3 (1 << Z80_DRV_CH3_SFT) |
Z80 default driver channel 3 id. | |
#define | Z80_DRIVER_NULL 0 |
NULL Z80 driver. | |
#define | Z80_DRIVER_PCM 1 |
Variable rate sample player Z80 driver. It can play a sample (8 bit signed) from 8 Khz up to 32 Khz rate. | |
#define | Z80_DRIVER_2ADPCM 2 |
2 channels PCM sample player Z80 driver. It can mix 2 samples (4 bit PCM) at a fixed 22 Khz rate. | |
#define | Z80_DRIVER_4PCM 4 |
4 channels sample player Z80 driver with envelop control. It can mix 4 samples (8 bit signed) at a fixed 16 Khz rate and handle volume (16 levels) for each channel. | |
#define | Z80_DRIVER_4PCM_ENV Z80_DRIVER_4PCM |
#define | Z80_DRIVER_XGM 5 |
eXtended VGM music player driver. This driver takes VGM (or XGM) file as input to play music. It supports 4 PCM channels at a fixed 14 Khz and allows to play SFX through PCM with 16 level of priority. The driver is designed to avoid DMA contention when possible (depending CPU load). | |
#define | Z80_DRIVER_CUSTOM -1 |
CUSTOM Z80 driver. | |
#define | Z80_DRIVER_DEFAULT Z80_DRIVER_XGM |
Functions | |
void | Z80_init () |
Initialize Z80 sub system. | |
bool | Z80_isBusTaken () |
Return Z80 BUS taken state. | |
void | Z80_requestBus (bool wait) |
Request Z80 BUS. | |
bool | Z80_getAndRequestBus (bool wait) |
Request Z80 BUS if not yet taken. | |
void | Z80_releaseBus () |
Release Z80 BUS. | |
void | Z80_startReset () |
Start Z80 reset. | |
void | Z80_endReset () |
End Z80 reset. | |
void | Z80_setBank (const u16 bank) |
Set Z80 memory bank. | |
u8 | Z80_read (const u16 addr) |
Read Z80 memory (Z80_RAM). | |
void | Z80_write (const u16 addr, const u8 value) |
Write to Z80 memory (Z80_RAM). | |
void | Z80_clear (const u16 dest, const u16 size, const bool resetz80) |
Clear Z80 memory. | |
void | Z80_upload (const u16 dest, const u8 *data, const u16 size, const bool resetz80) |
Upload data in Z80 memory. | |
void | Z80_download (const u16 from, u8 *dest, const u16 size) |
Read data from Z80 memory. | |
u16 | Z80_getLoadedDriver () |
Return currently loaded Z80 driver. | |
void | Z80_unloadDriver () |
Unload Z80 driver (actually clear Z80 ram). | |
void | Z80_loadDriver (const u16 driver, const bool waitReady) |
Load a Z80 driver. | |
void | Z80_loadCustomDriver (const u8 *drv, u16 size) |
Load a custom Z80 driver. | |
u16 | Z80_isDriverReady () |
Return driver ready state (only for non custom driver). |
Z80 control.
This unit provides Z80 access from the YM2612 :
Clear Z80 memory.
dest | Destination address (Z80 memory). |
size | Size in byte of region to clear. |
resetz80 | Reset Z80 if set to TRUE. |
Read data from Z80 memory.
from | Source address (Z80 memory). |
dest | Destination where to write data. |
size | Size in byte of data to read. |
Request Z80 BUS if not yet taken.
wait | Wait for BUS request operation to complete. |
u16 Z80_getLoadedDriver | ( | ) |
Return currently loaded Z80 driver.
Possible returned values are:
void Z80_init | ( | ) |
Initialize Z80 sub system.
Request Z80 BUS and reset bank number.
Load a custom Z80 driver.
drv | Pointer to the driver binary to load. |
size | Size (in bytes) of the driver binary. |
Load a Z80 driver.
driver | Driver to load, possible values are: |
waitReady | Wait for driver to be ready. |
Read Z80 memory (Z80_RAM).
addr | Address to read (relative to start of Z80_RAM). |
You need to request Z80 BUS to access Z80 memory.
void Z80_requestBus | ( | bool | wait | ) |
Request Z80 BUS.
wait | Wait for BUS request operation to complete. |
void Z80_setBank | ( | const u16 | bank | ) |
Set Z80 memory bank.
bank | Bank number to set (0x000-0x1FF) |
Upload data in Z80 memory.
dest | Destination address (Z80 memory). |
data | Data to upload. |
size | Size in byte of data to upload. |
resetz80 | Reset Z80 if set to TRUE. |
Write to Z80 memory (Z80_RAM).
addr | Address to write (relative to start of Z80_RAM). |
value | Value to write. |
You need to request Z80 BUS to access Z80 memory.