]> xenbits.xensource.com Git - seabios.git/commitdiff
floppy: Actually do controller reset in floppy_reset().
authorKevin O'Connor <kevin@koconnor.net>
Sun, 3 Mar 2013 20:32:31 +0000 (15:32 -0500)
committerKevin O'Connor <kevin@koconnor.net>
Sun, 3 Mar 2013 20:45:01 +0000 (15:45 -0500)
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
src/floppy.c

index e335e86d6c4eb4d80488bcfebc561cdd29a1269c..74336bce0ed735a47199743f1fd128bad0f23cea 100644 (file)
@@ -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