summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/drivers
diff options
context:
space:
mode:
author Fabio Priuli <etabeta78@users.noreply.github.com>2014-09-18 20:36:02 +0000
committer Fabio Priuli <etabeta78@users.noreply.github.com>2014-09-18 20:36:02 +0000
commitf7e216c3b95c1e6730881999273ecd317af1372c (patch)
treefe8c14d6cab96a34a3ba7b7dab0a21ab70f1f13f /src/mess/drivers
parent739cfa61b0a79b39ccb1f034398a269370bddb73 (diff)
(MESS) unified some functions for generic socket / cart and
converted a few more drivers to use the new code instead of old cartslot. nw.
Diffstat (limited to 'src/mess/drivers')
-rw-r--r--src/mess/drivers/aquarius.c15
-rw-r--r--src/mess/drivers/atarist.c157
-rw-r--r--src/mess/drivers/bbcbc.c42
-rw-r--r--src/mess/drivers/pv2000.c15
-rw-r--r--src/mess/drivers/rx78.c17
-rw-r--r--src/mess/drivers/supracan.c19
6 files changed, 43 insertions, 222 deletions
diff --git a/src/mess/drivers/aquarius.c b/src/mess/drivers/aquarius.c
index 358337ac8ad..4dd5e1d71f6 100644
--- a/src/mess/drivers/aquarius.c
+++ b/src/mess/drivers/aquarius.c
@@ -171,8 +171,11 @@ WRITE8_MEMBER(aquarius_state::scrambler_w)
READ8_MEMBER(aquarius_state::cartridge_r)
{
- UINT8 *rom = m_rom->base() + 0xc000;
- return rom[offset] ^ m_scrambler;
+ UINT8 data = 0;
+ if (m_cart->cart_mounted())
+ data = m_cart->read_rom(space, offset);
+
+ return data ^ m_scrambler;
}
@@ -373,10 +376,7 @@ static MACHINE_CONFIG_START( aquarius, aquarius_state )
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED)
/* cartridge */
- MCFG_CARTSLOT_ADD("cart")
- MCFG_CARTSLOT_EXTENSION_LIST("bin")
- MCFG_CARTSLOT_NOT_MANDATORY
- MCFG_CARTSLOT_INTERFACE("aquarius_cart")
+ MCFG_GENERIC_CARTSLOT_ADD("cartslot", GENERIC_ROM8_WIDTH, generic_linear_slot, "aquarius_cart")
/* internal ram */
MCFG_RAM_ADD(RAM_TAG)
@@ -402,9 +402,6 @@ ROM_START( aquarius )
ROM_SYSTEM_BIOS(1, "rev2", "Revision 2")
ROMX_LOAD("aq2.u2", 0x0000, 0x2000, CRC(a2d15bcf) SHA1(ca6ef55e9ead41453efbf5062d6a60285e9661a6), ROM_BIOS(2))
- /* cartridge */
- ROM_CART_LOAD("cart", 0xc000, 0x4000, ROM_MIRROR)
-
/* charrom */
ROM_REGION(0x800, "gfx1", 0)
ROM_LOAD("aq2.u5", 0x000, 0x800, CRC(e117f57c) SHA1(3588c0267c67dfbbda615bcf8dc3d3a5c5bd815a))
diff --git a/src/mess/drivers/atarist.c b/src/mess/drivers/atarist.c
index 8cf77636b80..78770e61da2 100644
--- a/src/mess/drivers/atarist.c
+++ b/src/mess/drivers/atarist.c
@@ -1228,7 +1228,7 @@ static ADDRESS_MAP_START( st_map, AS_PROGRAM, 16, st_state )
AM_RANGE(0x000008, 0x1fffff) AM_RAM
AM_RANGE(0x200000, 0x3fffff) AM_RAM
AM_RANGE(0x400000, 0xf9ffff) AM_READWRITE(berr_r, berr_w)
- AM_RANGE(0xfa0000, 0xfbffff) AM_ROM AM_REGION("cart", 0)
+ //AM_RANGE(0xfa0000, 0xfbffff) // mapped by the cartslot
AM_RANGE(0xfc0000, 0xfeffff) AM_ROM AM_REGION(M68000_TAG, 0) AM_WRITE(berr_w)
AM_RANGE(0xff8000, 0xff8001) AM_READWRITE8(mmu_r, mmu_w, 0x00ff)
AM_RANGE(0xff8200, 0xff8203) AM_READWRITE8(shifter_base_r, shifter_base_w, 0x00ff)
@@ -1272,7 +1272,7 @@ static ADDRESS_MAP_START( megast_map, AS_PROGRAM, 16, megast_state )
AM_RANGE(0x000000, 0x000007) AM_ROM AM_REGION(M68000_TAG, 0)
AM_RANGE(0x000008, 0x1fffff) AM_RAM
AM_RANGE(0x200000, 0x3fffff) AM_RAM
- AM_RANGE(0xfa0000, 0xfbffff) AM_ROM AM_REGION("cart", 0)
+ //AM_RANGE(0xfa0000, 0xfbffff) // mapped by the cartslot
AM_RANGE(0xfc0000, 0xfeffff) AM_ROM AM_REGION(M68000_TAG, 0)
// AM_RANGE(0xff7f30, 0xff7f31) AM_READWRITE(blitter_dst_inc_y_r, blitter_dst_inc_y_w) // for TOS 1.02
AM_RANGE(0xff8000, 0xff8001) AM_READWRITE8(mmu_r, mmu_w, 0x00ff)
@@ -1937,6 +1937,9 @@ void st_state::machine_start()
// configure RAM banking
configure_memory();
+ if (m_cart->cart_mounted())
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xfa0000, 0xfbffff, read16_delegate(FUNC(generic_slot_device::read16_rom),(generic_slot_device*)m_cart));
+
// allocate timers
if(m_mousex) {
m_mouse_timer = timer_alloc(TIMER_MOUSE_TICK);
@@ -1995,6 +1998,9 @@ void ste_state::machine_start()
/* configure RAM banking */
configure_memory();
+ if (m_cart->cart_mounted())
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xfa0000, 0xfbffff, read16_delegate(FUNC(generic_slot_device::read16_rom),(generic_slot_device*)m_cart));
+
/* allocate timers */
m_dmasound_timer = timer_alloc(TIMER_DMASOUND_TICK);
m_microwire_timer = timer_alloc(TIMER_MICROWIRE_TICK);
@@ -2037,6 +2043,9 @@ void stbook_state::machine_start()
break;
}
+ if (m_cart->cart_mounted())
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xfa0000, 0xfbffff, read16_delegate(FUNC(generic_slot_device::read16_rom),(generic_slot_device*)m_cart));
+
/* register for state saving */
ste_state::state_save();
@@ -2133,10 +2142,8 @@ static MACHINE_CONFIG_START( st, st_state )
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(st_state, write_acia_clock))
// cartridge
- MCFG_CARTSLOT_ADD("cart")
- MCFG_CARTSLOT_EXTENSION_LIST("bin,rom")
- MCFG_CARTSLOT_NOT_MANDATORY
- MCFG_CARTSLOT_INTERFACE("st_cart")
+ MCFG_GENERIC_CARTSLOT_ADD("cartslot", GENERIC_ROM16_WIDTH, generic_linear_slot, "st_cart")
+ MCFG_GENERIC_EXTENSIONS("bin,rom")
MCFG_SOFTWARE_LIST_ADD("cart_list", "st_cart")
// internal ram
@@ -2224,10 +2231,8 @@ static MACHINE_CONFIG_START( megast, megast_state )
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(st_state, write_acia_clock))
// cartridge
- MCFG_CARTSLOT_ADD("cart")
- MCFG_CARTSLOT_EXTENSION_LIST("bin,rom")
- MCFG_CARTSLOT_NOT_MANDATORY
- MCFG_CARTSLOT_INTERFACE("st_cart")
+ MCFG_GENERIC_CARTSLOT_ADD("cartslot", GENERIC_ROM16_WIDTH, generic_linear_slot, "st_cart")
+ MCFG_GENERIC_EXTENSIONS("bin,rom")
MCFG_SOFTWARE_LIST_ADD("cart_list", "st_cart")
// internal ram
@@ -2322,10 +2327,8 @@ static MACHINE_CONFIG_START( ste, ste_state )
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(st_state, write_acia_clock))
// cartridge
- MCFG_CARTSLOT_ADD("cart")
- MCFG_CARTSLOT_EXTENSION_LIST("bin,rom")
- MCFG_CARTSLOT_NOT_MANDATORY
- MCFG_CARTSLOT_INTERFACE("st_cart")
+ MCFG_GENERIC_CARTSLOT_ADD("cartslot", GENERIC_ROM16_WIDTH, generic_linear_slot, "st_cart")
+ MCFG_GENERIC_EXTENSIONS("bin,rom")
// MCFG_SOFTWARE_LIST_ADD("cart_list", "ste_cart")
// internal ram
@@ -2428,10 +2431,8 @@ static MACHINE_CONFIG_START( stbook, stbook_state )
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(st_state, write_acia_clock))
// cartridge
- MCFG_CARTSLOT_ADD("cart")
- MCFG_CARTSLOT_EXTENSION_LIST("bin,rom")
- MCFG_CARTSLOT_NOT_MANDATORY
- MCFG_CARTSLOT_INTERFACE("st_cart")
+ MCFG_GENERIC_CARTSLOT_ADD("cartslot", GENERIC_ROM16_WIDTH, generic_linear_slot, "st_cart")
+ MCFG_GENERIC_EXTENSIONS("bin,rom")
MCFG_SOFTWARE_LIST_ADD("cart_list", "st_cart")
/* internal ram */
@@ -2486,9 +2487,6 @@ ROM_START( st )
ROM_SYSTEM_BIOS( 3, "tos104", "TOS 1.04 (Rainbow TOS)" )
ROMX_LOAD( "tos104.bin", 0x00000, 0x30000, BAD_DUMP CRC(90f4fbff) SHA1(2487f330b0895e5d88d580d4ecb24061125e88ad), ROM_BIOS(4) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -2508,9 +2506,6 @@ ROM_START( st_uk )
ROM_SYSTEM_BIOS( 2, "tos104", "TOS 1.04 (Rainbow TOS)" )
ROMX_LOAD( "tos104uk.bin", 0x00000, 0x30000, BAD_DUMP CRC(a50d1d43) SHA1(9526ef63b9cb1d2a7109e278547ae78a5c1db6c6), ROM_BIOS(3) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -2537,9 +2532,6 @@ ROM_START( st_de )
ROMX_LOAD( "st 7c1 a2.u2", 0x20000, 0x08000, CRC(d0513329) SHA1(49855a3585e2f75b2af932dd4414ed64e6d9501f), ROM_SKIP(1) | ROM_BIOS(4) )
ROMX_LOAD( "st 7c1 b1.u5", 0x20001, 0x08000, CRC(c115cbc8) SHA1(2b52b81a1a4e0818d63f98ee4b25c30e2eba61cb), ROM_SKIP(1) | ROM_BIOS(4) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -2566,9 +2558,6 @@ ROM_START( st_fr )
ROMX_LOAD( "c101656-001.u48", 0x20000, 0x08000, CRC(dbd93fb8) SHA1(cf9ec11e4bc2465490e7e6c981d9f61eae6cb359), ROM_SKIP(1) | ROM_BIOS(4) )
ROMX_LOAD( "c101659-001.u53", 0x20001, 0x08000, CRC(67c9785a) SHA1(917a17e9f83bee015c25b327780eebb11cb2c5a5), ROM_SKIP(1) | ROM_BIOS(4) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -2584,9 +2573,6 @@ ROM_START( st_es )
ROM_SYSTEM_BIOS( 0, "tos104", "TOS 1.04 (Rainbow TOS)" )
ROMX_LOAD( "tos104es.bin", 0x00000, 0x30000, BAD_DUMP CRC(f4e8ecd2) SHA1(df63f8ac09125d0877b55d5ba1282779b7f99c16), ROM_BIOS(1) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -2602,9 +2588,6 @@ ROM_START( st_nl )
ROM_SYSTEM_BIOS( 0, "tos104", "TOS 1.04 (Rainbow TOS)" )
ROMX_LOAD( "tos104nl.bin", 0x00000, 0x30000, BAD_DUMP CRC(bb4370d4) SHA1(6de7c96b2d2e5c68778f4bce3eaf85a4e121f166), ROM_BIOS(1) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -2622,9 +2605,6 @@ ROM_START( st_se )
ROM_SYSTEM_BIOS( 1, "tos104", "TOS 1.04 (Rainbow TOS)" )
ROMX_LOAD( "tos104se.bin", 0x00000, 0x30000, BAD_DUMP CRC(80ecfdce) SHA1(b7ad34d5cdfbe86ea74ae79eca11dce421a7bbfd), ROM_BIOS(2) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -2642,9 +2622,6 @@ ROM_START( st_sg )
ROM_SYSTEM_BIOS( 1, "tos104", "TOS 1.04 (Rainbow TOS)" )
ROMX_LOAD( "tos104sg.bin", 0x00000, 0x30000, BAD_DUMP CRC(e58f0bdf) SHA1(aa40bf7203f02b2251b9e4850a1a73ff1c7da106), ROM_BIOS(2) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -2662,9 +2639,6 @@ ROM_START( megast )
ROM_SYSTEM_BIOS( 1, "tos104", "TOS 1.04 (Rainbow TOS)" )
ROMX_LOAD( "tos104.bin", 0x00000, 0x30000, BAD_DUMP CRC(90f4fbff) SHA1(2487f330b0895e5d88d580d4ecb24061125e88ad), ROM_BIOS(2) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -2682,9 +2656,6 @@ ROM_START( megast_uk )
ROM_SYSTEM_BIOS( 1, "tos104", "TOS 1.04 (Rainbow TOS)" )
ROMX_LOAD( "tos104uk.bin", 0x00000, 0x30000, BAD_DUMP CRC(a50d1d43) SHA1(9526ef63b9cb1d2a7109e278547ae78a5c1db6c6), ROM_BIOS(2) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -2702,9 +2673,6 @@ ROM_START( megast_de )
ROM_SYSTEM_BIOS( 1, "tos104", "TOS 1.04 (Rainbow TOS)" )
ROMX_LOAD( "tos104de.bin", 0x00000, 0x30000, BAD_DUMP CRC(62b82b42) SHA1(5313733f91b083c6265d93674cb9d0b7efd02da8), ROM_BIOS(2) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -2722,9 +2690,6 @@ ROM_START( megast_fr )
ROM_SYSTEM_BIOS( 1, "tos104", "TOS 1.04 (Rainbow TOS)" )
ROMX_LOAD( "tos104fr.bin", 0x00000, 0x30000, BAD_DUMP CRC(a305a404) SHA1(20dba880344b810cf63cec5066797c5a971db870), ROM_BIOS(2) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -2742,9 +2707,6 @@ ROM_START( megast_se )
ROM_SYSTEM_BIOS( 1, "tos104", "TOS 1.04 (Rainbow TOS)" )
ROMX_LOAD( "tos104se.bin", 0x00000, 0x30000, BAD_DUMP CRC(80ecfdce) SHA1(b7ad34d5cdfbe86ea74ae79eca11dce421a7bbfd), ROM_BIOS(2) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -2762,9 +2724,6 @@ ROM_START( megast_sg )
ROM_SYSTEM_BIOS( 1, "tos104", "TOS 1.04 (Rainbow TOS)" )
ROMX_LOAD( "tos104sg.bin", 0x00000, 0x30000, BAD_DUMP CRC(e58f0bdf) SHA1(aa40bf7203f02b2251b9e4850a1a73ff1c7da106), ROM_BIOS(2) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -2780,9 +2739,6 @@ ROM_START( stacy )
ROM_SYSTEM_BIOS( 0, "tos104", "TOS 1.04 (Rainbow TOS)" )
ROMX_LOAD( "tos104.bin", 0x00000, 0x30000, BAD_DUMP CRC(a50d1d43) SHA1(9526ef63b9cb1d2a7109e278547ae78a5c1db6c6), ROM_BIOS(1) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -2803,9 +2759,6 @@ ROM_START( ste )
ROM_SYSTEM_BIOS( 2, "tos206", "TOS 2.06 (ST/STE TOS)" )
ROMX_LOAD( "tos206.bin", 0x00000, 0x40000, BAD_DUMP CRC(3f2f840f) SHA1(ee58768bdfc602c9b14942ce5481e97dd24e7c83), ROM_BIOS(3) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -2825,9 +2778,6 @@ ROM_START( ste_uk )
ROM_SYSTEM_BIOS( 2, "tos206", "TOS 2.06 (ST/STE TOS)" )
ROMX_LOAD( "tos206uk.bin", 0x00000, 0x40000, BAD_DUMP CRC(08538e39) SHA1(2400ea95f547d6ea754a99d05d8530c03f8b28e3), ROM_BIOS(3) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -2847,9 +2797,6 @@ ROM_START( ste_de )
ROM_SYSTEM_BIOS( 2, "tos206", "TOS 2.06 (ST/STE TOS)" )
ROMX_LOAD( "tos206de.bin", 0x00000, 0x40000, BAD_DUMP CRC(143cd2ab) SHA1(d1da866560734289c4305f1028c36291d331d417), ROM_BIOS(3) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -2865,9 +2812,6 @@ ROM_START( ste_es )
ROM_SYSTEM_BIOS( 0, "tos106", "TOS 1.06 (STE TOS, Revision 1)" )
ROMX_LOAD( "tos106es.bin", 0x00000, 0x40000, BAD_DUMP CRC(5cd2a540) SHA1(3a18f342c8288c0bc1879b7a209c73d5d57f7e81), ROM_BIOS(1) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -2887,9 +2831,6 @@ ROM_START( ste_fr )
ROM_SYSTEM_BIOS( 2, "tos206", "TOS 2.06 (ST/STE TOS)" )
ROMX_LOAD( "tos206fr.bin", 0x00000, 0x40000, BAD_DUMP CRC(e3a99ca7) SHA1(387da431e6e3dd2e0c4643207e67d06cf33618c3), ROM_BIOS(3) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -2905,9 +2846,6 @@ ROM_START( ste_it )
ROM_SYSTEM_BIOS( 0, "tos106", "TOS 1.06 (STE TOS, Revision 1)" )
ROMX_LOAD( "tos106it.bin", 0x00000, 0x40000, BAD_DUMP CRC(d3a55216) SHA1(28dc74e5e0fa56b685bbe15f9837f52684fee9fd), ROM_BIOS(1) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -2925,9 +2863,6 @@ ROM_START( ste_se )
ROM_SYSTEM_BIOS( 1, "tos206", "TOS 2.06 (ST/STE TOS)" )
ROMX_LOAD( "tos206se.bin", 0x00000, 0x40000, BAD_DUMP CRC(be61906d) SHA1(ebdf5a4cf08471cd315a91683fcb24e0f029d451), ROM_BIOS(2) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -2943,9 +2878,6 @@ ROM_START( ste_sg )
ROM_SYSTEM_BIOS( 0, "tos206", "TOS 2.06 (ST/STE TOS)" )
ROMX_LOAD( "tos206sg.bin", 0x00000, 0x40000, BAD_DUMP CRC(8c4fe57d) SHA1(c7a9ae3162f020dcac0c2a46cf0c033f91b98644), ROM_BIOS(1) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -2963,9 +2895,6 @@ ROM_START( megaste )
ROM_SYSTEM_BIOS( 1, "tos206", "TOS 2.06 (ST/STE TOS)" )
ROMX_LOAD( "tos206.bin", 0x00000, 0x40000, BAD_DUMP CRC(3f2f840f) SHA1(ee58768bdfc602c9b14942ce5481e97dd24e7c83), ROM_BIOS(2) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -2990,9 +2919,6 @@ ROM_START( megaste_uk )
ROMX_LOAD( "tos206uk.bin", 0x00000, 0x40000, BAD_DUMP CRC(08538e39) SHA1(2400ea95f547d6ea754a99d05d8530c03f8b28e3), ROM_BIOS(1) )
#endif
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -3010,9 +2936,6 @@ ROM_START( megaste_fr )
ROM_SYSTEM_BIOS( 1, "tos206", "TOS 2.06 (ST/STE TOS)" )
ROMX_LOAD( "tos206fr.bin", 0x00000, 0x40000, BAD_DUMP CRC(e3a99ca7) SHA1(387da431e6e3dd2e0c4643207e67d06cf33618c3), ROM_BIOS(2) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -3030,9 +2953,6 @@ ROM_START( megaste_de )
ROM_SYSTEM_BIOS( 1, "tos206", "TOS 2.06 (ST/STE TOS)" )
ROMX_LOAD( "tos206de.bin", 0x00000, 0x40000, BAD_DUMP CRC(143cd2ab) SHA1(d1da866560734289c4305f1028c36291d331d417), ROM_BIOS(2) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -3048,9 +2968,6 @@ ROM_START( megaste_es )
ROM_SYSTEM_BIOS( 0, "tos205", "TOS 2.05 (Mega STE TOS)" )
ROMX_LOAD( "tos205es.bin", 0x00000, 0x40000, BAD_DUMP CRC(2a426206) SHA1(317715ad8de718b5acc7e27ecf1eb833c2017c91), ROM_BIOS(1) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -3066,9 +2983,6 @@ ROM_START( megaste_it )
ROM_SYSTEM_BIOS( 0, "tos205", "TOS 2.05 (Mega STE TOS)" )
ROMX_LOAD( "tos205it.bin", 0x00000, 0x40000, BAD_DUMP CRC(b28bf5a1) SHA1(8e0581b442384af69345738849cf440d72f6e6ab), ROM_BIOS(1) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -3086,9 +3000,6 @@ ROM_START( megaste_se )
ROM_SYSTEM_BIOS( 1, "tos206", "TOS 2.06 (ST/STE TOS)" )
ROMX_LOAD( "tos206se.bin", 0x00000, 0x40000, BAD_DUMP CRC(be61906d) SHA1(ebdf5a4cf08471cd315a91683fcb24e0f029d451), ROM_BIOS(2) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -3104,9 +3015,6 @@ ROM_START( stbook )
ROM_SYSTEM_BIOS( 0, "tos208", "TOS 2.08" )
ROMX_LOAD( "tos208.bin", 0x00000, 0x40000, NO_DUMP, ROM_BIOS(1) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, COP888_TAG, 0 )
ROM_LOAD( "cop888c0.u703", 0x0000, 0x1000, NO_DUMP )
ROM_END
@@ -3122,9 +3030,6 @@ ROM_START( stpad )
ROM_REGION16_BE( 0x40000, M68000_TAG, 0 )
ROM_SYSTEM_BIOS( 0, "tos205", "TOS 2.05" )
ROMX_LOAD( "tos205.bin", 0x00000, 0x40000, NO_DUMP, ROM_BIOS(1) )
-
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
ROM_END
#endif
@@ -3139,9 +3044,6 @@ ROM_START( tt030 )
ROM_SYSTEM_BIOS( 0, "tos306", "TOS 3.06 (TT TOS)" )
ROMX_LOAD( "tos306.bin", 0x00000, 0x80000, BAD_DUMP CRC(e65adbd7) SHA1(b15948786278e1f2abc4effbb6d40786620acbe8), ROM_BIOS(1) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -3157,9 +3059,6 @@ ROM_START( tt030_uk )
ROM_SYSTEM_BIOS( 0, "tos306", "TOS 3.06 (TT TOS)" )
ROMX_LOAD( "tos306uk.bin", 0x00000, 0x80000, BAD_DUMP CRC(75dda215) SHA1(6325bdfd83f1b4d3afddb2b470a19428ca79478b), ROM_BIOS(1) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -3175,9 +3074,6 @@ ROM_START( tt030_de )
ROM_SYSTEM_BIOS( 0, "tos306", "TOS 3.06 (TT TOS)" )
ROMX_LOAD( "tos306de.bin", 0x00000, 0x80000, BAD_DUMP CRC(4fcbb59d) SHA1(80af04499d1c3b8551fc4d72142ff02c2182e64a), ROM_BIOS(1) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -3193,9 +3089,6 @@ ROM_START( tt030_fr )
ROM_SYSTEM_BIOS( 0, "tos306", "TOS 3.06 (TT TOS)" )
ROMX_LOAD( "tos306fr.bin", 0x00000, 0x80000, BAD_DUMP CRC(1945511c) SHA1(6bb19874e1e97dba17215d4f84b992c224a81b95), ROM_BIOS(1) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -3211,9 +3104,6 @@ ROM_START( tt030_pl )
ROM_SYSTEM_BIOS( 0, "tos306", "TOS 3.06 (TT TOS)" )
ROMX_LOAD( "tos306pl.bin", 0x00000, 0x80000, BAD_DUMP CRC(4f2404bc) SHA1(d122b8ceb202b52754ff0d442b1c81f8b4de3436), ROM_BIOS(1) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -3229,9 +3119,6 @@ ROM_START( fx1 )
ROM_SYSTEM_BIOS( 0, "tos207", "TOS 2.07" )
ROMX_LOAD( "tos207.bin", 0x00000, 0x40000, NO_DUMP, ROM_BIOS(1) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -3263,9 +3150,6 @@ ROM_START( falcon30 )
ROMX_LOAD( "tos404.bin", 0x00000, 0x80000, BAD_DUMP CRC(028b561d) SHA1(27dcdb31b0951af99023b2fb8c370d8447ba6ebc), ROM_BIOS(3) )
#endif
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
@@ -3280,9 +3164,6 @@ ROM_START( falcon40 )
ROM_SYSTEM_BIOS( 0, "tos492", "TOS 4.92" )
ROMX_LOAD( "tos492.bin", 0x00000, 0x7d314, BAD_DUMP CRC(bc8e497f) SHA1(747a38042844a6b632dcd9a76d8525fccb5eb892), ROM_BIOS(2) )
- ROM_REGION( 0x20000, "cart", ROMREGION_ERASE00 )
- ROM_CART_LOAD( "cart", 0x00000, 0x20000, ROM_MIRROR | ROM_OPTIONAL )
-
ROM_REGION( 0x1000, HD6301V1_TAG, 0 )
ROM_LOAD( "keyboard.u1", 0x0000, 0x1000, CRC(0296915d) SHA1(1102f20d38f333234041c13687d82528b7cde2e1) )
ROM_END
diff --git a/src/mess/drivers/bbcbc.c b/src/mess/drivers/bbcbc.c
index 1c0f65a9089..9e63a572a9b 100644
--- a/src/mess/drivers/bbcbc.c
+++ b/src/mess/drivers/bbcbc.c
@@ -16,7 +16,8 @@
#include "video/tms9928a.h"
#include "machine/z80pio.h"
#include "cpu/z80/z80daisy.h"
-#include "imagedev/cartslot.h"
+#include "bus/generic/slot.h"
+#include "bus/generic/carts.h"
class bbcbc_state : public driver_device
@@ -24,15 +25,15 @@ class bbcbc_state : public driver_device
public:
bbcbc_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
- m_maincpu(*this, "maincpu")
+ m_maincpu(*this, "maincpu"),
+ m_cart(*this, "cartslot")
{ }
required_device<cpu_device> m_maincpu;
+ required_device<generic_slot_device> m_cart;
virtual void machine_start();
virtual void machine_reset();
DECLARE_WRITE_LINE_MEMBER(tms_interrupt);
-
- DECLARE_DEVICE_IMAGE_LOAD_MEMBER( bbcbc_cart );
};
@@ -41,7 +42,7 @@ public:
static ADDRESS_MAP_START( bbcbc_prg, AS_PROGRAM, 8, bbcbc_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0xbfff) AM_ROM
+ //AM_RANGE(0x4000, 0xbfff) // mapped by the cartslot
AM_RANGE(0xe000, 0xe02f) AM_RAM
AM_RANGE(0xe030, 0xe030) AM_READ_PORT("LINE01")
AM_RANGE(0xe031, 0xe031) AM_READ_PORT("LINE02")
@@ -115,32 +116,10 @@ static const z80_daisy_config bbcbc_daisy_chain[] =
};
-DEVICE_IMAGE_LOAD_MEMBER( bbcbc_state, bbcbc_cart )
-{
- UINT8 *cart = memregion("maincpu" )->base() + 0x4000;
-
- if ( image.software_entry() == NULL )
- {
- int size = image.length();
- if ( image.fread(cart, size ) != size ) {
- image.seterror( IMAGE_ERROR_UNSPECIFIED, "Unable to fully read from file" );
- return IMAGE_INIT_FAIL;
- }
- }
- else
- {
- UINT8 *reg = image.get_software_region( "rom" );
- int reg_len = image.get_software_region_length( "rom" );
-
- memcpy( cart, reg, MIN(reg_len, 0x8000) );
- }
-
- return IMAGE_INIT_PASS;
-
-}
-
void bbcbc_state::machine_start()
{
+ if (m_cart->cart_mounted())
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x4000, 0xbfff, read8_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart));
}
void bbcbc_state::machine_reset()
@@ -162,10 +141,7 @@ static MACHINE_CONFIG_START( bbcbc, bbcbc_state )
MCFG_TMS9928A_SCREEN_ADD_PAL( "screen" )
MCFG_SCREEN_UPDATE_DEVICE( "tms9129", tms9928a_device, screen_update )
- MCFG_CARTSLOT_ADD("cart")
- MCFG_CARTSLOT_NOT_MANDATORY
- MCFG_CARTSLOT_INTERFACE("bbcbc_cart")
- MCFG_CARTSLOT_LOAD( bbcbc_state, bbcbc_cart )
+ MCFG_GENERIC_CARTSLOT_ADD("cartslot", GENERIC_ROM8_WIDTH, generic_plain_slot, "bbcbc_cart")
/* Software lists */
MCFG_SOFTWARE_LIST_ADD("cart_list","bbcbc")
diff --git a/src/mess/drivers/pv2000.c b/src/mess/drivers/pv2000.c
index 89638b040f1..98e8c331ae6 100644
--- a/src/mess/drivers/pv2000.c
+++ b/src/mess/drivers/pv2000.c
@@ -360,13 +360,7 @@ void pv2000_state::machine_reset()
DEVICE_IMAGE_LOAD_MEMBER( pv2000_state, pv2000_cart )
{
- UINT8 *cart;
- UINT32 size;
-
- if (image.software_entry() == NULL)
- size = image.length();
- else
- size = image.get_software_region_length("rom");
+ UINT32 size = m_cart->common_get_size("rom");
if (size != 0x2000 && size != 0x4000)
{
@@ -375,12 +369,7 @@ DEVICE_IMAGE_LOAD_MEMBER( pv2000_state, pv2000_cart )
}
m_cart->rom_alloc(size, 1);
- cart = m_cart->get_rom_base();
-
- if (image.software_entry() == NULL)
- image.fread(cart, size);
- else
- memcpy(cart, image.get_software_region("rom"), size);
+ m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom");
return IMAGE_INIT_PASS;
}
diff --git a/src/mess/drivers/rx78.c b/src/mess/drivers/rx78.c
index f5089ef4091..ccf309d7939 100644
--- a/src/mess/drivers/rx78.c
+++ b/src/mess/drivers/rx78.c
@@ -416,14 +416,8 @@ void rx78_state::machine_reset()
DEVICE_IMAGE_LOAD_MEMBER( rx78_state, rx78_cart )
{
- UINT8 *cart;
- UINT32 size;
-
- if (image.software_entry() == NULL)
- size = image.length();
- else
- size = image.get_software_region_length("rom");
-
+ UINT32 size = m_cart->common_get_size("rom");
+
if (size != 0x2000 && size != 0x4000)
{
image.seterror(IMAGE_ERROR_UNSPECIFIED, "Unsupported cartridge size");
@@ -431,12 +425,7 @@ DEVICE_IMAGE_LOAD_MEMBER( rx78_state, rx78_cart )
}
m_cart->rom_alloc(size, 1);
- cart = m_cart->get_rom_base();
-
- if (image.software_entry() == NULL)
- image.fread(cart, size);
- else
- memcpy(cart, image.get_software_region("rom"), size);
+ m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom");
return IMAGE_INIT_PASS;
}
diff --git a/src/mess/drivers/supracan.c b/src/mess/drivers/supracan.c
index 3b64547d14f..dcf90441916 100644
--- a/src/mess/drivers/supracan.c
+++ b/src/mess/drivers/supracan.c
@@ -1753,27 +1753,16 @@ WRITE16_MEMBER( supracan_state::video_w )
DEVICE_IMAGE_LOAD_MEMBER( supracan_state, supracan_cart )
{
- UINT8 *cart;
- UINT32 size;
-
- if (image.software_entry() == NULL)
- size = image.length();
- else
- size = image.get_software_region_length("rom");
+ UINT32 size = m_cart->common_get_size("rom");
if (size > 0x400000)
{
image.seterror(IMAGE_ERROR_UNSPECIFIED, "Unsupported cartridge size");
return IMAGE_INIT_FAIL;
}
-
- m_cart->rom_alloc(size, 1);
- cart = m_cart->get_rom_base();
-
- if (image.software_entry() == NULL)
- image.fread(cart, size);
- else
- memcpy(cart, image.get_software_region("rom"), size);
+
+ m_cart->rom_alloc(size, 2);
+ m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom");
return IMAGE_INIT_PASS;
}