Lines Matching refs:track
34 * 28.02.92 - made track-buffering routines, based on the routines written
434 | Sectors per track
591 static unsigned char fsector_t; /* sector in track */
849 (mode || drive_state[drive].track != NEED_1_RECAL))
850 drive_state[drive].track = NEED_2_RECAL;
1254 output_byte(fdc, 0); /* pre-compensation from track 0 upwards */
1384 pr_cont(": track %d, head %d, sector %d, size %d",
1462 drive_state[current_drive].track = NEED_2_RECAL;
1480 * selected, and the head is sitting on the right track).
1546 drive_state[current_drive].track = NEED_2_RECAL;
1551 if (drive_state[current_drive].track >= 0 &&
1552 drive_state[current_drive].track != reply_buffer[ST1] &&
1563 drive_state[current_drive].track = reply_buffer[ST1];
1595 int track;
1614 if (drive_state[current_drive].track <= NEED_1_RECAL) {
1619 (drive_state[current_drive].track <= NO_TRACK || drive_state[current_drive].track == raw_cmd->track)) {
1622 if (raw_cmd->track)
1623 track = raw_cmd->track - 1;
1630 track = 1;
1634 if (raw_cmd->track != drive_state[current_drive].track &&
1636 track = raw_cmd->track;
1646 if (output_byte(current_fdc, track) < 0) {
1659 switch (drive_state[current_drive].track) {
1663 * reached track 0. Probably no drive. Raise an
1672 * and we are not at track 0, this
1675 * be already at track 0.) Clear the
1689 * track 0, this might mean that we
1690 * started beyond track 80. Try
1692 drive_state[current_drive].track = NEED_1_RECAL;
1696 drive_state[current_drive].track = reply_buffer[ST1];
2104 drive_state[current_drive].track = NEED_2_RECAL;
2137 static void setup_format_params(int track)
2145 unsigned char track, head, sect, size;
2149 raw_cmd->track = track;
2168 /* allow for about 30ms for data transport per track */
2174 /* position of logical sector 1 on this track */
2175 n = (track_shift * format_req.track + head_shift * format_req.head)
2185 here[count].track = format_req.track;
2212 setup_format_params(format_req.track << STRETCH(_floppy));
2233 _floppy->track > drive_params[current_drive].tracks ||
2234 tmp_format_req->track >= _floppy->track ||
2404 buffer_track = raw_cmd->track;
2447 * Move data from/to the track buffer to/from the buffer cache.
2540 raw_cmd->cmd[COMMAND] &= ~0x80; /* switch off multiple track mode */
2559 * track, or a single sector)
2560 * All floppy_track_buffer handling goes in here. If we ever add track buffer
2596 if (_floppy->track && raw_cmd->cmd[TRACK] >= _floppy->track) {
2610 /* 2M disks have phantom sectors on the first track */
2631 raw_cmd->track = raw_cmd->cmd[TRACK] << STRETCH(_floppy);
2669 if ((raw_cmd->track == buffer_track) &&
2672 /* data already in track buffer */
2718 * are other bad sectors on this track.
2743 /* claim buffer track if needed */
2744 if (buffer_track != raw_cmd->track || /* bad track */
2761 /* copy write buffer to track buffer.
2767 buffer_track = raw_cmd->track;
2801 pr_info("buffer track=%d\n", buffer_track);
2983 raw_cmd->track = 0;
3267 drive_state[current_drive].track = NO_TRACK;
3307 /* invalidate the buffer track to force a reread */
3327 g->track <= 0 || g->track > drive_params[drive].tracks >> STRETCH(g) ||
3466 geo->cylinders = g->track;
3702 short track;
3727 unsigned char track[4];
3885 v.track = drive_state[drive].track;
3928 memcpy(v32.track, v.track, 4);
4732 fdc_state[i].track[unit] = 0;