summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/bitgraph.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/bitgraph.cpp')
-rw-r--r--src/mame/drivers/bitgraph.cpp116
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 &cent_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)