fdc fix (Mike Nordell)
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 10 Oct 2004 17:51:13 +0000 (17:51 +0000)
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>
Sun, 10 Oct 2004 17:51:13 +0000 (17:51 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1118 c046a42c-6fe2-441c-8c8c-71466251a162

hw/fdc.c

index 9b4bfe7..9375b91 100644 (file)
--- a/hw/fdc.c
+++ b/hw/fdc.c
@@ -1265,8 +1265,16 @@ static void fdctrl_write_data (fdctrl_t *fdctrl, uint32_t value)
             FLOPPY_DPRINTF("SENSE_INTERRUPT_STATUS command (%02x)\n",
                            fdctrl->int_status);
             /* No parameters cmd: returns status if no interrupt */
+#if 0
             fdctrl->fifo[0] =
                 fdctrl->int_status | (cur_drv->head << 2) | fdctrl->cur_drv;
+#else
+            /* XXX: int_status handling is broken for read/write
+               commands, so we do this hack. It should be suppressed
+               ASAP */
+            fdctrl->fifo[0] =
+                0x20 | (cur_drv->head << 2) | fdctrl->cur_drv;
+#endif
             fdctrl->fifo[1] = cur_drv->track;
             fdctrl_set_fifo(fdctrl, 2, 0);
            fdctrl_reset_irq(fdctrl);