summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/m6502/m6510.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/m6502/m6510.cpp')
-rw-r--r--src/devices/cpu/m6502/m6510.cpp82
1 files changed, 12 insertions, 70 deletions
diff --git a/src/devices/cpu/m6502/m6510.cpp b/src/devices/cpu/m6502/m6510.cpp
index b045d4423f5..ca938474721 100644
--- a/src/devices/cpu/m6502/m6510.cpp
+++ b/src/devices/cpu/m6502/m6510.cpp
@@ -57,10 +57,7 @@ void m6510_device::init_port()
void m6510_device::device_start()
{
- if(cache_disabled)
- mintf = std::make_unique<mi_6510_nd>(this);
- else
- mintf = std::make_unique<mi_6510_normal>(this);
+ mintf = std::make_unique<mi_6510>(this);
init();
init_port();
@@ -109,12 +106,12 @@ void m6510_device::port_w(uint8_t data)
}
-m6510_device::mi_6510_normal::mi_6510_normal(m6510_device *_base)
+m6510_device::mi_6510::mi_6510(m6510_device *_base)
{
base = _base;
}
-uint8_t m6510_device::mi_6510_normal::read(uint16_t adr)
+uint8_t m6510_device::mi_6510::read(uint16_t adr)
{
uint8_t res = program->read_byte(adr);
if(adr == 0x0000)
@@ -124,7 +121,7 @@ uint8_t m6510_device::mi_6510_normal::read(uint16_t adr)
return res;
}
-uint8_t m6510_device::mi_6510_normal::read_sync(uint16_t adr)
+uint8_t m6510_device::mi_6510::read_sync(uint16_t adr)
{
uint8_t res = scache->read_byte(adr);
if(adr == 0x0000)
@@ -134,7 +131,7 @@ uint8_t m6510_device::mi_6510_normal::read_sync(uint16_t adr)
return res;
}
-uint8_t m6510_device::mi_6510_normal::read_arg(uint16_t adr)
+uint8_t m6510_device::mi_6510::read_arg(uint16_t adr)
{
uint8_t res = cache->read_byte(adr);
if(adr == 0x0000)
@@ -144,7 +141,7 @@ uint8_t m6510_device::mi_6510_normal::read_arg(uint16_t adr)
return res;
}
-void m6510_device::mi_6510_normal::write(uint16_t adr, uint8_t val)
+void m6510_device::mi_6510::write(uint16_t adr, uint8_t val)
{
program->write_byte(adr, val);
if(adr == 0x0000)
@@ -153,30 +150,6 @@ void m6510_device::mi_6510_normal::write(uint16_t adr, uint8_t val)
base->port_w(val);
}
-m6510_device::mi_6510_nd::mi_6510_nd(m6510_device *_base) : mi_6510_normal(_base)
-{
-}
-
-uint8_t m6510_device::mi_6510_nd::read_sync(uint16_t adr)
-{
- uint8_t res = sprogram->read_byte(adr);
- if(adr == 0x0000)
- res = base->dir_r();
- else if(adr == 0x0001)
- res = base->port_r();
- return res;
-}
-
-uint8_t m6510_device::mi_6510_nd::read_arg(uint16_t adr)
-{
- uint8_t res = program->read_byte(adr);
- if(adr == 0x0000)
- res = base->dir_r();
- else if(adr == 0x0001)
- res = base->port_r();
- return res;
-}
-
m6508_device::m6508_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
m6510_device(mconfig, M6508, tag, owner, clock)
@@ -185,10 +158,7 @@ m6508_device::m6508_device(const machine_config &mconfig, const char *tag, devic
void m6508_device::device_start()
{
- if(cache_disabled)
- mintf = std::make_unique<mi_6508_nd>(this);
- else
- mintf = std::make_unique<mi_6508_normal>(this);
+ mintf = std::make_unique<mi_6508>(this);
init();
init_port();
@@ -198,12 +168,12 @@ void m6508_device::device_start()
}
-m6508_device::mi_6508_normal::mi_6508_normal(m6508_device *_base)
+m6508_device::mi_6508::mi_6508(m6508_device *_base)
{
base = _base;
}
-uint8_t m6508_device::mi_6508_normal::read(uint16_t adr)
+uint8_t m6508_device::mi_6508::read(uint16_t adr)
{
uint8_t res = program->read_byte(adr);
if(adr == 0x0000)
@@ -215,7 +185,7 @@ uint8_t m6508_device::mi_6508_normal::read(uint16_t adr)
return res;
}
-uint8_t m6508_device::mi_6508_normal::read_sync(uint16_t adr)
+uint8_t m6508_device::mi_6508::read_sync(uint16_t adr)
{
uint8_t res = scache->read_byte(adr);
if(adr == 0x0000)
@@ -227,7 +197,7 @@ uint8_t m6508_device::mi_6508_normal::read_sync(uint16_t adr)
return res;
}
-uint8_t m6508_device::mi_6508_normal::read_arg(uint16_t adr)
+uint8_t m6508_device::mi_6508::read_arg(uint16_t adr)
{
uint8_t res = cache->read_byte(adr);
if(adr == 0x0000)
@@ -239,7 +209,7 @@ uint8_t m6508_device::mi_6508_normal::read_arg(uint16_t adr)
return res;
}
-void m6508_device::mi_6508_normal::write(uint16_t adr, uint8_t val)
+void m6508_device::mi_6508::write(uint16_t adr, uint8_t val)
{
program->write_byte(adr, val);
if(adr == 0x0000)
@@ -250,33 +220,5 @@ void m6508_device::mi_6508_normal::write(uint16_t adr, uint8_t val)
base->ram_page[adr & 0x00ff] = val;
}
-m6508_device::mi_6508_nd::mi_6508_nd(m6508_device *_base) : mi_6508_normal(_base)
-{
-}
-
-uint8_t m6508_device::mi_6508_nd::read_sync(uint16_t adr)
-{
- uint8_t res = sprogram->read_byte(adr);
- if(adr == 0x0000)
- res = base->dir_r();
- else if(adr == 0x0001)
- res = base->port_r();
- else if(adr < 0x0200)
- res = base->ram_page[adr & 0x00ff];
- return res;
-}
-
-uint8_t m6508_device::mi_6508_nd::read_arg(uint16_t adr)
-{
- uint8_t res = program->read_byte(adr);
- if(adr == 0x0000)
- res = base->dir_r();
- else if(adr == 0x0001)
- res = base->port_r();
- else if(adr < 0x0200)
- res = base->ram_page[adr & 0x00ff];
- return res;
-}
-
#include "cpu/m6502/m6510.hxx"