cxhumax.cpp, psxcd.cpp: Modernize logging calls

This commit is contained in:
AJR 2022-10-23 21:11:09 -04:00
parent 84395f1108
commit 84d6233bf5
2 changed files with 128 additions and 148 deletions

View File

@ -19,40 +19,28 @@
#include "screen.h"
#define VERBOSE_LEVEL ( 0 )
static inline void ATTR_PRINTF(3,4) verboselog( device_t &device, int n_level, const char *s_fmt, ...)
{
if (VERBOSE_LEVEL >= n_level)
{
va_list v;
char buf[32768];
va_start( v, s_fmt);
vsprintf( buf, s_fmt, v);
va_end( v);
device.logerror( "%s: %s", device.machine().describe_context( ), buf);
}
}
#define VERBOSE ( 0 )
#include "logmacro.h"
uint32_t cxhumax_state::cx_gxa_r(offs_t offset)
{
uint32_t res = m_gxa_cmd_regs[offset];
verboselog(*this, 9, "(GXA) %08X -> %08X\n", 0xE0600000 + (offset << 2), res);
LOG("%s: (GXA) %08X -> %08X\n", machine().describe_context(), 0xE0600000 + (offset << 2), res);
/* uint8_t gxa_command_number = (offset >> 9) & 0x7F;
verboselog(*this, 9, " Command: %08X\n", gxa_command_number);
LOG(" Command: %08X\n", gxa_command_number);
switch (gxa_command_number) {
case GXA_CMD_RW_REGISTER:
switch(offset) {
case GXA_CFG2_REG:
break;
default:
verboselog(*this, 9, " Unimplemented register - TODO?\n");
LOG(" Unimplemented register - TODO?\n");
break;
}
break;
default:
// do we need it?
verboselog(*this, 9, " Unimplemented read command - TODO?\n");
LOG(" Unimplemented read command - TODO?\n");
break;
}*/
return res;
@ -60,20 +48,20 @@ uint32_t cxhumax_state::cx_gxa_r(offs_t offset)
void cxhumax_state::cx_gxa_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog(*this, 9, "(GXA) %08X <- %08X\n", 0xE0600000 + (offset << 2), data);
LOG("%s: (GXA) %08X <- %08X\n", machine().describe_context(), 0xE0600000 + (offset << 2), data);
uint8_t gxa_command_number = (offset >> 9) & 0x7F;
verboselog(*this, 9, " Command: %08X\n", gxa_command_number);
LOG(" Command: %08X\n", gxa_command_number);
/* Clear non persistent data */
m_gxa_cmd_regs[GXA_CMD_REG] &= 0xfffc0000;
if (gxa_command_number == GXA_CMD_RW_REGISTER) {
verboselog(*this, 9, " Register Number: %08X\n", offset & 0xff);
LOG(" Register Number: %08X\n", offset & 0xff);
} else {
m_gxa_cmd_regs[GXA_CMD_REG] |= (offset << 2) & 0x3ffff;
verboselog(*this, 9, " Source Bitmap Selector: %08X\n", (offset >> 6) & 0x7);
verboselog(*this, 9, " Destination Bitmap Selector: %08X\n", (offset >> 3) & 0x7);
verboselog(*this, 9, " Parameter Count: %08X\n", offset & 0x7);
LOG(" Source Bitmap Selector: %08X\n", (offset >> 6) & 0x7);
LOG(" Destination Bitmap Selector: %08X\n", (offset >> 3) & 0x7);
LOG(" Parameter Count: %08X\n", offset & 0x7);
}
switch (gxa_command_number) {
case GXA_CMD_RW_REGISTER:
@ -83,13 +71,13 @@ void cxhumax_state::cx_gxa_w(offs_t offset, uint32_t data, uint32_t mem_mask)
m_gxa_cmd_regs[GXA_CFG2_REG] = (m_gxa_cmd_regs[GXA_CFG2_REG]&(0xfff00000 & ~(data&0x00300000))) | (data & 0x000fffff);
break;
default:
verboselog(*this, 9, " Unimplemented register - TODO?\n");
LOG(" Unimplemented register - TODO?\n");
COMBINE_DATA(&m_gxa_cmd_regs[offset]);
break;
}
break;
case GXA_CMD_QMARK:
verboselog(*this, 9, " QMARK - TODO?\n");
LOG(" QMARK - TODO?\n");
/* Set value and copy of WAIT4_VERTICAL bit written by QMARK */
m_gxa_cmd_regs[GXA_CMD_REG] = (m_gxa_cmd_regs[GXA_CMD_REG] & 0x3ffff) | (data<<24) | ((data&0x10)?1<<23:0);
@ -102,7 +90,7 @@ void cxhumax_state::cx_gxa_w(offs_t offset, uint32_t data, uint32_t mem_mask)
m_intctrl_regs[INTREG(INTGROUP2, INTIRQ)] |= 1<<18;
m_intctrl_regs[INTREG(INTGROUP2, INTSTATCLR)] |= 1<<18;
m_intctrl_regs[INTREG(INTGROUP2, INTSTATSET)] |= 1<<18;
verboselog(*this, 9, " QMARK INT - TODO?\n");
LOG(" QMARK INT - TODO?\n");
}
if((m_intctrl_regs[INTREG(INTGROUP2, INTIRQ)] & m_intctrl_regs[INTREG(INTGROUP2, INTENABLE)])
@ -111,7 +99,7 @@ void cxhumax_state::cx_gxa_w(offs_t offset, uint32_t data, uint32_t mem_mask)
break;
default:
verboselog(*this, 9, " Unimplemented command - TODO?\n");
LOG(" Unimplemented command - TODO?\n");
break;
}
}
@ -123,7 +111,7 @@ void cxhumax_state::flash_w(offs_t offset, uint32_t data, uint32_t mem_mask)
m_flash->write(offset, data);
if(ACCESSING_BITS_16_31)
m_flash->write(offset+1, data >> 16);
verboselog(*this, 9, "(FLASH) %08X <- %08X\n", 0xF0000000 + (offset << 2), data);
LOG("%s: (FLASH) %08X <- %08X\n", machine().describe_context(), 0xF0000000 + (offset << 2), data);
}
uint32_t cxhumax_state::flash_r(offs_t offset, uint32_t mem_mask)
@ -134,7 +122,7 @@ uint32_t cxhumax_state::flash_r(offs_t offset, uint32_t mem_mask)
res |= m_flash->read(offset);
if(ACCESSING_BITS_16_31)
res |= m_flash->read(offset+1) << 16;
//if(m_flash->m_flash_mode!=FM_NORMAL) verboselog(*this, 9, "(FLASH) %08X -> %08X\n", 0xF0000000 + (offset << 2), res);
//if(m_flash->m_flash_mode!=FM_NORMAL) LOG("%s: (FLASH) %08X -> %08X\n", machine().describe_context(), 0xF0000000 + (offset << 2), res);
return res;
}
@ -146,7 +134,7 @@ uint32_t cxhumax_state::dummy_flash_r()
void cxhumax_state::cx_remap_w(offs_t offset, uint32_t data)
{
if(!(data&1)) {
verboselog(*this, 9, "(REMAP) %08X -> %08X\n", 0xE0400014 + (offset << 2), data);
LOG("%s: (REMAP) %08X -> %08X\n", machine().describe_context(), 0xE0400014 + (offset << 2), data);
memset(m_ram, 0, 0x400000); // workaround :P
}
}
@ -154,7 +142,7 @@ void cxhumax_state::cx_remap_w(offs_t offset, uint32_t data)
uint32_t cxhumax_state::cx_scratch_r(offs_t offset)
{
uint32_t data = m_scratch_reg;
verboselog(*this, 9, "(SCRATCH) %08X -> %08X\n", 0xE0400024 + (offset << 2), data);
LOG("%s: (SCRATCH) %08X -> %08X\n", machine().describe_context(), 0xE0400024 + (offset << 2), data);
if((m_maincpu->pc()==0xF0003BB8) || (m_maincpu->pc()==0x01003724) || (m_maincpu->pc()==0x00005d8c)) { // HDCI-2000
//we're in disabled debug_printf
@ -170,103 +158,103 @@ uint32_t cxhumax_state::cx_scratch_r(offs_t offset)
//m_terminal->write(temp);
}
osd_printf_debug("%s", buf);
verboselog(*this, 9, "(DEBUG) %s", buf);
LOG("%s: (DEBUG) %s", machine().describe_context(), buf);
}
return data;
}
void cxhumax_state::cx_scratch_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog(*this, 9, "(SCRATCH) %08X <- %08X\n", 0xE0400024 + (offset << 2), data);
LOG("%s: (SCRATCH) %08X <- %08X\n", machine().describe_context(), 0xE0400024 + (offset << 2), data);
COMBINE_DATA(&m_scratch_reg);
}
uint32_t cxhumax_state::cx_hsx_r(offs_t offset)
{
uint32_t data = 0; // dummy
verboselog(*this, 9, "(HSX) %08X -> %08X\n", 0xE0000000 + (offset << 2), data);
LOG("%s: (HSX) %08X -> %08X\n", machine().describe_context(), 0xE0000000 + (offset << 2), data);
return data;
}
void cxhumax_state::cx_hsx_w(offs_t offset, uint32_t data)
{
verboselog(*this, 9, "(HSX) %08X <- %08X\n", 0xE0000000 + (offset << 2), data);
LOG("%s: (HSX) %08X <- %08X\n", machine().describe_context(), 0xE0000000 + (offset << 2), data);
}
uint32_t cxhumax_state::cx_romdescr_r(offs_t offset)
{
uint32_t data = m_romdescr_reg;
verboselog(*this, 9, "(ROMDESC0) %08X -> %08X\n", 0xE0010000 + (offset << 2), data);
LOG("%s: (ROMDESC0) %08X -> %08X\n", machine().describe_context(), 0xE0010000 + (offset << 2), data);
return data;
}
void cxhumax_state::cx_romdescr_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog(*this, 9, "(ROMDESC0) %08X <- %08X\n", 0xE0010000 + (offset << 2), data);
LOG("%s: (ROMDESC0) %08X <- %08X\n", machine().describe_context(), 0xE0010000 + (offset << 2), data);
COMBINE_DATA(&m_romdescr_reg);
}
uint32_t cxhumax_state::cx_isaromdescr_r(offs_t offset)
{
uint32_t data = m_isaromdescr_regs[offset];
verboselog(*this, 9, "(ISAROMDESC%d) %08X -> %08X\n", offset+1, 0xE0010004 + (offset << 2), data);
LOG("%s: (ISAROMDESC%d) %08X -> %08X\n", machine().describe_context(), offset+1, 0xE0010004 + (offset << 2), data);
return data;
}
void cxhumax_state::cx_isaromdescr_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog(*this, 9, "(ISAROMDESC%d) %08X <- %08X\n", offset+1, 0xE0010004 + (offset << 2), data);
LOG("%s: (ISAROMDESC%d) %08X <- %08X\n", machine().describe_context(), offset+1, 0xE0010004 + (offset << 2), data);
COMBINE_DATA(&m_isaromdescr_regs[offset]);
}
uint32_t cxhumax_state::cx_isadescr_r(offs_t offset)
{
uint32_t data = m_isaromdescr_regs[offset];
verboselog(*this, 9, "(ISA_DESC%d) %08X -> %08X\n", offset+4, 0xE0010010 + (offset << 2), data);
LOG("%s: (ISA_DESC%d) %08X -> %08X\n", machine().describe_context(), offset+4, 0xE0010010 + (offset << 2), data);
return data;
}
void cxhumax_state::cx_isadescr_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog(*this, 9, "(ISA_DESC%d) %08X <- %08X\n", offset+4, 0xE0010010 + (offset << 2), data);
LOG("%s: (ISA_DESC%d) %08X <- %08X\n", machine().describe_context(), offset+4, 0xE0010010 + (offset << 2), data);
COMBINE_DATA(&m_isaromdescr_regs[offset]);
}
uint32_t cxhumax_state::cx_rommap_r(offs_t offset)
{
uint32_t data = 0;
verboselog(*this, 9, "(ROM%d_MAP) %08X -> %08X\n", offset, 0xE0010020 + (offset << 2), data);
LOG("%s: (ROM%d_MAP) %08X -> %08X\n", machine().describe_context(), offset, 0xE0010020 + (offset << 2), data);
return data;
}
void cxhumax_state::cx_rommap_w(offs_t offset, uint32_t data)
{
verboselog(*this, 9, "(ROM%d_MAP) %08X <- %08X\n", offset, 0xE0010020 + (offset << 2), data);
LOG("%s: (ROM%d_MAP) %08X <- %08X\n", machine().describe_context(), offset, 0xE0010020 + (offset << 2), data);
}
uint32_t cxhumax_state::cx_rommode_r(offs_t offset)
{
uint32_t data = m_rommode_reg;
verboselog(*this, 9, "(ROMMODE) %08X -> %08X\n", 0xE0010034 + (offset << 2), data);
LOG("%s: (ROMMODE) %08X -> %08X\n", machine().describe_context(), 0xE0010034 + (offset << 2), data);
return data;
}
void cxhumax_state::cx_rommode_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog(*this, 9, "(ROMMODE) %08X <- %08X\n", 0xE0010034 + (offset << 2), data);
LOG("%s: (ROMMODE) %08X <- %08X\n", machine().describe_context(), 0xE0010034 + (offset << 2), data);
COMBINE_DATA(&m_rommode_reg);
}
uint32_t cxhumax_state::cx_xoemask_r(offs_t offset)
{
uint32_t data = m_xoemask_reg;
verboselog(*this, 9, "(XOEMASK) %08X -> %08X\n", 0xE0010034 + (offset << 2), data);
LOG("%s: (XOEMASK) %08X -> %08X\n", machine().describe_context(), 0xE0010034 + (offset << 2), data);
return data;
}
void cxhumax_state::cx_xoemask_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog(*this, 9, "(XOEMASK) %08X <- %08X\n", 0xE0010034 + (offset << 2), data);
LOG("%s: (XOEMASK) %08X <- %08X\n", machine().describe_context(), 0xE0010034 + (offset << 2), data);
COMBINE_DATA(&m_xoemask_reg);
}
@ -284,26 +272,26 @@ uint32_t cxhumax_state::cx_pci_r(offs_t offset)
}
} break;
}
verboselog(*this, 9, "(PCI) %08X -> %08X\n", 0xE0010040 + (offset << 2), data);
LOG("%s: (PCI) %08X -> %08X\n", machine().describe_context(), 0xE0010040 + (offset << 2), data);
return data;
}
void cxhumax_state::cx_pci_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog(*this, 9, "(PCI) %08X <- %08X\n", 0xE0010040 + (offset << 2), data);
LOG("%s: (PCI) %08X <- %08X\n", machine().describe_context(), 0xE0010040 + (offset << 2), data);
COMBINE_DATA(&m_pci_regs[offset]);
}
uint32_t cxhumax_state::cx_extdesc_r(offs_t offset)
{
uint32_t data = m_extdesc_regs[offset];
verboselog(*this, 9, "(EXTDESC) %08X -> %08X\n", 0xE0010080 + (offset << 2), data);
LOG("%s: (EXTDESC) %08X -> %08X\n", machine().describe_context(), 0xE0010080 + (offset << 2), data);
return data;
}
void cxhumax_state::cx_extdesc_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog(*this, 9, "(EXTDESC) %08X <- %08X\n", 0xE0010080 + (offset << 2), data);
LOG("%s: (EXTDESC) %08X <- %08X\n", machine().describe_context(), 0xE0010080 + (offset << 2), data);
COMBINE_DATA(&m_extdesc_regs[offset]);
}
@ -318,7 +306,7 @@ TIMER_CALLBACK_MEMBER(cxhumax_state::timer_tick)
/* Indicate interrupt request if EN_INT bit is set */
if (m_timer_regs.timer[param].mode & 8) {
//printf( "IRQ on Timer %d\n", param );
verboselog(*this, 9, "(TIMER%d) Interrupt\n", param);
LOG("%s: (TIMER%d) Interrupt\n", machine().time().to_string(), param);
m_intctrl_regs[INTREG(INTGROUP2, INTIRQ)] |= INT_TIMER_BIT; /* Timer interrupt */
m_intctrl_regs[INTREG(INTGROUP2, INTSTATCLR)] |= INT_TIMER_BIT; /* Timer interrupt */
m_intctrl_regs[INTREG(INTGROUP2, INTSTATSET)] |= INT_TIMER_BIT; /* Timer interrupt */
@ -341,7 +329,7 @@ uint32_t cxhumax_state::cx_timers_r(offs_t offset)
if(index==16) {
data = m_timer_regs.timer_irq;
//m_timer_regs.timer_irq=0;
verboselog(*this, 9, "(TIMERIRQ) %08X -> %08X\n", 0xE0430000 + (offset << 2), data);
LOG("%s: (TIMERIRQ) %08X -> %08X\n", machine().describe_context(), 0xE0430000 + (offset << 2), data);
}
else {
switch (offset&3) {
@ -354,7 +342,7 @@ uint32_t cxhumax_state::cx_timers_r(offs_t offset)
case TIMER_TIMEBASE:
data = m_timer_regs.timer[index].timebase; break;
}
verboselog(*this, 9, "(TIMER%d) %08X -> %08X\n", offset>>2, 0xE0430000 + (offset << 2), data);
LOG("%s: (TIMER%d) %08X -> %08X\n", machine().describe_context(), offset>>2, 0xE0430000 + (offset << 2), data);
}
return data;
}
@ -363,11 +351,11 @@ void cxhumax_state::cx_timers_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
uint8_t index = offset>>2;
if(index==16) {
verboselog(*this, 9, "(TIMERIRQ) %08X <- %08X\n", 0xE0430000 + (offset << 2), data);
LOG("%s: (TIMERIRQ) %08X <- %08X\n", machine().describe_context(), 0xE0430000 + (offset << 2), data);
COMBINE_DATA(&m_timer_regs.timer_irq);
}
else {
verboselog(*this, 9, "(TIMER%d) %08X <- %08X\n", index, 0xE0430000 + (offset << 2), data);
LOG("%s: (TIMER%d) %08X <- %08X\n", machine().describe_context(), index, 0xE0430000 + (offset << 2), data);
switch(offset&3) {
case TIMER_VALUE:
COMBINE_DATA(&m_timer_regs.timer[index].value); break;
@ -401,13 +389,13 @@ uint32_t cxhumax_state::cx_uart2_r(offs_t offset)
default:
data = m_uart2_regs[offset]; break;
}
verboselog(*this, 9, "(UART2) %08X -> %08X\n", 0xE0411000 + (offset << 2), data);
LOG("%s: (UART2) %08X -> %08X\n", machine().describe_context(), 0xE0411000 + (offset << 2), data);
return data;
}
void cxhumax_state::cx_uart2_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog(*this, 9, "(UART2) %08X <- %08X\n", 0xE0411000 + (offset << 2), data);
LOG("%s: (UART2) %08X <- %08X\n", machine().describe_context(), 0xE0411000 + (offset << 2), data);
switch (offset) {
case UART_FIFO_REG:
if(!(m_uart2_regs[UART_FRMC_REG]&UART_FRMC_BDS_BIT)) {
@ -436,65 +424,65 @@ void cxhumax_state::cx_uart2_w(offs_t offset, uint32_t data, uint32_t mem_mask)
uint32_t cxhumax_state::cx_pll_r(offs_t offset)
{
uint32_t data = m_pll_regs[offset];
verboselog(*this, 9, "(PLL) %08X -> %08X\n", 0xE0440000 + (offset << 2), data);
LOG("%s: (PLL) %08X -> %08X\n", machine().describe_context(), 0xE0440000 + (offset << 2), data);
return data;
}
void cxhumax_state::cx_pll_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog(*this, 9, "(PLL) %08X <- %08X\n", 0xE0440000 + (offset << 2), data);
LOG("%s: (PLL) %08X <- %08X\n", machine().describe_context(), 0xE0440000 + (offset << 2), data);
COMBINE_DATA(&m_pll_regs[offset]);
}
uint32_t cxhumax_state::cx_pllprescale_r(offs_t offset)
{
uint32_t data = m_pllprescale_reg;
verboselog(*this, 9, "(PLLPRESCALE) %08X -> %08X\n", 0xE0440094 + (offset << 2), data);
LOG("%s: (PLLPRESCALE) %08X -> %08X\n", machine().describe_context(), 0xE0440094 + (offset << 2), data);
return data;
}
void cxhumax_state::cx_pllprescale_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog(*this, 9, "(PLLPRESCALE) %08X <- %08X\n", 0xE0440094 + (offset << 2), data);
LOG("%s: (PLLPRESCALE) %08X <- %08X\n", machine().describe_context(), 0xE0440094 + (offset << 2), data);
COMBINE_DATA(&m_pllprescale_reg);
}
uint32_t cxhumax_state::cx_clkdiv_r(offs_t offset)
{
uint32_t data = m_clkdiv_regs[offset];
verboselog(*this, 9, "(CLKDIV) %08X -> %08X\n", 0xE0440020 + (offset << 2), data);
LOG("%s: (CLKDIV) %08X -> %08X\n", machine().describe_context(), 0xE0440020 + (offset << 2), data);
return data;
}
void cxhumax_state::cx_clkdiv_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog(*this, 9, "(CLKDIV) %08X <- %08X\n", 0xE0440020 + (offset << 2), data);
LOG("%s: (CLKDIV) %08X <- %08X\n", machine().describe_context(), 0xE0440020 + (offset << 2), data);
COMBINE_DATA(&m_clkdiv_regs[offset]);
}
uint32_t cxhumax_state::cx_chipcontrol_r(offs_t offset)
{
uint32_t data = m_chipcontrol_regs[offset];
verboselog(*this, 9, "(CHIPCONTROL) %08X -> %08X\n", 0xE0440100 + (offset << 2), data);
LOG("%s: (CHIPCONTROL) %08X -> %08X\n", machine().describe_context(), 0xE0440100 + (offset << 2), data);
return data;
}
void cxhumax_state::cx_chipcontrol_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog(*this, 9, "(CHIPCONTROL) %08X <- %08X\n", 0xE0440100 + (offset << 2), data);
LOG("%s: (CHIPCONTROL) %08X <- %08X\n", machine().describe_context(), 0xE0440100 + (offset << 2), data);
COMBINE_DATA(&m_chipcontrol_regs[offset]);
}
uint32_t cxhumax_state::cx_intctrl_r(offs_t offset)
{
uint32_t data = m_intctrl_regs[offset];
verboselog(*this, 9, "(INTCTRL) %08X -> %08X\n", 0xE0450000 + (offset << 2), data);
LOG("%s: (INTCTRL) %08X -> %08X\n", machine().describe_context(), 0xE0450000 + (offset << 2), data);
return data;
}
void cxhumax_state::cx_intctrl_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog(*this, 9, "(INTCTRL) %08X <- %08X\n", 0xE0450000 + (offset << 2), data);
LOG("%s: (INTCTRL) %08X <- %08X\n", machine().describe_context(), 0xE0450000 + (offset << 2), data);
switch (offset >> 3) { // Decode the group
case 0: // Group 1
switch(offset & 7) {
@ -571,13 +559,13 @@ uint32_t cxhumax_state::cx_ss_r(offs_t offset)
data = m_ss_regs[offset];
break;
}
verboselog(*this, 9, "(SS) %08X -> %08X\n", 0xE0490000 + (offset << 2), data);
LOG("%s: (SS) %08X -> %08X\n", machine().describe_context(), 0xE0490000 + (offset << 2), data);
return data;
}
void cxhumax_state::cx_ss_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog(*this, 9, "(SS) %08X <- %08X\n", 0xE0490000 + (offset << 2), data);
LOG("%s: (SS) %08X <- %08X\n", machine().describe_context(), 0xE0490000 + (offset << 2), data);
switch(offset) {
case SS_CNTL_REG:
if (data&1) {
@ -621,13 +609,13 @@ void cxhumax_state::cx_ss_w(offs_t offset, uint32_t data, uint32_t mem_mask)
uint32_t cxhumax_state::cx_i2c0_r(offs_t offset)
{
uint32_t data = m_i2c0_regs[offset];
verboselog(*this, 9, "(I2C0) %08X -> %08X\n", 0xE04E0000 + (offset << 2), data);
LOG("%s: (I2C0) %08X -> %08X\n", machine().describe_context(), 0xE04E0000 + (offset << 2), data);
return data;
}
void cxhumax_state::cx_i2c0_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog(*this, 9, "(I2C0) %08X <- %08X\n", 0xE04E0000 + (offset << 2), data);
LOG("%s: (I2C0) %08X <- %08X\n", machine().describe_context(), 0xE04E0000 + (offset << 2), data);
COMBINE_DATA(&m_i2c0_regs[offset]);
}
@ -689,13 +677,13 @@ uint32_t cxhumax_state::cx_i2c1_r(offs_t offset)
default:
data |= m_i2c1_regs[offset]; break;
}
verboselog(*this, 9, "(I2C1) %08X -> %08X\n", 0xE04E1000 + (offset << 2), data);
LOG("%s: (I2C1) %08X -> %08X\n", machine().describe_context(), 0xE04E1000 + (offset << 2), data);
return data;
}
void cxhumax_state::cx_i2c1_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog(*this, 9, "(I2C1) %08X <- %08X\n", 0xE04E1000 + (offset << 2), data);
LOG("%s: (I2C1) %08X <- %08X\n", machine().describe_context(), 0xE04E1000 + (offset << 2), data);
switch(offset) {
case I2C_CTRL_REG:
if(data&0x10) {// START
@ -739,7 +727,7 @@ void cxhumax_state::cx_i2c1_w(offs_t offset, uint32_t data, uint32_t mem_mask)
m_intctrl_regs[INTREG(INTGROUP1, INTSTATCLR)] |= 1<<7;
m_intctrl_regs[INTREG(INTGROUP1, INTSTATSET)] |= 1<<7;
if (m_intctrl_regs[INTREG(INTGROUP1, INTENABLE)] & (1<<7)) {
verboselog(*this, 9, "(I2C1) Int\n" );
LOG("%s: (I2C1) Int\n", machine().describe_context());
m_maincpu->set_input_line(ARM7_IRQ_LINE, ASSERT_LINE);
}
break;
@ -755,33 +743,33 @@ void cxhumax_state::cx_i2c1_w(offs_t offset, uint32_t data, uint32_t mem_mask)
uint32_t cxhumax_state::cx_i2c2_r(offs_t offset)
{
uint32_t data = m_i2c2_regs[offset];
verboselog(*this, 9, "(I2C2) %08X -> %08X\n", 0xE04E2000 + (offset << 2), data);
LOG("%s: (I2C2) %08X -> %08X\n", machine().describe_context(), 0xE04E2000 + (offset << 2), data);
return data;
}
void cxhumax_state::cx_i2c2_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog(*this, 9, "(I2C2) %08X <- %08X\n", 0xE04E2000 + (offset << 2), data);
LOG("%s: (I2C2) %08X <- %08X\n", machine().describe_context(), 0xE04E2000 + (offset << 2), data);
COMBINE_DATA(&m_i2c2_regs[offset]);
}
uint32_t cxhumax_state::cx_mc_cfg_r(offs_t offset)
{
uint32_t data = m_mccfg_regs[offset];
verboselog(*this, 9, "(MC_CFG) %08X -> %08X\n", 0xE0500300 + (offset << 2), data);
LOG("%s: (MC_CFG) %08X -> %08X\n", machine().describe_context(), 0xE0500300 + (offset << 2), data);
return data;
}
void cxhumax_state::cx_mc_cfg_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog(*this, 9, "(MC_CFG) %08X <- %08X\n", 0xE0500300 + (offset << 2), data);
LOG("%s: (MC_CFG) %08X <- %08X\n", machine().describe_context(), 0xE0500300 + (offset << 2), data);
COMBINE_DATA(&m_mccfg_regs[offset]);
}
uint32_t cxhumax_state::cx_drm0_r(offs_t offset)
{
uint32_t data = m_drm0_regs[offset];
verboselog(*this, 9, "(DRM0) %08X -> %08X\n", 0xE0560000 + (offset << 2), data);
LOG("%s: (DRM0) %08X -> %08X\n", machine().describe_context(), 0xE0560000 + (offset << 2), data);
switch(offset) {
case 0x14/4: // DRM_STATUS_REG
data |= 1<<21;
@ -792,33 +780,33 @@ uint32_t cxhumax_state::cx_drm0_r(offs_t offset)
void cxhumax_state::cx_drm0_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog(*this, 9, "(DRM0) %08X <- %08X\n", 0xE0560000 + (offset << 2), data);
LOG("%s: (DRM0) %08X <- %08X\n", machine().describe_context(), 0xE0560000 + (offset << 2), data);
COMBINE_DATA(&m_drm0_regs[offset]);
}
uint32_t cxhumax_state::cx_drm1_r(offs_t offset)
{
uint32_t data = m_drm1_regs[offset];
verboselog(*this, 9, "(DRM1) %08X -> %08X\n", 0xE0570000 + (offset << 2), data);
LOG("%s: (DRM1) %08X -> %08X\n", machine().describe_context(), 0xE0570000 + (offset << 2), data);
return data;
}
void cxhumax_state::cx_drm1_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog(*this, 9, "(DRM1) %08X <- %08X\n", 0xE0570000 + (offset << 2), data);
LOG("%s: (DRM1) %08X <- %08X\n", machine().describe_context(), 0xE0570000 + (offset << 2), data);
COMBINE_DATA(&m_drm1_regs[offset]);
}
uint32_t cxhumax_state::cx_hdmi_r(offs_t offset)
{
uint32_t data = m_hdmi_regs[offset];
verboselog(*this, 9, "(HDMI) %08X -> %08X\n", 0xE05D0800 + (offset << 2), data);
LOG("%s: (HDMI) %08X -> %08X\n", machine().describe_context(), 0xE05D0800 + (offset << 2), data);
return data;
}
void cxhumax_state::cx_hdmi_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
verboselog(*this, 9, "(HDMI) %08X <- %08X\n", 0xE05D0800 + (offset << 2), data);
LOG("%s: (HDMI) %08X <- %08X\n", machine().describe_context(), 0xE05D0800 + (offset << 2), data);
switch(offset) {
case 0x40/4: // HDMI_CONFIG_REG
if(data&8) m_hdmi_regs[0xc0/4] |= 0x80;

View File

@ -4,20 +4,11 @@
#include "psxcd.h"
#include "debugger.h"
#define VERBOSE_LEVEL ( 0 )
#define LOG_CMD (1 << 1)
#define LOG_MISC (1 << 2)
static inline void ATTR_PRINTF(3,4) verboselog( device_t& device, int n_level, const char *s_fmt, ... )
{
if (VERBOSE_LEVEL >= n_level)
{
va_list v;
char buf[ 32768 ];
va_start( v, s_fmt );
vsprintf( buf, s_fmt, v );
va_end( v );
device.logerror( "%s: %s", device.machine().describe_context(), buf );
}
}
#define VERBOSE ( 0 )
#include "logmacro.h"
enum cdrom_events
{
@ -265,14 +256,14 @@ uint8_t psxcd_device::read(offs_t offset)
break;
}
verboselog(*this, 2, "psxcd: read byte %08x = %02x\n",offset,ret);
LOGMASKED(LOG_MISC, "%s: read byte %08x = %02x\n", machine().describe_context(), offset, ret);
return ret;
}
void psxcd_device::write(offs_t offset, uint8_t data)
{
verboselog(*this, 2, "psxcd: write byte %08x = %02x\n",offset,data);
LOGMASKED(LOG_MISC, "%s: write byte %08x = %02x\n", machine().describe_context(), offset, data);
switch ((offset & 3) | ((m_regs.sr & 3) << 4))
{
@ -341,12 +332,13 @@ void psxcd_device::write(offs_t offset, uint8_t data)
m_transcurr = 12;
break;
}
#if (VERBOSE_LEVEL > 0)
char str[1024];
for (int i=0; i<12; i++)
sprintf(&str[i*4], "%02x ", m_transbuf[i+12]);
verboselog(*this, 1, "psxcd: request data=%s\n",str);
#endif
if (VERBOSE & LOG_CMD)
{
char str[1024];
for (int i=0; i<12; i++)
sprintf(&str[i*4], "%02x ", m_transbuf[i+12]);
LOGMASKED(LOG_CMD, "%s: request data=%s\n", machine().describe_context(), str);
}
}
else if (!(data & 0x80))
{
@ -375,7 +367,7 @@ void psxcd_device::write(offs_t offset, uint8_t data)
m_regs.sr |= 0x20;
m_regs.ir = res_queue->res;
}
verboselog(*this, 1, "psxcd: nextres\n");
LOGMASKED(LOG_CMD, "%s: nextres\n", machine().describe_context());
}
}
if (data & 0x40)
@ -437,7 +429,7 @@ void psxcd_device::write_command(uint8_t byte)
void psxcd_device::cdcmd_sync()
{
verboselog(*this, 1, "psxcd: sync\n");
LOGMASKED(LOG_CMD, "%s: sync\n", machine().describe_context());
stop_read();
send_result(INTR_ACKNOWLEDGE);
@ -445,7 +437,7 @@ void psxcd_device::cdcmd_sync()
void psxcd_device::cdcmd_nop()
{
verboselog(*this, 1, "psxcd: nop\n");
LOGMASKED(LOG_CMD, "%s: nop\n", machine().describe_context());
if (!open)
status &= ~STATUS_SHELLOPEN;
@ -455,7 +447,7 @@ void psxcd_device::cdcmd_nop()
void psxcd_device::cdcmd_setloc()
{
verboselog(*this, 1, "psxcd: setloc %08x:%08x:%08x\n", cmdbuf[0], cmdbuf[1], cmdbuf[2]);
LOGMASKED(LOG_CMD, "%s: setloc %08x:%08x:%08x\n", machine().describe_context(), cmdbuf[0], cmdbuf[1], cmdbuf[2]);
stop_read();
@ -468,7 +460,7 @@ void psxcd_device::cdcmd_setloc()
if ((l.b[M]>0) || (l.b[S]>=2))
loc.w=l.w;
else
verboselog(*this, 0, "psxcd: setloc out of range: %02d:%02d:%02d\n",l.b[M],l.b[S],l.b[F]);
logerror("%s: setloc out of range: %02d:%02d:%02d\n", machine().describe_context(), l.b[M], l.b[S], l.b[F]);
send_result(INTR_COMPLETE);
}
@ -482,7 +474,7 @@ void psxcd_device::cdcmd_play()
if (!curpos.w)
curpos.b[S] = 2;
verboselog(*this, 1, "psxcd: play %02x %02x %02x => %d\n", decimal_to_bcd(loc.b[M]), decimal_to_bcd(loc.b[S]), decimal_to_bcd(loc.b[F]), msf_to_lba_ps(loc.w));
LOGMASKED(LOG_CMD, "%s: play %02x %02x %02x => %d\n", machine().describe_context(), decimal_to_bcd(loc.b[M]), decimal_to_bcd(loc.b[S]), decimal_to_bcd(loc.b[F]), msf_to_lba_ps(loc.w));
stop_read();
start_play();
@ -491,19 +483,19 @@ void psxcd_device::cdcmd_play()
void psxcd_device::cdcmd_forward()
{
verboselog(*this, 1, "psxcd: forward\n");
LOGMASKED(LOG_CMD, "%s: forward\n", machine().describe_context());
}
void psxcd_device::cdcmd_backward()
{
verboselog(*this, 1, "psxcd: backward\n");
LOGMASKED(LOG_CMD, "%s: backward\n", machine().describe_context());
}
void psxcd_device::cdcmd_readn()
{
if (!open)
{
verboselog(*this, 1, "psxcd: readn\n");
LOGMASKED(LOG_CMD, "%s: readn\n", machine().describe_context());
curpos.w=loc.w;
@ -518,7 +510,7 @@ void psxcd_device::cdcmd_readn()
void psxcd_device::cdcmd_standby()
{
verboselog(*this, 1, "psxcd: standby\n");
LOGMASKED(LOG_CMD, "%s: standby\n", machine().describe_context());
stop_read();
send_result(INTR_ACKNOWLEDGE);
@ -526,7 +518,7 @@ void psxcd_device::cdcmd_standby()
void psxcd_device::cdcmd_stop()
{
verboselog(*this, 1, "psxcd: stop\n");
LOGMASKED(LOG_CMD, "%s: stop\n", machine().describe_context());
stop_read();
send_result(INTR_ACKNOWLEDGE);
@ -534,7 +526,7 @@ void psxcd_device::cdcmd_stop()
void psxcd_device::cdcmd_pause()
{
verboselog(*this, 1, "psxcd: pause\n");
LOGMASKED(LOG_CMD, "%s: pause\n", machine().describe_context());
stop_read();
@ -543,7 +535,7 @@ void psxcd_device::cdcmd_pause()
void psxcd_device::cdcmd_init()
{
verboselog(*this, 1, "psxcd: init\n");
LOGMASKED(LOG_CMD, "%s: init\n", machine().describe_context());
stop_read();
mode=0;
@ -554,7 +546,7 @@ void psxcd_device::cdcmd_init()
void psxcd_device::cdcmd_mute()
{
verboselog(*this, 1, "psxcd: mute\n");
LOGMASKED(LOG_CMD, "%s: mute\n", machine().describe_context());
m_mute = true;
send_result(INTR_COMPLETE);
@ -562,7 +554,7 @@ void psxcd_device::cdcmd_mute()
void psxcd_device::cdcmd_demute()
{
verboselog(*this, 1, "psxcd: demute\n");
LOGMASKED(LOG_CMD, "%s: demute\n", machine().describe_context());
m_mute = false;
send_result(INTR_COMPLETE);
@ -570,7 +562,7 @@ void psxcd_device::cdcmd_demute()
void psxcd_device::cdcmd_setfilter()
{
verboselog(*this, 1, "psxcd: setfilter %08x,%08x\n",cmdbuf[0],cmdbuf[1]);
LOGMASKED(LOG_CMD, "%s: setfilter %08x,%08x\n", machine().describe_context(), cmdbuf[0], cmdbuf[1]);
filter_file=cmdbuf[0];
filter_channel=cmdbuf[1];
@ -580,7 +572,7 @@ void psxcd_device::cdcmd_setfilter()
void psxcd_device::cdcmd_setmode()
{
verboselog(*this, 1, "psxcd: setmode %08x\n",cmdbuf[0]);
LOGMASKED(LOG_CMD, "%s: setmode %08x\n", machine().describe_context(), cmdbuf[0]);
mode=cmdbuf[0];
send_result(INTR_COMPLETE);
@ -598,7 +590,7 @@ void psxcd_device::cdcmd_getparam()
0
};
verboselog(*this, 1, "psxcd: getparam [%02x %02x %02x %02x %02x %02x]\n",
LOGMASKED(LOG_CMD, "%s: getparam [%02x %02x %02x %02x %02x %02x]\n", machine().describe_context(),
data[0], data[1], data[2], data[3], data[4], data[5]);
send_result(INTR_COMPLETE, data, 6);
@ -625,7 +617,7 @@ uint32_t psxcd_device::sub_loc(CDPOS src1, CDPOS src2)
void psxcd_device::cdcmd_getlocl()
{
verboselog(*this, 1, "psxcd: getlocl [%02x %02x %02x %02x %02x %02x %02x %02x]\n",
LOGMASKED(LOG_CMD, "%s: getlocl [%02x %02x %02x %02x %02x %02x %02x %02x]\n", machine().describe_context(),
lastsechdr[0], lastsechdr[1], lastsechdr[2], lastsechdr[3],
lastsechdr[4], lastsechdr[5], lastsechdr[6], lastsechdr[7]);
@ -651,7 +643,7 @@ void psxcd_device::cdcmd_getlocp()
decimal_to_bcd(loc.b[F]) // aframe
};
verboselog(*this, 1, "psxcd: getlocp [%02x %02x %02x %02x %02x %02x %02x %02x]\n",
LOGMASKED(LOG_CMD, "%s: getlocp [%02x %02x %02x %02x %02x %02x %02x %02x]\n", machine().describe_context(),
data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7]);
send_result(INTR_COMPLETE, data, 8);
@ -659,7 +651,7 @@ void psxcd_device::cdcmd_getlocp()
void psxcd_device::cdcmd_gettn()
{
verboselog(*this, 1, "psxcd: gettn\n");
LOGMASKED(LOG_CMD, "%s: gettn\n", machine().describe_context());
if (!open)
@ -698,7 +690,7 @@ void psxcd_device::cdcmd_gettd()
decimal_to_bcd(trkstart.b[S])
};
verboselog(*this, 1, "psxcd: gettd %02x [%02x %02x %02x]\n", cmdbuf[0], data[0], data[1], data[2]);
LOGMASKED(LOG_CMD, "%s: gettd %02x [%02x %02x %02x]\n", machine().describe_context(), cmdbuf[0], data[0], data[1], data[2]);
send_result(INTR_ACKNOWLEDGE, data, 3);
}
@ -710,7 +702,7 @@ void psxcd_device::cdcmd_gettd()
void psxcd_device::cdcmd_seekl()
{
verboselog(*this, 1, "psxcd: seekl [%02d:%02d:%02d]\n", loc.b[M], loc.b[S], loc.b[F]);
LOGMASKED(LOG_CMD, "%s: seekl [%02d:%02d:%02d]\n", machine().describe_context(), loc.b[M], loc.b[S], loc.b[F]);
curpos.w = loc.w;
@ -719,7 +711,7 @@ void psxcd_device::cdcmd_seekl()
void psxcd_device::cdcmd_seekp()
{
verboselog(*this, 1, "psxcd: seekp\n");
LOGMASKED(LOG_CMD, "%s: seekp\n", machine().describe_context());
curpos.w = loc.w;
@ -728,7 +720,7 @@ void psxcd_device::cdcmd_seekp()
void psxcd_device::cdcmd_test()
{
verboselog(*this, 1, "psxcd: test %02x\n", cmdbuf[0]);
LOGMASKED(LOG_CMD, "%s: test %02x\n", machine().describe_context(), cmdbuf[0]);
switch (cmdbuf[0])
{
@ -747,7 +739,7 @@ void psxcd_device::cdcmd_test()
}
default:
verboselog(*this, 0, "psxcd: unimplemented test cmd %02x\n", cmdbuf[0]);
logerror("%s: unimplemented test cmd %02x\n", machine().describe_context(), cmdbuf[0]);
cmd_complete(prepare_result(INTR_DISKERROR, nullptr, 0, 0x10));
break;
}
@ -755,7 +747,7 @@ void psxcd_device::cdcmd_test()
void psxcd_device::cdcmd_id()
{
verboselog(*this, 1, "psxcd: id\n");
LOGMASKED(LOG_CMD, "%s: id\n", machine().describe_context());
if (!open)
{
@ -791,7 +783,7 @@ void psxcd_device::cdcmd_reads()
{
if (!open)
{
verboselog(*this, 1, "psxcd: reads\n");
LOGMASKED(LOG_CMD, "%s: reads\n", machine().describe_context());
curpos.w=loc.w;
@ -806,12 +798,12 @@ void psxcd_device::cdcmd_reads()
void psxcd_device::cdcmd_reset()
{
verboselog(*this, 1, "psxcd: reset\n");
LOGMASKED(LOG_CMD, "%s: reset\n", machine().describe_context());
}
void psxcd_device::cdcmd_readtoc()
{
verboselog(*this, 1, "psxcd: readtoc\n");
LOGMASKED(LOG_CMD, "%s: readtoc\n", machine().describe_context());
send_result(INTR_COMPLETE);
send_result(INTR_ACKNOWLEDGE, nullptr, 0, default_irq_delay * 3); // ?
@ -819,7 +811,7 @@ void psxcd_device::cdcmd_readtoc()
void psxcd_device::cdcmd_unknown12()
{
verboselog(*this, 1, "psxcd: unknown 12\n");
LOGMASKED(LOG_CMD, "%s: unknown 12\n", machine().describe_context());
// set session? readt?
if (cmdbuf[0] == 1)
send_result(INTR_COMPLETE);
@ -844,7 +836,7 @@ void psxcd_device::cdcmd_illegal1d()
void psxcd_device::illegalcmd(uint8_t cmd)
{
verboselog(*this, 0, "psxcd: unimplemented cd command %02x\n", cmd);
logerror("%s: unimplemented cd command %02x\n", machine().describe_context(), cmd);
send_result(INTR_DISKERROR, nullptr, 0, 0x40);
}
@ -853,7 +845,7 @@ void psxcd_device::cmd_complete(command_result *res)
{
command_result *rf;
verboselog(*this, 1, "psxcd: irq [%d]\n", res->res);
LOGMASKED(LOG_CMD, "%s: irq [%d]\n", machine().describe_context(), res->res);
if (res_queue)
{
@ -926,7 +918,7 @@ void psxcd_device::send_result(uint8_t res, uint8_t *data, int sz, int delay, ui
void psxcd_device::start_dma(uint8_t *mainram, uint32_t size)
{
uint32_t sector_size;
verboselog(*this, 1, "psxcd: start dma %d bytes at %d\n", size, m_transcurr);
LOGMASKED(LOG_CMD, "%s: start dma %d bytes at %d\n", machine().describe_context(), size, m_transcurr);
if (!m_dmaload)
return;
@ -972,7 +964,7 @@ void psxcd_device::read_sector()
subheader *sub = (subheader *)(buf + 16);
memcpy(lastsechdr, buf + 12, 8);
verboselog(*this, 2, "psxcd: subheader file=%02x chan=%02x submode=%02x coding=%02x [%02x%02x%02x%02x]\n",
LOGMASKED(LOG_MISC, "%s: subheader file=%02x chan=%02x submode=%02x coding=%02x [%02x%02x%02x%02x]\n", machine().describe_context(),
sub->file, sub->channel, sub->submode, sub->coding, buf[0xc], buf[0xd], buf[0xe], buf[0xf]);
if ((mode & MODE_ADPCM) && (sub->submode & SUBMODE_AUDIO))
@ -1025,7 +1017,7 @@ void psxcd_device::read_sector()
}
else
{
verboselog(*this, 1, "psxcd: autopause xa\n");
LOGMASKED(LOG_CMD, "%s: autopause xa\n", machine().describe_context());
cmd_complete(prepare_result(INTR_DATAEND));
stop_read();
@ -1077,7 +1069,7 @@ void psxcd_device::play_sector()
{
if (sector >= autopause_sector)
{
verboselog(*this, 1, "psxcd: autopause cdda\n");
LOGMASKED(LOG_CMD, "%s: autopause cdda\n", machine().describe_context());
stop_read();
cmd_complete(prepare_result(INTR_DATAEND));
@ -1157,7 +1149,7 @@ void psxcd_device::start_play()
uint8_t track = m_cdrom_handle->get_track(msf_to_lba_ps(curpos.w) + 150);
if (m_cdrom_handle->get_track_type(track) != cdrom_file::CD_TRACK_AUDIO)
verboselog(*this, 0, "psxcd: playing data track\n");
logerror("%s: playing data track\n", machine().describe_context());
status |= STATUS_PLAYING;
@ -1182,7 +1174,7 @@ void psxcd_device::start_play()
void psxcd_device::stop_read()
{
if (status & (STATUS_READING | STATUS_PLAYING))
verboselog(*this, 1, "psxcd: stop read\n");
LOGMASKED(LOG_CMD, "%s: stop read\n", machine().describe_context());
status &= ~(STATUS_READING | STATUS_PLAYING);
@ -1203,7 +1195,7 @@ TIMER_CALLBACK_MEMBER(psxcd_device::handle_event)
int tid = param >> 2;
if (!m_timerinuse[tid])
{
verboselog(*this, 0, "psxcd: timer fired for free event\n");
logerror("%s: timer fired for free event\n", machine().describe_context());
return;
}
@ -1211,7 +1203,7 @@ TIMER_CALLBACK_MEMBER(psxcd_device::handle_event)
switch (param & 3)
{
case EVENT_CMD_COMPLETE:
verboselog(*this, 1, "psxcd: event cmd complete\n");
LOGMASKED(LOG_CMD, "%s: event cmd complete\n", machine().describe_context());
cmd_complete(m_results[tid]);
break;