You can now record multiple revolutions (necessary for the Brother which puts

the index hole in the wrong place). Sector header record GCR is solved,
probably; data record GCR is partially solved, although kinda weird (should
check that my pulse train decoder isn't dropping bits).
This commit is contained in:
David Given
2018-10-19 02:11:38 +02:00
parent 3dec0ac54d
commit f9146b2b92
7 changed files with 223 additions and 22 deletions

View File

@@ -280,8 +280,18 @@ static void cmd_read(struct read_frame* f)
/* Start transferring. */
while (!index_irq && !dma_underrun)
int revolutions = f->revolutions;
while (!dma_underrun)
{
/* Have we reached the index pulse? */
if (index_irq)
{
index_irq = false;
revolutions--;
if (revolutions == 0)
break;
}
/* Wait for the next block to be read. */
while (dma_reading_from_td == dma_writing_to_td)
{