> 
> 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

Reply via email to