diff options
Diffstat (limited to 'src/mame/apple/egret.h')
-rw-r--r-- | src/mame/apple/egret.h | 57 |
1 files changed, 17 insertions, 40 deletions
diff --git a/src/mame/apple/egret.h b/src/mame/apple/egret.h index ede590998c0..cee5b2b0c0d 100644 --- a/src/mame/apple/egret.h +++ b/src/mame/apple/egret.h @@ -5,6 +5,8 @@ #pragma once +#include "cpu/m6805/m68hc05e1.h" + #define USE_BUS_ADB (0) #if USE_BUS_ADB @@ -32,21 +34,6 @@ public: virtual bool nvram_read(util::read_stream &file) override; virtual bool nvram_write(util::write_stream &file) override; - u8 ddr_r(offs_t offset); - void ddr_w(offs_t offset, u8 data); - u8 ports_r(offs_t offset); - void ports_w(offs_t offset, u8 data); - u8 pll_r(); - void pll_w(u8 data); - u8 timer_ctrl_r(); - void timer_ctrl_w(u8 data); - u8 timer_counter_r(); - void timer_counter_w(u8 data); - u8 onesec_r(); - void onesec_w(u8 data); - u8 pram_r(offs_t offset); - void pram_w(offs_t offset, u8 data); - #if USE_BUS_ADB void adb_w(int id, int state); void adb_poweron_w(int id, int state); @@ -61,41 +48,29 @@ public: void set_via_data(u8 dat) { m_via_data = dat; } u8 get_via_clock() { return m_via_clock; } void set_adb_line(int linestate) { m_adb_in = (linestate == ASSERT_LINE) ? true : false; } - void set_iic_sda(u8 data) { m_iic_sda = (data & 1); } auto reset_callback() { return write_reset.bind(); } auto linechange_callback() { return write_linechange.bind(); } auto via_clock_callback() { return write_via_clock.bind(); } auto via_data_callback() { return write_via_data.bind(); } - auto iic_scl_callback() { return write_iic_scl.bind(); } - auto iic_sda_callback() { return write_iic_sda.bind(); } + auto dfac_scl_callback() { return write_dfac_scl.bind(); } + auto dfac_sda_callback() { return write_dfac_sda.bind(); } + auto dfac_latch_callback() { return write_dfac_latch.bind(); } devcb_write_line write_reset, write_linechange; devcb_write_line write_via_clock, write_via_data; - devcb_write_line write_iic_scl, write_iic_sda; + devcb_write_line write_dfac_scl, write_dfac_sda, write_dfac_latch; - void egret_map(address_map &map); + required_device<m68hc05e1_device> m_maincpu; protected: // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; - virtual void device_add_mconfig(machine_config &config) override; - virtual const tiny_rom_entry *device_rom_region() const override; - - TIMER_CALLBACK_MEMBER(seconds_tick); - - required_device<cpu_device> m_maincpu; - required_shared_ptr<u8> m_internal_ram; - required_region_ptr<u8> m_rom; + virtual void device_start() override ATTR_COLD; + virtual void device_reset() override ATTR_COLD; + virtual void device_add_mconfig(machine_config &config) override ATTR_COLD; + virtual const tiny_rom_entry *device_rom_region() const override ATTR_COLD; private: - u8 m_ddrs[3]{}; - u8 m_ports[3]{}; - u8 m_pll_ctrl; - u8 m_timer_ctrl; - u8 m_timer_counter; - u8 m_onesec; u8 m_xcvr_session; u8 m_via_full; u8 m_sys_session; @@ -107,11 +82,8 @@ private: bool m_adb_in; s32 m_reset_line; s32 m_adb_dtime; - emu_timer *m_timer; - u8 m_pram[0x100]{}; u8 m_disk_pram[0x100]{}; bool m_pram_loaded; - u8 m_iic_sda; #if USE_BUS_ADB optional_device <adb_connector> m_adb_connector[2]; @@ -121,7 +93,12 @@ private: bool m_adb_out = false; #endif - void send_port(u8 offset, u8 data); + u8 pa_r(); + u8 pb_r(); + u8 pc_r(); + void pa_w(u8 data); + void pb_w(u8 data); + void pc_w(u8 data); }; // device type definition |