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