summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/alto2
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2025-04-21 05:28:13 +1000
committer Vas Crabb <vas@vastheman.com>2025-04-21 05:28:13 +1000
commitc10ecb0941604be3cb8e5a361ad1ddd7bbd73380 (patch)
tree4beb083e9d8b11e446e0fc64ec4b321c027cc932 /src/devices/cpu/alto2
parentdc62387260ae7c8116cc233e2a66ea4de2e2cb83 (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.cpp2
-rw-r--r--src/devices/cpu/alto2/a2ether.h78
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