Message ID | 1326613915-3282-10-git-send-email-hpoussin@reactos.org |
---|---|
State | New |
Headers | show |
Am 15.01.2012 08:51, schrieb Hervé Poussineau: > The seek command just sends step pulses to the drive and doesn't care if > there is a medium inserted of if it is banging the head against the drive. > > Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> > --- > hw/fdc.c | 13 ++++++------- > 1 files changed, 6 insertions(+), 7 deletions(-) > > diff --git a/hw/fdc.c b/hw/fdc.c > index 685ea88..61d70eb 100644 > --- a/hw/fdc.c > +++ b/hw/fdc.c > @@ -1599,13 +1599,12 @@ static void fdctrl_handle_seek(FDCtrl *fdctrl, int direction) > SET_CUR_DRV(fdctrl, fdctrl->fifo[1] & FD_DOR_SELMASK); > cur_drv = get_cur_drv(fdctrl); > fdctrl_reset_fifo(fdctrl); > - if (fdctrl->fifo[2] > cur_drv->max_track) { > - fdctrl_raise_irq(fdctrl, FD_SR0_ABNTERM | FD_SR0_SEEK); > - } else { > - cur_drv->track = fdctrl->fifo[2]; > - /* Raise Interrupt */ > - fdctrl_raise_irq(fdctrl, FD_SR0_SEEK); > - } > + /* The seek command just sends step pulses to the drive and doesn't care if > + * there is a medium inserted of if it's banging the head against the drive. > + */ > + cur_drv->track = fdctrl->fifo[2]; Do you really want to update this with an invalid value? This value is used in other places without being checked again against max_track. > + /* Raise Interrupt */ > + fdctrl_raise_irq(fdctrl, FD_SR0_SEEK); > } > > static void fdctrl_handle_perpendicular_mode(FDCtrl *fdctrl, int direction) Kevin
diff --git a/hw/fdc.c b/hw/fdc.c index 685ea88..61d70eb 100644 --- a/hw/fdc.c +++ b/hw/fdc.c @@ -1599,13 +1599,12 @@ static void fdctrl_handle_seek(FDCtrl *fdctrl, int direction) SET_CUR_DRV(fdctrl, fdctrl->fifo[1] & FD_DOR_SELMASK); cur_drv = get_cur_drv(fdctrl); fdctrl_reset_fifo(fdctrl); - if (fdctrl->fifo[2] > cur_drv->max_track) { - fdctrl_raise_irq(fdctrl, FD_SR0_ABNTERM | FD_SR0_SEEK); - } else { - cur_drv->track = fdctrl->fifo[2]; - /* Raise Interrupt */ - fdctrl_raise_irq(fdctrl, FD_SR0_SEEK); - } + /* The seek command just sends step pulses to the drive and doesn't care if + * there is a medium inserted of if it's banging the head against the drive. + */ + cur_drv->track = fdctrl->fifo[2]; + /* Raise Interrupt */ + fdctrl_raise_irq(fdctrl, FD_SR0_SEEK); } static void fdctrl_handle_perpendicular_mode(FDCtrl *fdctrl, int direction)
The seek command just sends step pulses to the drive and doesn't care if there is a medium inserted of if it is banging the head against the drive. Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> --- hw/fdc.c | 13 ++++++------- 1 files changed, 6 insertions(+), 7 deletions(-)