C64Lib.Core.Job1541.gcr_conv4 C# (CSharp) Method

gcr_conv4() private method

private gcr_conv4 ( byte from, byte to, int f, int t ) : void
from byte
to byte
f int
t int
return void
        void gcr_conv4(byte[] from, byte[] to, int f, int t)
        {
            UInt16 g;

            g = (UInt16)((gcr_table[from[f] >> 4] << 5) | gcr_table[from[f] & 15]);
            to[t++] = (byte)(g >> 2);
            to[t] = (byte)((g << 6) & 0xc0);
            f++;

            g = (UInt16)((gcr_table[from[f] >> 4] << 5) | gcr_table[from[f] & 15]);
            to[t++] |= (byte)((g >> 4) & 0x3f);
            to[t] = (byte)((g << 4) & 0xf0);
            f++;

            g = (UInt16)((gcr_table[from[f] >> 4] << 5) | gcr_table[from[f] & 15]);
            to[t++] |= (byte)((g >> 6) & 0x0f);
            to[t] = (byte)((g << 2) & 0xfc);
            f++;

            g = (UInt16)((gcr_table[from[f] >> 4] << 5) | gcr_table[from[f] & 15]);
            to[t++] |= (byte)((g >> 8) & 0x03);
            to[t] = (byte)g;
        }