diff options
Diffstat (limited to 'src/devices/bus/econet/e01.cpp')
-rw-r--r-- | src/devices/bus/econet/e01.cpp | 73 |
1 files changed, 18 insertions, 55 deletions
diff --git a/src/devices/bus/econet/e01.cpp b/src/devices/bus/econet/e01.cpp index d5b53c31440..0e2d723d4a2 100644 --- a/src/devices/bus/econet/e01.cpp +++ b/src/devices/bus/econet/e01.cpp @@ -53,8 +53,11 @@ #include "emu.h" #include "e01.h" + #include "bus/scsi/scsihd.h" -#include "softlist.h" +#include "softlist_dev.h" + +#include "formats/afs_dsk.h" //************************************************************************** @@ -133,7 +136,7 @@ const tiny_rom_entry *econet_e01_device::device_rom_region() const // MC146818_INTERFACE( rtc_intf ) //------------------------------------------------- -WRITE_LINE_MEMBER(econet_e01_device::rtc_irq_w) +void econet_e01_device::rtc_irq_w(int state) { m_rtc_irq = state; @@ -145,26 +148,26 @@ WRITE_LINE_MEMBER(econet_e01_device::rtc_irq_w) // mc6854_interface adlc_intf //------------------------------------------------- -WRITE_LINE_MEMBER( econet_e01_device::adlc_irq_w ) +void econet_e01_device::adlc_irq_w(int state) { m_adlc_irq = state; update_interrupts(); } -WRITE_LINE_MEMBER( econet_e01_device::econet_data_w ) +void econet_e01_device::econet_data_w(int state) { m_econet->data_w(this, state); } -WRITE_LINE_MEMBER(econet_e01_device::via_irq_w) +void econet_e01_device::via_irq_w(int state) { m_via_irq = state; update_interrupts(); } -WRITE_LINE_MEMBER( econet_e01_device::clk_en_w ) +void econet_e01_device::clk_en_w(int state) { m_clk_en = state; } @@ -174,21 +177,21 @@ void econet_e01_device::floppy_formats_afs(format_registration &fr) fr.add(FLOPPY_AFS_FORMAT); } -WRITE_LINE_MEMBER( econet_e01_device::fdc_irq_w ) +void econet_e01_device::fdc_irq_w(int state) { m_fdc_irq = state; update_interrupts(); } -WRITE_LINE_MEMBER( econet_e01_device::fdc_drq_w ) +void econet_e01_device::fdc_drq_w(int state) { m_fdc_drq = state; update_interrupts(); } -WRITE_LINE_MEMBER( econet_e01_device::scsi_bsy_w ) +void econet_e01_device::scsi_bsy_w(int state) { m_scsi_ctrl_in->write_bit1(state); @@ -198,7 +201,7 @@ WRITE_LINE_MEMBER( econet_e01_device::scsi_bsy_w ) } } -WRITE_LINE_MEMBER( econet_e01_device::scsi_req_w ) +void econet_e01_device::scsi_req_w(int state) { m_scsi_ctrl_in->write_bit5(state); @@ -219,8 +222,8 @@ WRITE_LINE_MEMBER( econet_e01_device::scsi_req_w ) void econet_e01_device::e01_mem(address_map &map) { map(0x0000, 0xffff).rw(FUNC(econet_e01_device::read), FUNC(econet_e01_device::write)); - map(0xfc00, 0xfc00).mirror(0x00c3).rw(FUNC(econet_e01_device::rtc_address_r), FUNC(econet_e01_device::rtc_address_w)); - map(0xfc04, 0xfc04).mirror(0x00c3).rw(FUNC(econet_e01_device::rtc_data_r), FUNC(econet_e01_device::rtc_data_w)); + map(0xfc00, 0xfc00).mirror(0x00c3).w(m_rtc, FUNC(mc146818_device::address_w)); + map(0xfc04, 0xfc04).mirror(0x00c3).rw(m_rtc, FUNC(mc146818_device::data_r), FUNC(mc146818_device::data_w)); map(0xfc08, 0xfc08).mirror(0x00c0).r(FUNC(econet_e01_device::ram_select_r)).w(FUNC(econet_e01_device::floppy_w)); map(0xfc0c, 0xfc0f).mirror(0x00c0).rw(WD2793_TAG, FUNC(wd2793_device::read), FUNC(wd2793_device::write)); map(0xfc10, 0xfc1f).mirror(0x00c0).m(R6522_TAG, FUNC(via6522_device::map)); @@ -426,7 +429,7 @@ void econet_e01_device::device_start() m_led.resolve(); // allocate timers - m_clk_timer = timer_alloc(); + m_clk_timer = timer_alloc(FUNC(econet_e01_device::clk_tick), this); // register for state saving save_item(NAME(m_adlc_ie)); @@ -451,10 +454,10 @@ void econet_e01_device::device_reset() //------------------------------------------------- -// device_timer - handler timer events +// clk_tick - update our clock output //------------------------------------------------- -void econet_e01_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +TIMER_CALLBACK_MEMBER(econet_e01_device::clk_tick) { if (m_clk_en) { @@ -650,46 +653,6 @@ void econet_e01_device::hdc_irq_enable_w(uint8_t data) //------------------------------------------------- -// rtc_address_r - -//------------------------------------------------- - -uint8_t econet_e01_device::rtc_address_r() -{ - return m_rtc->read(0); -} - - -//------------------------------------------------- -// rtc_address_w - -//------------------------------------------------- - -void econet_e01_device::rtc_address_w(uint8_t data) -{ - m_rtc->write(0, data); -} - - -//------------------------------------------------- -// rtc_data_r - -//------------------------------------------------- - -uint8_t econet_e01_device::rtc_data_r() -{ - return m_rtc->read(1); -} - - -//------------------------------------------------- -// rtc_data_w - -//------------------------------------------------- - -void econet_e01_device::rtc_data_w(uint8_t data) -{ - m_rtc->write(1, data); -} - - -//------------------------------------------------- // econet_clk_w - //------------------------------------------------- |