diff options
Diffstat (limited to 'src/devices/imagedev/floppy.h')
-rw-r--r-- | src/devices/imagedev/floppy.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/devices/imagedev/floppy.h b/src/devices/imagedev/floppy.h index 9f2d494fb7f..5954e72883f 100644 --- a/src/devices/imagedev/floppy.h +++ b/src/devices/imagedev/floppy.h @@ -76,6 +76,7 @@ public: typedef delegate<void (floppy_image_device *, int)> index_pulse_cb; typedef delegate<void (floppy_image_device *, int)> ready_cb; typedef delegate<void (floppy_image_device *, int)> wpt_cb; + typedef delegate<void (floppy_image_device *, int)> led_cb; // construction/destruction virtual ~floppy_image_device(); @@ -109,12 +110,14 @@ public: void setup_index_pulse_cb(index_pulse_cb cb); void setup_ready_cb(ready_cb cb); void setup_wpt_cb(wpt_cb cb); + void setup_led_cb(led_cb cb); std::vector<uint32_t> &get_buffer() { return image->get_buffer(cyl, ss, subcyl); } int get_cyl() { return cyl; } void mon_w(int state); bool ready_r(); + void set_ready(bool state); double get_pos(); bool wpt_r() { return wpt; } @@ -131,6 +134,7 @@ public: void ss_w(int state) { ss = state; } void inuse_w(int state) { } void dskchg_w(int state) { if (dskchg_writable) dskchg = state; } + void ds_w(int state) { ds = state; check_led(); } void index_resync(); attotime time_next_index(); @@ -173,12 +177,15 @@ protected: bool dskchg_writable; bool has_trk00_sensor; + int drive_index; + /* state of input lines */ int dir; /* direction */ int stp; /* step */ int wtg; /* write gate */ int mon; /* motor on */ int ss; /* side select */ + int ds; /* drive select */ /* state of output lines */ int idx; /* index pulse */ @@ -203,7 +210,9 @@ protected: index_pulse_cb cur_index_pulse_cb; ready_cb cur_ready_cb; wpt_cb cur_wpt_cb; + led_cb cur_led_cb; + void check_led(); uint32_t find_position(attotime &base, const attotime &when); int find_index(uint32_t position, const std::vector<uint32_t> &buf); void write_zone(uint32_t *buf, int &cells, int &index, uint32_t spos, uint32_t epos, uint32_t mg); |