Re: Fast GCR decoding?

From: silverdr_at_wfmh.org.pl
Date: Sun, 13 Jan 2013 18:42:47 +0100
Message-Id: <FE667A4D-54F3-4705-B267-3CD60F7A3122@wfmh.org.pl>
On 2013-01-13, at 17:47, Gerrit Heitsch wrote:

> I thought GCR is a 10/8 encoding, meaning you get 10 Bits off the disk which translate to 8 Bits. That would mean you need a 1 KByte table to do decoding full bytes by lookup table.
> 
> If you do it by nibble, you need a table with 32 entries.

Unfortunately it's not /that/ simple ;-)

While you are right on the 10/8, unfortunately you don't get 10 (or 5) bits at a time but always 8. Therefore en/decoding is done in groups of 40 bits so that it divides evenly by both 10 and 8. I wrote already two GCR decoding routines that are faster than what 1541 does (simple bit shifting) but both are slower than what 1571 does with its over 1KiB lookup tables. 

But... I think I eventually came up with something that will use a set of tables that will fit into 8KiB together with the _decoded_ track. Need to prove the concept though.

-- 
SD!
       Message was sent through the cbm-hackers mailing list
Received on 2013-01-13 18:00:03

Archive generated by hypermail 2.2.0.