summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/c64/fcc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/c64/fcc.cpp')
-rw-r--r--src/devices/bus/c64/fcc.cpp28
1 files changed, 24 insertions, 4 deletions
diff --git a/src/devices/bus/c64/fcc.cpp b/src/devices/bus/c64/fcc.cpp
index dc1668c0eab..96b0c172c12 100644
--- a/src/devices/bus/c64/fcc.cpp
+++ b/src/devices/bus/c64/fcc.cpp
@@ -42,11 +42,9 @@ 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, 5_MHz_XTAL);
+ G65SC02(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");
-
GENERIC_LATCH_8(config, m_mainlatch).data_pending_callback().set(FUNC(c64_final_chesscard_device::mainlatch_int));
GENERIC_LATCH_8(config, m_sublatch).data_pending_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
}
@@ -58,7 +56,7 @@ void c64_final_chesscard_device::device_add_mconfig(machine_config &config)
static INPUT_PORTS_START( c64_fcc )
PORT_START("RESET")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Reset") PORT_CODE(KEYCODE_F11) PORT_WRITE_LINE_DEVICE_MEMBER(DEVICE_SELF_OWNER, c64_expansion_slot_device, reset_w)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Reset") PORT_CODE(KEYCODE_F11) PORT_WRITE_LINE_DEVICE_MEMBER(DEVICE_SELF_OWNER, FUNC(c64_expansion_slot_device::reset_w))
INPUT_PORTS_END
@@ -99,7 +97,10 @@ c64_final_chesscard_device::c64_final_chesscard_device(const machine_config &mco
void c64_final_chesscard_device::device_start()
{
+ m_nvram = std::make_unique<uint8_t[]>(0x2000);
+
// state saving
+ save_pointer(NAME(m_nvram), 0x2000);
save_item(NAME(m_bank));
save_item(NAME(m_hidden));
}
@@ -122,6 +123,25 @@ void c64_final_chesscard_device::device_reset()
}
+void c64_final_chesscard_device::nvram_default()
+{
+}
+
+
+bool c64_final_chesscard_device::nvram_read(util::read_stream &file)
+{
+ auto const [err, actual] = read(file, m_nvram.get(), 0x2000);
+ return !err && (actual == 0x2000);
+}
+
+
+bool c64_final_chesscard_device::nvram_write(util::write_stream &file)
+{
+ auto const [err, actual] = write(file, m_nvram.get(), 0x2000);
+ return !err;
+}
+
+
//-------------------------------------------------
// c64_cd_r - cartridge data read
//-------------------------------------------------