static void fdctrl_handle_drive_specification_command(FDCtrl *fdctrl, int direction)

{

    FDrive *cur_drv = get_cur_drv(fdctrl);



    if (fdctrl->fifo[fdctrl->data_pos - 1] & 0x80) {

        /* Command parameters done */

        if (fdctrl->fifo[fdctrl->data_pos - 1] & 0x40) {

            fdctrl->fifo[0] = fdctrl->fifo[1];

            fdctrl->fifo[2] = 0;

            fdctrl->fifo[3] = 0;

            fdctrl_set_fifo(fdctrl, 4);

        } else {

            fdctrl_reset_fifo(fdctrl);

        }

    } else if (fdctrl->data_len > 7) {

        /* ERROR */

        fdctrl->fifo[0] = 0x80 |

            (cur_drv->head << 2) | GET_CUR_DRV(fdctrl);

        fdctrl_set_fifo(fdctrl, 1);

    }

}

static void fdctrl_handle_drive_specification_command(FDCtrl *fdctrl, int direction)

{

    FDrive *cur_drv = get_cur_drv(fdctrl);



    if (fdctrl->fifo[fdctrl->data_pos - 1] & 0x80) {

        

        if (fdctrl->fifo[fdctrl->data_pos - 1] & 0x40) {

            fdctrl->fifo[0] = fdctrl->fifo[1];

            fdctrl->fifo[2] = 0;

            fdctrl->fifo[3] = 0;

            fdctrl_set_fifo(fdctrl, 4);

        } else {

            fdctrl_reset_fifo(fdctrl);

        }

    } else if (fdctrl->data_len > 7) {

        

        fdctrl->fifo[0] = 0x80 |

            (cur_drv->head << 2) | GET_CUR_DRV(fdctrl);

        fdctrl_set_fifo(fdctrl, 1);

    }

}

    if (fdctrl->fifo[fdctrl->data_pos - 1] & 0x80) {         if (fdctrl->fifo[fdctrl->data_pos - 1] & 0x40) {
static void FUNC_0(FDCtrl *VAR_0, int VAR_1)

{

    FDrive *cur_drv = get_cur_drv(VAR_0);



    if (VAR_0->fifo[VAR_0->data_pos - 1] & 0x80) {

        

        if (VAR_0->fifo[VAR_0->data_pos - 1] & 0x40) {

            VAR_0->fifo[0] = VAR_0->fifo[1];

            VAR_0->fifo[2] = 0;

            VAR_0->fifo[3] = 0;

            fdctrl_set_fifo(VAR_0, 4);

        } else {

            fdctrl_reset_fifo(VAR_0);

        }

    } else if (VAR_0->data_len > 7) {

        

        VAR_0->fifo[0] = 0x80 |

            (cur_drv->head << 2) | GET_CUR_DRV(VAR_0);

        fdctrl_set_fifo(VAR_0, 1);

    }

}

static void FUNC_0(FDCtrl *VAR_0, int VAR_1)
{ FDrive *cur_drv = get_cur_drv(VAR_0); if (VAR_0->fifo[VAR_0->data_pos - 1] & 0x80) { if (VAR_0->fifo[VAR_0->data_pos - 1] & 0x40) { VAR_0->fifo[0] = VAR_0->fifo[1]; VAR_0->fifo[2] = 0; VAR_0->fifo[3] = 0; fdctrl_set_fifo(VAR_0, 4); } else { fdctrl_reset_fifo(VAR_0); } } else if (VAR_0->data_len > 7) { VAR_0->fifo[0] = 0x80 |
(cur_drv->head << 2) | GET_CUR_DRV(VAR_0); fdctrl_set_fifo(VAR_0, 1); } }