diff --git a/src/mess/drivers/atm.c b/src/mess/drivers/atm.c index 8211898cef9..361e89c8281 100644 --- a/src/mess/drivers/atm.c +++ b/src/mess/drivers/atm.c @@ -217,8 +217,6 @@ ROM_START( atm ) ROMX_LOAD( "atm106-4.rom", 0x01c000, 0x4000, CRC(f352f2ab) SHA1(6045500ab01be708cef62327e9821b4a358a4673), ROM_BIOS(3)) ROM_SYSTEM_BIOS(3, "v4", "v.1.03rs") ROMX_LOAD( "atm103rs.rom", 0x010000, 0x10000, CRC(cdec1dfb) SHA1(08190807c6b110cb2e657d8e7d0ad18668915375), ROM_BIOS(4)) - - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START( atmtb2 ) @@ -233,7 +231,6 @@ ROM_START( atmtb2 ) ROM_SYSTEM_BIOS(2, "v3", "v.1.07.13") ROMX_LOAD( "atmtb213.rom", 0x010000, 0x10000, CRC(34a91d53) SHA1(8f0af0f3c0ff1644535f20545c73d01576d6e52f), ROM_BIOS(3)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_REGION(0x01000, "keyboard", ROMREGION_ERASEFF) // XT Keyboard ROM_LOAD( "rf2ve3.rom", 0x0000, 0x0580, CRC(35e0f9ec) SHA1(adcf14758fab8472cfa0167af7e8326c66416416)) diff --git a/src/mess/drivers/pentagon.c b/src/mess/drivers/pentagon.c index 525c55ec6bd..5ad82483dde 100644 --- a/src/mess/drivers/pentagon.c +++ b/src/mess/drivers/pentagon.c @@ -292,7 +292,6 @@ ROM_START(pentagon) ROM_SYSTEM_BIOS(13, "v14", "NeOS 512") ROMX_LOAD("neos_512.rom", 0x010000, 0x4000, CRC(1657fa43) SHA1(647545f06257bce9b1919fcb86b2a49a21c851a7), ROM_BIOS(14)) ROMX_LOAD("128p-1.rom", 0x014000, 0x4000, CRC(b96a36be) SHA1(80080644289ed93d71a1103992a154cc9802b2fa), ROM_BIOS(14)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(pent1024) @@ -317,7 +316,6 @@ ROM_START(pent1024) ROMX_LOAD( "gluk601r.rom", 0x018000, 0x4000, CRC(daf6310b) SHA1(b8945168d4d136b731b33ec4758f8510c47fb8c4), ROM_BIOS(8)) ROM_SYSTEM_BIOS(8, "v9", "Gluk 5.1") ROMX_LOAD( "gluk51.rom", 0x018000, 0x4000, CRC(ea8c760b) SHA1(adaab28066ca46fbcdcf084c3b53d5a1b82d94a9), ROM_BIOS(9)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ diff --git a/src/mess/drivers/scorpion.c b/src/mess/drivers/scorpion.c index 40b08925e5f..07f50b9c82d 100644 --- a/src/mess/drivers/scorpion.c +++ b/src/mess/drivers/scorpion.c @@ -466,7 +466,6 @@ ROM_START(scorpio) ROMX_LOAD("scorp1.rom", 0x014000, 0x4000, CRC(9d513013) SHA1(367b5a102fb663beee8e7930b8c4acc219c1f7b3), ROM_BIOS(7)) ROMX_LOAD("scorp2.rom", 0x018000, 0x4000, CRC(fd0d3ce1) SHA1(07783ee295274d8ff15d935bfd787c8ac1d54900), ROM_BIOS(7)) ROMX_LOAD("scorp3.rom", 0x01c000, 0x4000, CRC(1fe1d003) SHA1(33703e97cc93b7edfcc0334b64233cf81b7930db), ROM_BIOS(7)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_REGION(0x01000, "keyboard", 0) ROM_LOAD( "scrpkey.rom", 0x0000, 0x1000, CRC(e938a510) SHA1(2753993c97ff0fc6cff26ed792929abc1288dc6f)) @@ -492,13 +491,11 @@ ROM_START(profi) ROMX_LOAD( "profi32.rom", 0x010000, 0x10000, CRC(77327f52) SHA1(019bd00cc7939741d99b99beac6ae1298652e652), ROM_BIOS(6)) ROM_SYSTEM_BIOS(6, "v7", "Power Of Sound Group") ROMX_LOAD( "profi1k.rom", 0x010000, 0x10000, CRC(a932676f) SHA1(907ac56219f325949a7c2fe8168799d9cdd5ba6c), ROM_BIOS(7)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(quorum) ROM_REGION(0x020000, "maincpu", 0) ROM_LOAD("qu7v42.rom", 0x010000, 0x10000, CRC(e950eee5) SHA1(f8e22672722b0038689c6c8bc4acf5392acc9d8c)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(bestzx) @@ -515,7 +512,6 @@ ROM_START( kay1024 ) ROMX_LOAD( "kay1024b.rom", 0x010000, 0x10000, CRC(ab99c31e) SHA1(cfa9e6553aea72956fce4f0130c007981d684734), ROM_BIOS(2)) ROM_SYSTEM_BIOS(2, "v3", "Kramis V0.3") ROMX_LOAD( "kay1024s.rom", 0x010000, 0x10000, CRC(67351caa) SHA1(1d9c0606b380c000ca1dfa33f90a122ecf9df1f1), ROM_BIOS(3)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */ diff --git a/src/mess/drivers/spec128.c b/src/mess/drivers/spec128.c index 2e5935bbad0..278f1c5d3c2 100644 --- a/src/mess/drivers/spec128.c +++ b/src/mess/drivers/spec128.c @@ -183,37 +183,27 @@ WRITE8_MEMBER(spectrum_state::spectrum_128_port_7ffd_w) void spectrum_state::spectrum_128_update_memory() { UINT8 *messram = m_ram->pointer(); - unsigned char *ChosenROM; - int ROMSelection; - - if (m_port_7ffd_data & 8) - { - m_screen_location = messram + (7<<14); - } - else - { - m_screen_location = messram + (5<<14); - } /* select ram at 0x0c000-0x0ffff */ + int ram_page = m_port_7ffd_data & 0x07; + unsigned char *ram_data = messram + (ram_page<<14); + membank("bank4")->set_base(ram_data); + + if (BIT(m_port_7ffd_data, 3)) + m_screen_location = messram + (7<<14); + else + m_screen_location = messram + (5<<14); + + if (!m_cart->exists()) { - int ram_page; - unsigned char *ram_data; + /* ROM switching */ + int ROMSelection = BIT(m_port_7ffd_data, 4); - ram_page = m_port_7ffd_data & 0x07; - ram_data = messram + (ram_page<<14); + /* rom 0 is 128K rom, rom 1 is 48 BASIC */ + unsigned char *ChosenROM = memregion("maincpu")->base() + 0x010000 + (ROMSelection << 14); - membank("bank4")->set_base(ram_data); + membank("bank1")->set_base(ChosenROM); } - - /* ROM switching */ - ROMSelection = ((m_port_7ffd_data>>4) & 0x01); - - /* rom 0 is 128K rom, rom 1 is 48 BASIC */ - - ChosenROM = memregion("maincpu")->base() + 0x010000 + (ROMSelection<<14); - - membank("bank1")->set_base(ChosenROM); } READ8_MEMBER( spectrum_state::spectrum_128_ula_r ) @@ -291,7 +281,6 @@ MACHINE_CONFIG_DERIVED( spectrum_128, spectrum ) MCFG_CPU_VBLANK_INT_DRIVER("screen", spectrum_state, spec_interrupt) MCFG_QUANTUM_TIME(attotime::from_hz(60)) - MCFG_MACHINE_RESET_OVERRIDE(spectrum_state, spectrum_128 ) /* video hardware */ @@ -328,7 +317,6 @@ ROM_START(spec128) ROM_SYSTEM_BIOS( 1, "sp", "Spanish" ) ROMX_LOAD("zx128s0.rom",0x10000,0x4000, CRC(453d86b2) SHA1(968937b1c750f0ef6205f01c6db4148da4cca4e3), ROM_BIOS(2)) ROMX_LOAD("zx128s1.rom",0x14000,0x4000, CRC(6010e796) SHA1(bea3f397cc705eafee995ea629f4a82550562f90), ROM_BIOS(2)) - ROM_CART_LOAD("cart", 0x10000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(specpls2) @@ -347,14 +335,12 @@ ROM_START(specpls2) ROMX_LOAD("plus2c-1.rom",0x14000,0x4000, CRC(fd8552b6) SHA1(5ffcf79f2154ba2cf42cc1d9cb4be93cb5043e73), ROM_BIOS(4)) ROM_SYSTEM_BIOS( 4, "namco", "ZX Spectrum +2c (Namco)" ) ROMX_LOAD("pl2namco.rom",0x10000,0x8000, CRC(72a54e75) SHA1(311400157df689450dadc3620f4c4afa960b05ad), ROM_BIOS(5)) - ROM_CART_LOAD("cart", 0x10000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(hc128) ROM_REGION(0x18000,"maincpu",0) ROM_LOAD("zx128_0.rom",0x10000,0x4000, CRC(e76799d2) SHA1(4f4b11ec22326280bdb96e3baf9db4b4cb1d02c5)) ROM_LOAD("hc128.rom", 0x14000,0x4000, CRC(0241e960) SHA1(cea0d14391b9e571460a816088a1c00ecb24afa3)) - ROM_CART_LOAD("cart", 0x10000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(hc2000) @@ -365,7 +351,6 @@ ROM_START(hc2000) ROM_SYSTEM_BIOS( 1, "v2", "Version 2" ) ROMX_LOAD("zx128_0.rom",0x10000,0x4000, CRC(e76799d2) SHA1(4f4b11ec22326280bdb96e3baf9db4b4cb1d02c5), ROM_BIOS(2)) ROMX_LOAD("hc2000.v2", 0x14000,0x4000, CRC(65d90464) SHA1(5e2096e6460ff2120c8ada97579fdf82c1199c09), ROM_BIOS(2)) - ROM_CART_LOAD("cart", 0x10000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ diff --git a/src/mess/drivers/specpls3.c b/src/mess/drivers/specpls3.c index 8228164142d..5acbe50f3cc 100644 --- a/src/mess/drivers/specpls3.c +++ b/src/mess/drivers/specpls3.c @@ -214,68 +214,55 @@ void spectrum_state::spectrum_plus3_update_memory() if ((m_port_1ffd_data & 0x01) == 0) { - int ram_page; - unsigned char *ram_data; + /* select ram at 0x0c000-0x0ffff */ + int ram_page = m_port_7ffd_data & 0x07; + unsigned char *ram_data = messram + (ram_page<<14); + membank("bank4")->set_base(ram_data); + + logerror("RAM at 0xc000: %02x\n", ram_page); + + /* Reset memory between 0x4000 - 0xbfff in case extended paging was being used */ + /* Bank 5 in 0x4000 - 0x7fff */ + membank("bank2")->set_base(messram + (5 << 14)); + + /* Bank 2 in 0x8000 - 0xbfff */ + membank("bank3")->set_base(messram + (2 << 14)); + if (!m_cart->exists()) + { /* ROM switching */ - unsigned char *ChosenROM; - int ROMSelection; - - /* select ram at 0x0c000-0x0ffff */ - ram_page = m_port_7ffd_data & 0x07; - ram_data = messram + (ram_page<<14); - - membank("bank4")->set_base(ram_data); - - logerror("RAM at 0xc000: %02x\n", ram_page); - - /* Reset memory between 0x4000 - 0xbfff in case extended paging was being used */ - /* Bank 5 in 0x4000 - 0x7fff */ - membank("bank2")->set_base(messram + (5 << 14)); - - /* Bank 2 in 0x8000 - 0xbfff */ - membank("bank3")->set_base(messram + (2 << 14)); - - - ROMSelection = ((m_port_7ffd_data >> 4) & 0x01) | - ((m_port_1ffd_data >> 1) & 0x02); - + int ROMSelection = BIT(m_port_7ffd_data, 4) | ((m_port_1ffd_data >> 1) & 0x02); + /* rom 0 is editor, rom 1 is syntax, rom 2 is DOS, rom 3 is 48 BASIC */ - - ChosenROM = memregion("maincpu")->base() + 0x010000 + (ROMSelection << 14); - + unsigned char *ChosenROM = memregion("maincpu")->base() + 0x010000 + (ROMSelection << 14); + membank("bank1")->set_base(ChosenROM); space.unmap_write(0x0000, 0x3fff); - + logerror("rom switch: %02x\n", ROMSelection); + } } else { - /* Extended memory paging */ - - const int *memory_selection; - int MemorySelection; - unsigned char *ram_data; - - MemorySelection = (m_port_1ffd_data >> 1) & 0x03; - - memory_selection = &spectrum_plus3_memory_selections[(MemorySelection << 2)]; - - ram_data = messram + (memory_selection[0] << 14); - membank("bank1")->set_base(ram_data); - /* allow writes to 0x0000-0x03fff */ - space.install_write_bank(0x0000, 0x3fff, "bank1"); - - ram_data = messram + (memory_selection[1] << 14); - membank("bank2")->set_base(ram_data); - - ram_data = messram + (memory_selection[2] << 14); - membank("bank3")->set_base(ram_data); - - ram_data = messram + (memory_selection[3] << 14); - membank("bank4")->set_base(ram_data); - - logerror("extended memory paging: %02x\n", MemorySelection); + /* Extended memory paging */ + int MemorySelection = (m_port_1ffd_data >> 1) & 0x03; + const int *memory_selection = &spectrum_plus3_memory_selections[(MemorySelection << 2)]; + unsigned char *ram_data = messram + (memory_selection[0] << 14); + + membank("bank1")->set_base(ram_data); + /* allow writes to 0x0000-0x03fff */ + space.install_write_bank(0x0000, 0x3fff, "bank1"); + + ram_data = messram + (memory_selection[1] << 14); + membank("bank2")->set_base(ram_data); + + ram_data = messram + (memory_selection[2] << 14); + membank("bank3")->set_base(ram_data); + + ram_data = messram + (memory_selection[3] << 14); + membank("bank4")->set_base(ram_data); + + logerror("extended memory paging: %02x\n", MemorySelection); } } @@ -314,8 +301,8 @@ WRITE8_MEMBER( spectrum_state::spectrum_plus3_port_1ffd_w ) /* disable paging? */ if ((m_port_7ffd_data & 0x20)==0) { - /* no */ - spectrum_plus3_update_memory(); + /* no */ + spectrum_plus3_update_memory(); } } @@ -411,7 +398,6 @@ ROM_START(specpl2a) ROM_LOAD("p2a41_1.rom",0x14000,0x4000, CRC(a7916b3f) SHA1(1a7812c383a3701e90e88d1da086efb0c033ac72)) ROM_LOAD("p2a41_2.rom",0x18000,0x4000, CRC(c9a0b748) SHA1(8df145d10ff78f98138682ea15ebccb2874bf759)) ROM_LOAD("p2a41_3.rom",0x1c000,0x4000, CRC(b88fd6e3) SHA1(be365f331942ec7ec35456b641dac56a0dbfe1f0)) - ROM_CART_LOAD("cart", 0x10000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(specpls3) @@ -434,7 +420,6 @@ ROM_START(specpls3) ROM_SYSTEM_BIOS( 4, "12ms", "Customize 3.5\" 12ms" ) ROMX_LOAD("p3_01_cm.rom",0x10000,0x8000, CRC(ad99380a) SHA1(4e5d114b72d464cefdde0566457f52a3c0c1cae2), ROM_BIOS(5)) ROMX_LOAD("p3_23_cm.rom",0x18000,0x8000, CRC(61f2b50c) SHA1(d062765ceb1f3cd2c94ea51cb737cac7ad6151b4), ROM_BIOS(5)) - ROM_CART_LOAD("cart", 0x10000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(specpl3e) @@ -445,7 +430,6 @@ ROM_START(specpl3e) ROM_SYSTEM_BIOS( 1, "sp", "Spanish" ) ROMX_LOAD("roma-es.rom",0x10000,0x8000, CRC(ba694b4b) SHA1(d15d9e43950483cffc79f1cfa89ecb114a88f6c2), ROM_BIOS(2)) ROMX_LOAD("romb-es.rom",0x18000,0x8000, CRC(61ed94db) SHA1(935b14c13db75d872de8ad0d591aade0adbbc355), ROM_BIOS(2)) - ROM_CART_LOAD("cart", 0x10000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(sp3e8bit) @@ -454,7 +438,6 @@ ROM_START(sp3e8bit) ROMX_LOAD("3e8biten.rom",0x10000,0x10000, CRC(beee3bf6) SHA1(364ec903916282d5401901c5fb0cb93a142038b3), ROM_BIOS(1)) ROM_SYSTEM_BIOS( 1, "sp", "Spanish" ) ROMX_LOAD("3e8bites.rom",0x10000,0x10000, CRC(cafe4c35) SHA1(8331d273d29d3e37ec1324053bb050874d2c1434), ROM_BIOS(2)) - ROM_CART_LOAD("cart", 0x10000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(sp3ezcf) @@ -463,7 +446,6 @@ ROM_START(sp3ezcf) ROMX_LOAD("3ezcfen.rom",0x10000,0x10000, CRC(43993f11) SHA1(27cbfbe8b5ef9eec6056026fa0b84fe158ba2f45), ROM_BIOS(1)) ROM_SYSTEM_BIOS( 1, "sp", "Spanish" ) ROMX_LOAD("3ezcfes.rom",0x10000,0x10000, CRC(1325a0d7) SHA1(521cf47e10f46c8a621c8889ef1f008454c7e10b), ROM_BIOS(2)) - ROM_CART_LOAD("cart", 0x10000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(sp3eata) @@ -472,7 +454,6 @@ ROM_START(sp3eata) ROMX_LOAD("3ezxaen.rom",0x10000,0x10000, CRC(dfb676dc) SHA1(37618bc66ae33dbf686be8a92867e4a9144b65dc), ROM_BIOS(1)) ROM_SYSTEM_BIOS( 1, "sp", "Spanish" ) ROMX_LOAD("3ezxaes.rom",0x10000,0x10000, CRC(8f0ae91a) SHA1(71693e18b30c90914be58cba26682ca025c924ea), ROM_BIOS(2)) - ROM_CART_LOAD("cart", 0x10000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ diff --git a/src/mess/drivers/spectrum.c b/src/mess/drivers/spectrum.c index 3a7479eb71a..545bb649ec7 100644 --- a/src/mess/drivers/spectrum.c +++ b/src/mess/drivers/spectrum.c @@ -622,6 +622,9 @@ MACHINE_RESET_MEMBER(spectrum_state,spectrum) { m_port_7ffd_data = -1; m_port_1ffd_data = -1; + + if (m_cart && m_cart->exists()) + m_maincpu->space(AS_PROGRAM).install_read_handler(0x0000, 0x3fff, read8_delegate(FUNC(generic_slot_device::read_rom),(generic_slot_device*)m_cart)); } /* F4 Character Displayer */ @@ -648,31 +651,19 @@ INTERRUPT_GEN_MEMBER(spectrum_state::spec_interrupt) device.execute().set_input_line(0, HOLD_LINE); } -DEVICE_IMAGE_LOAD_MEMBER( spectrum_state,spectrum_cart ) +DEVICE_IMAGE_LOAD_MEMBER(spectrum_state, spectrum_cart) { - UINT32 filesize; - - if (image.software_entry() == NULL) + UINT32 size = m_cart->common_get_size("rom"); + + if (size != 0x4000) { - filesize = image.length(); - - if (filesize != 0x4000 ) - { - image.seterror(IMAGE_ERROR_UNSPECIFIED, "Incorrect or not support cartridge size"); - return IMAGE_INIT_FAIL; - } - - if (image.fread(memregion("maincpu")->base(), filesize) != filesize) - { - image.seterror(IMAGE_ERROR_UNSPECIFIED, "Error loading file"); - return IMAGE_INIT_FAIL; - } - } - else - { - filesize = image.get_software_region_length("rom"); - memcpy(memregion("maincpu")->base(), image.get_software_region("rom"), filesize); + image.seterror(IMAGE_ERROR_UNSPECIFIED, "Unsupported cartridge size"); + return IMAGE_INIT_FAIL; } + + m_cart->rom_alloc(size, GENERIC_ROM8_WIDTH, ENDIANNESS_LITTLE); + m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom"); + return IMAGE_INIT_PASS; } @@ -720,11 +711,10 @@ MACHINE_CONFIG_START( spectrum_common, spectrum_state ) MCFG_SOFTWARE_LIST_ADD("cass_list","spectrum_cass") /* cartridge */ - MCFG_CARTSLOT_ADD("cart") - MCFG_CARTSLOT_EXTENSION_LIST("rom") - MCFG_CARTSLOT_NOT_MANDATORY - MCFG_CARTSLOT_LOAD(spectrum_state,spectrum_cart) - MCFG_CARTSLOT_INTERFACE("spectrum_cart") + MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "spectrum_cart") + MCFG_GENERIC_EXTENSIONS("bin,rom") + MCFG_GENERIC_LOAD(spectrum_state, spectrum_cart) + MCFG_SOFTWARE_LIST_ADD("cart_list","spectrum") MACHINE_CONFIG_END @@ -783,80 +773,67 @@ ROM_START(spectrum) ROMX_LOAD("isomoje.rom",0x0000,0x4000, CRC(62ab3640) SHA1(04adbdb1380d6ccd4ab26ddd61b9ccbba462a60f), ROM_BIOS(18)) ROM_SYSTEM_BIOS(18, "iso8", "ISO ROM 8") ROMX_LOAD("iso8bm.rom",0x0000,0x4000, CRC(43e9c2fd) SHA1(5752e6f789769475711b91e0a75911fa5232c767), ROM_BIOS(19)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(specide) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("zxide.rom", 0x0000, 0x4000, CRC(bd48db54) SHA1(54c2aa958902b5395c260770a0b25c7ba5685de9)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(spec80k) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("80-lec.rom", 0x0000, 0x4000, CRC(5b5c92b1) SHA1(bb7a77d66e95d2e28ebb610e543c065e0d428619)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(tk90x) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("tk90x.rom",0x0000,0x4000, CRC(3e785f6f) SHA1(9a943a008be13194fb006bddffa7d22d2277813f)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(tk95) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("tk95.rom",0x0000,0x4000, CRC(17368e07) SHA1(94edc401d43b0e9a9cdc1d35de4b6462dc414ab3)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(inves) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("inves.rom",0x0000,0x4000, CRC(8ff7a4d1) SHA1(d020440638aff4d39467128413ef795677be9c23)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END /* Romanian clones */ ROM_START(hc85) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("hc85.rom",0x0000,0x4000, CRC(3ab60fb5) SHA1(a4189db0bcdf8b39ed782b398828efb408fc4817)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START( hc88 ) ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) ROM_LOAD( "hc88.bin", 0x0000, 0x0800, CRC(33be5134) SHA1(b15a6e7085710de8b818e42d329707cb737627e3)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(hc90) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("hc90.rom",0x0000,0x4000, CRC(78c14d9a) SHA1(25ef81905bed90497a749770170c24632efb2039)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(hc91) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("hc91.rom",0x0000,0x4000, CRC(8bf53761) SHA1(967d5179ba2823e9c8dd9ddfb0430465aaddb554)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(cip03) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("cip03.rom",0x0000,0x4000, CRC(c7d0cd3c) SHA1(811055b44fc74076137e2bf8db206b2a70287cc2)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(cip01) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("cip01.rom",0x0000,0x4000, CRC(0516a329) SHA1(4e3e0c5719a64d3b4fb224db499b4bef7d146917)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(jet) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("jet.rom",0x0000,0x4000, CRC(e56a7d11) SHA1(e76be9ee71bae6aa1c2ff969276fb599ed68cb50)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START( cobrasp ) @@ -865,7 +842,6 @@ ROM_START( cobrasp ) ROMX_LOAD( "boot64k_v1.bin", 0x0000, 0x0800, CRC(a54aae6d) SHA1(8f5134ce24aea59065ed166ad79e864e17ce812f), ROM_BIOS(1)) ROM_SYSTEM_BIOS(1, "v2", "V2") ROMX_LOAD( "boot64k_v2.bin", 0x0000, 0x0800, CRC(ee91cc89) SHA1(37dea7fe0734068adf99b91fdcbf3119095c350d), ROM_BIOS(2)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START( cobra80 ) @@ -876,7 +852,6 @@ ROM_START( cobra80 ) ROMX_LOAD( "boot80k_v2.bin", 0x0000, 0x0800, CRC(df6bd954) SHA1(5b858b59e697d0368ea631ead14f5b2aa7954ccd), ROM_BIOS(2)) ROM_SYSTEM_BIOS(2, "v3", "V3") ROMX_LOAD( "boot80k_v3.bin", 0x0000, 0x0800, CRC(8580494c) SHA1(91af3f3fa50f2071f8ff081536bdf7e21e9823d9), ROM_BIOS(3)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END /* Czechoslovakian clones*/ @@ -886,13 +861,11 @@ ROM_END ROM_START(dgama87) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("dgama87.rom",0x0000,0x4000, CRC(43104909) SHA1(f62d1f3f35fda467cae468e890995614f6ec2357)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(dgama88) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("dgama88.rom",0x0000,0x4000, CRC(4ec7e078) SHA1(09a91f85e82efa7f974d1b88c69636a02063d563)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(dgama89) @@ -905,43 +878,36 @@ ROM_START(dgama89) ROMX_LOAD("iso.rom",0x0000,0x4000, CRC(2ee3a992) SHA1(2e39995dd032036d33a6dd88a38b750057bca19d), ROM_BIOS(3)) ROM_SYSTEM_BIOS(3, "isopolak", "ISO Polak") ROMX_LOAD("isopolak.rom",0x0000,0x4000, CRC(5e3f1f66) SHA1(61713117c944fc6afcb96c647bdba5ad36fd6a4b), ROM_BIOS(4)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(didakt90) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("didakt90.rom",0x0000,0x4000, CRC(76f2db1e) SHA1(daee355a8ee58bc406873c1dd81eecb6161dd4bd)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(didakm91) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("didakm91.rom",0x0000,0x4000, CRC(beab69b8) SHA1(71d4d1a05fb936f616bcb05c3a276f79343ecd4d)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(didakm92) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("didakm92.bin",0x0000,0x4000, CRC(57264d4f) SHA1(23644fe949cbf527747959d07b72db01de378c4c)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(didaktk) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("didaktk.rom",0x0000,0x4000, CRC(8ec8a625) SHA1(cba35517d33a5c97e3d9110f12a417c6c5cdeca8)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(didakm93) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("didakm93.rom",0x0000,0x4000, CRC(ec274b1b) SHA1(a3470d8d1a996ee2a1ffff8bd8044da6e907e07e)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(mistrum) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("mistrum.rom",0x0000,0x4000, CRC(d496103e) SHA1(cca1c5b059dc3a29ca4282e8621e34a65efaa1a3)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END /* Russian clones */ @@ -949,50 +915,42 @@ ROM_END ROM_START(blitzs) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("blitz.rom",0x0000,0x4000, CRC(91e535a8) SHA1(14f09d45dc3803cbdb05c33adb28eb12dbad9dd0)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(byte) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("byte.rom",0x0000,0x4000, CRC(c13ba473) SHA1(99f40727185abbb2413f218d69df021ae2e99e45)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(orizon) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("orizon.rom",0x0000,0x4000, CRC(ed4d9787) SHA1(3e8b29862e06be03344393c320a64a109fd9aff5)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(quorum48) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("quorum48.rom",0x0000,0x4000, CRC(48085b0e) SHA1(8e01581643f7bdfa773f68207a6437911b631e53)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(magic6) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("magic6.rom",0x0000,0x4000, CRC(cb63ae06) SHA1(533ad1f50534e6bdeec50eb5a9a4976c3d010dc7)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(compani1) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("compani1.rom",0x0000,0x4000, CRC(bcfa6068) SHA1(40074b55c91a947698598e9d6ac5b8495e8cc840)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(spektrbk) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD("spektr-bk001.rom", 0x0000, 0x4000, CRC(c011eecc) SHA1(35fdc8cd083e50452655997a997873627b131520)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END ROM_START(zvezda) ROM_REGION(0x10000,"maincpu",0) ROM_LOAD( "2764-near-cpu_red.bin", 0x0000, 0x2000, CRC(a4ae4938) SHA1(ea1763b9dee29381ddcf882fbc4e404ba5366942)) ROM_LOAD( "2764-far-cpu_blue.bin", 0x2000, 0x2000, CRC(ebab64bc) SHA1(8c98a8b6e927b02cf602c20a1b50838e60f7785b)) - ROM_CART_LOAD("cart", 0x0000, 0x4000, ROM_NOCLEAR | ROM_NOMIRROR | ROM_OPTIONAL) ROM_END /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME */ diff --git a/src/mess/drivers/timex.c b/src/mess/drivers/timex.c index d64309dbe28..a91a906775b 100644 --- a/src/mess/drivers/timex.c +++ b/src/mess/drivers/timex.c @@ -736,7 +736,9 @@ static MACHINE_CONFIG_DERIVED( ts2068, spectrum_128 ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) /* cartridge */ - MCFG_CARTSLOT_MODIFY("cart") + MCFG_DEVICE_REMOVE("cartslot") + + MCFG_CARTSLOT_ADD("cart") MCFG_CARTSLOT_EXTENSION_LIST("dck") MCFG_CARTSLOT_NOT_MANDATORY MCFG_CARTSLOT_LOAD(spectrum_state,timex_cart) diff --git a/src/mess/includes/spectrum.h b/src/mess/includes/spectrum.h index f73965a794e..e4334384d12 100644 --- a/src/mess/includes/spectrum.h +++ b/src/mess/includes/spectrum.h @@ -7,12 +7,13 @@ #ifndef __SPECTRUM_H__ #define __SPECTRUM_H__ -#include "imagedev/snapquik.h" -#include "imagedev/cartslot.h" #include "machine/upd765.h" -#include "imagedev/cassette.h" #include "sound/speaker.h" #include "machine/ram.h" +#include "imagedev/snapquik.h" +#include "imagedev/cassette.h" +#include "bus/generic/slot.h" +#include "bus/generic/carts.h" /* Spectrum crystals */ @@ -79,6 +80,7 @@ public: m_cassette(*this, "cassette"), m_ram(*this, RAM_TAG), m_speaker(*this, "speaker"), + m_cart(*this, "cartslot"), m_upd765(*this, "upd765"), m_upd765_0(*this, "upd765:0"), m_upd765_1(*this, "upd765:1"), @@ -189,6 +191,7 @@ protected: required_device m_cassette; required_device m_ram; required_device m_speaker; + optional_device m_cart; optional_device m_upd765; optional_device m_upd765_0; optional_device m_upd765_1;