diff options
author | 2025-04-21 05:28:13 +1000 | |
---|---|---|
committer | 2025-04-21 05:28:13 +1000 | |
commit | c10ecb0941604be3cb8e5a361ad1ddd7bbd73380 (patch) | |
tree | 4beb083e9d8b11e446e0fc64ec4b321c027cc932 /src/devices/cpu/alto2 | |
parent | dc62387260ae7c8116cc233e2a66ea4de2e2cb83 (diff) |
Fixed the last GCC class memory access warnings and cleaned up some stuff.
* shared/exidysound.cpp: Use real 8253 PIT device rather than a local
implementation, fixed class memory access error, cleaned up code to
use virtual member functions idiomatically.
* cpu/alto2: Fixed class memory access error (was nuking unique
pointers).
* interton/vc4000_v.cpp: Fixed class memory access error, got rid of
indirection on bitmap, cleaned up a little.
* Enabled error for GCC class memory access warning to avoid rot.
Diffstat (limited to 'src/devices/cpu/alto2')
-rw-r--r-- | src/devices/cpu/alto2/a2ether.cpp | 2 | ||||
-rw-r--r-- | src/devices/cpu/alto2/a2ether.h | 78 |
2 files changed, 40 insertions, 40 deletions
diff --git a/src/devices/cpu/alto2/a2ether.cpp b/src/devices/cpu/alto2/a2ether.cpp index 87ee4268370..4bdd9b649a5 100644 --- a/src/devices/cpu/alto2/a2ether.cpp +++ b/src/devices/cpu/alto2/a2ether.cpp @@ -1307,7 +1307,7 @@ void alto2_cpu_device::update_tclk(int tclk) void alto2_cpu_device::init_ether(int task) { // intialize all ethernet variables - memset(&m_eth, 0, sizeof(m_eth)); + m_eth = decltype(m_eth)(); save_item(NAME(m_eth.fifo)); save_item(NAME(m_eth.fifo_rd)); save_item(NAME(m_eth.fifo_wr)); diff --git a/src/devices/cpu/alto2/a2ether.h b/src/devices/cpu/alto2/a2ether.h index 7d0ab567215..7ec4320c226 100644 --- a/src/devices/cpu/alto2/a2ether.h +++ b/src/devices/cpu/alto2/a2ether.h @@ -48,45 +48,45 @@ enum { }; struct { - uint32_t serin; //!< serial input shift registers 74164 #37 and #33 - uint16_t fifo[ALTO2_ETHER_FIFO_SIZE]; //!< FIFO buffer - uint16_t fifo_rd; //!< FIFO input pointer - uint16_t fifo_wr; //!< FIFO output pointer - uint16_t status; //!< status word - uint16_t rx_crc; //!< receiver CRC - uint16_t tx_crc; //!< transmitter CRC - uint32_t rx_count; //!< received words count - uint32_t tx_count; //!< transmitted words count - std::unique_ptr<uint16_t[]> rx_packet; //!< buffer to collect received words - std::unique_ptr<uint16_t[]> tx_packet; //!< buffer to collect transmitted words - emu_timer* rx_timer; //!< receiver timer - emu_timer* tx_timer; //!< transmitter timer - jkff_t ff_10a; //!< JK flip-flop 10a IBUSY (Sheet 13) - jkff_t ff_10b; //!< JK flip-flop 10b OBUSY (Sheet 13) - jkff_t ff_21a; //!< JK flip-flop 21a OUTON (Sheet 19) - jkff_t ff_21b; //!< JK flip-flop 21b COLL (Sheet 19) - jkff_t ff_31a; //!< JK flip-flop 31a OUTGONE (Sheet 19) - jkff_t ff_31b; //!< JK flip-flop 31b OEOT (Sheet 19) - jkff_t ff_35a; //!< JK flip-flop 35a OCMD (Sheet 7) - jkff_t ff_35b; //!< JK flip-flop 35b ICMD (Sheet 7) - jkff_t ff_47a; //!< JK flip-flop 47a ISR14 (Sheet 15) - jkff_t ff_47b; //!< JK flip-flop 47b ISR15 (Sheet 15) - jkff_t ff_51a; //!< JK flip-flop 51a EWFCT latch (Sheet 19) - jkff_t ff_51b; //!< JK flip-flop 51b OCDW (Sheet 19) - jkff_t ff_52b; //!< JK flip-flop 52b OSLOAD (Sheet 17) - jkff_t ff_61a; //!< JK flip-flop 61a CRCGO (Sheet 21) - jkff_t ff_61b; //!< JK flip-flop 61b OUTRGO (Sheet 21) - jkff_t ff_62a; //!< JK flip-flop 62a OUTON (Sheet 21) - jkff_t ff_62b; //!< JK flip-flop 62b OUTGO (Sheet 21) - jkff_t ff_65a; //!< JK flip-flop 65a IDL (Sheet 10) - jkff_t ff_65b; //!< JK flip-flop 65b IO (Sheet 10) - jkff_t ff_69a; //!< JK flip-flop 69a IT (Sheet 14) - jkff_t ff_69b; //!< JK flip-flop 69b INON (Sheet 14) - jkff_t ff_70a; //!< JK flip-flop 70a IMID (Sheet 14) - jkff_t ff_70b; //!< JK flip-flop 70b ILOC (Sheet 14) - jkff_t ff_77a; //!< JK flip-flop 77a WR (Sheet 10) - jkff_t ff_77b; //!< JK flip-flop 77b WLF (Sheet 10) - int breath_of_life; //!< if non-zero, interval in seconds at which to broadcast the breath-of-life + uint32_t serin = 0; //!< serial input shift registers 74164 #37 and #33 + uint16_t fifo[ALTO2_ETHER_FIFO_SIZE] = { }; //!< FIFO buffer + uint16_t fifo_rd = 0; //!< FIFO input pointer + uint16_t fifo_wr = 0; //!< FIFO output pointer + uint16_t status = 0; //!< status word + uint16_t rx_crc = 0; //!< receiver CRC + uint16_t tx_crc = 0; //!< transmitter CRC + uint32_t rx_count = 0; //!< received words count + uint32_t tx_count = 0; //!< transmitted words count + std::unique_ptr<uint16_t []> rx_packet; //!< buffer to collect received words + std::unique_ptr<uint16_t []> tx_packet; //!< buffer to collect transmitted words + emu_timer *rx_timer = nullptr; //!< receiver timer + emu_timer *tx_timer = nullptr; //!< transmitter timer + jkff_t ff_10a = JKFF_0; //!< JK flip-flop 10a IBUSY (Sheet 13) + jkff_t ff_10b = JKFF_0; //!< JK flip-flop 10b OBUSY (Sheet 13) + jkff_t ff_21a = JKFF_0; //!< JK flip-flop 21a OUTON (Sheet 19) + jkff_t ff_21b = JKFF_0; //!< JK flip-flop 21b COLL (Sheet 19) + jkff_t ff_31a = JKFF_0; //!< JK flip-flop 31a OUTGONE (Sheet 19) + jkff_t ff_31b = JKFF_0; //!< JK flip-flop 31b OEOT (Sheet 19) + jkff_t ff_35a = JKFF_0; //!< JK flip-flop 35a OCMD (Sheet 7) + jkff_t ff_35b = JKFF_0; //!< JK flip-flop 35b ICMD (Sheet 7) + jkff_t ff_47a = JKFF_0; //!< JK flip-flop 47a ISR14 (Sheet 15) + jkff_t ff_47b = JKFF_0; //!< JK flip-flop 47b ISR15 (Sheet 15) + jkff_t ff_51a = JKFF_0; //!< JK flip-flop 51a EWFCT latch (Sheet 19) + jkff_t ff_51b = JKFF_0; //!< JK flip-flop 51b OCDW (Sheet 19) + jkff_t ff_52b = JKFF_0; //!< JK flip-flop 52b OSLOAD (Sheet 17) + jkff_t ff_61a = JKFF_0; //!< JK flip-flop 61a CRCGO (Sheet 21) + jkff_t ff_61b = JKFF_0; //!< JK flip-flop 61b OUTRGO (Sheet 21) + jkff_t ff_62a = JKFF_0; //!< JK flip-flop 62a OUTON (Sheet 21) + jkff_t ff_62b = JKFF_0; //!< JK flip-flop 62b OUTGO (Sheet 21) + jkff_t ff_65a = JKFF_0; //!< JK flip-flop 65a IDL (Sheet 10) + jkff_t ff_65b = JKFF_0; //!< JK flip-flop 65b IO (Sheet 10) + jkff_t ff_69a = JKFF_0; //!< JK flip-flop 69a IT (Sheet 14) + jkff_t ff_69b = JKFF_0; //!< JK flip-flop 69b INON (Sheet 14) + jkff_t ff_70a = JKFF_0; //!< JK flip-flop 70a IMID (Sheet 14) + jkff_t ff_70b = JKFF_0; //!< JK flip-flop 70b ILOC (Sheet 14) + jkff_t ff_77a = JKFF_0; //!< JK flip-flop 77a WR (Sheet 10) + jkff_t ff_77b = JKFF_0; //!< JK flip-flop 77b WLF (Sheet 10) + int breath_of_life = 0; //!< if non-zero, interval in seconds at which to broadcast the breath-of-life } m_eth; TIMER_CALLBACK_MEMBER( rx_breath_of_life ); //!< HACK: pull the next word from the breath-of-life in the fifo |