From 5b64a1d947ae05a2030a2a0fb710915c2fed5ae2 Mon Sep 17 00:00:00 2001 From: yz70s Date: Mon, 6 Jan 2020 01:29:50 +0100 Subject: pic16c62x: correct rom memory sizes (nw) --- src/devices/cpu/pic16c62x/pic16c62x.cpp | 17 +++++++++++------ 1 file 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]; -- cgit v1.2.3