diff options
Diffstat (limited to 'src/mame/drivers/timex.cpp')
-rw-r--r-- | src/mame/drivers/timex.cpp | 80 |
1 files changed, 36 insertions, 44 deletions
diff --git a/src/mame/drivers/timex.cpp b/src/mame/drivers/timex.cpp index cec0c0bc2b8..a5bb629ca0f 100644 --- a/src/mame/drivers/timex.cpp +++ b/src/mame/drivers/timex.cpp @@ -165,23 +165,23 @@ http://www.z88forever.org.uk/zxplus3e/ /* TS2048 specific functions */ -uint8_t timex_state::ts2068_port_f4_r() +uint8_t ts2068_state::port_f4_r() { return m_port_f4_data; } -void timex_state::ts2068_port_f4_w(uint8_t data) +void ts2068_state::port_f4_w(uint8_t data) { m_port_f4_data = data; ts2068_update_memory(); } -uint8_t timex_state::ts2068_port_ff_r() +uint8_t tc2048_state::port_ff_r() { return m_port_ff_data; } -void timex_state::ts2068_port_ff_w(offs_t offset, uint8_t data) +void ts2068_state::port_ff_w(offs_t offset, uint8_t data) { /* Bits 0-2 Video Mode Select Bits 3-5 64 column mode ink/paper selection @@ -212,7 +212,7 @@ void timex_state::ts2068_port_ff_w(offs_t offset, uint8_t data) * at the same time. * *******************************************************************/ -void timex_state::ts2068_update_memory() +void ts2068_state::ts2068_update_memory() { uint8_t *messram = nullptr; if (m_ram) messram = m_ram->pointer(); @@ -525,16 +525,16 @@ void timex_state::ts2068_update_memory() } } -void timex_state::ts2068_io(address_map &map) +void ts2068_state::ts2068_io(address_map &map) { - map(0xf4, 0xf4).rw(FUNC(timex_state::ts2068_port_f4_r), FUNC(timex_state::ts2068_port_f4_w)).mirror(0xff00); + map(0xf4, 0xf4).rw(FUNC(ts2068_state::port_f4_r), FUNC(ts2068_state::port_f4_w)).mirror(0xff00); map(0xf5, 0xf5).w("ay8912", FUNC(ay8910_device::address_w)).mirror(0xff00); map(0xf6, 0xf6).rw("ay8912", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w)).mirror(0xff00); - map(0xfe, 0xfe).rw(FUNC(timex_state::spectrum_port_fe_r), FUNC(timex_state::spectrum_port_fe_w)).select(0xff00); - map(0xff, 0xff).rw(FUNC(timex_state::ts2068_port_ff_r), FUNC(timex_state::ts2068_port_ff_w)).mirror(0xff00); + map(0xfe, 0xfe).rw(FUNC(ts2068_state::spectrum_port_fe_r), FUNC(ts2068_state::spectrum_port_fe_w)).select(0xff00); + map(0xff, 0xff).rw(FUNC(ts2068_state::port_ff_r), FUNC(ts2068_state::port_ff_w)).mirror(0xff00); } -void timex_state::ts2068_mem(address_map &map) +void ts2068_state::ts2068_mem(address_map &map) { map(0x0000, 0x1fff).bankr("bank1").bankw("bank9"); map(0x2000, 0x3fff).bankr("bank2").bankw("bank10"); @@ -547,7 +547,7 @@ void timex_state::ts2068_mem(address_map &map) } -MACHINE_RESET_MEMBER(timex_state,ts2068) +void ts2068_state::machine_reset() { m_port_ff_data = 0; m_port_f4_data = 0; @@ -557,7 +557,7 @@ MACHINE_RESET_MEMBER(timex_state,ts2068) m_dock_cart_type = m_dock_crt ? TIMEX_CART_DOCK : TIMEX_CART_NONE; ts2068_update_memory(); - MACHINE_RESET_CALL_MEMBER(spectrum); + spectrum_state::machine_reset(); } @@ -565,25 +565,25 @@ MACHINE_RESET_MEMBER(timex_state,ts2068) /* TC2048 specific functions */ -void timex_state::tc2048_port_ff_w(offs_t offset, uint8_t data) +void tc2048_state::port_ff_w(offs_t offset, uint8_t data) { m_port_ff_data = data; logerror("Port %04x write %02x\n", offset, data); } -void timex_state::tc2048_io(address_map &map) +void tc2048_state::tc2048_io(address_map &map) { - map(0x00, 0x00).rw(FUNC(timex_state::spectrum_port_fe_r), FUNC(timex_state::spectrum_port_fe_w)).select(0xfffe); - map(0xff, 0xff).rw(FUNC(timex_state::ts2068_port_ff_r), FUNC(timex_state::tc2048_port_ff_w)).mirror(0xff00); + map(0x00, 0x00).rw(FUNC(tc2048_state::spectrum_port_fe_r), FUNC(tc2048_state::spectrum_port_fe_w)).select(0xfffe); + map(0xff, 0xff).rw(FUNC(tc2048_state::port_ff_r), FUNC(tc2048_state::port_ff_w)).mirror(0xff00); } -void timex_state::tc2048_mem(address_map &map) +void tc2048_state::tc2048_mem(address_map &map) { map(0x0000, 0x3fff).rom(); map(0x4000, 0xffff).bankr("bank1").bankw("bank2"); } -MACHINE_RESET_MEMBER(timex_state,tc2048) +void tc2048_state::machine_reset() { uint8_t *messram = m_ram->pointer(); @@ -591,11 +591,11 @@ MACHINE_RESET_MEMBER(timex_state,tc2048) membank("bank2")->set_base(messram); m_port_ff_data = 0; m_port_f4_data = -1; - MACHINE_RESET_CALL_MEMBER(spectrum); + spectrum_state::machine_reset(); } -DEVICE_IMAGE_LOAD_MEMBER( timex_state::cart_load ) +DEVICE_IMAGE_LOAD_MEMBER( ts2068_state::cart_load ) { uint32_t size = m_dock->common_get_size("rom"); @@ -686,34 +686,30 @@ static GFXDECODE_START( gfx_ts2068 ) GFXDECODE_ENTRY( "maincpu", 0x13d00, ts2068_charlayout, 0, 8 ) GFXDECODE_END -void timex_state::ts2068(machine_config &config) +void ts2068_state::ts2068(machine_config &config) { spectrum_128(config); Z80(config.replace(), m_maincpu, XTAL(14'112'000)/4); /* From Schematic; 3.528 MHz */ - m_maincpu->set_addrmap(AS_PROGRAM, &timex_state::ts2068_mem); - m_maincpu->set_addrmap(AS_IO, &timex_state::ts2068_io); - m_maincpu->set_vblank_int("screen", FUNC(timex_state::spec_interrupt)); + m_maincpu->set_addrmap(AS_PROGRAM, &ts2068_state::ts2068_mem); + m_maincpu->set_addrmap(AS_IO, &ts2068_state::ts2068_io); + m_maincpu->set_vblank_int("screen", FUNC(ts2068_state::spec_interrupt)); config.set_maximum_quantum(attotime::from_hz(60)); - MCFG_MACHINE_RESET_OVERRIDE(timex_state, ts2068 ) - /* video hardware */ m_screen->set_refresh_hz(60); m_screen->set_size(TS2068_SCREEN_WIDTH, TS2068_SCREEN_HEIGHT); m_screen->set_visarea(0, TS2068_SCREEN_WIDTH-1, 0, TS2068_SCREEN_HEIGHT-1); - m_screen->set_screen_update(FUNC(timex_state::screen_update_ts2068)); - m_screen->screen_vblank().set(FUNC(timex_state::screen_vblank_timex)); + m_screen->set_screen_update(FUNC(ts2068_state::screen_update)); + m_screen->screen_vblank().set(FUNC(ts2068_state::screen_vblank_timex)); subdevice<gfxdecode_device>("gfxdecode")->set_info(gfx_ts2068); - MCFG_VIDEO_START_OVERRIDE(timex_state, ts2068 ) - /* sound */ AY8912(config.replace(), "ay8912", XTAL(14'112'000)/8).add_route(ALL_OUTPUTS, "mono", 0.25); /* From Schematic; 1.764 MHz */ /* cartridge */ - GENERIC_CARTSLOT(config, "dockslot", generic_plain_slot, "timex_cart", "dck,bin").set_device_load(FUNC(timex_state::cart_load)); + GENERIC_CARTSLOT(config, "dockslot", generic_plain_slot, "timex_cart", "dck,bin").set_device_load(FUNC(ts2068_state::cart_load)); /* Software lists */ SOFTWARE_LIST(config, "cart_list").set_original("timex_dock"); @@ -724,29 +720,25 @@ void timex_state::ts2068(machine_config &config) } -void timex_state::uk2086(machine_config &config) +void ts2068_state::uk2086(machine_config &config) { ts2068(config); m_screen->set_refresh_hz(50); } -void timex_state::tc2048(machine_config &config) +void tc2048_state::tc2048(machine_config &config) { spectrum(config); - m_maincpu->set_addrmap(AS_PROGRAM, &timex_state::tc2048_mem); - m_maincpu->set_addrmap(AS_IO, &timex_state::tc2048_io); - - MCFG_MACHINE_RESET_OVERRIDE(timex_state, tc2048 ) + m_maincpu->set_addrmap(AS_PROGRAM, &tc2048_state::tc2048_mem); + m_maincpu->set_addrmap(AS_IO, &tc2048_state::tc2048_io); /* video hardware */ m_screen->set_refresh_hz(50); m_screen->set_size(TS2068_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT); m_screen->set_visarea(0, TS2068_SCREEN_WIDTH-1, 0, SPEC_SCREEN_HEIGHT-1); - m_screen->set_screen_update(FUNC(timex_state::screen_update_tc2048)); - m_screen->screen_vblank().set(FUNC(timex_state::screen_vblank_timex)); - - MCFG_VIDEO_START_OVERRIDE(timex_state, spectrum_128 ) + m_screen->set_screen_update(FUNC(tc2048_state::screen_update)); + m_screen->screen_vblank().set(FUNC(tc2048_state::screen_vblank_timex)); /* internal ram */ m_ram->set_default_size("48K"); @@ -781,6 +773,6 @@ ROM_START(uk2086) ROM_END // YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS -COMP( 1984, tc2048, spectrum, 0, tc2048, spectrum, timex_state, empty_init, "Timex of Portugal", "TC-2048" , 0 ) -COMP( 1983, ts2068, spectrum, 0, ts2068, spectrum, timex_state, empty_init, "Timex Sinclair", "TS-2068" , 0 ) -COMP( 1986, uk2086, spectrum, 0, uk2086, spectrum, timex_state, empty_init, "Unipolbrit", "UK-2086 ver. 1.2" , 0 ) +COMP( 1984, tc2048, spectrum, 0, tc2048, spectrum, tc2048_state, empty_init, "Timex of Portugal", "TC-2048" , 0 ) +COMP( 1983, ts2068, spectrum, 0, ts2068, spectrum, ts2068_state, empty_init, "Timex Sinclair", "TS-2068" , 0 ) +COMP( 1986, uk2086, spectrum, 0, uk2086, spectrum, ts2068_state, empty_init, "Unipolbrit", "UK-2086 ver. 1.2" , 0 ) |