diff options
Diffstat (limited to 'src/devices/machine/upd765.h')
-rw-r--r-- | src/devices/machine/upd765.h | 58 |
1 files changed, 28 insertions, 30 deletions
diff --git a/src/devices/machine/upd765.h b/src/devices/machine/upd765.h index 9c28f4d17d2..5465ea7c10d 100644 --- a/src/devices/machine/upd765.h +++ b/src/devices/machine/upd765.h @@ -1,7 +1,7 @@ // license:BSD-3-Clause // copyright-holders:Olivier Galibert -#ifndef MAME_DEVICES_MACHINE_UPD765_H -#define MAME_DEVICES_MACHINE_UPD765_H +#ifndef MAME_MACHINE_UPD765_H +#define MAME_MACHINE_UPD765_H #pragma once @@ -61,8 +61,8 @@ public: protected: upd765_family_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - virtual void device_start() override; - virtual void device_reset() override; + virtual void device_start() override ATTR_COLD; + virtual void device_reset() override ATTR_COLD; TIMER_CALLBACK_MEMBER(update_floppy); @@ -245,7 +245,7 @@ protected: int fifo_pos, fifo_expected, command_pos, result_pos, sectors_read; bool fifo_write; - uint8_t dor, dsr, msr, fifo[16], command[16], result[16]; + uint8_t dor, dsr, fifo[16], command[16], result[16]; uint8_t st1, st2, st3; uint8_t fifocfg; uint8_t precomp; @@ -253,6 +253,7 @@ protected: int sector_size; int cur_rate; int selected_drive; + u8 drive_busy; emu_timer *poll_timer; @@ -349,8 +350,8 @@ protected: bool read_one_bit(const attotime &limit); bool write_one_bit(const attotime &limit); - virtual u8 get_drive_busy() const { return 0; } - virtual void clr_drive_busy() { } + u8 get_drive_busy() const { return drive_busy; } + void clr_drive_busy() { drive_busy = 0; } }; class upd765a_device : public upd765_family_device { @@ -363,7 +364,7 @@ public: } upd765a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual void map(address_map &map) override; + virtual void map(address_map &map) override ATTR_COLD; }; class upd765b_device : public upd765_family_device { @@ -376,7 +377,7 @@ public: } upd765b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual void map(address_map &map) override; + virtual void map(address_map &map) override ATTR_COLD; }; class i8272a_device : public upd765_family_device { @@ -388,7 +389,7 @@ public: } i8272a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual void map(address_map &map) override; + virtual void map(address_map &map) override ATTR_COLD; }; class i82072_device : public upd765_family_device { @@ -400,10 +401,10 @@ public: } i82072_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual void map(address_map &map) override; + virtual void map(address_map &map) override ATTR_COLD; protected: - virtual void device_start() override; + virtual void device_start() override ATTR_COLD; enum motorcfg_mask { @@ -418,8 +419,6 @@ protected: virtual void execute_command(int cmd) override; virtual void command_end(floppy_info &fi, bool data_completion) override; virtual void index_callback(floppy_image_device *floppy, int state) override; - virtual u8 get_drive_busy() const override { return drive_busy; } - virtual void clr_drive_busy() override { drive_busy = 0; } void motor_control(int fid, bool start_motor); @@ -427,7 +426,6 @@ private: u8 motorcfg; u8 motor_off_counter; u8 motor_on_counter; - u8 drive_busy; int delayed_command; }; @@ -441,8 +439,8 @@ public: protected: ps2_fdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - virtual void device_start() override; - virtual void device_reset() override; + virtual void device_start() override ATTR_COLD; + virtual void device_reset() override ATTR_COLD; virtual void soft_reset() override; virtual int check_command() override; virtual void execute_command(int cmd) override; @@ -454,7 +452,7 @@ class smc37c78_device : public ps2_fdc_device { public: smc37c78_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual void map(address_map &map) override; + virtual void map(address_map &map) override ATTR_COLD; }; class upd72065_device : public upd765_family_device { @@ -468,7 +466,7 @@ public: upd72065_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual void map(address_map &map) override; + virtual void map(address_map &map) override ATTR_COLD; virtual void auxcmd_w(uint8_t data); protected: @@ -498,21 +496,21 @@ public: } n82077aa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual void map(address_map &map) override; + virtual void map(address_map &map) override ATTR_COLD; }; class pc_fdc_superio_device : public upd765_family_device { public: pc_fdc_superio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual void map(address_map &map) override; + virtual void map(address_map &map) override ATTR_COLD; }; class dp8473_device : public upd765_family_device { public: dp8473_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual void map(address_map &map) override; + virtual void map(address_map &map) override ATTR_COLD; protected: virtual void soft_reset() override; @@ -527,7 +525,7 @@ public: } pc8477a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual void map(address_map &map) override; + virtual void map(address_map &map) override ATTR_COLD; }; class pc8477b_device : public ps2_fdc_device { @@ -539,7 +537,7 @@ public: } pc8477b_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual void map(address_map &map) override; + virtual void map(address_map &map) override ATTR_COLD; }; class wd37c65c_device : public upd765_family_device { @@ -556,7 +554,7 @@ public: void set_clock2(uint32_t clock) { m_clock2 = clock; } void set_clock2(const XTAL &xtal) { set_clock2(xtal.value()); } - virtual void map(address_map &map) override; + virtual void map(address_map &map) override ATTR_COLD; virtual uint8_t get_st3(floppy_info &fi) override; private: @@ -570,7 +568,7 @@ public: // configuration helpers auto input_handler() { return m_input_handler.bind(); } - virtual void map(address_map &map) override; + virtual void map(address_map &map) override ATTR_COLD; uint8_t input_r(); private: @@ -581,12 +579,12 @@ class tc8566af_device : public upd765_family_device { public: tc8566af_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - virtual void map(address_map &map) override; + virtual void map(address_map &map) override ATTR_COLD; void cr1_w(uint8_t data); protected: - virtual void device_start() override; + virtual void device_start() override ATTR_COLD; private: uint8_t m_cr1; @@ -596,7 +594,7 @@ class hd63266f_device : public upd765_family_device { public: hd63266f_device(const machine_config &mconfig, const char *tag, device_t* owner, uint32_t clock); - virtual void map(address_map &map) override; + virtual void map(address_map &map) override ATTR_COLD; auto inp_rd_callback() { return inp_cb.bind(); } // this is really the ts signal void rate_w(u8 state) { state ? set_rate(500000) : set_rate(250000); } @@ -637,4 +635,4 @@ DECLARE_DEVICE_TYPE(MCS3201, mcs3201_device) DECLARE_DEVICE_TYPE(TC8566AF, tc8566af_device) DECLARE_DEVICE_TYPE(HD63266F, hd63266f_device) -#endif // MAME_DEVICES_MACHINE_UPD765_H +#endif // MAME_MACHINE_UPD765_H |