Lines Matching full:track
199 static int fd_sector_calc(uint8_t head, uint8_t track, uint8_t sect, in fd_sector_calc() argument
202 return (((track * num_sides) + head) * last_sect) + sect - 1; in fd_sector_calc()
208 return fd_sector_calc(drv->head, drv->track, drv->sect, drv->last_sect, in fd_sector()
220 * returns 0 if already on right track
221 * returns 1 if track changed
222 * returns 2 if track is invalid
226 static int fd_seek(FDrive *drv, uint8_t head, uint8_t track, uint8_t sect, in fd_seek() argument
232 if (track > drv->max_track || in fd_seek()
235 head, track, sect, 1, in fd_seek()
242 head, track, sect, 1, in fd_seek()
247 sector = fd_sector_calc(head, track, sect, drv->last_sect, NUM_SIDES(drv)); in fd_seek()
254 head, track, sect, 1, drv->max_track, in fd_seek()
260 if (drv->track != track) { in fd_seek()
266 drv->track = track; in fd_seek()
277 /* Set drive back to track 0 */
603 FD_STATE_MULTI = 0x01, /* multi track flag */
653 FD_CONFIG_PRETRK = 0xff, /* Pre-compensation set to track 0 */
903 VMSTATE_UINT8(track, FDrive),
1380 * returns 0 when end of track reached (for DBL_SIDES on head 1)
1386 cur_drv->head, cur_drv->track, cur_drv->sect, in fdctrl_seek_to_next_sect()
1391 uint8_t new_track = cur_drv->track; in fdctrl_seek_to_next_sect()
1417 FLOPPY_DPRINTF("seek to next track (%d %02x %02x => %d)\n", in fdctrl_seek_to_next_sect()
1446 fdctrl->fifo[3] = cur_drv->track; in fdctrl_stop_transfer()
1486 /* track too big */ in fdctrl_start_transfer()
1625 cur_drv->track, cur_drv->sect, fd_sector(cur_drv), in fdctrl_transfer_handler()
1801 /* track too big */ in fdctrl_format_sector()
1851 fdctrl->fifo[0] = drv0(fdctrl)->track; in fdctrl_handle_dumpreg()
1852 fdctrl->fifo[1] = drv1(fdctrl)->track; in fdctrl_handle_dumpreg()
1854 fdctrl->fifo[2] = drv2(fdctrl)->track; in fdctrl_handle_dumpreg()
1855 fdctrl->fifo[3] = drv3(fdctrl)->track; in fdctrl_handle_dumpreg()
1889 drv0(fdctrl)->track = fdctrl->fifo[3]; in fdctrl_handle_restore()
1890 drv1(fdctrl)->track = fdctrl->fifo[4]; in fdctrl_handle_restore()
1892 drv2(fdctrl)->track = fdctrl->fifo[5]; in fdctrl_handle_restore()
1893 drv3(fdctrl)->track = fdctrl->fifo[6]; in fdctrl_handle_restore()
1914 fdctrl->fifo[2] = drv0(fdctrl)->track; in fdctrl_handle_save()
1915 fdctrl->fifo[3] = drv1(fdctrl)->track; in fdctrl_handle_save()
1917 fdctrl->fifo[4] = drv2(fdctrl)->track; in fdctrl_handle_save()
1918 fdctrl->fifo[5] = drv3(fdctrl)->track; in fdctrl_handle_save()
1995 (cur_drv->track == 0 ? 0x10 : 0x00) | in fdctrl_handle_sense_drive_status()
2033 fdctrl->fifo[1] = cur_drv->track; in fdctrl_handle_sense_interrupt_status()
2117 if (fdctrl->fifo[2] + cur_drv->track >= cur_drv->max_track) { in fdctrl_handle_relative_seek_in()
2122 cur_drv->track + fdctrl->fifo[2], cur_drv->sect, 1); in fdctrl_handle_relative_seek_in()
2136 if (fdctrl->fifo[2] > cur_drv->track) { in fdctrl_handle_relative_seek_out()
2140 cur_drv->track - fdctrl->fifo[2], cur_drv->sect, 1); in fdctrl_handle_relative_seek_out()
2166 { FD_CMD_FORMAT_TRACK, 0xbf, "FORMAT TRACK", 5, fdctrl_handle_format_track },
2167 { FD_CMD_READ_TRACK, 0xbf, "READ TRACK", 8, fdctrl_start_transfer, FD_DIR_READ },