mirror of
https://github.com/holub/mame
synced 2025-04-23 08:49:55 +03:00
(MESS) spectrum carts too. nw.
This commit is contained in:
parent
f7dc8b81a3
commit
cbad1cc7bc
@ -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))
|
||||
|
@ -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 */
|
||||
|
@ -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 */
|
||||
|
@ -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 */
|
||||
|
@ -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 */
|
||||
|
@ -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 */
|
||||
|
@ -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)
|
||||
|
@ -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<cassette_image_device> m_cassette;
|
||||
required_device<ram_device> m_ram;
|
||||
required_device<speaker_sound_device> m_speaker;
|
||||
optional_device<generic_slot_device> m_cart;
|
||||
optional_device<upd765a_device> m_upd765;
|
||||
optional_device<floppy_connector> m_upd765_0;
|
||||
optional_device<floppy_connector> m_upd765_1;
|
||||
|
Loading…
Reference in New Issue
Block a user