From cf83a2de297cbc31672d1e236d0990b8f8c0dd2e Mon Sep 17 00:00:00 2001 From: Joakim Larsson Edstrom Date: Fri, 10 Feb 2017 14:41:36 +0100 Subject: [PATCH] fccpu30: updated to new LOG system --- src/devices/machine/fga002.cpp | 513 +++++++++++++++++---------------- src/mame/drivers/fccpu30.cpp | 34 +-- 2 files changed, 272 insertions(+), 275 deletions(-) diff --git a/src/devices/machine/fga002.cpp b/src/devices/machine/fga002.cpp index 919f1828d30..5b885cb8d81 100644 --- a/src/devices/machine/fga002.cpp +++ b/src/devices/machine/fga002.cpp @@ -31,27 +31,30 @@ * external hardware. It is expressly forbidden to change register bits, except those defined for the user. * */ -#define VERBOSE 0 +//#define LOG_GENERAL (1U << 0) +#define LOG_SETUP (1U << 1) +#define LOG_READ (1U << 2) +#define LOG_INT (1U << 3) +#define LOG_VEC (1U << 4) +#define LOG_LVL (1U << 5) +#define LOG_IACK (1U << 6) -#define LOGPRINT(x) { do { if (VERBOSE) logerror x; } while (0); } -#define LOG(x) {} LOGPRINT(x) -#define LOGR(x) {} LOGPRINT(x) -#define LOGSETUP(x) {} LOGPRINT(x) -#define LOGINT(x) {} LOGPRINT(x) -#define LOGVEC(x) {} LOGPRINT(x) -#define LOGLVL(x) {} LOGPRINT(x) -#define LOGIACK(x) {} LOGPRINT(x) +//#define VERBOSE (LOG_GENERAL | LOG_SETUP) +//#define LOG_OUTPUT_FUNC printf -#if VERBOSE == 2 -#define logerror printf -#endif +#include "logmacro.h" + +#define LOGSETUP(...) LOGMASKED(LOG_SETUP, __VA_ARGS__) +#define LOGR(...) LOGMASKED(LOG_READ, __VA_ARGS__) +#define LOGINT(...) LOGMASKED(LOG_INT, __VA_ARGS__) +#define LOGVEC(...) LOGMASKED(LOG_VEC, __VA_ARGS__) +#define LOGLVL(...) LOGMASKED(LOG_LVL, __VA_ARGS__) +#define LOGIACK(...) LOGMASKED(LOG_IACK, __VA_ARGS__) #ifdef _MSC_VER #define FUNCNAME __func__ -#define LLFORMAT "%I64%" #else #define FUNCNAME __PRETTY_FUNCTION__ -#define LLFORMAT "%lld" #endif #include "fga002.h" @@ -98,7 +101,7 @@ fga002_device::fga002_device(const machine_config &mconfig, const char *tag, dev void fga002_device::device_start() { - LOG(("%s\n", FUNCNAME)); + LOG("%s\n", FUNCNAME); // resolve callbacks m_out_int_cb.resolve_safe(); @@ -118,7 +121,7 @@ void fga002_device::device_start() void fga002_device::device_reset() { - LOG(("%s\n", FUNCNAME)); + LOG("%s\n", FUNCNAME); /* Reset values for the FGA-002 */ memset(&m_fga002[0], 0, sizeof(m_fga002)); m_fga002[FGA_RSVMECALL] = 0x80; @@ -170,7 +173,7 @@ void fga002_device::device_timer (emu_timer &timer, device_timer_id id, int32_t } break; default: - LOG(("Unhandled Timer ID %d\n", id)); + LOG("Unhandled Timer ID %d\n", id); break; } } @@ -229,7 +232,7 @@ void fga002_device::trigger_interrupt(uint8_t data) { uint8_t icr = 0; - LOGINT(("%s(%02x)\n", FUNCNAME, data)); + LOGINT("%s(%02x)\n", FUNCNAME, data); /* The Interrupt Control Register (ICR*) bit, must be set for the correspondning channel */ // TODO: Support programmable assert level for interrupt source @@ -243,15 +246,15 @@ void fga002_device::trigger_interrupt(uint8_t data) case INT_LOCAL5: icr = m_fga002[FGA_ICRLOCAL5]; m_fga002[FGA_ISLOCAL5] = 0x00; break; case INT_LOCAL6: icr = m_fga002[FGA_ICRLOCAL6]; m_fga002[FGA_ISLOCAL6] = 0x00; break; case INT_LOCAL7: icr = m_fga002[FGA_ICRLOCAL7]; m_fga002[FGA_ISLOCAL7] = 0x00; break; - default: LOGINT((" - interrupt source %d - not supported", data)); return; + default: LOGINT(" - interrupt source %d - not supported", data); return; } if ((icr & REG_ICR_ENABLE) == 0 || (icr & REG_ICR_LVL_MSK) == 0) { - LOGINT((" - The Interrupt Control Register bit for channel %02x is not set or level is 0, blocking attempt to interrupt\n", data)); + LOGINT(" - The Interrupt Control Register bit for channel %02x is not set or level is 0, blocking attempt to interrupt\n", data); return; } m_irq_level = icr & REG_ICR_LVL_MSK; - LOGINT((" - Interrupt Level %d, caused by ICR %02x with vector %02x\n", m_irq_level, icr, data )); + LOGINT(" - Interrupt Level %d, caused by ICR %02x with vector %02x\n", m_irq_level, icr, data ); // trigger intrrupt to CPU through board driver callback. m_out_int_cb(ASSERT_LINE); @@ -263,30 +266,30 @@ IRQ_CALLBACK_MEMBER(fga002_device::iack) int vec_found = 0; int level; - LOGIACK(("%s %s()\n", tag(), FUNCNAME)); + LOGIACK("%s %s()\n", tag(), FUNCNAME); for (level = 7; level > 0; level--) { - LOGLVL(("\n LEVEL %d\n", level)); + LOGLVL("\n LEVEL %d\n", level); // Find first interrupt on this level to acknowledge - LOGLVL(("Vec Status[val] Control[val]\n")); + LOGLVL("Vec Status[val] Control[val]\n"); for (auto & elem : m_irq_sources) { - LOGLVL((" %02x %02x[%02x] %02x[%02x]\n", + LOGLVL(" %02x %02x[%02x] %02x[%02x]\n", elem.vector, elem.status, m_fga002[elem.status], - elem.control, m_fga002[elem.control])); + elem.control, m_fga002[elem.control]); // Right level? - LOGLVL(("Level %02x == ICR %02x is %s\n", level, m_fga002[elem.control] & REG_ICR_LVL_MSK, ((m_fga002[elem.control] & REG_ICR_LVL_MSK) == level) ? "true!" : "false..")); + LOGLVL("Level %02x == ICR %02x is %s\n", level, m_fga002[elem.control] & REG_ICR_LVL_MSK, ((m_fga002[elem.control] & REG_ICR_LVL_MSK) == level) ? "true!" : "false.."); if ((m_fga002[elem.control] & REG_ICR_LVL_MSK) == level) { // Pending interrupt? - LOGLVL(("ISx %02x interrupt is %s\n", m_fga002[elem.status], (m_fga002[elem.status] & REG_ISLOCAL_IRQ) ? "cleared though.." : "pending!")); + LOGLVL("ISx %02x interrupt is %s\n", m_fga002[elem.status], (m_fga002[elem.status] & REG_ISLOCAL_IRQ) ? "cleared though.." : "pending!"); if ((m_fga002[elem.status] & REG_ISLOCAL_IRQ) == 0) { if (vec_found == 0) { vec = elem.vector; // Assume internal vector - LOGVEC((" - org vec:%02x ", vec)); + LOGVEC(" - org vec:%02x ", vec); switch (vec) { // Assuming that the attached device is returning -1 (INT_ACK_AUTOVECTOR) if no vector is provided, then we keep internal vector @@ -298,15 +301,15 @@ IRQ_CALLBACK_MEMBER(fga002_device::iack) // All other devices uses the vector provided by the FGA. default: break; /* Since we need the vector for the switch statement the default job is already done */ } - LOGVEC(("dev:%02x ", vec)); + LOGVEC("dev:%02x ", vec); if (vec == INT_ACK_AUTOVECTOR) vec = INT_EMPTY; - LOGVEC(("avec:%02x ", vec)); + LOGVEC("avec:%02x ", vec); // Add vector page bits and return vector vec = (vec & 0x3f) | ((m_fga002[FGA_CTL3] & REG_CTL3_VECTORBITS7_6) << 4); - LOGVEC(("pvec:%02x\n", vec)); + LOGVEC("pvec:%02x\n", vec); - LOGVEC((" - Interrupt Acknowledge Vector %02x\n", vec)); + LOGVEC(" - Interrupt Acknowledge Vector %02x\n", vec); /* TODO: - Support auto clear of interrupt source and level triggered */ @@ -314,7 +317,7 @@ IRQ_CALLBACK_MEMBER(fga002_device::iack) } else{ m_irq_level = level; - LOGIACK((" - Interrupt Acknowledge Vector %02x, next interrupt has level %02x\n", vec, m_irq_level)); + LOGIACK(" - Interrupt Acknowledge Vector %02x, next interrupt has level %02x\n", vec, m_irq_level); m_out_int_cb(CLEAR_LINE); return vec; } @@ -322,14 +325,14 @@ IRQ_CALLBACK_MEMBER(fga002_device::iack) } } } - LOGIACK((" - Interrupt Acknowledge Vector %02x, next interrupt is off %02x\n", vec, m_irq_level)); + LOGIACK(" - Interrupt Acknowledge Vector %02x, next interrupt is off %02x\n", vec, m_irq_level); m_out_int_cb(CLEAR_LINE); return vec; } int fga002_device::get_irq_level() { - LOGINT(("%s %s() - %02x\n", tag(), FUNCNAME, m_irq_level)); + LOGINT("%s %s() - %02x\n", tag(), FUNCNAME, m_irq_level); return m_irq_level; } @@ -356,13 +359,13 @@ int fga002_device::get_irq_level() */ void fga002_device::do_fga002reg_tim0preload_w(uint8_t data) { - LOG(("%s(%02x)\n", FUNCNAME, data)); + LOG("%s(%02x)\n", FUNCNAME, data); m_fga002[FGA_TIM0PRELOAD] = data; } uint8_t fga002_device::do_fga002reg_tim0preload_r() { - LOG(("%s() %02x\n", FUNCNAME, m_fga002[FGA_TIM0PRELOAD])); + LOG("%s() %02x\n", FUNCNAME, m_fga002[FGA_TIM0PRELOAD]); return m_fga002[FGA_TIM0PRELOAD]; } @@ -408,7 +411,7 @@ uint8_t fga002_device::do_fga002reg_tim0preload_r() void fga002_device::do_fga002reg_tim0ctl_w(uint8_t data) { - LOG(("%s(%02x)\n", FUNCNAME, data)); + LOG("%s(%02x)\n", FUNCNAME, data); if ((data & REG_TIM0CTL_START_STOP) != (m_fga002[FGA_TIM0CTL] & REG_TIM0CTL_START_STOP)) { if ((data & REG_TIM0CTL_START_STOP) == 0) @@ -443,7 +446,7 @@ void fga002_device::do_fga002reg_tim0ctl_w(uint8_t data) uint8_t fga002_device::do_fga002reg_tim0ctl_r() { - LOG(("%s() %02x\n", FUNCNAME, m_fga002[FGA_TIM0CTL])); + LOG("%s() %02x\n", FUNCNAME, m_fga002[FGA_TIM0CTL]); return m_fga002[FGA_TIM0CTL]; } @@ -456,13 +459,13 @@ uint8_t fga002_device::do_fga002reg_tim0ctl_r() */ void fga002_device::do_fga002reg_tim0count_w(uint8_t data) { - LOG(("%s(%02x)\n", FUNCNAME, data)); + LOG("%s(%02x)\n", FUNCNAME, data); m_tim0count = m_fga002[FGA_TIM0PRELOAD]; } uint8_t fga002_device::do_fga002reg_tim0count_r() { - LOG(("%s() %02x\n", FUNCNAME, m_tim0count)); + LOG("%s() %02x\n", FUNCNAME, m_tim0count); return m_tim0count; } @@ -474,13 +477,13 @@ uint8_t fga002_device::do_fga002reg_tim0count_r() */ void fga002_device::do_fga002reg_icrtim0_w(uint8_t data) { - LOGINT(("%s(%02x)\n", FUNCNAME, data)); + LOGINT("%s(%02x)\n", FUNCNAME, data); m_fga002[FGA_ICRTIM0] = data; } uint8_t fga002_device::do_fga002reg_icrtim0_r() { - LOGINT(("%s() %02x\n", FUNCNAME, m_fga002[FGA_ICRTIM0])); + LOGINT("%s() %02x\n", FUNCNAME, m_fga002[FGA_ICRTIM0]); return m_fga002[FGA_ICRTIM0]; } @@ -492,13 +495,13 @@ uint8_t fga002_device::do_fga002reg_icrtim0_r() */ void fga002_device::do_fga002reg_istim0_w(uint8_t data) { - LOGINT(("%s(%02x)\n", FUNCNAME, data)); + LOGINT("%s(%02x)\n", FUNCNAME, data); m_fga002[FGA_ISTIM0] &= ~REG_ISTIM0_TIM_INT; // Clear timer interrupt status } uint8_t fga002_device::do_fga002reg_istim0_r() { - LOGINT(("%s() %02x\n", FUNCNAME, m_fga002[FGA_ISTIM0])); + LOGINT("%s() %02x\n", FUNCNAME, m_fga002[FGA_ISTIM0]); return m_fga002[FGA_ISTIM0]; } @@ -513,85 +516,85 @@ void fga002_device::do_fga002reg_localiack_w(uint8_t data) #if VERBOSE const char *liack[] = {"internal", "no", "external 1us", "external 500ns"}; - LOGINT(("%s(%02x)\n", FUNCNAME, data)); - LOGINT(("- LOCAL7: %s vector\n", liack[(data >> 6) & 0x03])); - LOGINT(("- LOCAL6: %s vector\n", liack[(data >> 4) & 0x03])); - LOGINT(("- LOCAL5: %s vector\n", liack[(data >> 2) & 0x03])); - LOGINT(("- LOCAL4: %s vector\n", liack[(data >> 0) & 0x03])); + LOGINT("%s(%02x)\n", FUNCNAME, data); + LOGINT("- LOCAL7: %s vector\n", liack[(data >> 6) & 0x03]); + LOGINT("- LOCAL6: %s vector\n", liack[(data >> 4) & 0x03]); + LOGINT("- LOCAL5: %s vector\n", liack[(data >> 2) & 0x03]); + LOGINT("- LOCAL4: %s vector\n", liack[(data >> 0) & 0x03]); #endif } uint8_t fga002_device::do_fga002reg_localiack_r() { uint8_t ret = m_fga002[FGA_LOCALIACK]; - LOGINT(("%s() <- %02x\n", FUNCNAME, ret)); + LOGINT("%s() <- %02x\n", FUNCNAME, ret); return ret; } uint8_t fga002_device::do_fga002reg_ctl3_r() { uint8_t ret = m_fga002[FGA_CTL3]; - LOGINT(("%s() <- %02x\n", FUNCNAME, ret)); + LOGINT("%s() <- %02x\n", FUNCNAME, ret); return ret; } void fga002_device::do_fga002reg_ctl3_w(uint8_t data) { m_fga002[FGA_CTL3] = data; - LOGINT(("%s(%02x)\n", FUNCNAME, data)); + LOGINT("%s(%02x)\n", FUNCNAME, data); } // Local Interrupt control register methods -uint8_t fga002_device::do_fga002reg_icrlocal0_r(){ uint8_t ret = m_fga002[FGA_ICRLOCAL0]; LOGINT(("%s() <- %02x\n", FUNCNAME, ret)); return ret; } -uint8_t fga002_device::do_fga002reg_icrlocal1_r(){ uint8_t ret = m_fga002[FGA_ICRLOCAL1]; LOGINT(("%s() <- %02x\n", FUNCNAME, ret)); return ret; } -uint8_t fga002_device::do_fga002reg_icrlocal2_r(){ uint8_t ret = m_fga002[FGA_ICRLOCAL2]; LOGINT(("%s() <- %02x\n", FUNCNAME, ret)); return ret; } -uint8_t fga002_device::do_fga002reg_icrlocal3_r(){ uint8_t ret = m_fga002[FGA_ICRLOCAL3]; LOGINT(("%s() <- %02x\n", FUNCNAME, ret)); return ret; } -uint8_t fga002_device::do_fga002reg_icrlocal4_r(){ uint8_t ret = m_fga002[FGA_ICRLOCAL4]; LOGINT(("%s() <- %02x\n", FUNCNAME, ret)); return ret; } -uint8_t fga002_device::do_fga002reg_icrlocal5_r(){ uint8_t ret = m_fga002[FGA_ICRLOCAL5]; LOGINT(("%s() <- %02x\n", FUNCNAME, ret)); return ret; } -uint8_t fga002_device::do_fga002reg_icrlocal6_r(){ uint8_t ret = m_fga002[FGA_ICRLOCAL6]; LOGINT(("%s() <- %02x\n", FUNCNAME, ret)); return ret; } -uint8_t fga002_device::do_fga002reg_icrlocal7_r(){ uint8_t ret = m_fga002[FGA_ICRLOCAL7]; LOGINT(("%s() <- %02x\n", FUNCNAME, ret)); return ret; } +uint8_t fga002_device::do_fga002reg_icrlocal0_r(){ uint8_t ret = m_fga002[FGA_ICRLOCAL0]; LOGINT("%s() <- %02x\n", FUNCNAME, ret); return ret; } +uint8_t fga002_device::do_fga002reg_icrlocal1_r(){ uint8_t ret = m_fga002[FGA_ICRLOCAL1]; LOGINT("%s() <- %02x\n", FUNCNAME, ret); return ret; } +uint8_t fga002_device::do_fga002reg_icrlocal2_r(){ uint8_t ret = m_fga002[FGA_ICRLOCAL2]; LOGINT("%s() <- %02x\n", FUNCNAME, ret); return ret; } +uint8_t fga002_device::do_fga002reg_icrlocal3_r(){ uint8_t ret = m_fga002[FGA_ICRLOCAL3]; LOGINT("%s() <- %02x\n", FUNCNAME, ret); return ret; } +uint8_t fga002_device::do_fga002reg_icrlocal4_r(){ uint8_t ret = m_fga002[FGA_ICRLOCAL4]; LOGINT("%s() <- %02x\n", FUNCNAME, ret); return ret; } +uint8_t fga002_device::do_fga002reg_icrlocal5_r(){ uint8_t ret = m_fga002[FGA_ICRLOCAL5]; LOGINT("%s() <- %02x\n", FUNCNAME, ret); return ret; } +uint8_t fga002_device::do_fga002reg_icrlocal6_r(){ uint8_t ret = m_fga002[FGA_ICRLOCAL6]; LOGINT("%s() <- %02x\n", FUNCNAME, ret); return ret; } +uint8_t fga002_device::do_fga002reg_icrlocal7_r(){ uint8_t ret = m_fga002[FGA_ICRLOCAL7]; LOGINT("%s() <- %02x\n", FUNCNAME, ret); return ret; } -void fga002_device::do_fga002reg_icrlocal0_w(uint8_t data){ m_fga002[FGA_ICRLOCAL0] = data; LOGINT(("%s(%02x)\n", FUNCNAME, data)); } -void fga002_device::do_fga002reg_icrlocal1_w(uint8_t data){ m_fga002[FGA_ICRLOCAL1] = data; LOGINT(("%s(%02x)\n", FUNCNAME, data)); } -void fga002_device::do_fga002reg_icrlocal2_w(uint8_t data){ m_fga002[FGA_ICRLOCAL2] = data; LOGINT(("%s(%02x)\n", FUNCNAME, data)); } -void fga002_device::do_fga002reg_icrlocal3_w(uint8_t data){ m_fga002[FGA_ICRLOCAL3] = data; LOGINT(("%s(%02x)\n", FUNCNAME, data)); } -void fga002_device::do_fga002reg_icrlocal4_w(uint8_t data){ m_fga002[FGA_ICRLOCAL4] = data; LOGINT(("%s(%02x)\n", FUNCNAME, data)); } -void fga002_device::do_fga002reg_icrlocal5_w(uint8_t data){ m_fga002[FGA_ICRLOCAL5] = data; LOGINT(("%s(%02x)\n", FUNCNAME, data)); } -void fga002_device::do_fga002reg_icrlocal6_w(uint8_t data){ m_fga002[FGA_ICRLOCAL6] = data; LOGINT(("%s(%02x)\n", FUNCNAME, data)); } -void fga002_device::do_fga002reg_icrlocal7_w(uint8_t data){ m_fga002[FGA_ICRLOCAL7] = data; LOGINT(("%s(%02x)\n", FUNCNAME, data)); } +void fga002_device::do_fga002reg_icrlocal0_w(uint8_t data){ m_fga002[FGA_ICRLOCAL0] = data; LOGINT("%s(%02x)\n", FUNCNAME, data); } +void fga002_device::do_fga002reg_icrlocal1_w(uint8_t data){ m_fga002[FGA_ICRLOCAL1] = data; LOGINT("%s(%02x)\n", FUNCNAME, data); } +void fga002_device::do_fga002reg_icrlocal2_w(uint8_t data){ m_fga002[FGA_ICRLOCAL2] = data; LOGINT("%s(%02x)\n", FUNCNAME, data); } +void fga002_device::do_fga002reg_icrlocal3_w(uint8_t data){ m_fga002[FGA_ICRLOCAL3] = data; LOGINT("%s(%02x)\n", FUNCNAME, data); } +void fga002_device::do_fga002reg_icrlocal4_w(uint8_t data){ m_fga002[FGA_ICRLOCAL4] = data; LOGINT("%s(%02x)\n", FUNCNAME, data); } +void fga002_device::do_fga002reg_icrlocal5_w(uint8_t data){ m_fga002[FGA_ICRLOCAL5] = data; LOGINT("%s(%02x)\n", FUNCNAME, data); } +void fga002_device::do_fga002reg_icrlocal6_w(uint8_t data){ m_fga002[FGA_ICRLOCAL6] = data; LOGINT("%s(%02x)\n", FUNCNAME, data); } +void fga002_device::do_fga002reg_icrlocal7_w(uint8_t data){ m_fga002[FGA_ICRLOCAL7] = data; LOGINT("%s(%02x)\n", FUNCNAME, data); } // Local Interrupt Status Register methods -uint8_t fga002_device::do_fga002reg_islocal0_r(){ uint8_t ret = m_fga002[FGA_ISLOCAL0]; LOGINT(("%s() <- %02x\n", FUNCNAME, ret)); return ret; } -uint8_t fga002_device::do_fga002reg_islocal1_r(){ uint8_t ret = m_fga002[FGA_ISLOCAL1]; LOGINT(("%s() <- %02x\n", FUNCNAME, ret)); return ret; } -uint8_t fga002_device::do_fga002reg_islocal2_r(){ uint8_t ret = m_fga002[FGA_ISLOCAL2]; LOGINT(("%s() <- %02x\n", FUNCNAME, ret)); return ret; } -uint8_t fga002_device::do_fga002reg_islocal3_r(){ uint8_t ret = m_fga002[FGA_ISLOCAL3]; LOGINT(("%s() <- %02x\n", FUNCNAME, ret)); return ret; } -uint8_t fga002_device::do_fga002reg_islocal4_r(){ uint8_t ret = m_fga002[FGA_ISLOCAL4]; LOGINT(("%s() <- %02x\n", FUNCNAME, ret)); return ret; } -uint8_t fga002_device::do_fga002reg_islocal5_r(){ uint8_t ret = m_fga002[FGA_ISLOCAL5]; LOGINT(("%s() <- %02x\n", FUNCNAME, ret)); return ret; } -uint8_t fga002_device::do_fga002reg_islocal6_r(){ uint8_t ret = m_fga002[FGA_ISLOCAL6]; LOGINT(("%s() <- %02x\n", FUNCNAME, ret)); return ret; } -uint8_t fga002_device::do_fga002reg_islocal7_r(){ uint8_t ret = m_fga002[FGA_ISLOCAL7]; LOGINT(("%s() <- %02x\n", FUNCNAME, ret)); return ret; } +uint8_t fga002_device::do_fga002reg_islocal0_r(){ uint8_t ret = m_fga002[FGA_ISLOCAL0]; LOGINT("%s() <- %02x\n", FUNCNAME, ret); return ret; } +uint8_t fga002_device::do_fga002reg_islocal1_r(){ uint8_t ret = m_fga002[FGA_ISLOCAL1]; LOGINT("%s() <- %02x\n", FUNCNAME, ret); return ret; } +uint8_t fga002_device::do_fga002reg_islocal2_r(){ uint8_t ret = m_fga002[FGA_ISLOCAL2]; LOGINT("%s() <- %02x\n", FUNCNAME, ret); return ret; } +uint8_t fga002_device::do_fga002reg_islocal3_r(){ uint8_t ret = m_fga002[FGA_ISLOCAL3]; LOGINT("%s() <- %02x\n", FUNCNAME, ret); return ret; } +uint8_t fga002_device::do_fga002reg_islocal4_r(){ uint8_t ret = m_fga002[FGA_ISLOCAL4]; LOGINT("%s() <- %02x\n", FUNCNAME, ret); return ret; } +uint8_t fga002_device::do_fga002reg_islocal5_r(){ uint8_t ret = m_fga002[FGA_ISLOCAL5]; LOGINT("%s() <- %02x\n", FUNCNAME, ret); return ret; } +uint8_t fga002_device::do_fga002reg_islocal6_r(){ uint8_t ret = m_fga002[FGA_ISLOCAL6]; LOGINT("%s() <- %02x\n", FUNCNAME, ret); return ret; } +uint8_t fga002_device::do_fga002reg_islocal7_r(){ uint8_t ret = m_fga002[FGA_ISLOCAL7]; LOGINT("%s() <- %02x\n", FUNCNAME, ret); return ret; } void fga002_device::islocal_w(int status, int vector, int control, int data) { m_fga002[status] = m_fga002[control] & REG_ICR_EDGE ? 0x80 : 0x00; - LOGINT(("%s(%02x)\n", FUNCNAME, m_fga002[status])); + LOGINT("%s(%02x)\n", FUNCNAME, m_fga002[status]); } // TODO: support level triggered interrupts, only edge triggered interrupts are supported atm -void fga002_device::do_fga002reg_islocal0_w(uint8_t data){ LOGINT(("%s\n", FUNCNAME)); islocal_w( FGA_ISLOCAL0, INT_LOCAL0, FGA_ICRLOCAL0, data ); } -void fga002_device::do_fga002reg_islocal1_w(uint8_t data){ LOGINT(("%s\n", FUNCNAME)); islocal_w( FGA_ISLOCAL1, INT_LOCAL1, FGA_ICRLOCAL1, data ); } -void fga002_device::do_fga002reg_islocal2_w(uint8_t data){ LOGINT(("%s\n", FUNCNAME)); islocal_w( FGA_ISLOCAL2, INT_LOCAL2, FGA_ICRLOCAL2, data ); } -void fga002_device::do_fga002reg_islocal3_w(uint8_t data){ LOGINT(("%s\n", FUNCNAME)); islocal_w( FGA_ISLOCAL3, INT_LOCAL3, FGA_ICRLOCAL3, data ); } -void fga002_device::do_fga002reg_islocal4_w(uint8_t data){ LOGINT(("%s\n", FUNCNAME)); islocal_w( FGA_ISLOCAL4, INT_LOCAL4, FGA_ICRLOCAL4, data ); m_liack4_cb(); } /* terminate device IRQ */ -void fga002_device::do_fga002reg_islocal5_w(uint8_t data){ LOGINT(("%s\n", FUNCNAME)); islocal_w( FGA_ISLOCAL5, INT_LOCAL5, FGA_ICRLOCAL5, data ); m_liack5_cb(); } -void fga002_device::do_fga002reg_islocal6_w(uint8_t data){ LOGINT(("%s\n", FUNCNAME)); islocal_w( FGA_ISLOCAL6, INT_LOCAL6, FGA_ICRLOCAL6, data ); m_liack6_cb(); } -void fga002_device::do_fga002reg_islocal7_w(uint8_t data){ LOGINT(("%s\n", FUNCNAME)); islocal_w( FGA_ISLOCAL6, INT_LOCAL7, FGA_ICRLOCAL7, data ); m_liack7_cb(); } +void fga002_device::do_fga002reg_islocal0_w(uint8_t data){ LOGINT("%s\n", FUNCNAME); islocal_w( FGA_ISLOCAL0, INT_LOCAL0, FGA_ICRLOCAL0, data ); } +void fga002_device::do_fga002reg_islocal1_w(uint8_t data){ LOGINT("%s\n", FUNCNAME); islocal_w( FGA_ISLOCAL1, INT_LOCAL1, FGA_ICRLOCAL1, data ); } +void fga002_device::do_fga002reg_islocal2_w(uint8_t data){ LOGINT("%s\n", FUNCNAME); islocal_w( FGA_ISLOCAL2, INT_LOCAL2, FGA_ICRLOCAL2, data ); } +void fga002_device::do_fga002reg_islocal3_w(uint8_t data){ LOGINT("%s\n", FUNCNAME); islocal_w( FGA_ISLOCAL3, INT_LOCAL3, FGA_ICRLOCAL3, data ); } +void fga002_device::do_fga002reg_islocal4_w(uint8_t data){ LOGINT("%s\n", FUNCNAME); islocal_w( FGA_ISLOCAL4, INT_LOCAL4, FGA_ICRLOCAL4, data ); m_liack4_cb(); } /* terminate device IRQ */ +void fga002_device::do_fga002reg_islocal5_w(uint8_t data){ LOGINT("%s\n", FUNCNAME); islocal_w( FGA_ISLOCAL5, INT_LOCAL5, FGA_ICRLOCAL5, data ); m_liack5_cb(); } +void fga002_device::do_fga002reg_islocal6_w(uint8_t data){ LOGINT("%s\n", FUNCNAME); islocal_w( FGA_ISLOCAL6, INT_LOCAL6, FGA_ICRLOCAL6, data ); m_liack6_cb(); } +void fga002_device::do_fga002reg_islocal7_w(uint8_t data){ LOGINT("%s\n", FUNCNAME); islocal_w( FGA_ISLOCAL6, INT_LOCAL7, FGA_ICRLOCAL7, data ); m_liack7_cb(); } // Local IRQ callbacks // TODO: support level triggered interrupts, ICR bit 6, only edge triggered interrupts are supported atm // TODO: support programmable assertion levels ICR bit 5, a call to this function assumes assertion atm void fga002_device::lirq_w(int status, int vector, int control, int state) { - LOGINT((" - %s\n", state == ASSERT_LINE ? "Asserted" : "Cleared")); + LOGINT(" - %s\n", state == ASSERT_LINE ? "Asserted" : "Cleared"); if (state == ASSERT_LINE) { m_fga002[status] &= ~REG_ISLOCAL_IRQ; @@ -603,64 +606,64 @@ void fga002_device::lirq_w(int status, int vector, int control, int state) } } -WRITE_LINE_MEMBER (fga002_device::lirq0_w) { LOGINT(("%s\n", FUNCNAME)); lirq_w( FGA_ISLOCAL0, INT_LOCAL0, FGA_ICRLOCAL0, state ); } -WRITE_LINE_MEMBER (fga002_device::lirq1_w) { LOGINT(("%s\n", FUNCNAME)); lirq_w( FGA_ISLOCAL1, INT_LOCAL1, FGA_ICRLOCAL1, state ); } -WRITE_LINE_MEMBER (fga002_device::lirq2_w) { LOGINT(("%s\n", FUNCNAME)); lirq_w( FGA_ISLOCAL2, INT_LOCAL2, FGA_ICRLOCAL2, state ); } -WRITE_LINE_MEMBER (fga002_device::lirq3_w) { LOGINT(("%s\n", FUNCNAME)); lirq_w( FGA_ISLOCAL3, INT_LOCAL3, FGA_ICRLOCAL3, state ); } -WRITE_LINE_MEMBER (fga002_device::lirq4_w) { LOGINT(("%s\n", FUNCNAME)); lirq_w( FGA_ISLOCAL4, INT_LOCAL4, FGA_ICRLOCAL4, state ); } -WRITE_LINE_MEMBER (fga002_device::lirq5_w) { LOGINT(("%s\n", FUNCNAME)); lirq_w( FGA_ISLOCAL5, INT_LOCAL5, FGA_ICRLOCAL5, state ); } -WRITE_LINE_MEMBER (fga002_device::lirq6_w) { LOGINT(("%s\n", FUNCNAME)); lirq_w( FGA_ISLOCAL6, INT_LOCAL6, FGA_ICRLOCAL6, state ); } -WRITE_LINE_MEMBER (fga002_device::lirq7_w) { LOGINT(("%s\n", FUNCNAME)); lirq_w( FGA_ISLOCAL7, INT_LOCAL7, FGA_ICRLOCAL7, state ); } +WRITE_LINE_MEMBER (fga002_device::lirq0_w) { LOGINT("%s\n", FUNCNAME); lirq_w( FGA_ISLOCAL0, INT_LOCAL0, FGA_ICRLOCAL0, state ); } +WRITE_LINE_MEMBER (fga002_device::lirq1_w) { LOGINT("%s\n", FUNCNAME); lirq_w( FGA_ISLOCAL1, INT_LOCAL1, FGA_ICRLOCAL1, state ); } +WRITE_LINE_MEMBER (fga002_device::lirq2_w) { LOGINT("%s\n", FUNCNAME); lirq_w( FGA_ISLOCAL2, INT_LOCAL2, FGA_ICRLOCAL2, state ); } +WRITE_LINE_MEMBER (fga002_device::lirq3_w) { LOGINT("%s\n", FUNCNAME); lirq_w( FGA_ISLOCAL3, INT_LOCAL3, FGA_ICRLOCAL3, state ); } +WRITE_LINE_MEMBER (fga002_device::lirq4_w) { LOGINT("%s\n", FUNCNAME); lirq_w( FGA_ISLOCAL4, INT_LOCAL4, FGA_ICRLOCAL4, state ); } +WRITE_LINE_MEMBER (fga002_device::lirq5_w) { LOGINT("%s\n", FUNCNAME); lirq_w( FGA_ISLOCAL5, INT_LOCAL5, FGA_ICRLOCAL5, state ); } +WRITE_LINE_MEMBER (fga002_device::lirq6_w) { LOGINT("%s\n", FUNCNAME); lirq_w( FGA_ISLOCAL6, INT_LOCAL6, FGA_ICRLOCAL6, state ); } +WRITE_LINE_MEMBER (fga002_device::lirq7_w) { LOGINT("%s\n", FUNCNAME); lirq_w( FGA_ISLOCAL7, INT_LOCAL7, FGA_ICRLOCAL7, state ); } WRITE8_MEMBER (fga002_device::write){ - LOG(("%s[%04x] <- %02x - ", FUNCNAME, offset, data)); - LOGSETUP((" * %s Reg %04x <- %02x\n", tag(), offset, data)); + LOG("%s[%04x] <- %02x - ", FUNCNAME, offset, data); + LOGSETUP(" * %s Reg %04x <- %02x\n", tag(), offset, data); switch(offset) { - case FGA_SPECIALENA : LOG(("FGA_SPECIALENA - not implemented\n")); m_fga002[FGA_SPECIALENA] = data; break; - case FGA_RSVMECALL : LOG(("FGA_RSVMECALL - not implemented\n")); m_fga002[FGA_RSVMECALL] = data; break; - case FGA_RSKEYRES : LOG(("FGA_RSKEYRES - not implemented\n")); m_fga002[FGA_RSKEYRES] = data; break; - case FGA_RSCPUCALL : LOG(("FGA_RSCPUCALL - not implemented\n")); m_fga002[FGA_RSCPUCALL] = data; break; - case FGA_RSLOCSW : LOG(("FGA_RSLOCSW - not implemented\n")); m_fga002[FGA_RSLOCSW] = data; break; - case FGA_ICRMBOX0 : LOG(("FGA_ICRMBOX0 - not implemented\n")); m_fga002[FGA_ICRMBOX0] = data; break; - case FGA_ICRMBOX1 : LOG(("FGA_ICRMBOX1 - not implemented\n")); m_fga002[FGA_ICRMBOX1] = data; break; - case FGA_ICRMBOX2 : LOG(("FGA_ICRMBOX2 - not implemented\n")); m_fga002[FGA_ICRMBOX2] = data; break; - case FGA_ICRMBOX3 : LOG(("FGA_ICRMBOX3 - not implemented\n")); m_fga002[FGA_ICRMBOX3] = data; break; - case FGA_ICRMBOX4 : LOG(("FGA_ICRMBOX4 - not implemented\n")); m_fga002[FGA_ICRMBOX4] = data; break; - case FGA_ICRMBOX5 : LOG(("FGA_ICRMBOX5 - not implemented\n")); m_fga002[FGA_ICRMBOX5] = data; break; - case FGA_ICRMBOX6 : LOG(("FGA_ICRMBOX6 - not implemented\n")); m_fga002[FGA_ICRMBOX6] = data; break; - case FGA_ICRMBOX7 : LOG(("FGA_ICRMBOX7 - not implemented\n")); m_fga002[FGA_ICRMBOX7] = data; break; - case FGA_VMEPAGE : LOG(("FGA_VMEPAGE - not implemented\n")); m_fga002[FGA_VMEPAGE ] = data; break; - case FGA_ICRVME1 : LOG(("FGA_ICRVME1 - not implemented\n")); m_fga002[FGA_ICRVME1] = data; break; - case FGA_ICRVME2 : LOG(("FGA_ICRVME2 - not implemented\n")); m_fga002[FGA_ICRVME2] = data; break; - case FGA_ICRVME3 : LOG(("FGA_ICRVME3 - not implemented\n")); m_fga002[FGA_ICRVME3] = data; break; - case FGA_ICRVME4 : LOG(("FGA_ICRVME4 - not implemented\n")); m_fga002[FGA_ICRVME4] = data; break; - case FGA_ICRVME5 : LOG(("FGA_ICRVME5 - not implemented\n")); m_fga002[FGA_ICRVME5] = data; break; - case FGA_ICRVME6 : LOG(("FGA_ICRVME6 - not implemented\n")); m_fga002[FGA_ICRVME6] = data; break; - case FGA_ICRVME7 : LOG(("FGA_ICRVME7 - not implemented\n")); m_fga002[FGA_ICRVME7] = data; break; + case FGA_SPECIALENA : LOG("FGA_SPECIALENA - not implemented\n"); m_fga002[FGA_SPECIALENA] = data; break; + case FGA_RSVMECALL : LOG("FGA_RSVMECALL - not implemented\n"); m_fga002[FGA_RSVMECALL] = data; break; + case FGA_RSKEYRES : LOG("FGA_RSKEYRES - not implemented\n"); m_fga002[FGA_RSKEYRES] = data; break; + case FGA_RSCPUCALL : LOG("FGA_RSCPUCALL - not implemented\n"); m_fga002[FGA_RSCPUCALL] = data; break; + case FGA_RSLOCSW : LOG("FGA_RSLOCSW - not implemented\n"); m_fga002[FGA_RSLOCSW] = data; break; + case FGA_ICRMBOX0 : LOG("FGA_ICRMBOX0 - not implemented\n"); m_fga002[FGA_ICRMBOX0] = data; break; + case FGA_ICRMBOX1 : LOG("FGA_ICRMBOX1 - not implemented\n"); m_fga002[FGA_ICRMBOX1] = data; break; + case FGA_ICRMBOX2 : LOG("FGA_ICRMBOX2 - not implemented\n"); m_fga002[FGA_ICRMBOX2] = data; break; + case FGA_ICRMBOX3 : LOG("FGA_ICRMBOX3 - not implemented\n"); m_fga002[FGA_ICRMBOX3] = data; break; + case FGA_ICRMBOX4 : LOG("FGA_ICRMBOX4 - not implemented\n"); m_fga002[FGA_ICRMBOX4] = data; break; + case FGA_ICRMBOX5 : LOG("FGA_ICRMBOX5 - not implemented\n"); m_fga002[FGA_ICRMBOX5] = data; break; + case FGA_ICRMBOX6 : LOG("FGA_ICRMBOX6 - not implemented\n"); m_fga002[FGA_ICRMBOX6] = data; break; + case FGA_ICRMBOX7 : LOG("FGA_ICRMBOX7 - not implemented\n"); m_fga002[FGA_ICRMBOX7] = data; break; + case FGA_VMEPAGE : LOG("FGA_VMEPAGE - not implemented\n"); m_fga002[FGA_VMEPAGE ] = data; break; + case FGA_ICRVME1 : LOG("FGA_ICRVME1 - not implemented\n"); m_fga002[FGA_ICRVME1] = data; break; + case FGA_ICRVME2 : LOG("FGA_ICRVME2 - not implemented\n"); m_fga002[FGA_ICRVME2] = data; break; + case FGA_ICRVME3 : LOG("FGA_ICRVME3 - not implemented\n"); m_fga002[FGA_ICRVME3] = data; break; + case FGA_ICRVME4 : LOG("FGA_ICRVME4 - not implemented\n"); m_fga002[FGA_ICRVME4] = data; break; + case FGA_ICRVME5 : LOG("FGA_ICRVME5 - not implemented\n"); m_fga002[FGA_ICRVME5] = data; break; + case FGA_ICRVME6 : LOG("FGA_ICRVME6 - not implemented\n"); m_fga002[FGA_ICRVME6] = data; break; + case FGA_ICRVME7 : LOG("FGA_ICRVME7 - not implemented\n"); m_fga002[FGA_ICRVME7] = data; break; case FGA_ICRTIM0 : do_fga002reg_icrtim0_w(data); break; - case FGA_ICRDMANORM : LOG(("FGA_ICRDMANORM - not implemented\n")); m_fga002[FGA_ICRDMANORM] = data; break; - case FGA_ICRDMAERR : LOG(("FGA_ICRDMAERR - not implemented\n")); m_fga002[FGA_ICRDMAERR] = data; break; - case FGA_CTL1 : LOG(("FGA_CTL1 - not implemented\n")); m_fga002[FGA_CTL1] = data; break; - case FGA_CTL2 : LOG(("FGA_CTL2 - not implemented\n")); m_fga002[FGA_CTL2] = data; break; - case FGA_ICRFMB0REF : LOG(("FGA_ICRFMB0REF - not implemented\n")); m_fga002[FGA_ICRFMB0REF] = data; break; - case FGA_ICRFMB1REF : LOG(("FGA_ICRFMB1REF - not implemented\n")); m_fga002[FGA_ICRFMB1REF] = data; break; - case FGA_ICRFMB0MES : LOG(("FGA_ICRFMB0MES - not implemented\n")); m_fga002[FGA_ICRFMB0MES] = data; break; - case FGA_ICRFMB1MES : LOG(("FGA_ICRFMB1MES - not implemented\n")); m_fga002[FGA_ICRFMB1MES] = data; break; + case FGA_ICRDMANORM : LOG("FGA_ICRDMANORM - not implemented\n"); m_fga002[FGA_ICRDMANORM] = data; break; + case FGA_ICRDMAERR : LOG("FGA_ICRDMAERR - not implemented\n"); m_fga002[FGA_ICRDMAERR] = data; break; + case FGA_CTL1 : LOG("FGA_CTL1 - not implemented\n"); m_fga002[FGA_CTL1] = data; break; + case FGA_CTL2 : LOG("FGA_CTL2 - not implemented\n"); m_fga002[FGA_CTL2] = data; break; + case FGA_ICRFMB0REF : LOG("FGA_ICRFMB0REF - not implemented\n"); m_fga002[FGA_ICRFMB0REF] = data; break; + case FGA_ICRFMB1REF : LOG("FGA_ICRFMB1REF - not implemented\n"); m_fga002[FGA_ICRFMB1REF] = data; break; + case FGA_ICRFMB0MES : LOG("FGA_ICRFMB0MES - not implemented\n"); m_fga002[FGA_ICRFMB0MES] = data; break; + case FGA_ICRFMB1MES : LOG("FGA_ICRFMB1MES - not implemented\n"); m_fga002[FGA_ICRFMB1MES] = data; break; case FGA_CTL3 : do_fga002reg_ctl3_w(data); break; - case FGA_CTL4 : LOG(("FGA_CTL4 - not implemented\n")); m_fga002[FGA_CTL4] = data; break; - case FGA_ICRPARITY : LOG(("FGA_ICRPARITY - not implemented\n")); m_fga002[FGA_ICRPARITY] = data; break; - case FGA_AUXPINCTL : LOG(("FGA_AUXPINCTL - not implemented\n")); m_fga002[FGA_AUXPINCTL] = data; break; - case FGA_CTL5 : LOG(("FGA_CTL5 - not implemented\n")); m_fga002[FGA_CTL5] = data; break; - case FGA_AUXFIFWEX : LOG(("FGA_AUXFIFWEX - not implemented\n")); m_fga002[FGA_AUXFIFWEX] = data; break; - case FGA_AUXFIFREX : LOG(("FGA_AUXFIFREX - not implemented\n")); m_fga002[FGA_AUXFIFREX] = data; break; - case FGA_CTL6 : LOG(("FGA_CTL6 - not implemented\n")); m_fga002[FGA_CTL6] = data; break; - case FGA_CTL7 : LOG(("FGA_CTL7 - not implemented\n")); m_fga002[FGA_CTL7] = data; break; - case FGA_CTL8 : LOG(("FGA_CTL8 - not implemented\n")); m_fga002[FGA_CTL8] = data; break; - case FGA_CTL9 : LOG(("FGA_CTL9 - not implemented\n")); m_fga002[FGA_CTL9] = data; break; - case FGA_ICRABORT : LOG(("FGA_ICRABORT - not implemented\n")); m_fga002[FGA_ICRABORT] = data; break; - case FGA_ICRACFAIL : LOG(("FGA_ICRACFAIL - not implemented\n")); m_fga002[FGA_ICRACFAIL] = data; break; - case FGA_ICRSYSFAIL : LOG(("FGA_ICRSYSFAIL - not implemented\n")); m_fga002[FGA_ICRSYSFAIL] = data; break; + case FGA_CTL4 : LOG("FGA_CTL4 - not implemented\n"); m_fga002[FGA_CTL4] = data; break; + case FGA_ICRPARITY : LOG("FGA_ICRPARITY - not implemented\n"); m_fga002[FGA_ICRPARITY] = data; break; + case FGA_AUXPINCTL : LOG("FGA_AUXPINCTL - not implemented\n"); m_fga002[FGA_AUXPINCTL] = data; break; + case FGA_CTL5 : LOG("FGA_CTL5 - not implemented\n"); m_fga002[FGA_CTL5] = data; break; + case FGA_AUXFIFWEX : LOG("FGA_AUXFIFWEX - not implemented\n"); m_fga002[FGA_AUXFIFWEX] = data; break; + case FGA_AUXFIFREX : LOG("FGA_AUXFIFREX - not implemented\n"); m_fga002[FGA_AUXFIFREX] = data; break; + case FGA_CTL6 : LOG("FGA_CTL6 - not implemented\n"); m_fga002[FGA_CTL6] = data; break; + case FGA_CTL7 : LOG("FGA_CTL7 - not implemented\n"); m_fga002[FGA_CTL7] = data; break; + case FGA_CTL8 : LOG("FGA_CTL8 - not implemented\n"); m_fga002[FGA_CTL8] = data; break; + case FGA_CTL9 : LOG("FGA_CTL9 - not implemented\n"); m_fga002[FGA_CTL9] = data; break; + case FGA_ICRABORT : LOG("FGA_ICRABORT - not implemented\n"); m_fga002[FGA_ICRABORT] = data; break; + case FGA_ICRACFAIL : LOG("FGA_ICRACFAIL - not implemented\n"); m_fga002[FGA_ICRACFAIL] = data; break; + case FGA_ICRSYSFAIL : LOG("FGA_ICRSYSFAIL - not implemented\n"); m_fga002[FGA_ICRSYSFAIL] = data; break; case FGA_ICRLOCAL0 : do_fga002reg_icrlocal0_w(data); break; case FGA_ICRLOCAL1 : do_fga002reg_icrlocal1_w(data); break; case FGA_ICRLOCAL2 : do_fga002reg_icrlocal2_w(data); break; @@ -669,34 +672,34 @@ WRITE8_MEMBER (fga002_device::write){ case FGA_ICRLOCAL5 : do_fga002reg_icrlocal5_w(data); break; case FGA_ICRLOCAL6 : do_fga002reg_icrlocal6_w(data); break; case FGA_ICRLOCAL7 : do_fga002reg_icrlocal7_w(data); break; - case FGA_ENAMCODE : LOG(("FGA_ENAMCODE - not implemented\n")); m_fga002[FGA_ENAMCODE] = data; break; - case FGA_CTL10 : LOG(("FGA_CTL10 - not implemented\n")); m_fga002[FGA_CTL10] = data; break; - case FGA_CTL11 : LOG(("FGA_CTL11 - not implemented\n")); m_fga002[FGA_CTL11] = data; break; - case FGA_MAINUM : LOG(("FGA_MAINUM - not implemented\n")); m_fga002[FGA_MAINUM] = data; break; - case FGA_MAINUU : LOG(("FGA_MAINUU - not implemented\n")); m_fga002[FGA_MAINUU] = data; break; - case FGA_BOTTOMPAGEU : LOG(("FGA_BOTTOMPAGEU - not implemented\n")); m_fga002[FGA_BOTTOMPAGEU] = data; break; - case FGA_BOTTOMPAGEL : LOG(("FGA_BOTTOMPAGEL - not implemented\n")); m_fga002[FGA_BOTTOMPAGEL] = data; break; - case FGA_TOPPAGEU : LOG(("FGA_TOPPAGEU - not implemented\n")); m_fga002[FGA_TOPPAGEU] = data; break; - case FGA_TOPPAGEL : LOG(("FGA_TOPPAGEL - not implemented\n")); m_fga002[FGA_TOPPAGEL] = data; break; - case FGA_MYVMEPAGE : LOG(("FGA_MYVMEPAGE - not implemented\n")); m_fga002[FGA_MYVMEPAGE] = data; break; + case FGA_ENAMCODE : LOG("FGA_ENAMCODE - not implemented\n"); m_fga002[FGA_ENAMCODE] = data; break; + case FGA_CTL10 : LOG("FGA_CTL10 - not implemented\n"); m_fga002[FGA_CTL10] = data; break; + case FGA_CTL11 : LOG("FGA_CTL11 - not implemented\n"); m_fga002[FGA_CTL11] = data; break; + case FGA_MAINUM : LOG("FGA_MAINUM - not implemented\n"); m_fga002[FGA_MAINUM] = data; break; + case FGA_MAINUU : LOG("FGA_MAINUU - not implemented\n"); m_fga002[FGA_MAINUU] = data; break; + case FGA_BOTTOMPAGEU : LOG("FGA_BOTTOMPAGEU - not implemented\n"); m_fga002[FGA_BOTTOMPAGEU] = data; break; + case FGA_BOTTOMPAGEL : LOG("FGA_BOTTOMPAGEL - not implemented\n"); m_fga002[FGA_BOTTOMPAGEL] = data; break; + case FGA_TOPPAGEU : LOG("FGA_TOPPAGEU - not implemented\n"); m_fga002[FGA_TOPPAGEU] = data; break; + case FGA_TOPPAGEL : LOG("FGA_TOPPAGEL - not implemented\n"); m_fga002[FGA_TOPPAGEL] = data; break; + case FGA_MYVMEPAGE : LOG("FGA_MYVMEPAGE - not implemented\n"); m_fga002[FGA_MYVMEPAGE] = data; break; case FGA_TIM0PRELOAD : do_fga002reg_tim0preload_w(data); break; case FGA_TIM0CTL : do_fga002reg_tim0ctl_w(data); break; - case FGA_DMASRCATT : LOG(("FGA_DMASRCATT - not implemented\n")); m_fga002[FGA_DMASRCATT] = data; break; - case FGA_DMADSTATT : LOG(("FGA_DMADSTATT - not implemented\n")); m_fga002[FGA_DMADSTATT] = data; break; - case FGA_DMA_GENERAL : LOG(("FGA_DMA_GENERAL - not implemented\n")); m_fga002[FGA_DMA_GENERAL] = data; break; - case FGA_CTL12 : LOG(("FGA_CTL12 - not implemented\n")); m_fga002[FGA_CTL12] = data; break; - case FGA_LIOTIMING : LOG(("FGA_LIOTIMING - not implemented\n")); m_fga002[FGA_LIOTIMING] = data; break; + case FGA_DMASRCATT : LOG("FGA_DMASRCATT - not implemented\n"); m_fga002[FGA_DMASRCATT] = data; break; + case FGA_DMADSTATT : LOG("FGA_DMADSTATT - not implemented\n"); m_fga002[FGA_DMADSTATT] = data; break; + case FGA_DMA_GENERAL : LOG("FGA_DMA_GENERAL - not implemented\n"); m_fga002[FGA_DMA_GENERAL] = data; break; + case FGA_CTL12 : LOG("FGA_CTL12 - not implemented\n"); m_fga002[FGA_CTL12] = data; break; + case FGA_LIOTIMING : LOG("FGA_LIOTIMING - not implemented\n"); m_fga002[FGA_LIOTIMING] = data; break; case FGA_LOCALIACK : do_fga002reg_localiack_w(data); - case FGA_FMBCTL : LOG(("FGA_FMBCTL - not implemented\n")); m_fga002[FGA_FMBCTL] = data; break; - case FGA_FMBAREA : LOG(("FGA_FMBAREA - not implemented\n")); m_fga002[FGA_FMBAREA] = data; break; - case FGA_AUXSRCSTART : LOG(("FGA_AUXSRCSTART - not implemented\n")); m_fga002[FGA_AUXSRCSTART] = data; break; - case FGA_AUXDSTSTART : LOG(("FGA_AUXDSTSTART - not implemented\n")); m_fga002[FGA_AUXDSTSTART] = data; break; - case FGA_AUXSRCTERM : LOG(("FGA_AUXSRCTERM - not implemented\n")); m_fga002[FGA_AUXSRCTERM] = data; break; - case FGA_AUXDSTTERM : LOG(("FGA_AUXDSTTERM - not implemented\n")); m_fga002[FGA_AUXDSTTERM] = data; break; - case FGA_CTL13 : LOG(("FGA_CTL13 - not implemented\n")); m_fga002[FGA_CTL13] = data; break; - case FGA_CTL14 : LOG(("FGA_CTL14 - not implemented\n")); m_fga002[FGA_CTL14] = data; break; - case FGA_CTL15 : LOG(("FGA_CTL15 - not implemented\n")); m_fga002[FGA_CTL15] = data; break; - case FGA_CTL16 : LOG(("FGA_CTL16 - not implemented\n")); m_fga002[FGA_CTL16] = data; break; + case FGA_FMBCTL : LOG("FGA_FMBCTL - not implemented\n"); m_fga002[FGA_FMBCTL] = data; break; + case FGA_FMBAREA : LOG("FGA_FMBAREA - not implemented\n"); m_fga002[FGA_FMBAREA] = data; break; + case FGA_AUXSRCSTART : LOG("FGA_AUXSRCSTART - not implemented\n"); m_fga002[FGA_AUXSRCSTART] = data; break; + case FGA_AUXDSTSTART : LOG("FGA_AUXDSTSTART - not implemented\n"); m_fga002[FGA_AUXDSTSTART] = data; break; + case FGA_AUXSRCTERM : LOG("FGA_AUXSRCTERM - not implemented\n"); m_fga002[FGA_AUXSRCTERM] = data; break; + case FGA_AUXDSTTERM : LOG("FGA_AUXDSTTERM - not implemented\n"); m_fga002[FGA_AUXDSTTERM] = data; break; + case FGA_CTL13 : LOG("FGA_CTL13 - not implemented\n"); m_fga002[FGA_CTL13] = data; break; + case FGA_CTL14 : LOG("FGA_CTL14 - not implemented\n"); m_fga002[FGA_CTL14] = data; break; + case FGA_CTL15 : LOG("FGA_CTL15 - not implemented\n"); m_fga002[FGA_CTL15] = data; break; + case FGA_CTL16 : LOG("FGA_CTL16 - not implemented\n"); m_fga002[FGA_CTL16] = data; break; case FGA_ISTIM0 : do_fga002reg_istim0_w(data); break; case FGA_ISLOCAL0 : do_fga002reg_islocal0_w(data); break; case FGA_ISLOCAL1 : do_fga002reg_islocal1_w(data); break; @@ -706,72 +709,72 @@ WRITE8_MEMBER (fga002_device::write){ case FGA_ISLOCAL5 : do_fga002reg_islocal5_w(data); break; case FGA_ISLOCAL6 : do_fga002reg_islocal6_w(data); break; case FGA_ISLOCAL7 : do_fga002reg_islocal7_w(data); break; - case FGA_ISDMANORM : LOG(("FGA_ISDMANORM - not implemented\n")); m_fga002[FGA_ISDMANORM] = data; break; - case FGA_ISDMAERR : LOG(("FGA_ISDMAERR - not implemented\n")); m_fga002[FGA_ISDMAERR] = data; break; - case FGA_ISFMB0REF : LOG(("FGA_ISFMB0REF - not implemented\n")); m_fga002[FGA_ISFMB0REF] = data; break; - case FGA_ISFMB1REF : LOG(("FGA_ISFMB1REF - not implemented\n")); m_fga002[FGA_ISFMB1REF] = data; break; - case FGA_ISPARITY : LOG(("FGA_ISPARITY - not implemented\n")); m_fga002[FGA_ISPARITY] = data; break; - case FGA_DMARUNCTL : LOG(("FGA_DMARUNCTL - not implemented\n")); m_fga002[FGA_DMARUNCTL] = data; break; - case FGA_ISABORT : LOG(("FGA_ISABORT - not implemented\n")); m_fga002[FGA_ISABORT] = data; break; - case FGA_ISFMB0MES : LOG(("FGA_ISFMB0MES - not implemented\n")); m_fga002[FGA_ISFMB0MES] = data; break; - case FGA_ISFMB1MES : LOG(("FGA_ISFMB1MES - not implemented\n")); m_fga002[FGA_ISFMB1MES] = data; break; - case FGA_ABORTPIN : LOG(("FGA_ABORTPIN - not implemented\n")); m_fga002[FGA_ABORTPIN] = data; break; + case FGA_ISDMANORM : LOG("FGA_ISDMANORM - not implemented\n"); m_fga002[FGA_ISDMANORM] = data; break; + case FGA_ISDMAERR : LOG("FGA_ISDMAERR - not implemented\n"); m_fga002[FGA_ISDMAERR] = data; break; + case FGA_ISFMB0REF : LOG("FGA_ISFMB0REF - not implemented\n"); m_fga002[FGA_ISFMB0REF] = data; break; + case FGA_ISFMB1REF : LOG("FGA_ISFMB1REF - not implemented\n"); m_fga002[FGA_ISFMB1REF] = data; break; + case FGA_ISPARITY : LOG("FGA_ISPARITY - not implemented\n"); m_fga002[FGA_ISPARITY] = data; break; + case FGA_DMARUNCTL : LOG("FGA_DMARUNCTL - not implemented\n"); m_fga002[FGA_DMARUNCTL] = data; break; + case FGA_ISABORT : LOG("FGA_ISABORT - not implemented\n"); m_fga002[FGA_ISABORT] = data; break; + case FGA_ISFMB0MES : LOG("FGA_ISFMB0MES - not implemented\n"); m_fga002[FGA_ISFMB0MES] = data; break; + case FGA_ISFMB1MES : LOG("FGA_ISFMB1MES - not implemented\n"); m_fga002[FGA_ISFMB1MES] = data; break; + case FGA_ABORTPIN : LOG("FGA_ABORTPIN - not implemented\n"); m_fga002[FGA_ABORTPIN] = data; break; case FGA_TIM0COUNT : do_fga002reg_tim0count_w(data); break; default: - LOG(("Unsupported register %04x\n", offset)); + LOG("Unsupported register %04x\n", offset); } } READ8_MEMBER (fga002_device::read){ uint8_t ret = 0; - LOG(("%s[%04x] ", FUNCNAME, offset)); + LOG("%s[%04x] ", FUNCNAME, offset); switch(offset) { - case FGA_SPECIALENA : ret = m_fga002[FGA_SPECIALENA]; LOG(("FGA_SPECIALENA returns %02x - not implemented\n", ret)); break; - case FGA_RSVMECALL : ret = m_fga002[FGA_RSVMECALL]; LOG(("FGA_RSVMECALL returns %02x - not implemented\n", ret)); break; - case FGA_RSKEYRES : ret = m_fga002[FGA_RSKEYRES]; LOG(("FGA_RSKEYRES returns %02x - not implemented\n", ret)); break; - case FGA_RSCPUCALL : ret = m_fga002[FGA_RSCPUCALL]; LOG(("FGA_RSCPUCALL returns %02x - not implemented\n", ret)); break; - case FGA_RSLOCSW : ret = m_fga002[FGA_RSLOCSW]; LOG(("FGA_RSLOCSW returns %02x - not implemented\n", ret)); break; - case FGA_ICRMBOX0 : ret = m_fga002[FGA_ICRMBOX0]; LOG(("FGA_ICRMBOX0 returns %02x - not implemented\n", ret)); break; - case FGA_ICRMBOX1 : ret = m_fga002[FGA_ICRMBOX1]; LOG(("FGA_ICRMBOX1 returns %02x - not implemented\n", ret)); break; - case FGA_ICRMBOX2 : ret = m_fga002[FGA_ICRMBOX2]; LOG(("FGA_ICRMBOX2 returns %02x - not implemented\n", ret)); break; - case FGA_ICRMBOX3 : ret = m_fga002[FGA_ICRMBOX3]; LOG(("FGA_ICRMBOX3 returns %02x - not implemented\n", ret)); break; - case FGA_ICRMBOX4 : ret = m_fga002[FGA_ICRMBOX4]; LOG(("FGA_ICRMBOX4 returns %02x - not implemented\n", ret)); break; - case FGA_ICRMBOX5 : ret = m_fga002[FGA_ICRMBOX5]; LOG(("FGA_ICRMBOX5 returns %02x - not implemented\n", ret)); break; - case FGA_ICRMBOX6 : ret = m_fga002[FGA_ICRMBOX6]; LOG(("FGA_ICRMBOX6 returns %02x - not implemented\n", ret)); break; - case FGA_ICRMBOX7 : ret = m_fga002[FGA_ICRMBOX7]; LOG(("FGA_ICRMBOX7 returns %02x - not implemented\n", ret)); break; - case FGA_VMEPAGE : ret = m_fga002[FGA_VMEPAGE]; LOG(("FGA_VMEPAGE returns %02x - not implemented\n", ret)); break; - case FGA_ICRVME1 : ret = m_fga002[FGA_ICRVME1]; LOG(("FGA_ICRVME1 returns %02x - not implemented\n", ret)); break; - case FGA_ICRVME2 : ret = m_fga002[FGA_ICRVME2]; LOG(("FGA_ICRVME2 returns %02x - not implemented\n", ret)); break; - case FGA_ICRVME3 : ret = m_fga002[FGA_ICRVME3]; LOG(("FGA_ICRVME3 returns %02x - not implemented\n", ret)); break; - case FGA_ICRVME4 : ret = m_fga002[FGA_ICRVME4]; LOG(("FGA_ICRVME4 returns %02x - not implemented\n", ret)); break; - case FGA_ICRVME5 : ret = m_fga002[FGA_ICRVME5]; LOG(("FGA_ICRVME5 returns %02x - not implemented\n", ret)); break; - case FGA_ICRVME6 : ret = m_fga002[FGA_ICRVME6]; LOG(("FGA_ICRVME6 returns %02x - not implemented\n", ret)); break; - case FGA_ICRVME7 : ret = m_fga002[FGA_ICRVME7]; LOG(("FGA_ICRVME7 returns %02x - not implemented\n", ret)); break; + case FGA_SPECIALENA : ret = m_fga002[FGA_SPECIALENA]; LOG("FGA_SPECIALENA returns %02x - not implemented\n", ret); break; + case FGA_RSVMECALL : ret = m_fga002[FGA_RSVMECALL]; LOG("FGA_RSVMECALL returns %02x - not implemented\n", ret); break; + case FGA_RSKEYRES : ret = m_fga002[FGA_RSKEYRES]; LOG("FGA_RSKEYRES returns %02x - not implemented\n", ret); break; + case FGA_RSCPUCALL : ret = m_fga002[FGA_RSCPUCALL]; LOG("FGA_RSCPUCALL returns %02x - not implemented\n", ret); break; + case FGA_RSLOCSW : ret = m_fga002[FGA_RSLOCSW]; LOG("FGA_RSLOCSW returns %02x - not implemented\n", ret); break; + case FGA_ICRMBOX0 : ret = m_fga002[FGA_ICRMBOX0]; LOG("FGA_ICRMBOX0 returns %02x - not implemented\n", ret); break; + case FGA_ICRMBOX1 : ret = m_fga002[FGA_ICRMBOX1]; LOG("FGA_ICRMBOX1 returns %02x - not implemented\n", ret); break; + case FGA_ICRMBOX2 : ret = m_fga002[FGA_ICRMBOX2]; LOG("FGA_ICRMBOX2 returns %02x - not implemented\n", ret); break; + case FGA_ICRMBOX3 : ret = m_fga002[FGA_ICRMBOX3]; LOG("FGA_ICRMBOX3 returns %02x - not implemented\n", ret); break; + case FGA_ICRMBOX4 : ret = m_fga002[FGA_ICRMBOX4]; LOG("FGA_ICRMBOX4 returns %02x - not implemented\n", ret); break; + case FGA_ICRMBOX5 : ret = m_fga002[FGA_ICRMBOX5]; LOG("FGA_ICRMBOX5 returns %02x - not implemented\n", ret); break; + case FGA_ICRMBOX6 : ret = m_fga002[FGA_ICRMBOX6]; LOG("FGA_ICRMBOX6 returns %02x - not implemented\n", ret); break; + case FGA_ICRMBOX7 : ret = m_fga002[FGA_ICRMBOX7]; LOG("FGA_ICRMBOX7 returns %02x - not implemented\n", ret); break; + case FGA_VMEPAGE : ret = m_fga002[FGA_VMEPAGE]; LOG("FGA_VMEPAGE returns %02x - not implemented\n", ret); break; + case FGA_ICRVME1 : ret = m_fga002[FGA_ICRVME1]; LOG("FGA_ICRVME1 returns %02x - not implemented\n", ret); break; + case FGA_ICRVME2 : ret = m_fga002[FGA_ICRVME2]; LOG("FGA_ICRVME2 returns %02x - not implemented\n", ret); break; + case FGA_ICRVME3 : ret = m_fga002[FGA_ICRVME3]; LOG("FGA_ICRVME3 returns %02x - not implemented\n", ret); break; + case FGA_ICRVME4 : ret = m_fga002[FGA_ICRVME4]; LOG("FGA_ICRVME4 returns %02x - not implemented\n", ret); break; + case FGA_ICRVME5 : ret = m_fga002[FGA_ICRVME5]; LOG("FGA_ICRVME5 returns %02x - not implemented\n", ret); break; + case FGA_ICRVME6 : ret = m_fga002[FGA_ICRVME6]; LOG("FGA_ICRVME6 returns %02x - not implemented\n", ret); break; + case FGA_ICRVME7 : ret = m_fga002[FGA_ICRVME7]; LOG("FGA_ICRVME7 returns %02x - not implemented\n", ret); break; case FGA_ICRTIM0 : ret = do_fga002reg_icrtim0_r(); break; - case FGA_ICRDMANORM : ret = m_fga002[FGA_ICRDMANORM]; LOG(("FGA_ICRDMANORM returns %02x - not implemented\n", ret)); break; - case FGA_ICRDMAERR : ret = m_fga002[FGA_ICRDMAERR]; LOG(("FGA_ICRDMAERR returns %02x - not implemented\n", ret)); break; - case FGA_CTL1 : ret = m_fga002[FGA_CTL1]; LOG(("FGA_CTL1 returns %02x - not implemented\n", ret)); break; - case FGA_CTL2 : ret = m_fga002[FGA_CTL2]; LOG(("FGA_CTL2 returns %02x - not implemented\n", ret)); break; - case FGA_ICRFMB0REF : ret = m_fga002[FGA_ICRFMB0REF]; LOG(("FGA_ICRFMB0REF returns %02x - not implemented\n", ret)); break; - case FGA_ICRFMB1REF : ret = m_fga002[FGA_ICRFMB1REF]; LOG(("FGA_ICRFMB1REF returns %02x - not implemented\n", ret)); break; - case FGA_ICRFMB0MES : ret = m_fga002[FGA_ICRFMB0MES]; LOG(("FGA_ICRFMB0MES returns %02x - not implemented\n", ret)); break; - case FGA_ICRFMB1MES : ret = m_fga002[FGA_ICRFMB1MES]; LOG(("FGA_ICRFMB1MES returns %02x - not implemented\n", ret)); break; + case FGA_ICRDMANORM : ret = m_fga002[FGA_ICRDMANORM]; LOG("FGA_ICRDMANORM returns %02x - not implemented\n", ret); break; + case FGA_ICRDMAERR : ret = m_fga002[FGA_ICRDMAERR]; LOG("FGA_ICRDMAERR returns %02x - not implemented\n", ret); break; + case FGA_CTL1 : ret = m_fga002[FGA_CTL1]; LOG("FGA_CTL1 returns %02x - not implemented\n", ret); break; + case FGA_CTL2 : ret = m_fga002[FGA_CTL2]; LOG("FGA_CTL2 returns %02x - not implemented\n", ret); break; + case FGA_ICRFMB0REF : ret = m_fga002[FGA_ICRFMB0REF]; LOG("FGA_ICRFMB0REF returns %02x - not implemented\n", ret); break; + case FGA_ICRFMB1REF : ret = m_fga002[FGA_ICRFMB1REF]; LOG("FGA_ICRFMB1REF returns %02x - not implemented\n", ret); break; + case FGA_ICRFMB0MES : ret = m_fga002[FGA_ICRFMB0MES]; LOG("FGA_ICRFMB0MES returns %02x - not implemented\n", ret); break; + case FGA_ICRFMB1MES : ret = m_fga002[FGA_ICRFMB1MES]; LOG("FGA_ICRFMB1MES returns %02x - not implemented\n", ret); break; case FGA_CTL3 : ret = do_fga002reg_ctl3_r(); break; - case FGA_CTL4 : ret = m_fga002[FGA_CTL4]; LOG(("FGA_CTL4 returns %02x - not implemented\n", ret)); break; - case FGA_ICRPARITY : ret = m_fga002[FGA_ICRPARITY]; LOG(("FGA_ICRPARITY returns %02x - not implemented\n", ret)); break; - case FGA_AUXPINCTL : ret = m_fga002[FGA_AUXPINCTL]; LOG(("FGA_AUXPINCTL returns %02x - not implemented\n", ret)); break; - case FGA_CTL5 : ret = m_fga002[FGA_CTL5]; LOG(("FGA_CTL5 returns %02x - not implemented\n", ret)); break; - case FGA_AUXFIFWEX : ret = m_fga002[FGA_AUXFIFWEX]; LOG(("FGA_AUXFIFWEX returns %02x - not implemented\n", ret)); break; - case FGA_AUXFIFREX : ret = m_fga002[FGA_AUXFIFREX]; LOG(("FGA_AUXFIFREX returns %02x - not implemented\n", ret)); break; - case FGA_CTL6 : ret = m_fga002[FGA_CTL6]; LOG(("FGA_CTL6 returns %02x - not implemented\n", ret)); break; - case FGA_CTL7 : ret = m_fga002[FGA_CTL7]; LOG(("FGA_CTL7 returns %02x - not implemented\n", ret)); break; - case FGA_CTL8 : ret = m_fga002[FGA_CTL8]; LOG(("FGA_CTL8 returns %02x - not implemented\n", ret)); break; - case FGA_CTL9 : ret = m_fga002[FGA_CTL9]; LOG(("FGA_CTL9 returns %02x - not implemented\n", ret)); break; - case FGA_ICRABORT : ret = m_fga002[FGA_ICRABORT]; LOG(("FGA_ICRABORT returns %02x - not implemented\n", ret)); break; - case FGA_ICRACFAIL : ret = m_fga002[FGA_ICRACFAIL]; LOG(("FGA_ICRACFAIL returns %02x - not implemented\n", ret)); break; - case FGA_ICRSYSFAIL : ret = m_fga002[FGA_ICRSYSFAIL]; LOG(("FGA_ICRSYSFAIL returns %02x - not implemented\n", ret)); break; + case FGA_CTL4 : ret = m_fga002[FGA_CTL4]; LOG("FGA_CTL4 returns %02x - not implemented\n", ret); break; + case FGA_ICRPARITY : ret = m_fga002[FGA_ICRPARITY]; LOG("FGA_ICRPARITY returns %02x - not implemented\n", ret); break; + case FGA_AUXPINCTL : ret = m_fga002[FGA_AUXPINCTL]; LOG("FGA_AUXPINCTL returns %02x - not implemented\n", ret); break; + case FGA_CTL5 : ret = m_fga002[FGA_CTL5]; LOG("FGA_CTL5 returns %02x - not implemented\n", ret); break; + case FGA_AUXFIFWEX : ret = m_fga002[FGA_AUXFIFWEX]; LOG("FGA_AUXFIFWEX returns %02x - not implemented\n", ret); break; + case FGA_AUXFIFREX : ret = m_fga002[FGA_AUXFIFREX]; LOG("FGA_AUXFIFREX returns %02x - not implemented\n", ret); break; + case FGA_CTL6 : ret = m_fga002[FGA_CTL6]; LOG("FGA_CTL6 returns %02x - not implemented\n", ret); break; + case FGA_CTL7 : ret = m_fga002[FGA_CTL7]; LOG("FGA_CTL7 returns %02x - not implemented\n", ret); break; + case FGA_CTL8 : ret = m_fga002[FGA_CTL8]; LOG("FGA_CTL8 returns %02x - not implemented\n", ret); break; + case FGA_CTL9 : ret = m_fga002[FGA_CTL9]; LOG("FGA_CTL9 returns %02x - not implemented\n", ret); break; + case FGA_ICRABORT : ret = m_fga002[FGA_ICRABORT]; LOG("FGA_ICRABORT returns %02x - not implemented\n", ret); break; + case FGA_ICRACFAIL : ret = m_fga002[FGA_ICRACFAIL]; LOG("FGA_ICRACFAIL returns %02x - not implemented\n", ret); break; + case FGA_ICRSYSFAIL : ret = m_fga002[FGA_ICRSYSFAIL]; LOG("FGA_ICRSYSFAIL returns %02x - not implemented\n", ret); break; case FGA_ICRLOCAL0 : ret = do_fga002reg_icrlocal0_r(); break; case FGA_ICRLOCAL1 : ret = do_fga002reg_icrlocal1_r(); break; case FGA_ICRLOCAL2 : ret = do_fga002reg_icrlocal2_r(); break; @@ -780,34 +783,34 @@ READ8_MEMBER (fga002_device::read){ case FGA_ICRLOCAL5 : ret = do_fga002reg_icrlocal5_r(); break; case FGA_ICRLOCAL6 : ret = do_fga002reg_icrlocal6_r(); break; case FGA_ICRLOCAL7 : ret = do_fga002reg_icrlocal7_r(); break; - case FGA_ENAMCODE : ret = m_fga002[FGA_ENAMCODE]; LOG(("FGA_ENAMCODE returns %02x - not implemented\n", ret)); break; - case FGA_CTL10 : ret = m_fga002[FGA_CTL10]; LOG(("FGA_CTL10 returns %02x - not implemented\n", ret)); break; - case FGA_CTL11 : ret = m_fga002[FGA_CTL11]; LOG(("FGA_CTL11 returns %02x - not implemented\n", ret)); break; - case FGA_MAINUM : ret = m_fga002[FGA_MAINUM]; LOG(("FGA_MAINUM returns %02x - not implemented\n", ret)); break; - case FGA_MAINUU : ret = m_fga002[FGA_MAINUU]; LOG(("FGA_MAINUU returns %02x - not implemented\n", ret)); break; - case FGA_BOTTOMPAGEU : ret = m_fga002[FGA_BOTTOMPAGEU]; LOG(("FGA_BOTTOMPAGEU returns %02x - not implemented\n", ret)); break; - case FGA_BOTTOMPAGEL : ret = m_fga002[FGA_BOTTOMPAGEL]; LOG(("FGA_BOTTOMPAGEL returns %02x - not implemented\n", ret)); break; - case FGA_TOPPAGEU : ret = m_fga002[FGA_TOPPAGEU]; LOG(("FGA_TOPPAGEU returns %02x - not implemented\n", ret)); break; - case FGA_TOPPAGEL : ret = m_fga002[FGA_TOPPAGEL]; LOG(("FGA_TOPPAGEL returns %02x - not implemented\n", ret)); break; - case FGA_MYVMEPAGE : ret = m_fga002[FGA_MYVMEPAGE]; LOG(("FGA_MYVMEPAGE returns %02x - not implemented\n", ret)); break; + case FGA_ENAMCODE : ret = m_fga002[FGA_ENAMCODE]; LOG("FGA_ENAMCODE returns %02x - not implemented\n", ret); break; + case FGA_CTL10 : ret = m_fga002[FGA_CTL10]; LOG("FGA_CTL10 returns %02x - not implemented\n", ret); break; + case FGA_CTL11 : ret = m_fga002[FGA_CTL11]; LOG("FGA_CTL11 returns %02x - not implemented\n", ret); break; + case FGA_MAINUM : ret = m_fga002[FGA_MAINUM]; LOG("FGA_MAINUM returns %02x - not implemented\n", ret); break; + case FGA_MAINUU : ret = m_fga002[FGA_MAINUU]; LOG("FGA_MAINUU returns %02x - not implemented\n", ret); break; + case FGA_BOTTOMPAGEU : ret = m_fga002[FGA_BOTTOMPAGEU]; LOG("FGA_BOTTOMPAGEU returns %02x - not implemented\n", ret); break; + case FGA_BOTTOMPAGEL : ret = m_fga002[FGA_BOTTOMPAGEL]; LOG("FGA_BOTTOMPAGEL returns %02x - not implemented\n", ret); break; + case FGA_TOPPAGEU : ret = m_fga002[FGA_TOPPAGEU]; LOG("FGA_TOPPAGEU returns %02x - not implemented\n", ret); break; + case FGA_TOPPAGEL : ret = m_fga002[FGA_TOPPAGEL]; LOG("FGA_TOPPAGEL returns %02x - not implemented\n", ret); break; + case FGA_MYVMEPAGE : ret = m_fga002[FGA_MYVMEPAGE]; LOG("FGA_MYVMEPAGE returns %02x - not implemented\n", ret); break; case FGA_TIM0PRELOAD : ret = do_fga002reg_tim0preload_r(); break; case FGA_TIM0CTL : ret = do_fga002reg_tim0ctl_r(); break; - case FGA_DMASRCATT : ret = m_fga002[FGA_DMASRCATT]; LOG(("FGA_DMASRCATT returns %02x - not implemented\n", ret)); break; - case FGA_DMADSTATT : ret = m_fga002[FGA_DMADSTATT]; LOG(("FGA_DMADSTATT returns %02x - not implemented\n", ret)); break; - case FGA_DMA_GENERAL : ret = m_fga002[FGA_DMA_GENERAL]; LOG(("FGA_DMA_GENERAL returns %02x - not implemented\n", ret)); break; - case FGA_CTL12 : ret = m_fga002[FGA_CTL12]; LOG(("FGA_CTL12 returns %02x - not implemented\n", ret)); break; - case FGA_LIOTIMING : ret = m_fga002[FGA_LIOTIMING]; LOG(("FGA_LIOTIMING returns %02x - not implemented\n", ret)); break; + case FGA_DMASRCATT : ret = m_fga002[FGA_DMASRCATT]; LOG("FGA_DMASRCATT returns %02x - not implemented\n", ret); break; + case FGA_DMADSTATT : ret = m_fga002[FGA_DMADSTATT]; LOG("FGA_DMADSTATT returns %02x - not implemented\n", ret); break; + case FGA_DMA_GENERAL : ret = m_fga002[FGA_DMA_GENERAL]; LOG("FGA_DMA_GENERAL returns %02x - not implemented\n", ret); break; + case FGA_CTL12 : ret = m_fga002[FGA_CTL12]; LOG("FGA_CTL12 returns %02x - not implemented\n", ret); break; + case FGA_LIOTIMING : ret = m_fga002[FGA_LIOTIMING]; LOG("FGA_LIOTIMING returns %02x - not implemented\n", ret); break; case FGA_LOCALIACK : ret = do_fga002reg_localiack_r(); break; - case FGA_FMBCTL : ret = m_fga002[FGA_FMBCTL]; LOG(("FGA_FMBCTL returns %02x - not implemented\n", ret)); break; - case FGA_FMBAREA : ret = m_fga002[FGA_FMBAREA]; LOG(("FGA_FMBAREA returns %02x - not implemented\n", ret)); break; - case FGA_AUXSRCSTART : ret = m_fga002[FGA_AUXSRCSTART]; LOG(("FGA_AUXSRCSTART returns %02x - not implemented\n", ret)); break; - case FGA_AUXDSTSTART : ret = m_fga002[FGA_AUXDSTSTART]; LOG(("FGA_AUXDSTSTART returns %02x - not implemented\n", ret)); break; - case FGA_AUXSRCTERM : ret = m_fga002[FGA_AUXSRCTERM]; LOG(("FGA_AUXSRCTERM returns %02x - not implemented\n", ret)); break; - case FGA_AUXDSTTERM : ret = m_fga002[FGA_AUXDSTTERM]; LOG(("FGA_AUXDSTTERM returns %02x - not implemented\n", ret)); break; - case FGA_CTL13 : ret = m_fga002[FGA_CTL13]; LOG(("FGA_CTL13 returns %02x - not implemented\n", ret)); break; - case FGA_CTL14 : ret = m_fga002[FGA_CTL14]; LOG(("FGA_CTL14 returns %02x - not implemented\n", ret)); break; - case FGA_CTL15 : ret = m_fga002[FGA_CTL15]; LOG(("FGA_CTL15 returns %02x - not implemented\n", ret)); break; - case FGA_CTL16 : ret = m_fga002[FGA_CTL16]; LOG(("FGA_CTL16 returns %02x - not implemented\n", ret)); break; + case FGA_FMBCTL : ret = m_fga002[FGA_FMBCTL]; LOG("FGA_FMBCTL returns %02x - not implemented\n", ret); break; + case FGA_FMBAREA : ret = m_fga002[FGA_FMBAREA]; LOG("FGA_FMBAREA returns %02x - not implemented\n", ret); break; + case FGA_AUXSRCSTART : ret = m_fga002[FGA_AUXSRCSTART]; LOG("FGA_AUXSRCSTART returns %02x - not implemented\n", ret); break; + case FGA_AUXDSTSTART : ret = m_fga002[FGA_AUXDSTSTART]; LOG("FGA_AUXDSTSTART returns %02x - not implemented\n", ret); break; + case FGA_AUXSRCTERM : ret = m_fga002[FGA_AUXSRCTERM]; LOG("FGA_AUXSRCTERM returns %02x - not implemented\n", ret); break; + case FGA_AUXDSTTERM : ret = m_fga002[FGA_AUXDSTTERM]; LOG("FGA_AUXDSTTERM returns %02x - not implemented\n", ret); break; + case FGA_CTL13 : ret = m_fga002[FGA_CTL13]; LOG("FGA_CTL13 returns %02x - not implemented\n", ret); break; + case FGA_CTL14 : ret = m_fga002[FGA_CTL14]; LOG("FGA_CTL14 returns %02x - not implemented\n", ret); break; + case FGA_CTL15 : ret = m_fga002[FGA_CTL15]; LOG("FGA_CTL15 returns %02x - not implemented\n", ret); break; + case FGA_CTL16 : ret = m_fga002[FGA_CTL16]; LOG("FGA_CTL16 returns %02x - not implemented\n", ret); break; case FGA_ISTIM0 : ret = do_fga002reg_istim0_r(); break; case FGA_ISLOCAL0 : ret = do_fga002reg_islocal0_r(); break; case FGA_ISLOCAL1 : ret = do_fga002reg_islocal1_r(); break; @@ -817,19 +820,19 @@ READ8_MEMBER (fga002_device::read){ case FGA_ISLOCAL5 : ret = do_fga002reg_islocal5_r(); break; case FGA_ISLOCAL6 : ret = do_fga002reg_islocal6_r(); break; case FGA_ISLOCAL7 : ret = do_fga002reg_islocal7_r(); break; - case FGA_ISDMANORM : ret = m_fga002[FGA_ISDMANORM]; LOG(("FGA_ISDMANORM returns %02x - not implemented\n", ret)); break; - case FGA_ISDMAERR : ret = m_fga002[FGA_ISDMAERR]; LOG(("FGA_ISDMAERR returns %02x - not implemented\n", ret)); break; - case FGA_ISFMB0REF : ret = m_fga002[FGA_ISFMB0REF]; LOG(("FGA_ISFMB0REF returns %02x - not implemented\n", ret)); break; - case FGA_ISFMB1REF : ret = m_fga002[FGA_ISFMB1REF]; LOG(("FGA_ISFMB1REF returns %02x - not implemented\n", ret)); break; - case FGA_ISPARITY : ret = m_fga002[FGA_ISPARITY]; LOG(("FGA_ISPARITY returns %02x - not implemented\n", ret)); break; - case FGA_DMARUNCTL : ret = m_fga002[FGA_DMARUNCTL]; LOG(("FGA_DMARUNCTL returns %02x - not implemented\n", ret)); break; - case FGA_ISABORT : ret = m_fga002[FGA_ISABORT]; LOG(("FGA_ISABORT returns %02x - not implemented\n", ret)); break; - case FGA_ISFMB0MES : ret = m_fga002[FGA_ISFMB0MES]; LOG(("FGA_ISFMB0MES returns %02x - not implemented\n", ret)); break; - case FGA_ISFMB1MES : ret = m_fga002[FGA_ISFMB1MES]; LOG(("FGA_ISFMB1MES returns %02x - not implemented\n", ret)); break; - case FGA_ABORTPIN : ret = m_fga002[FGA_ABORTPIN]; LOG(("FGA_ABORTPIN returns %02x - not implemented\n", ret)); break; + case FGA_ISDMANORM : ret = m_fga002[FGA_ISDMANORM]; LOG("FGA_ISDMANORM returns %02x - not implemented\n", ret); break; + case FGA_ISDMAERR : ret = m_fga002[FGA_ISDMAERR]; LOG("FGA_ISDMAERR returns %02x - not implemented\n", ret); break; + case FGA_ISFMB0REF : ret = m_fga002[FGA_ISFMB0REF]; LOG("FGA_ISFMB0REF returns %02x - not implemented\n", ret); break; + case FGA_ISFMB1REF : ret = m_fga002[FGA_ISFMB1REF]; LOG("FGA_ISFMB1REF returns %02x - not implemented\n", ret); break; + case FGA_ISPARITY : ret = m_fga002[FGA_ISPARITY]; LOG("FGA_ISPARITY returns %02x - not implemented\n", ret); break; + case FGA_DMARUNCTL : ret = m_fga002[FGA_DMARUNCTL]; LOG("FGA_DMARUNCTL returns %02x - not implemented\n", ret); break; + case FGA_ISABORT : ret = m_fga002[FGA_ISABORT]; LOG("FGA_ISABORT returns %02x - not implemented\n", ret); break; + case FGA_ISFMB0MES : ret = m_fga002[FGA_ISFMB0MES]; LOG("FGA_ISFMB0MES returns %02x - not implemented\n", ret); break; + case FGA_ISFMB1MES : ret = m_fga002[FGA_ISFMB1MES]; LOG("FGA_ISFMB1MES returns %02x - not implemented\n", ret); break; + case FGA_ABORTPIN : ret = m_fga002[FGA_ABORTPIN]; LOG("FGA_ABORTPIN returns %02x - not implemented\n", ret); break; case FGA_TIM0COUNT : ret = do_fga002reg_tim0count_r(); break; default: - LOG(("Unsupported register %04x\n", offset)); + LOG("Unsupported register %04x\n", offset); } return ret; } diff --git a/src/mame/drivers/fccpu30.cpp b/src/mame/drivers/fccpu30.cpp index 13dee232008..8f9138af502 100644 --- a/src/mame/drivers/fccpu30.cpp +++ b/src/mame/drivers/fccpu30.cpp @@ -209,27 +209,21 @@ #include "machine/clock.h" //#include "machine/timekpr.h" -#define LOG_GENERAL 0x01 -#define LOG_SETUP 0x02 -#define LOG_PRINTF 0x04 -#define LOG_INIT 0x08 -#define LOG_READ 0x10 -#define LOG_INT 0x20 +//#define LOG_GENERAL (1U << 0) +#define LOG_SETUP (1U << 1) +#define LOG_READ (1U << 2) +#define LOG_INT (1U << 3) +#define LOG_INIT (1U << 4) -#define VERBOSE 0 // (LOG_PRINTF | LOG_SETUP | LOG_GENERAL) +//#define VERBOSE (LOG_GENERAL | LOG_SETUP) +//#define LOG_OUTPUT_FUNC printf -#define LOGMASK(mask, ...) do { if (VERBOSE & mask) logerror(__VA_ARGS__); } while (0) -#define LOGLEVEL(mask, level, ...) do { if ((VERBOSE & mask) >= level) logerror(__VA_ARGS__); } while (0) +#include "logmacro.h" -#define LOG(...) LOGMASK(LOG_GENERAL, __VA_ARGS__) -#define LOGSETUP(...) LOGMASK(LOG_SETUP, __VA_ARGS__) -#define LOGINIT(...) LOGMASK(LOG_INIT, __VA_ARGS__) -#define LOGR(...) LOGMASK(LOG_READ, __VA_ARGS__) -#define LOGINT(...) LOGMASK(LOG_INT, __VA_ARGS__) - -#if VERBOSE & LOG_PRINTF -#define logerror printf -#endif +#define LOGSETUP(...) LOGMASKED(LOG_SETUP, __VA_ARGS__) +#define LOGR(...) LOGMASKED(LOG_READ, __VA_ARGS__) +#define LOGINT(...) LOGMASKED(LOG_INT, __VA_ARGS__) +#define LOGINIT(...) LOGMASKED(LOG_INIT, __VA_ARGS__) #ifdef _MSC_VER #define FUNCNAME __func__ @@ -704,7 +698,7 @@ static MACHINE_CONFIG_START (cpu30, cpu30_state) /* DUSCC2 interrupt signal REQN is connected to LOCAL IRQ5 of the FGA-002 and level is programmable */ MCFG_DUSCC_OUT_INT_CB(DEVWRITELINE("fga002", fga002_device, lirq5_w)) - MCFG_RS232_PORT_ADD (RS232P1_TAG, default_rs232_devices, nullptr) + MCFG_RS232_PORT_ADD (RS232P1_TAG, default_rs232_devices, "terminal") MCFG_RS232_RXD_HANDLER (DEVWRITELINE ("duscc", duscc68562_device, rxb_w)) MCFG_RS232_CTS_HANDLER (DEVWRITELINE ("duscc", duscc68562_device, ctsb_w)) @@ -716,7 +710,7 @@ static MACHINE_CONFIG_START (cpu30, cpu30_state) MCFG_RS232_RXD_HANDLER (DEVWRITELINE ("duscc2", duscc68562_device, rxb_w)) MCFG_RS232_CTS_HANDLER (DEVWRITELINE ("duscc2", duscc68562_device, ctsb_w)) - MCFG_RS232_PORT_ADD (RS232P4_TAG, default_rs232_devices, nullptr) + MCFG_RS232_PORT_ADD (RS232P4_TAG, default_rs232_devices, "terminal") MCFG_RS232_RXD_HANDLER (DEVWRITELINE ("duscc", duscc68562_device, rxa_w)) MCFG_RS232_CTS_HANDLER (DEVWRITELINE ("duscc", duscc68562_device, ctsa_w))