summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/hp_taco.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/hp_taco.h')
-rw-r--r--src/devices/machine/hp_taco.h35
1 files changed, 21 insertions, 14 deletions
diff --git a/src/devices/machine/hp_taco.h b/src/devices/machine/hp_taco.h
index b052ba77a8f..6135ae4a70c 100644
--- a/src/devices/machine/hp_taco.h
+++ b/src/devices/machine/hp_taco.h
@@ -27,29 +27,35 @@ public:
auto flg() { return m_flg_handler.bind(); }
auto sts() { return m_sts_handler.bind(); }
+ // Set unit name
+ void set_name(const std::string& name);
+
// Register read/write
- DECLARE_WRITE16_MEMBER(reg_w);
- DECLARE_READ16_MEMBER(reg_r);
+ void reg_w(offs_t offset, uint16_t data);
+ uint16_t reg_r(offs_t offset);
// Flag & status read
- DECLARE_READ_LINE_MEMBER(flg_r);
- DECLARE_READ_LINE_MEMBER(sts_r);
+ int flg_r();
+ int sts_r();
- DECLARE_WRITE_LINE_MEMBER(cart_out_w);
- DECLARE_WRITE_LINE_MEMBER(hole_w);
- DECLARE_WRITE_LINE_MEMBER(tacho_tick_w);
- DECLARE_WRITE_LINE_MEMBER(motion_w);
- DECLARE_WRITE_LINE_MEMBER(rd_bit_w);
- DECLARE_READ_LINE_MEMBER(wr_bit_r);
+ void cart_out_w(int state);
+ void hole_w(int state);
+ void tacho_tick_w(int state);
+ void motion_w(int state);
+ void rd_bit_w(int state);
+ int wr_bit_r();
protected:
hp_taco_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
// device-level overrides
- virtual void device_add_mconfig(machine_config &config) override;
- virtual void device_start() override;
- virtual void device_reset() override;
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
+ virtual void device_add_mconfig(machine_config &config) override ATTR_COLD;
+ virtual void device_start() override ATTR_COLD;
+ virtual void device_reset() override ATTR_COLD;
+
+ TIMER_CALLBACK_MEMBER(gap_timer_tick);
+ TIMER_CALLBACK_MEMBER(evd_timer_tick);
+ TIMER_CALLBACK_MEMBER(error_timer_tick);
private:
required_device<hp_dc100_tape_device> m_tape;
@@ -107,6 +113,7 @@ private:
bool is_at_slow_speed() const;
void start_rd();
void start_wr();
+ bool adv_bit_idx();
void update_checksum(uint16_t data);
void cmd_fsm();
static uint8_t get_cmd(uint16_t cmd_reg);