Re: Fast GCR decoding?

From: MagerValp (
Date: 2005-11-07 23:29:11

>>>>> "ST" == Spiro Trikaliotis <> writes:

s> Does anyone know if there is a known, substantially faster GCR
s> decoding algorithm than the one in the drive's ROM?

ST> in the 157x, there are other functions than in the 154x which are
ST> table driven. These are much faster.

The problem with table based routines are that they're hard to fit in
the 1541's RAM - only 1.25k are available if you don't replace the
1541's kernal routines.

I worked a bit on improving Lasse Öörni's irqloader (based on Marko
Mäkelä and K.M/Taboo's code), and the best I could do was to partially
decode the GCR bytes into nybbles while reading. The full decode is
done in a 2nd pass, with more bitshifting. Using a nybble buffer (i.e.
512 bytes for one sector) instead of a byte buffer had the most
effect, since you only need a 16-byte table for sending the bits over.
The 1-bit loader went from about 3.5x speedup to 6x, using the same
transfer protocol.

    ___          .     .  .         .       . +  .         .      o   
  _|___|_   +   .  +     .     +         .  Per Olofsson, arkadspelare
    o-o    .      .     .   o         +
     -       +            +    .

       Message was sent through the cbm-hackers mailing list

Archive generated by hypermail pre-2.1.8.