Lines Matching defs:cur_drv

101 #define GET_CUR_DRV(fdctrl) ((fdctrl)->cur_drv)
102 #define SET_CUR_DRV(fdctrl, drive) ((fdctrl)->cur_drv = (drive))
724 uint8_t cur_drv;
851 fdrive_t *cur_drv;
854 cur_drv = get_cur_drv(fdctrl);
855 if (cur_drv->max_track)
856 cur_drv->dsk_chg = false;
880 fdctrl->cur_drv = 0;
931 switch (fdctrl->cur_drv) {
968 retval |= fdctrl->cur_drv;
1007 fdctrl->cur_drv = value & FD_DOR_SELMASK;
1113 && (fdctrl->dor & (0x10 << fdctrl->cur_drv)))
1158 static int fdctrl_seek_to_next_sect(fdctrl_t *fdctrl, fdrive_t *cur_drv)
1161 cur_drv->head, cur_drv->track, cur_drv->sect,
1162 fd_sector(cur_drv));
1163 /* XXX: cur_drv->sect >= cur_drv->last_sect should be an
1165 if (cur_drv->sect >= cur_drv->last_sect ||
1166 cur_drv->sect == fdctrl->eot) {
1167 cur_drv->sect = 1;
1169 if (cur_drv->head == 0 &&
1170 (cur_drv->flags & FDISK_DBL_SIDES) != 0) {
1171 cur_drv->head = 1;
1173 cur_drv->head = 0;
1174 cur_drv->ltrk++;
1175 if ((cur_drv->flags & FDISK_DBL_SIDES) == 0)
1179 cur_drv->ltrk++;
1183 cur_drv->head, cur_drv->track,
1184 cur_drv->sect, fd_sector(cur_drv));
1186 cur_drv->sect++;
1195 fdrive_t *cur_drv;
1197 cur_drv = get_cur_drv(fdctrl);
1200 status0 | (cur_drv->head << 2) | GET_CUR_DRV(fdctrl));
1201 fdctrl->fifo[0] = status0 | (cur_drv->head << 2) | GET_CUR_DRV(fdctrl);
1204 fdctrl->fifo[3] = cur_drv->ltrk;
1205 fdctrl->fifo[4] = cur_drv->head;
1206 fdctrl->fifo[5] = cur_drv->sect;
1228 fdrive_t *cur_drv;
1233 cur_drv = get_cur_drv(fdctrl);
1239 fd_sector_calc(kh, kt, ks, cur_drv->last_sect, NUM_SIDES(cur_drv)));
1244 switch (fd_seek(cur_drv, kh, kt, ks, fdctrl->config & FD_CONFIG_EIS)) {
1276 if ((fdctrl->dsr & FD_DSR_DRATEMASK) != cur_drv->media_rate) {
1278 fdctrl->dsr & FD_DSR_DRATEMASK, cur_drv->media_rate);
1321 (cur_drv->last_sect - ks + 1), fdctrl->data_len);
1356 fdrive_t *cur_drv;
1360 cur_drv = get_cur_drv(fdctrl);
1361 kt = cur_drv->track;
1368 fd_sector_calc(kh, kt, ks, cur_drv->last_sect, NUM_SIDES(cur_drv)));
1369 switch (fd_seek(cur_drv, kh, kt, ks, false)) {
1401 if ((fdctrl->dsr & FD_DSR_DRATEMASK) != cur_drv->media_rate) {
1403 fdctrl->dsr & FD_DSR_DRATEMASK, cur_drv->media_rate);
1430 (cur_drv->last_sect + 1), fdctrl->data_len);
1519 fdrive_t *cur_drv;
1534 cur_drv = get_cur_drv(fdctrl);
1541 if (cur_drv->bs == NULL)
1543 if (cur_drv->pDrvBlock == NULL)
1555 if (cur_drv->ro)
1578 fdctrl->data_len, GET_CUR_DRV(fdctrl), cur_drv->head,
1579 cur_drv->track, cur_drv->sect, fd_sector(cur_drv),
1580 fd_sector(cur_drv) * FD_SECTOR_LEN);
1586 rc = blk_read(cur_drv, fd_sector(cur_drv), fdctrl->fifo, 1);
1589 if (bdrv_read(cur_drv->bs, fd_sector(cur_drv),
1594 fd_sector(cur_drv));
1630 rc = blk_write(cur_drv, fd_sector(cur_drv), fdctrl->fifo, 1);
1635 if (bdrv_write(cur_drv->bs, fd_sector(cur_drv),
1639 FLOPPY_ERROR("writing sector %d\n", fd_sector(cur_drv));
1664 rc = blk_write(cur_drv, fd_sector(cur_drv), fdctrl->fifo, 1);
1667 FLOPPY_ERROR("formatting sector %d\n", fd_sector(cur_drv));
1671 fdctrl_seek_to_next_sect(fdctrl, cur_drv);
1706 if (!fdctrl_seek_to_next_sect(fdctrl, cur_drv))
1730 fdrive_t *cur_drv;
1737 cur_drv = get_cur_drv(fdctrl);
1748 if (!fdctrl_seek_to_next_sect(fdctrl, cur_drv)) {
1750 fd_sector(cur_drv));
1754 rc = blk_read(cur_drv, fd_sector(cur_drv), fdctrl->fifo, 1);
1757 if (bdrv_read(cur_drv->bs, fd_sector(cur_drv), fdctrl->fifo, 1) < 0)
1761 fd_sector(cur_drv));
1787 fdrive_t *cur_drv;
1794 cur_drv = get_cur_drv(fdctrl);
1800 fd_sector_calc(kh, kt, ks, cur_drv->last_sect, NUM_SIDES(cur_drv)));
1801 switch (fd_seek(cur_drv, kh, kt, ks, fdctrl->config & FD_CONFIG_EIS)) {
1831 if (cur_drv->pDrvBlock) {
1832 rc = blk_write(cur_drv, fd_sector(cur_drv), fdctrl->fifo, 1);
1834 FLOPPY_ERROR("formatting sector %d\n", fd_sector(cur_drv));
1842 if (cur_drv->bs == NULL ||
1843 bdrv_write(cur_drv->bs, fd_sector(cur_drv), fdctrl->fifo, 1) < 0) {
1844 FLOPPY_ERROR("formatting sector %d\n", fd_sector(cur_drv));
1848 if (cur_drv->sect == cur_drv->last_sect) {
1872 fdrive_t *cur_drv = get_cur_drv(fdctrl);
1887 fdctrl->fifo[6] = cur_drv->last_sect;
1889 (cur_drv->perpendicular << 2);
1910 fdrive_t *cur_drv = get_cur_drv(fdctrl);
1922 cur_drv->last_sect = fdctrl->fifo[9];
1924 cur_drv->perpendicular = (fdctrl->fifo[10] >> 2) & 0xF;
1933 fdrive_t *cur_drv = get_cur_drv(fdctrl);
1950 fdctrl->fifo[8] = cur_drv->last_sect;
1952 (cur_drv->perpendicular << 2);
1963 fdrive_t *cur_drv = get_cur_drv(fdctrl);
1968 cur_drv->head = (fdctrl->fifo[1] >> 2) & 1;
1979 fdrive_t *cur_drv;
1983 cur_drv = get_cur_drv(fdctrl);
1989 cur_drv->track, GET_CUR_DRV(fdctrl), ns, dp);
1998 if (cur_drv->last_sect != ns || fdctrl->fifo[2] != 2)
2002 cur_drv->bps = fdctrl->fifo[2] > 7 ? 16384 : 128 << fdctrl->fifo[2];
2003 cur_drv->last_sect = ns;
2023 fdrive_t *cur_drv;
2026 cur_drv = get_cur_drv(fdctrl);
2027 cur_drv->head = (fdctrl->fifo[1] >> 2) & 1;
2029 fdctrl->fifo[0] = (cur_drv->ro << 6) |
2030 (cur_drv->track == 0 ? 0x10 : 0x00) |
2031 (cur_drv->head << 2) |
2039 fdrive_t *cur_drv;
2043 cur_drv = get_cur_drv(fdctrl);
2044 fd_recalibrate(cur_drv);
2048 if (cur_drv->drive == FDRIVE_DRV_NONE)
2056 fdrive_t *cur_drv = get_cur_drv(fdctrl);
2068 FD_SR0_SEEK | (cur_drv->head << 2) | GET_CUR_DRV(fdctrl);
2074 fdctrl->fifo[1] = cur_drv->track;
2082 fdrive_t *cur_drv;
2088 cur_drv = get_cur_drv(fdctrl);
2094 cur_drv->track = fdctrl->fifo[2];
2095 cur_drv->ltrk = cur_drv->track;
2096 cur_drv->head = (fdctrl->fifo[1] >> 2) & 1;
2100 if (fdctrl->fifo[2] > cur_drv->max_track) {
2103 cur_drv->track = fdctrl->fifo[2];
2112 fdrive_t *cur_drv = get_cur_drv(fdctrl);
2115 cur_drv->perpendicular = fdctrl->fifo[1] & 0x7;
2143 fdrive_t *cur_drv = get_cur_drv(fdctrl);
2158 (cur_drv->head << 2) | GET_CUR_DRV(fdctrl);
2165 fdrive_t *cur_drv;
2168 cur_drv = get_cur_drv(fdctrl);
2169 if (fdctrl->fifo[2] + cur_drv->track >= cur_drv->max_track) {
2170 cur_drv->track = cur_drv->max_track - 1;
2172 cur_drv->track += fdctrl->fifo[2];
2181 fdrive_t *cur_drv;
2184 cur_drv = get_cur_drv(fdctrl);
2185 if (fdctrl->fifo[2] > cur_drv->track) {
2186 cur_drv->track = 0;
2188 cur_drv->track -= fdctrl->fifo[2];
2241 fdrive_t *cur_drv;
2244 cur_drv = get_cur_drv(fdctrl);
2264 blk_write(cur_drv, fd_sector(cur_drv), fdctrl->fifo, 1);
2266 bdrv_write(cur_drv->bs, fd_sector(cur_drv),
2306 fdrive_t *cur_drv = get_cur_drv(fdctrl);
2312 if (cur_drv->last_sect != 0) {
2313 cur_drv->sect = (cur_drv->sect % cur_drv->last_sect) + 1;
2317 if (!cur_drv->max_track) {
2320 } else if ((fdctrl->dsr & FD_DSR_DRATEMASK) != cur_drv->media_rate) {
2322 fdctrl->dsr & FD_DSR_DRATEMASK, cur_drv->media_rate);
2324 } else if (cur_drv->track >= cur_drv->max_track) {
2326 cur_drv->track, cur_drv->max_track);
2327 cur_drv->ltrk = 0;
2478 SSMR3GetU8(pSSM, &pThis->cur_drv);