summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/m6502/m6509.cpp
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2019-11-02 12:14:01 -0400
committer AJR <ajrhacker@users.noreply.github.com>2019-11-02 12:18:18 -0400
commit40a75840af82c667cdf95494e681d44e2e78e588 (patch)
tree06d6869e2f49fbc8c8cb92c66fad434d45896514 /src/devices/cpu/m6502/m6509.cpp
parent11ad6ed232cb46366ae70bfa7717534d977f3e6a (diff)
m6502: Eliminate the disable_cache hack (nw)
Now that `direct_read_data` has been replaced with `memory_access_cache`, which is better equipped to deal with dynamic banking, there should be all the more reason to put an end to this pernicious antipattern.
Diffstat (limited to 'src/devices/cpu/m6502/m6509.cpp')
-rw-r--r--src/devices/cpu/m6502/m6509.cpp43
1 files changed, 8 insertions, 35 deletions
diff --git a/src/devices/cpu/m6502/m6509.cpp b/src/devices/cpu/m6502/m6509.cpp
index 95c2d62b79a..ea42fabd304 100644
--- a/src/devices/cpu/m6502/m6509.cpp
+++ b/src/devices/cpu/m6502/m6509.cpp
@@ -25,10 +25,7 @@ m6509_device::m6509_device(const machine_config &mconfig, const char *tag, devic
void m6509_device::device_start()
{
- if(cache_disabled)
- mintf = std::make_unique<mi_6509_nd>(this);
- else
- mintf = std::make_unique<mi_6509_normal>(this);
+ mintf = std::make_unique<mi_6509>(this);
init();
@@ -55,12 +52,12 @@ std::unique_ptr<util::disasm_interface> m6509_device::create_disassembler()
return std::make_unique<m6509_disassembler>();
}
-m6509_device::mi_6509_normal::mi_6509_normal(m6509_device *_base)
+m6509_device::mi_6509::mi_6509(m6509_device *_base)
{
base = _base;
}
-uint8_t m6509_device::mi_6509_normal::read(uint16_t adr)
+uint8_t m6509_device::mi_6509::read(uint16_t adr)
{
uint8_t res = program->read_byte(base->adr_in_bank_i(adr));
if(adr == 0x0000)
@@ -70,7 +67,7 @@ uint8_t m6509_device::mi_6509_normal::read(uint16_t adr)
return res;
}
-uint8_t m6509_device::mi_6509_normal::read_sync(uint16_t adr)
+uint8_t m6509_device::mi_6509::read_sync(uint16_t adr)
{
uint8_t res = scache->read_byte(base->adr_in_bank_i(adr));
if(adr == 0x0000)
@@ -80,7 +77,7 @@ uint8_t m6509_device::mi_6509_normal::read_sync(uint16_t adr)
return res;
}
-uint8_t m6509_device::mi_6509_normal::read_arg(uint16_t adr)
+uint8_t m6509_device::mi_6509::read_arg(uint16_t adr)
{
uint8_t res = cache->read_byte(base->adr_in_bank_i(adr));
if(adr == 0x0000)
@@ -90,7 +87,7 @@ uint8_t m6509_device::mi_6509_normal::read_arg(uint16_t adr)
return res;
}
-uint8_t m6509_device::mi_6509_normal::read_9(uint16_t adr)
+uint8_t m6509_device::mi_6509::read_9(uint16_t adr)
{
uint8_t res = program->read_byte(base->adr_in_bank_y(adr));
if(adr == 0x0000)
@@ -100,7 +97,7 @@ uint8_t m6509_device::mi_6509_normal::read_9(uint16_t adr)
return res;
}
-void m6509_device::mi_6509_normal::write(uint16_t adr, uint8_t val)
+void m6509_device::mi_6509::write(uint16_t adr, uint8_t val)
{
program->write_byte(base->adr_in_bank_i(adr), val);
if(adr == 0x0000)
@@ -109,7 +106,7 @@ void m6509_device::mi_6509_normal::write(uint16_t adr, uint8_t val)
base->bank_y_w(val);
}
-void m6509_device::mi_6509_normal::write_9(uint16_t adr, uint8_t val)
+void m6509_device::mi_6509::write_9(uint16_t adr, uint8_t val)
{
program->write_byte(base->adr_in_bank_y(adr), val);
if(adr == 0x0000)
@@ -118,28 +115,4 @@ void m6509_device::mi_6509_normal::write_9(uint16_t adr, uint8_t val)
base->bank_y_w(val);
}
-m6509_device::mi_6509_nd::mi_6509_nd(m6509_device *_base) : mi_6509_normal(_base)
-{
-}
-
-uint8_t m6509_device::mi_6509_nd::read_sync(uint16_t adr)
-{
- uint8_t res = sprogram->read_byte(base->adr_in_bank_i(adr));
- if(adr == 0x0000)
- res = base->bank_i_r();
- else if(adr == 0x0001)
- res = base->bank_y_r();
- return res;
-}
-
-uint8_t m6509_device::mi_6509_nd::read_arg(uint16_t adr)
-{
- uint8_t res = program->read_byte(base->adr_in_bank_i(adr));
- if(adr == 0x0000)
- res = base->bank_i_r();
- else if(adr == 0x0001)
- res = base->bank_y_r();
- return res;
-}
-
#include "cpu/m6502/m6509.hxx"