diff options
Diffstat (limited to 'src/mame/drivers/bitgraph.cpp')
-rw-r--r-- | src/mame/drivers/bitgraph.cpp | 116 |
1 files changed, 56 insertions, 60 deletions
diff --git a/src/mame/drivers/bitgraph.cpp b/src/mame/drivers/bitgraph.cpp index 4d8c2f6e2c6..be66a7c5163 100644 --- a/src/mame/drivers/bitgraph.cpp +++ b/src/mame/drivers/bitgraph.cpp @@ -75,18 +75,17 @@ #define PSG_TAG "psg" #define EAROM_TAG "earom" - -//#define LOG_GENERAL (1U << 0) //defined in logmacro.h already -#define LOG_PIA (1U << 1) -#define LOG_DEBUG (1U << 2) - -//#define VERBOSE (LOG_DEBUG) -//#define LOG_OUTPUT_FUNC printf -#include "logmacro.h" - -#define LOGPIA(...) LOGMASKED(LOG_PIA, __VA_ARGS__) -#define LOGDBG(...) LOGMASKED(LOG_DEBUG, __VA_ARGS__) - +#define VERBOSE_DBG 1 /* general debug messages */ + +#define DBG_LOG(N,M,A) \ + do { \ + if(VERBOSE_DBG>=N) \ + { \ + if( M ) \ + logerror("%11.6f at %s: %-24s",machine().time().as_double(),machine().describe_context(),(char*)M ); \ + logerror A; \ + } \ + } while (0) class bitgraph_state : public driver_device { @@ -223,14 +222,14 @@ DEVICE_INPUT_DEFAULTS_END READ8_MEMBER(bitgraph_state::pia_r) { - LOGPIA("PIA R %d\n", offset); - return m_pia->read(3 - offset); + DBG_LOG(3, "PIA", ("R %d\n", offset)); + return m_pia->read(space, 3 - offset); } WRITE8_MEMBER(bitgraph_state::pia_w) { - LOGPIA("PIA W %d < %02X\n", offset, data); - return m_pia->write(3 - offset, data); + DBG_LOG(3, "PIA", ("W %d < %02X\n", offset, data)); + return m_pia->write(space, 3 - offset, data); } READ_LINE_MEMBER(bitgraph_state::pia_ca1_r) @@ -246,13 +245,13 @@ WRITE_LINE_MEMBER(bitgraph_state::pia_cb2_w) READ8_MEMBER(bitgraph_state::pia_pa_r) { uint8_t data = BIT(m_pia_b, 3) ? m_earom->data() : m_pia_a; - LOGDBG("PIA A == %02X (%s)\n", data, BIT(m_pia_b, 3) ? "earom" : "pia"); + DBG_LOG(2, "PIA", ("A == %02X (%s)\n", data, BIT(m_pia_b, 3) ? "earom" : "pia")); return data; } WRITE8_MEMBER(bitgraph_state::pia_pa_w) { - LOGDBG("PIA A <- %02X\n", data); + DBG_LOG(2, "PIA", ("A <- %02X\n", data)); m_pia_a = data; } @@ -268,28 +267,28 @@ WRITE8_MEMBER(bitgraph_state::pia_pa_w) */ READ8_MEMBER(bitgraph_state::pia_pb_r) { - LOGDBG("PIA B == %02X\n", m_pia_b); + DBG_LOG(2, "PIA", ("B == %02X\n", m_pia_b)); return m_pia_b; } WRITE8_MEMBER(bitgraph_state::pia_pb_w) { - LOGDBG("PIA B <- %02X\n", data); + DBG_LOG(2, "PIA", ("B <- %02X\n", data)); m_pia_b = data; switch (m_pia_b & 0x03) { case 2: - m_psg->data_w(m_pia_a); + m_psg->data_w(space, 0, m_pia_a); break; case 3: - m_psg->address_w(m_pia_a); + m_psg->address_w(space, 0, m_pia_a); break; } if (BIT(m_pia_b, 3)) { - LOGDBG("EAROM data <- %02X\n", m_pia_a); + DBG_LOG(2, "EAROM", ("data <- %02X\n", m_pia_a)); m_earom->set_data(m_pia_a); } // CS1, ~CS2, C1, C2 @@ -304,14 +303,14 @@ WRITE8_MEMBER(bitgraph_state::pia_pb_w) WRITE8_MEMBER(bitgraph_state::earom_write) { - LOGDBG("EAROM addr <- %02X (%02X)\n", data & 0x3f, data); + DBG_LOG(2, "EAROM", ("addr <- %02X (%02X)\n", data & 0x3f, data)); m_earom->set_address(data & 0x3f); } // written once and never changed WRITE8_MEMBER(bitgraph_state::misccr_write) { - LOG("MISCCR <- %02X (DTR %d MAP %d)\n", data, BIT(data, 3), (data & 3)); + DBG_LOG(1, "MISCCR", ("<- %02X (DTR %d MAP %d)\n", data, BIT(data, 3), (data & 3))); m_misccr = data; } @@ -336,11 +335,11 @@ WRITE_LINE_MEMBER(bitgraph_state::system_clock_write) // rev B writes EE5E -- 9600 HOST, 9600 PNT, 300 KBD, 9600 DBG WRITE16_MEMBER(bitgraph_state::baud_write) { - LOG("Baud %04X\n", data); - m_dbrgb->str_w(data & 15); // 2 DBG - m_dbrga->stt_w((data >> 4) & 15); // 1 KBD - m_dbrgb->stt_w((data >> 8) & 15); // 3 PNT - m_dbrga->str_w((data >> 12) & 15); // 0 HOST + DBG_LOG(1,"Baud", ("%04X\n", data)); + m_dbrgb->write_str(data & 15); // 2 DBG + m_dbrga->write_stt((data >> 4) & 15); // 1 KBD + m_dbrgb->write_stt((data >> 8) & 15); // 3 PNT + m_dbrga->write_str((data >> 12) & 15); // 0 HOST } WRITE_LINE_MEMBER(bitgraph_state::com8116_a_fr_w) @@ -363,7 +362,7 @@ WRITE_LINE_MEMBER(bitgraph_state::com8116_b_fr_w) WRITE_LINE_MEMBER(bitgraph_state::com8116_b_ft_w) { - if (m_acia3.found()) + if (m_acia3) { m_acia3->write_txc(state); m_acia3->write_rxc(state); @@ -372,14 +371,14 @@ WRITE_LINE_MEMBER(bitgraph_state::com8116_b_ft_w) READ8_MEMBER(bitgraph_state::adlc_r) { - LOG("ADLC R %d\n", offset); - return m_adlc.found() ? m_adlc->read(3 - offset) : 0xff; + DBG_LOG(1, "ADLC", ("R %d\n", offset)); + return m_adlc ? m_adlc->read(space, 3 - offset) : 0xff; } WRITE8_MEMBER(bitgraph_state::adlc_w) { - LOG("ADLC W %d < %02X\n", offset, data); - if (m_adlc.found()) return m_adlc->write(3 - offset, data); + DBG_LOG(1, "ADLC", ("W %d < %02X\n", offset, data)); + if (m_adlc) return m_adlc->write(space, 3 - offset, data); } uint32_t bitgraph_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) @@ -422,13 +421,13 @@ uint32_t bitgraph_state::screen_update(screen_device &screen, bitmap_ind16 &bitm READ8_MEMBER(bitgraph_state::ppu_read) { uint8_t data = m_ppu[offset]; - LOGDBG("PPU %d == %02X\n", offset, data); + DBG_LOG(2, "PPU", ("%d == %02X\n", offset, data)); return data; } WRITE8_MEMBER(bitgraph_state::ppu_write) { - LOGDBG("PPU %d <- %02X\n", offset, data); + DBG_LOG(2, "PPU", ("%d <- %02X\n", offset, data)); m_ppu[offset] = data; } @@ -447,7 +446,7 @@ void bitgraph_state::ppu_io(address_map &map) */ WRITE8_MEMBER(bitgraph_state::ppu_i8243_w) { - LOG("PPU 8243 %d <- %02X\n", offset + 4, data); + DBG_LOG(1, "PPU", ("8243 %d <- %02X\n", offset + 4, data)); switch (offset) { case 0: @@ -492,15 +491,14 @@ void bitgraph_state::machine_reset() } -void bitgraph_state::bg_motherboard(machine_config &config) -{ - SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_refresh_hz(40); - m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ - m_screen->set_size(1024, 768); - m_screen->set_visarea_full(); - m_screen->set_screen_update(FUNC(bitgraph_state::screen_update)); - m_screen->set_palette("palette"); +MACHINE_CONFIG_START(bitgraph_state::bg_motherboard) + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_REFRESH_RATE(40) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ + MCFG_SCREEN_SIZE(1024, 768) + MCFG_SCREEN_VISIBLE_AREA(0, 1024-1, 0, 768-1) + MCFG_SCREEN_UPDATE_DRIVER(bitgraph_state, screen_update) + MCFG_SCREEN_PALETTE("palette") PALETTE(config, "palette", palette_device::MONOCHROME); @@ -552,17 +550,16 @@ void bitgraph_state::bg_motherboard(machine_config &config) m_pia->readpb_handler().set(FUNC(bitgraph_state::pia_pb_r)); m_pia->writepb_handler().set(FUNC(bitgraph_state::pia_pb_w)); - ER2055(config, m_earom, 0); + MCFG_DEVICE_ADD(EAROM_TAG, ER2055, 0) SPEAKER(config, "mono").front_center(); AY8912(config, m_psg, XTAL(1'294'400)); m_psg->port_a_write_callback().set(FUNC(bitgraph_state::earom_write)); m_psg->add_route(ALL_OUTPUTS, "mono", 1.00); -} +MACHINE_CONFIG_END #ifdef UNUSED_FUNCTION -void bitgraph_state::bg_ppu(machine_config &config) -{ +MACHINE_CONFIG_START(bitgraph_state::bg_ppu) i8035_device &ppu(I8035(config, PPU_TAG, XTAL(6'900'000))); ppu.set_addrmap(AS_IO, &bitgraph_state::ppu_io); // ppu.t0_in_cb().set(FUNC(bitgraph_state::ppu_t0_r)); @@ -572,17 +569,16 @@ void bitgraph_state::bg_ppu(machine_config &config) i8243.read_handler().set_nop(); i8243.write_handler().set(FUNC(bitgraph_state::ppu_i8243_w)); - CENTRONICS(config, m_centronics, centronics_devices, "printer"); - m_centronics->ack_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit6)); - m_centronics->busy_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit7)); - m_centronics->fault_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit4)); - m_centronics->perror_handler().set("cent_status_in", FUNC(input_buffer_device::write_bit5)); + MCFG_CENTRONICS_ADD("centronics", centronics_devices, "printer") + MCFG_CENTRONICS_ACK_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit6)) + MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit7)) + MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit4)) + MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit5)) - INPUT_BUFFER(config, "cent_status_in"); + MCFG_DEVICE_ADD("cent_status_in", INPUT_BUFFER, 0) - output_latch_device ¢_data_out(OUTPUT_LATCH(config, "cent_data_out")); - m_centronics->set_output_latch(cent_data_out); -} + MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") +MACHINE_CONFIG_END #endif void bitgraph_state::bitgrpha(machine_config &config) |