mirror of
https://github.com/holub/mame
synced 2025-10-04 16:34:53 +03:00
c64 fcc: don't use romh for external rom (nw)
This commit is contained in:
parent
19158e52c6
commit
87f72ffe10
@ -6674,7 +6674,7 @@
|
||||
<dataarea name="roml" size="0x8000"> <!-- c64 cpu -->
|
||||
<rom name="fcc_rom2" size="0x8000" crc="1680163b" sha1="ddd7154c6ccd6aed9d99c1b7892c3513f0aa2b47" />
|
||||
</dataarea>
|
||||
<dataarea name="romh" size="0x8000"> <!-- cartridge cpu -->
|
||||
<dataarea name="romx" size="0x8000"> <!-- cartridge cpu -->
|
||||
<rom name="fcc_rom1" size="0x8000" crc="2949836a" sha1="9e6283095df9e3f4802ed0c654101f8e37168bf6" />
|
||||
</dataarea>
|
||||
|
||||
@ -6695,7 +6695,7 @@
|
||||
<dataarea name="roml" size="0x8000"> <!-- c64 cpu -->
|
||||
<rom name="fcc_rom2" size="0x8000" crc="181be1a4" sha1="4c84ca97a94c2577bf1c7ce4acc5fe12ec284751" />
|
||||
</dataarea>
|
||||
<dataarea name="romh" size="0x8000"> <!-- cartridge cpu -->
|
||||
<dataarea name="romx" size="0x8000"> <!-- cartridge cpu -->
|
||||
<rom name="fcc_rom1" size="0x8000" crc="a45b6090" sha1="a9912f82364bb424df9eced39fb709b3ba8a7f9e" />
|
||||
</dataarea>
|
||||
|
||||
@ -6716,7 +6716,7 @@
|
||||
<dataarea name="roml" size="0x8000"> <!-- c64 cpu -->
|
||||
<rom name="fcc_rom2" size="0x8000" crc="8fc0f156" sha1="c843729870e7ce59bb64b60ebec028f7200f93d1" />
|
||||
</dataarea>
|
||||
<dataarea name="romh" size="0x8000"> <!-- cartridge cpu -->
|
||||
<dataarea name="romx" size="0x8000"> <!-- cartridge cpu -->
|
||||
<rom name="fcc_rom1" size="0x8000" crc="2949836a" sha1="9e6283095df9e3f4802ed0c654101f8e37168bf6" />
|
||||
</dataarea>
|
||||
|
||||
|
@ -405,7 +405,7 @@ int buscard_t::c64_game_r(offs_t offset, int sphi2, int ba, int rw)
|
||||
|
||||
int buscard_t::c64_exrom_r(offs_t offset, int sphi2, int ba, int rw)
|
||||
{
|
||||
return !pd_pgm1(offset, sphi2) | m_exp->exrom_r(offset, sphi2, ba, rw, m_slot->loram(), m_slot->hiram());
|
||||
return (!pd_pgm1(offset, sphi2)) | m_exp->exrom_r(offset, sphi2, ba, rw, m_slot->loram(), m_slot->hiram());
|
||||
}
|
||||
|
||||
|
||||
|
@ -31,6 +31,7 @@ device_c64_expansion_card_interface::device_c64_expansion_card_interface(const m
|
||||
device_slot_card_interface(mconfig, device),
|
||||
m_roml(*this, "roml"),
|
||||
m_romh(*this, "romh"),
|
||||
m_romx(*this, "romx"),
|
||||
m_nvram(*this, "nvram"),
|
||||
m_game(1),
|
||||
m_exrom(1)
|
||||
@ -193,6 +194,7 @@ image_init_result c64_expansion_slot_device::call_load()
|
||||
// Commodore 64/128 cartridge
|
||||
load_software_region("roml", m_card->m_roml);
|
||||
load_software_region("romh", m_card->m_romh);
|
||||
load_software_region("romx", m_card->m_romx);
|
||||
load_software_region("nvram", m_card->m_nvram);
|
||||
|
||||
if (get_feature("exrom") != nullptr) m_card->m_exrom = atol(get_feature("exrom"));
|
||||
|
@ -97,7 +97,7 @@ public:
|
||||
int dotclock() { return phi2() * 8; }
|
||||
int hiram() { return m_hiram; }
|
||||
int loram() { return m_loram; }
|
||||
|
||||
|
||||
void set_passthrough();
|
||||
|
||||
protected:
|
||||
@ -157,6 +157,7 @@ protected:
|
||||
|
||||
optional_shared_ptr<uint8_t> m_roml;
|
||||
optional_shared_ptr<uint8_t> m_romh;
|
||||
optional_shared_ptr<uint8_t> m_romx;
|
||||
optional_shared_ptr<uint8_t> m_nvram;
|
||||
|
||||
int m_game;
|
||||
|
@ -28,6 +28,7 @@ DEFINE_DEVICE_TYPE(C64_FCC, c64_final_chesscard_device, "c64_fcc", "Final ChessC
|
||||
void c64_final_chesscard_device::c64_fcc_map(address_map &map)
|
||||
{
|
||||
map(0x0000, 0x1fff).rw(FUNC(c64_final_chesscard_device::nvram_r), FUNC(c64_final_chesscard_device::nvram_w)); // A13-A15 = low
|
||||
//map(0x6000, 0x6000).noprw(); // N/C
|
||||
map(0x7f00, 0x7f00).mirror(0x00ff).r(m_sublatch, FUNC(generic_latch_8_device::read)).w(m_mainlatch, FUNC(generic_latch_8_device::write)); // A8-A14 = high
|
||||
map(0x8000, 0xffff).r(FUNC(c64_final_chesscard_device::rom_r));
|
||||
}
|
||||
@ -39,7 +40,7 @@ void c64_final_chesscard_device::c64_fcc_map(address_map &map)
|
||||
|
||||
void c64_final_chesscard_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
M65SC02(config, m_maincpu, XTAL(5'000'000));
|
||||
M65SC02(config, m_maincpu, 5_MHz_XTAL);
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &c64_final_chesscard_device::c64_fcc_map);
|
||||
|
||||
config.m_perfect_cpu_quantum = subtag("maincpu");
|
||||
|
@ -58,7 +58,7 @@ private:
|
||||
int m_hidden;
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER(mainlatch_int) { m_slot->nmi_w(state); }
|
||||
DECLARE_READ8_MEMBER(rom_r) { return m_romh[offset]; } // cartridge cpu rom
|
||||
DECLARE_READ8_MEMBER(rom_r) { return m_romx[offset]; } // cartridge cpu rom
|
||||
DECLARE_READ8_MEMBER(nvram_r) { return m_nvram[offset & m_nvram.mask()]; }
|
||||
DECLARE_WRITE8_MEMBER(nvram_w) { m_nvram[offset & m_nvram.mask()] = data; }
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
#include "emu.h"
|
||||
#include "finalchs.h"
|
||||
#include "cpu/m6502/m65c02.h"
|
||||
#include "cpu/m6502/m65sc02.h"
|
||||
|
||||
WRITE8_MEMBER( isa8_finalchs_device::io7ff8_write )
|
||||
{
|
||||
@ -73,7 +73,7 @@ DEFINE_DEVICE_TYPE(ISA8_FINALCHS, isa8_finalchs_device, "isa_finalchs", "Final C
|
||||
|
||||
void isa8_finalchs_device::device_add_mconfig(machine_config &config)
|
||||
{
|
||||
m65c02_device &cpu(M65C02(config, "maincpu", 5000000));
|
||||
m65sc02_device &cpu(M65SC02(config, "maincpu", 5_MHz_XTAL));
|
||||
cpu.set_addrmap(AS_PROGRAM, &isa8_finalchs_device::finalchs_mem);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user