diff options
author | 2019-03-25 22:44:58 +0100 | |
---|---|---|
committer | 2019-03-25 22:44:58 +0100 | |
commit | c24473ddff715ecec2e258a6eb38960cf8c8e98e (patch) | |
tree | 8ea44b6396a6129913c0aac13859b5de9965e972 /src/mame/drivers/tutor.cpp | |
parent | 009cba4fb8102102168ef32870892438327f3705 (diff) | |
parent | 598cd5227223c3b04ca31f0dbc1981256d9ea3ff (diff) |
conflict resolution (nw)
Diffstat (limited to 'src/mame/drivers/tutor.cpp')
-rw-r--r-- | src/mame/drivers/tutor.cpp | 44 |
1 files changed, 23 insertions, 21 deletions
diff --git a/src/mame/drivers/tutor.cpp b/src/mame/drivers/tutor.cpp index ab718403dbf..9fed2d71e4c 100644 --- a/src/mame/drivers/tutor.cpp +++ b/src/mame/drivers/tutor.cpp @@ -296,17 +296,17 @@ READ8_MEMBER( tutor_state::key_r ) char port[12]; uint8_t value; - snprintf(port, ARRAY_LENGTH(port), "LINE%d", offset); + snprintf(port, ARRAY_LENGTH(port), "LINE%d", (offset & 0x007e) >> 3); value = ioport(port)->read(); /* hack for ports overlapping with joystick */ - if (offset == 4 || offset == 5) + if (offset >= 32 && offset < 48) { - snprintf(port, ARRAY_LENGTH(port), "LINE%d_alt", offset); + snprintf(port, ARRAY_LENGTH(port), "LINE%d_alt", (offset & 0x007e) >> 3); value |= ioport(port)->read(); } - return value; + return BIT(value, offset & 7); } @@ -559,10 +559,10 @@ void tutor_state::tutor_memmap(address_map &map) map(0x8000, 0xbfff).bankr("bank2").nopw(); map(0xc000, 0xdfff).noprw(); /*free for expansion, or cartridge ROM?*/ - map(0xe000, 0xe000).rw("tms9928a", FUNC(tms9928a_device::vram_r), FUNC(tms9928a_device::vram_w)); /*VDP data*/ - map(0xe002, 0xe002).rw("tms9928a", FUNC(tms9928a_device::register_r), FUNC(tms9928a_device::register_w));/*VDP status*/ + map(0xe000, 0xe000).rw("tms9928a", FUNC(tms9928a_device::vram_read), FUNC(tms9928a_device::vram_write)); /*VDP data*/ + map(0xe002, 0xe002).rw("tms9928a", FUNC(tms9928a_device::register_read), FUNC(tms9928a_device::register_write));/*VDP status*/ map(0xe100, 0xe1ff).rw(FUNC(tutor_state::tutor_mapper_r), FUNC(tutor_state::tutor_mapper_w)); /*cartridge mapper*/ - map(0xe200, 0xe200).w("sn76489a", FUNC(sn76489a_device::command_w)); /*sound chip*/ + map(0xe200, 0xe200).w("sn76489a", FUNC(sn76489a_device::write)); /*sound chip*/ map(0xe800, 0xe8ff).rw(FUNC(tutor_state::tutor_printer_r), FUNC(tutor_state::tutor_printer_w)); /*printer*/ map(0xee00, 0xeeff).nopr().w(FUNC(tutor_state::tutor_cassette_w)); /*cassette interface*/ @@ -576,10 +576,10 @@ void tutor_state::pyuutajr_mem(address_map &map) map(0x8000, 0xbfff).bankr("bank2").nopw(); map(0xc000, 0xdfff).noprw(); /*free for expansion, or cartridge ROM?*/ - map(0xe000, 0xe000).rw("tms9928a", FUNC(tms9928a_device::vram_r), FUNC(tms9928a_device::vram_w)); /*VDP data*/ - map(0xe002, 0xe002).rw("tms9928a", FUNC(tms9928a_device::register_r), FUNC(tms9928a_device::register_w));/*VDP status*/ + map(0xe000, 0xe000).rw("tms9928a", FUNC(tms9928a_device::vram_read), FUNC(tms9928a_device::vram_write)); /*VDP data*/ + map(0xe002, 0xe002).rw("tms9928a", FUNC(tms9928a_device::register_read), FUNC(tms9928a_device::register_write));/*VDP status*/ map(0xe100, 0xe1ff).rw(FUNC(tutor_state::tutor_mapper_r), FUNC(tutor_state::tutor_mapper_w)); /*cartridge mapper*/ - map(0xe200, 0xe200).w("sn76489a", FUNC(sn76489a_device::command_w)); /*sound chip*/ + map(0xe200, 0xe200).w("sn76489a", FUNC(sn76489a_device::write)); /*sound chip*/ map(0xe800, 0xe800).portr("LINE0"); map(0xea00, 0xea00).portr("LINE1"); map(0xec00, 0xec00).portr("LINE2"); @@ -600,8 +600,8 @@ void tutor_state::pyuutajr_mem(address_map &map) void tutor_state::tutor_io(address_map &map) { - map(0xec0, 0xec7).r(FUNC(tutor_state::key_r)); /*keyboard interface*/ - map(0xed0, 0xed0).r(FUNC(tutor_state::tutor_cassette_r)); /*cassette interface*/ + map(0xec00, 0xec7f).r(FUNC(tutor_state::key_r)); /*keyboard interface*/ + map(0xed00, 0xed01).r(FUNC(tutor_state::tutor_cassette_r)); /*cassette interface*/ } /* tutor keyboard: 56 keys @@ -743,7 +743,8 @@ static INPUT_PORTS_START(pyuutajr) PORT_BIT(0xff, IP_ACTIVE_HIGH, IPT_UNUSED) INPUT_PORTS_END -MACHINE_CONFIG_START(tutor_state::tutor) +void tutor_state::tutor(machine_config &config) +{ // basic machine hardware // TMS9995 CPU @ 10.7 MHz // No lines connected yet @@ -763,7 +764,8 @@ MACHINE_CONFIG_START(tutor_state::tutor) CENTRONICS(config, m_centronics, centronics_devices, "printer").busy_handler().set(FUNC(tutor_state::write_centronics_busy)); - MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics") + OUTPUT_LATCH(config, m_cent_data_out); + m_centronics->set_output_latch(*m_cent_data_out); // Cassette SPEAKER(config, "cass_out").front_center(); @@ -775,15 +777,15 @@ MACHINE_CONFIG_START(tutor_state::tutor) // software lists SOFTWARE_LIST(config, "cart_list").set_type("tutor", SOFTWARE_LIST_ORIGINAL_SYSTEM); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(tutor_state::pyuutajr) +void tutor_state::pyuutajr(machine_config &config) +{ tutor(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(pyuutajr_mem) - //MCFG_DEVICE_REMOVE("centronics") - //MCFG_DEVICE_REMOVE("cassette") -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &tutor_state::pyuutajr_mem); + //config.device_remove("centronics"); + //config.device_remove("cassette"); +} /* ROM loading |