summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/ec184x.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/ec184x.cpp')
-rw-r--r--src/mame/drivers/ec184x.cpp126
1 files changed, 61 insertions, 65 deletions
diff --git a/src/mame/drivers/ec184x.cpp b/src/mame/drivers/ec184x.cpp
index 98a3056406c..43f1901503b 100644
--- a/src/mame/drivers/ec184x.cpp
+++ b/src/mame/drivers/ec184x.cpp
@@ -18,20 +18,19 @@
#include "machine/ram.h"
#include "softlist.h"
+#define EC1841_MEMBOARD_SIZE (512*1024)
-//#define LOG_GENERAL (1U << 0) //defined in logmacro.h already
-#define LOG_KEYBOARD (1U << 1)
-#define LOG_DEBUG (1U << 2)
-
-//#define VERBOSE (LOG_DEBUG)
-//#define LOG_OUTPUT_FUNC printf
-#include "logmacro.h"
-
-#define LOGKBD(...) LOGMASKED(LOG_KEYBOARD, __VA_ARGS__)
-#define LOGDBG(...) LOGMASKED(LOG_DEBUG, __VA_ARGS__)
-
+#define VERBOSE_DBG 1 /* general debug messages */
-#define EC1841_MEMBOARD_SIZE (512*1024)
+#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 ec184x_state : public driver_device
@@ -99,7 +98,7 @@ READ8_MEMBER(ec184x_state::memboard_r)
data = 0xff;
else
data = m_memory.enable[data];
- LOG("ec1841_memboard R (%d of %d) == %02X\n", offset + 1, m_memory.boards, data);
+ DBG_LOG(1, "ec1841_memboard", ("R (%d of %d) == %02X\n", offset + 1, m_memory.boards, data));
return data;
}
@@ -109,7 +108,7 @@ WRITE8_MEMBER(ec184x_state::memboard_w)
address_space &program = m_maincpu->space(AS_PROGRAM);
uint8_t current = m_memory.enable[offset];
- LOG("ec1841_memboard W (%d of %d) <- %02X (%02X)\n", offset + 1, m_memory.boards, data, current);
+ DBG_LOG(1, "ec1841_memboard", ("W (%d of %d) <- %02X (%02X)\n", offset + 1, m_memory.boards, data, current));
if (offset >= m_memory.boards)
{
@@ -120,14 +119,14 @@ WRITE8_MEMBER(ec184x_state::memboard_w)
{
// disable read access
program.unmap_read(0, EC1841_MEMBOARD_SIZE - 1);
- LOG("ec1841_memboard_w unmap_read(%d)\n", offset);
+ DBG_LOG(1, "ec1841_memboard_w", ("unmap_read(%d)\n", offset));
}
if (BIT(current, 3) && !BIT(data, 3))
{
// disable write access
program.unmap_write(0, EC1841_MEMBOARD_SIZE - 1);
- LOG("ec1841_memboard_w unmap_write(%d)\n", offset);
+ DBG_LOG(1, "ec1841_memboard_w", ("unmap_write(%d)\n", offset));
}
if (!BIT(current, 2) && BIT(data, 2))
@@ -137,7 +136,7 @@ WRITE8_MEMBER(ec184x_state::memboard_w)
// enable read access
membank("bank10")->set_base(m_ram->pointer() + offset * EC1841_MEMBOARD_SIZE);
program.install_read_bank(0, EC1841_MEMBOARD_SIZE - 1, "bank10");
- LOG("ec1841_memboard_w map_read(%d)\n", offset);
+ DBG_LOG(1, "ec1841_memboard_w", ("map_read(%d)\n", offset));
}
if (!BIT(current, 3) && BIT(data, 3))
@@ -147,7 +146,7 @@ WRITE8_MEMBER(ec184x_state::memboard_w)
// enable write access
membank("bank20")->set_base(m_ram->pointer() + offset * EC1841_MEMBOARD_SIZE);
program.install_write_bank(0, EC1841_MEMBOARD_SIZE - 1, "bank20");
- LOG("ec1841_memboard_w map_write(%d)\n", offset);
+ DBG_LOG(1, "ec1841_memboard_w", ("map_write(%d)\n", offset));
}
m_memory.enable[offset] = data;
@@ -225,78 +224,75 @@ void ec184x_state::ec1847_io(address_map &map)
// XXX verify everything
-void ec184x_state::ec1840(machine_config &config)
-{
- I8088(config, m_maincpu, 4096000);
- m_maincpu->set_addrmap(AS_PROGRAM, &ec184x_state::ec1840_map);
- m_maincpu->set_addrmap(AS_IO, &ec184x_state::ec1840_io);
- m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb));
+MACHINE_CONFIG_START(ec184x_state::ec1840)
+ MCFG_DEVICE_ADD("maincpu", I8088, 4096000)
+ MCFG_DEVICE_PROGRAM_MAP(ec1840_map)
+ MCFG_DEVICE_IO_MAP(ec1840_io)
+ MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb)
- IBM5150_MOTHERBOARD(config, "mb", 0).set_cputag(m_maincpu);
+ MCFG_IBM5150_MOTHERBOARD_ADD("mb","maincpu")
// FIXME: determine ISA bus clock
- ISA8_SLOT(config, "isa1", 0, "mb:isa", ec184x_isa8_cards, "ec1840.0002", false);
- ISA8_SLOT(config, "isa2", 0, "mb:isa", ec184x_isa8_cards, "ec1840.0003", false);
- ISA8_SLOT(config, "isa3", 0, "mb:isa", ec184x_isa8_cards, nullptr, false);
- ISA8_SLOT(config, "isa4", 0, "mb:isa", ec184x_isa8_cards, nullptr, false);
- ISA8_SLOT(config, "isa5", 0, "mb:isa", ec184x_isa8_cards, nullptr, false);
- ISA8_SLOT(config, "isa6", 0, "mb:isa", ec184x_isa8_cards, nullptr, false);
+ MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", ec184x_isa8_cards, "ec1840.0002", false)
+ MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", ec184x_isa8_cards, "ec1840.0003", false)
+ MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", ec184x_isa8_cards, nullptr, false)
+ MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", ec184x_isa8_cards, nullptr, false)
+ MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, "mb:isa", ec184x_isa8_cards, nullptr, false)
+ MCFG_DEVICE_ADD("isa6", ISA8_SLOT, 0, "mb:isa", ec184x_isa8_cards, nullptr, false)
- SOFTWARE_LIST(config, "flop_list").set_original("ec1841");
+ MCFG_SOFTWARE_LIST_ADD("flop_list","ec1841")
- PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_EC_1841).set_pc_kbdc_slot(subdevice("mb:pc_kbdc"));
+ MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_xt_keyboards, STR_KBD_EC_1841)
RAM(config, m_ram).set_default_size("512K");
-}
+MACHINE_CONFIG_END
-void ec184x_state::ec1841(machine_config &config)
-{
- I8086(config, m_maincpu, XTAL(12'288'000) / 3);
- m_maincpu->set_addrmap(AS_PROGRAM, &ec184x_state::ec1841_map);
- m_maincpu->set_addrmap(AS_IO, &ec184x_state::ec1841_io);
- m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb));
+MACHINE_CONFIG_START(ec184x_state::ec1841)
+ MCFG_DEVICE_ADD("maincpu", I8086, XTAL(12'288'000) / 3)
+ MCFG_DEVICE_PROGRAM_MAP(ec1841_map)
+ MCFG_DEVICE_IO_MAP(ec1841_io)
+ MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb)
MCFG_MACHINE_RESET_OVERRIDE(ec184x_state, ec1841)
- EC1841_MOTHERBOARD(config, "mb", 0).set_cputag(m_maincpu);
+ MCFG_EC1841_MOTHERBOARD_ADD("mb", "maincpu")
// FIXME: determine ISA bus clock
- ISA8_SLOT(config, "isa1", 0, "mb:isa", ec184x_isa8_cards, "ec1841.0002", false); // cga
- ISA8_SLOT(config, "isa2", 0, "mb:isa", ec184x_isa8_cards, "ec1841.0003", false); // fdc (IRQ6) + mouse port (IRQ2..5)
- ISA8_SLOT(config, "isa3", 0, "mb:isa", ec184x_isa8_cards, "ec1841.0004", false); // lpt (IRQ7||5) [+ serial (IRQx)]
- ISA8_SLOT(config, "isa4", 0, "mb:isa", ec184x_isa8_cards, "hdc", false);
- ISA8_SLOT(config, "isa5", 0, "mb:isa", ec184x_isa8_cards, nullptr, false);
- ISA8_SLOT(config, "isa6", 0, "mb:isa", ec184x_isa8_cards, nullptr, false);
+ MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", ec184x_isa8_cards, "ec1841.0002", false) // cga
+ MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", ec184x_isa8_cards, "ec1841.0003", false) // fdc (IRQ6) + mouse port (IRQ2..5)
+ MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", ec184x_isa8_cards, "ec1841.0004", false) // lpt (IRQ7||5) [+ serial (IRQx)]
+ MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", ec184x_isa8_cards, "hdc", false)
+ MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, "mb:isa", ec184x_isa8_cards, nullptr, false)
+ MCFG_DEVICE_ADD("isa6", ISA8_SLOT, 0, "mb:isa", ec184x_isa8_cards, nullptr, false)
- SOFTWARE_LIST(config, "flop_list").set_original("ec1841");
+ MCFG_SOFTWARE_LIST_ADD("flop_list","ec1841")
- PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_EC_1841).set_pc_kbdc_slot(subdevice("mb:pc_kbdc"));
+ MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_xt_keyboards, STR_KBD_EC_1841)
RAM(config, m_ram).set_default_size("640K").set_extra_options("512K,1024K,1576K,2048K");
-}
+MACHINE_CONFIG_END
// XXX verify everything
-void ec184x_state::ec1847(machine_config &config)
-{
- I8088(config, m_maincpu, 4772720);
- m_maincpu->set_addrmap(AS_PROGRAM, &ec184x_state::ec1847_map);
- m_maincpu->set_addrmap(AS_IO, &ec184x_state::ec1847_io);
- m_maincpu->set_irq_acknowledge_callback("mb:pic8259", FUNC(pic8259_device::inta_cb));
+MACHINE_CONFIG_START(ec184x_state::ec1847)
+ MCFG_DEVICE_ADD("maincpu", I8088, 4772720)
+ MCFG_DEVICE_PROGRAM_MAP(ec1847_map)
+ MCFG_DEVICE_IO_MAP(ec1847_io)
+ MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("mb:pic8259", pic8259_device, inta_cb)
- IBM5160_MOTHERBOARD(config, "mb", 0).set_cputag(m_maincpu);
+ MCFG_IBM5160_MOTHERBOARD_ADD("mb","maincpu")
// FIXME: determine ISA bus clock
- ISA8_SLOT(config, "isa1", 0, "mb:isa", pc_isa8_cards, "hercules", false); // cga, ega and vga(?) are options too
- ISA8_SLOT(config, "isa2", 0, "mb:isa", pc_isa8_cards, "fdc_xt", false);
- ISA8_SLOT(config, "isa3", 0, "mb:isa", pc_isa8_cards, nullptr, false); // native variant (wd1010 + z80) not emulated
- ISA8_SLOT(config, "isa4", 0, "mb:isa", pc_isa8_cards, nullptr, false); // native serial (2x8251) not emulated
- ISA8_SLOT(config, "isa5", 0, "mb:isa", pc_isa8_cards, nullptr, false);
- ISA8_SLOT(config, "isa6", 0, "mb:isa", pc_isa8_cards, nullptr, false);
+ MCFG_DEVICE_ADD("isa1", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "hercules", false) // cga, ega and vga(?) are options too
+ MCFG_DEVICE_ADD("isa2", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, "fdc_xt", false)
+ MCFG_DEVICE_ADD("isa3", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) // native variant (wd1010 + z80) not emulated
+ MCFG_DEVICE_ADD("isa4", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false) // native serial (2x8251) not emulated
+ MCFG_DEVICE_ADD("isa5", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
+ MCFG_DEVICE_ADD("isa6", ISA8_SLOT, 0, "mb:isa", pc_isa8_cards, nullptr, false)
- PC_KBDC_SLOT(config, "kbd", pc_xt_keyboards, STR_KBD_KEYTRONIC_PC3270).set_pc_kbdc_slot(subdevice("mb:pc_kbdc"));
+ MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_xt_keyboards, STR_KBD_KEYTRONIC_PC3270)
RAM(config, m_ram).set_default_size("640K");
-}
+MACHINE_CONFIG_END
ROM_START( ec1840 )
ROM_REGION16_LE(0x10000,"bios", 0)