summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/subsino2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/subsino2.cpp')
-rw-r--r--src/mame/drivers/subsino2.cpp39
1 files changed, 26 insertions, 13 deletions
diff --git a/src/mame/drivers/subsino2.cpp b/src/mame/drivers/subsino2.cpp
index d127b136e3f..56f04af30a4 100644
--- a/src/mame/drivers/subsino2.cpp
+++ b/src/mame/drivers/subsino2.cpp
@@ -191,6 +191,19 @@ public:
void expcard(machine_config &config);
void xplan(machine_config &config);
void xtrain(machine_config &config);
+ void bishjan_map(address_map &map);
+ void expcard_io(address_map &map);
+ void humlan_map(address_map &map);
+ void mtrain_io(address_map &map);
+ void mtrain_map(address_map &map);
+ void new2001_base_map(address_map &map);
+ void new2001_map(address_map &map);
+ void ramdac_map(address_map &map);
+ void saklove_io(address_map &map);
+ void saklove_map(address_map &map);
+ void xplan_io(address_map &map);
+ void xplan_map(address_map &map);
+ void xtrain_io(address_map &map);
private:
inline void ss9601_get_tile_info(layer_t *l, tile_data &tileinfo, tilemap_memory_index tile_index);
};
@@ -907,7 +920,7 @@ WRITE16_MEMBER(subsino2_state::bishjan_outputs_w)
}
-static ADDRESS_MAP_START( bishjan_map, AS_PROGRAM, 16, subsino2_state )
+ADDRESS_MAP_START(subsino2_state::bishjan_map)
ADDRESS_MAP_GLOBAL_MASK(0xffffff)
AM_RANGE( 0x000000, 0x07ffff ) AM_ROM AM_REGION("maincpu", 0)
@@ -956,7 +969,7 @@ static ADDRESS_MAP_START( bishjan_map, AS_PROGRAM, 16, subsino2_state )
AM_RANGE( 0xc00008, 0xc00009 ) AM_READ_PORT("RESET") AM_WRITE(bishjan_outputs_w ) AM_SHARE("outputs16")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( ramdac_map, 0, 8, subsino2_state )
+ADDRESS_MAP_START(subsino2_state::ramdac_map)
AM_RANGE(0x000, 0x3ff) AM_DEVREADWRITE("ramdac", ramdac_device, ramdac_pal_r, ramdac_rgb666_w)
ADDRESS_MAP_END
@@ -995,7 +1008,7 @@ WRITE16_MEMBER(subsino2_state::new2001_outputs_w)
}
// Same as bishjan (except for i/o and lo2 usage like xplan)
-static ADDRESS_MAP_START( new2001_base_map, AS_PROGRAM, 16, subsino2_state )
+ADDRESS_MAP_START(subsino2_state::new2001_base_map)
ADDRESS_MAP_GLOBAL_MASK(0xffffff)
AM_RANGE( 0x000000, 0x07ffff ) AM_ROM AM_REGION("maincpu", 0)
@@ -1048,7 +1061,7 @@ static ADDRESS_MAP_START( new2001_base_map, AS_PROGRAM, 16, subsino2_state )
AM_RANGE( 0xc00006, 0xc00007 ) AM_READ(bishjan_serial_r )
ADDRESS_MAP_END
-static ADDRESS_MAP_START( new2001_map, AS_PROGRAM, 16, subsino2_state )
+ADDRESS_MAP_START(subsino2_state::new2001_map)
AM_IMPORT_FROM(new2001_base_map)
AM_RANGE( 0xc00008, 0xc00009 ) AM_WRITE(new2001_outputs_w ) AM_SHARE("outputs16")
ADDRESS_MAP_END
@@ -1084,7 +1097,7 @@ WRITE16_MEMBER(subsino2_state::humlan_outputs_w)
// popmessage("0: %04x", m_outputs16[0]);
}
-static ADDRESS_MAP_START( humlan_map, AS_PROGRAM, 16, subsino2_state )
+ADDRESS_MAP_START(subsino2_state::humlan_map)
AM_IMPORT_FROM(new2001_base_map)
AM_RANGE( 0xc00008, 0xc00009 ) AM_WRITE(humlan_outputs_w ) AM_SHARE("outputs16")
ADDRESS_MAP_END
@@ -1218,7 +1231,7 @@ READ8_MEMBER(subsino2_state::mtrain_prot_r)
return "SUBSION"[offset];
}
-static ADDRESS_MAP_START( mtrain_map, AS_PROGRAM, 8, subsino2_state )
+ADDRESS_MAP_START(subsino2_state::mtrain_map)
AM_RANGE( 0x00000, 0x06fff ) AM_ROM
AM_RANGE( 0x07800, 0x07fff ) AM_RAM AM_SHARE("nvram") // battery
@@ -1253,7 +1266,7 @@ static ADDRESS_MAP_START( mtrain_map, AS_PROGRAM, 8, subsino2_state )
AM_RANGE( 0x0a000, 0x0ffff ) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mtrain_io, AS_IO, 8, subsino2_state )
+ADDRESS_MAP_START(subsino2_state::mtrain_io)
AM_RANGE( 0x0000, 0x003f ) AM_RAM // internal regs
ADDRESS_MAP_END
@@ -1286,7 +1299,7 @@ WRITE8_MEMBER(subsino2_state::saklove_outputs_w)
// popmessage("0: %02x - 1: %02x - 2: %02x - 3: %02x", m_outputs[0], m_outputs[1], m_outputs[2], m_outputs[3]);
}
-static ADDRESS_MAP_START( saklove_map, AS_PROGRAM, 8, subsino2_state )
+ADDRESS_MAP_START(subsino2_state::saklove_map)
AM_RANGE(0x00000, 0x07fff) AM_RAM AM_SHARE("nvram") // battery
// read lo (L1) (only half tilemap?)
@@ -1311,7 +1324,7 @@ static ADDRESS_MAP_START( saklove_map, AS_PROGRAM, 8, subsino2_state )
AM_RANGE(0xe0000, 0xfffff) AM_ROM AM_REGION("maincpu",0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( saklove_io, AS_IO, 8, subsino2_state )
+ADDRESS_MAP_START(subsino2_state::saklove_io)
AM_RANGE(0x0000, 0x0000) AM_WRITE(ss9601_scrollctrl_w )
AM_RANGE(0x0020, 0x0020) AM_DEVREADWRITE("oki", okim6295_device, read, write)
@@ -1376,7 +1389,7 @@ WRITE8_MEMBER(subsino2_state::xplan_outputs_w)
// popmessage("0: %02x - 1: %02x - 2: %02x - 3: %02x", m_outputs[0], m_outputs[1], m_outputs[2], m_outputs[3]);
}
-static ADDRESS_MAP_START( xplan_map, AS_PROGRAM, 8, subsino2_state )
+ADDRESS_MAP_START(subsino2_state::xplan_map)
AM_RANGE(0x00000, 0x07fff) AM_RAM AM_SHARE("nvram") // battery
// write both (L1, byte_lo2)
@@ -1410,7 +1423,7 @@ static ADDRESS_MAP_START( xplan_map, AS_PROGRAM, 8, subsino2_state )
AM_RANGE(0xc0000, 0xfffff) AM_ROM AM_REGION("maincpu",0)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( xplan_io, AS_IO, 8, subsino2_state )
+ADDRESS_MAP_START(subsino2_state::xplan_io)
AM_RANGE(0x0000, 0x0000) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x0020, 0x0020) AM_WRITE(ss9601_byte_lo2_w )
@@ -1479,14 +1492,14 @@ WRITE8_MEMBER(subsino2_state::xtrain_outputs_w)
// popmessage("0: %02x - 1: %02x - 2: %02x - 3: %02x", m_outputs[0], m_outputs[1], m_outputs[2], m_outputs[3]);
}
-static ADDRESS_MAP_START( expcard_io, AS_IO, 8, subsino2_state )
+ADDRESS_MAP_START(subsino2_state::expcard_io)
AM_IMPORT_FROM( xplan_io )
// 306 = d, 307 = c, 308 = b, 309 = a
AM_RANGE(0x0306, 0x0309) AM_WRITE(expcard_outputs_w ) AM_SHARE("outputs")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( xtrain_io, AS_IO, 8, subsino2_state )
+ADDRESS_MAP_START(subsino2_state::xtrain_io)
AM_IMPORT_FROM( xplan_io )
// 306 = d, 307 = c, 308 = b, 309 = a