summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/pic16c62x
diff options
context:
space:
mode:
author yz70s <yz70s@users.noreply.github.com>2020-01-06 01:29:50 +0100
committer yz70s <yz70s@users.noreply.github.com>2020-01-06 16:48:44 +0100
commit5b64a1d947ae05a2030a2a0fb710915c2fed5ae2 (patch)
treee275f378fdcc2a4a4c57e310520116371d859bf6 /src/devices/cpu/pic16c62x
parent5a93f7903e0443a86ca020f3b769cb98f610d543 (diff)
pic16c62x: correct rom memory sizes (nw)
Diffstat (limited to 'src/devices/cpu/pic16c62x')
-rw-r--r--src/devices/cpu/pic16c62x/pic16c62x.cpp17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/devices/cpu/pic16c62x/pic16c62x.cpp b/src/devices/cpu/pic16c62x/pic16c62x.cpp
index 0ebb09d6090..bc4b8a3676f 100644
--- a/src/devices/cpu/pic16c62x/pic16c62x.cpp
+++ b/src/devices/cpu/pic16c62x/pic16c62x.cpp
@@ -123,9 +123,13 @@ void pic16c62x_device::pic16c62xa_ram(address_map &map)
pic16c62x_device::pic16c62x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int program_width, int picmodel)
: cpu_device(mconfig, type, tag, owner, clock)
, m_program_config("program", ENDIANNESS_LITTLE, 16, program_width, -1
- , ( ( program_width == 9 ) ? address_map_constructor(FUNC(pic16c62x_device::pic16c62x_rom_9), this) : ( ( program_width == 10 ) ? address_map_constructor(FUNC(pic16c62x_device::pic16c62x_rom_10), this) : address_map_constructor(FUNC(pic16c62x_device::pic16c62x_rom_11), this) )))
+ , ( ( program_width == 9 ) ? address_map_constructor(FUNC(pic16c62x_device::pic16c62x_rom_9), this) :
+ ( ( program_width == 10 ) ? address_map_constructor(FUNC(pic16c62x_device::pic16c62x_rom_10), this) :
+ address_map_constructor(FUNC(pic16c62x_device::pic16c62x_rom_11), this) )))
, m_data_config("data", ENDIANNESS_LITTLE, 8, 8, 0
- , ( ( picmodel == 0x16C620 || picmodel == 0x16C621 ) ? address_map_constructor(FUNC(pic16c62x_device::pic16c620_ram), this) : ( ( picmodel == 0x16C622 ) ? address_map_constructor(FUNC(pic16c62x_device::pic16c622_ram), this) : address_map_constructor(FUNC(pic16c62x_device::pic16c62xa_ram), this) ) ) )
+ , ( ( picmodel == 0x16C620 || picmodel == 0x16C621 ) ? address_map_constructor(FUNC(pic16c62x_device::pic16c620_ram), this) :
+ ( ( picmodel == 0x16C622 ) ? address_map_constructor(FUNC(pic16c62x_device::pic16c622_ram), this) :
+ address_map_constructor(FUNC(pic16c62x_device::pic16c62xa_ram), this) ) ) )
, m_io_config("io", ENDIANNESS_LITTLE, 8, 5, 0)
, m_reset_vector(0x0)
, m_picmodel(picmodel)
@@ -145,22 +149,22 @@ pic16c620a_device::pic16c620a_device(const machine_config &mconfig, const char *
}
pic16c621_device::pic16c621_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : pic16c62x_device(mconfig, PIC16C621, tag, owner, clock, 9, 0x16C621)
+ : pic16c62x_device(mconfig, PIC16C621, tag, owner, clock, 10, 0x16C621)
{
}
pic16c621a_device::pic16c621a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : pic16c62x_device(mconfig, PIC16C621A, tag, owner, clock, 9, 0x16C621A)
+ : pic16c62x_device(mconfig, PIC16C621A, tag, owner, clock, 10, 0x16C621A)
{
}
pic16c622_device::pic16c622_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : pic16c62x_device(mconfig, PIC16C622, tag, owner, clock, 9, 0x16C622)
+ : pic16c62x_device(mconfig, PIC16C622, tag, owner, clock, 11, 0x16C622)
{
}
pic16c622a_device::pic16c622a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : pic16c62x_device(mconfig, PIC16C622A, tag, owner, clock, 9, 0x16C622A)
+ : pic16c62x_device(mconfig, PIC16C622A, tag, owner, clock, 11, 0x16C622A)
{
}
@@ -340,6 +344,7 @@ uint16_t pic16c62x_device::POP_STACK()
m_STACK[1] = m_STACK[0];
return (data & ADDR_MASK);
}
+
void pic16c62x_device::PUSH_STACK(uint16_t data)
{
m_STACK[0] = m_STACK[1];