From a868c1568da0cb84224d3d36078f2615fad2c39c Mon Sep 17 00:00:00 2001 From: Mark Garlanger Date: Wed, 2 Aug 2023 11:49:20 -0500 Subject: [PATCH] heathkit/h89.cpp, heathkit/intr_cntrl.cpp, heathkit/z37_fdc.cpp: Cleaned up singal line handlers. (#11460) * Got rid of inappropriate use of ASSERT_LINE/CLEAR_LINE. * Cleaned up member names. * Avoid implicit integer/Boolean conversions. --- src/mame/heathkit/h89.cpp | 10 +++---- src/mame/heathkit/intr_cntrl.cpp | 50 +++++++++++++++----------------- src/mame/heathkit/intr_cntrl.h | 8 ++--- src/mame/heathkit/z37_fdc.cpp | 38 ++++++++++++------------ src/mame/heathkit/z37_fdc.h | 10 +++---- 5 files changed, 57 insertions(+), 59 deletions(-) diff --git a/src/mame/heathkit/h89.cpp b/src/mame/heathkit/h89.cpp index 6174b1b26d5..d7654cedf95 100644 --- a/src/mame/heathkit/h89.cpp +++ b/src/mame/heathkit/h89.cpp @@ -379,19 +379,19 @@ void h89_state::raise_NMI_w(uint8_t) void h89_state::console_intr(uint8_t data) { - if (data == CLEAR_LINE) + if (bool(data)) { - m_intr_cntrl->lower_irq(3); + m_intr_cntrl->raise_irq(3); } else { - m_intr_cntrl->raise_irq(3); + m_intr_cntrl->lower_irq(3); } } void h89_state::reset_line(int data) { - if (data == ASSERT_LINE) + if (bool(data)) { reset(); } @@ -461,7 +461,7 @@ void h89_state::h89(machine_config & config) HEATH_Z37_FDC(config, m_h37); m_h37->drq_cb().set(m_intr_cntrl, FUNC(z37_intr_cntrl::set_drq)); - m_h37->irq_cb().set(m_intr_cntrl, FUNC(z37_intr_cntrl::set_intrq)); + m_h37->irq_cb().set(m_intr_cntrl, FUNC(z37_intr_cntrl::set_irq)); m_h37->block_interrupt_cb().set(m_intr_cntrl, FUNC(z37_intr_cntrl::block_interrupts)); // H-88-3 3-port serial board diff --git a/src/mame/heathkit/intr_cntrl.cpp b/src/mame/heathkit/intr_cntrl.cpp index c382d3df92e..1831fa203e5 100644 --- a/src/mame/heathkit/intr_cntrl.cpp +++ b/src/mame/heathkit/intr_cntrl.cpp @@ -13,14 +13,14 @@ DEFINE_DEVICE_TYPE(HEATH_INTR_CNTRL, heath_intr_cntrl, "heath_intr_cntrl", "Heath H/Z-89 Interrupt Controller"); DEFINE_DEVICE_TYPE(HEATH_Z37_INTR_CNTRL, z37_intr_cntrl, "heath_z37_intr_cntrl", "Heath H/Z-89 with Z-37 Interrupt Controller"); -heath_intr_cntrl::heath_intr_cntrl(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : heath_intr_cntrl(mconfig, HEATH_INTR_CNTRL, tag, owner, clock) +heath_intr_cntrl::heath_intr_cntrl(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock): + heath_intr_cntrl(mconfig, HEATH_INTR_CNTRL, tag, owner, clock) { } -heath_intr_cntrl::heath_intr_cntrl(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, type, tag, owner, 0) - , m_irq_line(*this) +heath_intr_cntrl::heath_intr_cntrl(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock): + device_t(mconfig, type, tag, owner, 0), + m_irq_line(*this) { } @@ -38,7 +38,7 @@ void heath_intr_cntrl::device_reset() void heath_intr_cntrl::update_intr_line() { - m_irq_line(m_intr_lines == 0 ? CLEAR_LINE : ASSERT_LINE); + m_irq_line((m_intr_lines == 0) ? 0 : 1); } void heath_intr_cntrl::raise_irq(uint8_t level) @@ -99,21 +99,19 @@ IRQ_CALLBACK_MEMBER(heath_intr_cntrl::irq_callback) return get_instruction(); } -z37_intr_cntrl::z37_intr_cntrl(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : heath_intr_cntrl(mconfig, HEATH_Z37_INTR_CNTRL, tag, owner, clock) +z37_intr_cntrl::z37_intr_cntrl(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock): + heath_intr_cntrl(mconfig, HEATH_Z37_INTR_CNTRL, tag, owner, clock) { - m_interrupts_blocked = false; + m_intr_blocked = false; m_drq_raised = false; - m_fd_irq_raised = false; + m_irq_raised = false; } void z37_intr_cntrl::update_intr_line() { - m_irq_line( - m_fd_irq_raised || - m_drq_raised || - (!m_interrupts_blocked && (m_intr_lines != 0)) ? ASSERT_LINE : CLEAR_LINE); + (m_irq_raised || m_drq_raised || + (!m_intr_blocked && (m_intr_lines != 0))) ? 1 : 0); } uint8_t z37_intr_cntrl::get_instruction() @@ -125,34 +123,34 @@ uint8_t z37_intr_cntrl::get_instruction() return 0xfb; } - if (m_fd_irq_raised) + if (m_irq_raised) { // RST 20H (Interrupt 4) return 0xe7; } - if (!m_interrupts_blocked) + if (!m_intr_blocked) { return heath_intr_cntrl::get_instruction(); } // shouldn't get here - NO-OP? - logerror("Warning: z37 intr get_instruction: fd: %d dr: %d ib: %d\n", m_fd_irq_raised, m_drq_raised, m_interrupts_blocked); + logerror("Warning: z37 intr get_instruction: fd: %d dr: %d ib: %d\n", m_irq_raised, m_drq_raised, m_intr_blocked); return 0x00; } -void z37_intr_cntrl::set_drq(uint8_t data) +void z37_intr_cntrl::set_drq(int state) { - m_drq_raised = (data != CLEAR_LINE); + m_drq_raised = bool(state); update_intr_line(); } -void z37_intr_cntrl::set_intrq(uint8_t data) +void z37_intr_cntrl::set_irq(int state) { - m_fd_irq_raised = (data != CLEAR_LINE); + m_irq_raised = bool(state); update_intr_line(); } @@ -161,13 +159,13 @@ void z37_intr_cntrl::device_start() { heath_intr_cntrl::device_start(); - save_item(NAME(m_interrupts_blocked)); + save_item(NAME(m_intr_blocked)); save_item(NAME(m_drq_raised)); - save_item(NAME(m_fd_irq_raised)); + save_item(NAME(m_irq_raised)); - m_interrupts_blocked = false; + m_intr_blocked = false; m_drq_raised = false; - m_fd_irq_raised = false; + m_irq_raised = false; } void z37_intr_cntrl::device_reset() @@ -177,7 +175,7 @@ void z37_intr_cntrl::device_reset() void z37_intr_cntrl::block_interrupts(uint8_t data) { - m_interrupts_blocked = (data != CLEAR_LINE); + m_intr_blocked = bool(data); update_intr_line(); } diff --git a/src/mame/heathkit/intr_cntrl.h b/src/mame/heathkit/intr_cntrl.h index 8d5c4c08ab3..f5972e41750 100644 --- a/src/mame/heathkit/intr_cntrl.h +++ b/src/mame/heathkit/intr_cntrl.h @@ -52,8 +52,8 @@ class z37_intr_cntrl : public heath_intr_cntrl public: z37_intr_cntrl(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); - virtual void set_drq(uint8_t data); - virtual void set_intrq(uint8_t data); + virtual void set_drq(int state); + virtual void set_irq(int state); virtual void block_interrupts(uint8_t data); protected: @@ -65,9 +65,9 @@ protected: virtual void device_reset() override; private: - bool m_interrupts_blocked; + bool m_intr_blocked; bool m_drq_raised; - bool m_fd_irq_raised; + bool m_irq_raised; }; DECLARE_DEVICE_TYPE(HEATH_INTR_CNTRL, heath_intr_cntrl) diff --git a/src/mame/heathkit/z37_fdc.cpp b/src/mame/heathkit/z37_fdc.cpp index c21802958e5..89e1ed20b69 100644 --- a/src/mame/heathkit/z37_fdc.cpp +++ b/src/mame/heathkit/z37_fdc.cpp @@ -36,7 +36,7 @@ DEFINE_DEVICE_TYPE(HEATH_Z37_FDC, heath_z37_fdc_device, "heath_z37_fdc", "Heath heath_z37_fdc_device::heath_z37_fdc_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock): device_t(mconfig, HEATH_Z37_FDC, tag, owner, 0), - m_fd_irq_cb(*this), + m_irq_cb(*this), m_drq_cb(*this), m_block_interrupt_cb(*this), m_fdc(*this, "z37_fdc"), @@ -49,21 +49,21 @@ void heath_z37_fdc_device::ctrl_w(u8 val) { bool motor_on = bool(BIT(val, ctrl_MotorsOn_c)); - m_intrq_allowed = bool(BIT(val, ctrl_EnableIntReq_c)); + m_irq_allowed = bool(BIT(val, ctrl_EnableIntReq_c)); m_drq_allowed = bool(BIT(val, ctrl_EnableDrqInt_c)); - m_fdc->dden_w(BIT(val, ctrl_SetMFMRecording_c) ? CLEAR_LINE : ASSERT_LINE); + m_fdc->dden_w(BIT(~val, ctrl_SetMFMRecording_c)); LOGREG("%s: motor on: %d, intrq allowed: %d, drq allowed: %d\n", - FUNCNAME, motor_on, m_intrq_allowed, m_drq_allowed); + FUNCNAME, motor_on, m_irq_allowed, m_drq_allowed); if (m_drq_allowed) { - m_block_interrupt_cb(ASSERT_LINE); + m_block_interrupt_cb(1); } else { - m_block_interrupt_cb(CLEAR_LINE); - m_drq_cb(CLEAR_LINE); + m_block_interrupt_cb(0); + m_drq_cb(0); } if (BIT(val, ctrl_Drive_0_c)) @@ -176,24 +176,24 @@ u8 heath_z37_fdc_device::read(offs_t reg) void heath_z37_fdc_device::device_start() { - save_item(NAME(m_intrq_allowed)); + save_item(NAME(m_irq_allowed)); save_item(NAME(m_drq_allowed)); save_item(NAME(m_access_track_sector)); - m_intrq_allowed = false; + m_irq_allowed = false; m_drq_allowed = false; m_access_track_sector = false; } void heath_z37_fdc_device::device_reset() { - m_intrq_allowed = false; + m_irq_allowed = false; m_drq_allowed = false; m_access_track_sector = false; - m_fd_irq_cb(CLEAR_LINE); - m_drq_cb(CLEAR_LINE); - m_block_interrupt_cb(CLEAR_LINE); + m_irq_cb(0); + m_drq_cb(0); + m_block_interrupt_cb(0); } static void z37_floppies(device_slot_interface &device) @@ -224,16 +224,16 @@ void heath_z37_fdc_device::device_add_mconfig(machine_config &config) m_floppies[3]->enable_sound(true); } -void heath_z37_fdc_device::set_irq(u8 data) +void heath_z37_fdc_device::set_irq(int state) { - LOGLINES("set irq, allowed: %d data: %d\n", m_intrq_allowed, data); + LOGLINES("set irq, allowed: %d state: %d\n", m_irq_allowed, state); - m_fd_irq_cb(m_intrq_allowed ? data : CLEAR_LINE); + m_irq_cb(m_irq_allowed ? state : 0); } -void heath_z37_fdc_device::set_drq(u8 data) +void heath_z37_fdc_device::set_drq(int state) { - LOGLINES("set drq, allowed: %d data: %d\n", m_intrq_allowed, data); + LOGLINES("set drq, allowed: %d state: %d\n", m_irq_allowed, state); - m_drq_cb(m_drq_allowed ? data : CLEAR_LINE); + m_drq_cb(m_drq_allowed ? state : 0); } diff --git a/src/mame/heathkit/z37_fdc.h b/src/mame/heathkit/z37_fdc.h index 6b76aad036f..95c529091e0 100644 --- a/src/mame/heathkit/z37_fdc.h +++ b/src/mame/heathkit/z37_fdc.h @@ -22,7 +22,7 @@ public: void write(offs_t reg, u8 val); u8 read(offs_t reg); - auto irq_cb() { return m_fd_irq_cb.bind(); } + auto irq_cb() { return m_irq_cb.bind(); } auto drq_cb() { return m_drq_cb.bind(); } auto block_interrupt_cb() { return m_block_interrupt_cb.bind(); } @@ -43,18 +43,18 @@ protected: void data_w(u8 val); u8 data_r(); - void set_irq(u8 data); - void set_drq(u8 data); + void set_irq(int state); + void set_drq(int state); private: - devcb_write_line m_fd_irq_cb; + devcb_write_line m_irq_cb; devcb_write_line m_drq_cb; devcb_write_line m_block_interrupt_cb; required_device m_fdc; required_device_array m_floppies; - bool m_intrq_allowed; + bool m_irq_allowed; bool m_drq_allowed; bool m_access_track_sector;