diff options
Diffstat (limited to 'src/mame/drivers/ec184x.cpp')
-rw-r--r-- | src/mame/drivers/ec184x.cpp | 126 |
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) |