>
> Whay about the interleave and skew? Is that a way to get it
> faster?
To tell the truth, as far as my tests indicate, the problem's with the speed
of the SAM...
To read a sector at the moment, you have to do the equivalent of:
ld a,1
ld c,sector_count
out (c),a
inc c
ld a,sector
out (c),a
inc c
ld a,tracklow
out (c),a
inc c
ld a,trackhigh
out (c),a
inc c
ld a,head_drive
out (c),a
inc c
ld a,&20 ;(read sector)
out (c),a
main.loop:
in a,(status)
bit 3,a
jr nz,read.byte
rla
ret nc
jr main.loop
read.byte:
in a,(data)
ld (hl),a
inc hl
in a,(data)
ld (hl),a
inc hl
jr main.loop
And that's effectively it... the place where it slows down is that main
loop... and I've not even put the error checking in it (which is mostly
redundant -- you can do it at the end of that loop anyway)
But there you go... Martin has nearly finished designing the DMA system --
it has to be a custom job, but there you go...
Si