From 7d95c8be50e8e385a717191e87aca29682af9a12 Mon Sep 17 00:00:00 2001 From: AJR Date: Sun, 8 Sep 2024 14:19:54 -0400 Subject: skeleton/attache.cpp: Minor code cleanup; clear latch upon system reset --- src/mame/skeleton/attache.cpp | 41 +++++++++++++++++------------------------ 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/src/mame/skeleton/attache.cpp b/src/mame/skeleton/attache.cpp index 2ddcfeb7e92..8834691e4c3 100644 --- a/src/mame/skeleton/attache.cpp +++ b/src/mame/skeleton/attache.cpp @@ -139,9 +139,6 @@ public: uint8_t dma_mem_r(offs_t offset); void dma_mem_w(offs_t offset, uint8_t data); - uint8_t fdc_dma_r(); - void fdc_dma_w(uint8_t data); - void hreq_w(int state); void eop_w(int state); [[maybe_unused]] void fdc_dack_w(int state); @@ -190,6 +187,7 @@ protected: uint8_t memmap_r(); void memmap_w(uint8_t data); + void set_latch(uint8_t data); void operation_strobe(uint8_t data); void keyboard_clock_w(bool state); uint8_t keyboard_data_r(); @@ -554,6 +552,16 @@ uint8_t attache_state::pio_portB_r() return ret; } +void attache_state::set_latch(uint8_t data) +{ + m_pio_latch = data; + m_rom_active = ~data & 0x04; + m_floppy0->mon_w((data & 0x01) ? 0 : 1); + m_floppy1->mon_w((data & 0x01) ? 0 : 1); + m_gfx_enabled = data & 0x02; + // TODO: display brightness +} + void attache_state::operation_strobe(uint8_t data) { //logerror("PIO: Port A write operation %i, data %02x\n",m_pio_select,data); @@ -590,12 +598,7 @@ void attache_state::operation_strobe(uint8_t data) logerror("CMOS: write %01x to byte %02x (read)\n",data & 0x0f, m_cmos_select); break; case PIO_SEL_LATCH: - m_pio_latch = data; - m_rom_active = ~data & 0x04; - m_floppy0->mon_w((data & 0x01) ? 0 : 1); - m_floppy1->mon_w((data & 0x01) ? 0 : 1); - m_gfx_enabled = data & 0x02; - // TODO: display brightness + set_latch(data); break; case PIO_SEL_NOP: logerror("PIO: NOP write\n"); @@ -779,17 +782,6 @@ void attache_state::dma_mask_w(uint8_t data) m_dma->write(0x0f,data); } -uint8_t attache_state::fdc_dma_r() -{ - uint8_t ret = m_fdc->dma_r(); - return ret; -} - -void attache_state::fdc_dma_w(uint8_t data) -{ - m_fdc->dma_w(data); -} - uint8_t attache_state::dma_mem_r(offs_t offset) { return m_maincpu->space(AS_PROGRAM).read_byte(offset); @@ -1113,6 +1105,7 @@ void attache_state::machine_start() void attache_state::machine_reset() { m_kb_bitpos = 0; + set_latch(0); } void attache816_state::machine_reset() @@ -1175,8 +1168,8 @@ void attache_state::attache(machine_config &config) m_dma->out_eop_callback().set(FUNC(attache_state::eop_w)); m_dma->in_memr_callback().set(FUNC(attache_state::dma_mem_r)); m_dma->out_memw_callback().set(FUNC(attache_state::dma_mem_w)); - m_dma->in_ior_callback<0>().set(FUNC(attache_state::fdc_dma_r)); - m_dma->out_iow_callback<0>().set(FUNC(attache_state::fdc_dma_w)); + m_dma->in_ior_callback<0>().set(m_fdc, FUNC(upd765a_device::dma_r)); + m_dma->out_iow_callback<0>().set(m_fdc, FUNC(upd765a_device::dma_w)); // m_dma->out_dack_callback<0>().set(FUNC(attache_state::fdc_dack_w)); UPD765A(config, m_fdc, 8_MHz_XTAL, true, true); @@ -1264,8 +1257,8 @@ void attache816_state::attache816(machine_config &config) m_dma->out_eop_callback().set(FUNC(attache_state::eop_w)); m_dma->in_memr_callback().set(FUNC(attache_state::dma_mem_r)); m_dma->out_memw_callback().set(FUNC(attache_state::dma_mem_w)); - m_dma->in_ior_callback<0>().set(FUNC(attache_state::fdc_dma_r)); - m_dma->out_iow_callback<0>().set(FUNC(attache_state::fdc_dma_w)); + m_dma->in_ior_callback<0>().set(m_fdc, FUNC(upd765a_device::dma_r)); + m_dma->out_iow_callback<0>().set(m_fdc, FUNC(upd765a_device::dma_w)); // m_dma->out_dack_callback<0>().set(FUNC(attache_state::fdc_dack_w)); UPD765A(config, m_fdc, 8_MHz_XTAL, true, true); -- cgit v1.2.3