From a879b3e1a8cf0e392696e12f5dba5d45be0dc826 Mon Sep 17 00:00:00 2001 From: Robbbert Date: Sun, 10 Apr 2022 16:29:53 +1000 Subject: [PATCH] pmd85: init vars, coverity 316086 --- src/mame/includes/pmd85.h | 22 ++++++++++++---------- src/mame/machine/pmd85.cpp | 12 ++++++++---- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/mame/includes/pmd85.h b/src/mame/includes/pmd85.h index 7741c6dcdf2..48d3c98d3f5 100644 --- a/src/mame/includes/pmd85.h +++ b/src/mame/includes/pmd85.h @@ -27,6 +27,7 @@ public: , m_maincpu(*this, "maincpu") , m_rom(*this, "maincpu") , m_ram(*this, RAM_TAG) + , m_user1(*this, "user1") , m_cassette(*this, "cassette") , m_speaker(*this, "speaker") , m_pit(*this, "pit") @@ -66,16 +67,16 @@ private: TIMER_CASSETTE }; - bool m_txd, m_rts; - uint8_t m_rom_module_present; - uint8_t m_ppi_port_outputs[4][3]; - uint8_t m_startup_mem_map; - uint8_t m_pmd853_memory_mapping; - bool m_previous_level; - bool m_clk_level; - bool m_clk_level_tape; - uint8_t m_model; - emu_timer * m_cassette_timer; + bool m_txd = false, m_rts = false; + uint8_t m_rom_module_present = 0; + uint8_t m_ppi_port_outputs[4][3]{}; + uint8_t m_startup_mem_map = 0; + uint8_t m_pmd853_memory_mapping = 0; + bool m_previous_level = false; + bool m_clk_level = false; + bool m_clk_level_tape = false; + uint8_t m_model = 0; + emu_timer * m_cassette_timer = nullptr; void (pmd85_state::*update_memory)(); uint8_t io_r(offs_t offset); void io_w(offs_t offset, uint8_t data); @@ -136,6 +137,7 @@ private: required_device m_maincpu; required_region_ptr m_rom; required_device m_ram; + optional_memory_region m_user1; required_device m_cassette; required_device m_speaker; required_device m_pit; diff --git a/src/mame/machine/pmd85.cpp b/src/mame/machine/pmd85.cpp index c2895d0a7d3..8e3829a64c5 100644 --- a/src/mame/machine/pmd85.cpp +++ b/src/mame/machine/pmd85.cpp @@ -394,10 +394,14 @@ void pmd85_state::ppi2_portc_w(uint8_t data) uint8_t pmd85_state::ppi3_porta_r() { - if (memregion("user1")->base()) - return memregion("user1")->base()[m_ppi_port_outputs[3][1] | (m_ppi_port_outputs[3][2] << 8)]; - else - return 0; + if (m_user1) + { + u16 t = m_ppi_port_outputs[3][1] | (m_ppi_port_outputs[3][2] << 8); + if (t < m_user1->bytes()) + return m_user1->base()[t]; + } + + return 0; } uint8_t pmd85_state::ppi3_portb_r()