On 2009-05-22, at 19:59, Ruud@baltissen.org wrote: > I'm in trouble :( The speedy mode doesn't work as expected. Up to > track 24 > things work fine. With these tracks after reading a sector, three > other > sectors pass under the head during unGCRing the read data and > storing it to > the harddisk. From track 25 on most of the time it takes three > sectors but > sometimes four sectors. So I have to find out how many did pass. > Hmm, it helps writing your problems down :) Now I use a routine to > find > sector 0 because I need a known starting point. It is based on the > subroutine found at $F510. After handling sector I just tell the > drive to > wait for sector 5, and then for 10, 15 etc. Second idea (that just > popped > up): I only use this method for track 25 - 35. Wow, I'm good :) Hey, Ruud - maybe I am missing something but why not use the well proven method, which I also chose after analysing the fastest copiers: you just get the next available sector and check whether you need this one (meaning: you haven't read it yet) if not, you wait until the next and do the same. IMHO you don't get any faster than that (you always get the next missing sector *at most* in one rotation but normally you just get the next available, which is much much closer) and it works on all tracks, regardless of the speedzone and you don't have to wait for sec 0, etc.. > > FYI: I also replaced the 1541's 'changing track' routine I used by > my own > one. The gain was maybe half a second. Too less IMHO so I kept the > original > 1541 one. > I also tweaked that part a bit but the biggest gain is in GCR decoding and getting just the next unread sector rather than waiting for the one I think I want next: 21.x seconds with a slower CPU ;-) Regards, -- SD! Message was sent through the cbm-hackers mailing listReceived on 2009-05-23 15:19:30
Archive generated by hypermail 2.2.0.