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);

    }

}
