aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2013-03-03 15:32:31 -0500
committerKevin O'Connor <kevin@koconnor.net>2013-03-03 15:45:01 -0500
commit5bb7552a911d9952591e433ab8e36a5cd7a419e8 (patch)
tree0e55741aec2f8ec5d90f356dfec4dc9f58c2091e
parente7c5a7ef782673f00faf3371721562806e931cdb (diff)
downloadseabios-5bb7552a911d9952591e433ab8e36a5cd7a419e8.tar.gz
floppy: Actually do controller reset in floppy_reset().
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r--src/floppy.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/floppy.c b/src/floppy.c
index e335e86..74336bc 100644
--- a/src/floppy.c
+++ b/src/floppy.c
@@ -529,8 +529,14 @@ static int
floppy_reset(struct disk_op_s *op)
{
u8 floppyid = GET_GLOBAL(op->drive_g->cntl_id);
- set_diskette_current_cyl(floppyid, 0); // current cylinder
- return DISK_RET_SUCCESS;
+ SET_BDA(floppy_recalibration_status, 0);
+ SET_BDA(floppy_media_state[0], 0);
+ SET_BDA(floppy_media_state[1], 0);
+ SET_BDA(floppy_track[0], 0);
+ SET_BDA(floppy_track[1], 0);
+ SET_BDA(floppy_last_data_rate, 0);
+ floppy_disable_controller();
+ return floppy_select_drive(floppyid);
}
// Read Diskette Sectors