summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/apple/egret.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/apple/egret.h')
-rw-r--r--src/mame/apple/egret.h57
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