diff options
Diffstat (limited to 'src/devices/machine/hp_taco.h')
-rw-r--r-- | src/devices/machine/hp_taco.h | 35 |
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); |