Код:
unsigned char flashcolor = (temp.rflags & RF_MON)? 0 : conf.flashcolor;
for (unsigned a = 0; a < 0x100; a++)
{
unsigned char ink = (a & 0x0F), paper = u8(a >> 4);
if (flashcolor)
paper = (paper & 7) + (ink & 8); // paper_bright from ink
................................
{ //----------------------------- for bilinear
unsigned char b0,b1, r0,r1, g0,g1;
b0 = (paper >> 0) & 1; r0 = (paper >> 1) & 1; g0 = (paper >> 2) & 1;
b1 = (ink >> 0) & 1; r1 = (ink >> 1) & 1; g1 = (ink >> 2) & 1;
if (flashcolor && (a & 0x80))
{
b1 += b0; r1 += r0; g1 += g0;
r0 = b0 = g0 = 0;
}
else
{
b0 *= 2; r0 *= 2; g0 *= 2;
b1 *= 2; r1 *= 2; g1 *= 2;
}
unsigned char br1 = (ink >> 3) & 1;
if (r1) r1 += br1;
if (g1) g1 += br1;
if (b1) b1 += br1;
unsigned char br0 = (paper >> 3) & 1;
if (r0) r0 += br0;
if (g0) g0 += br0;
if (b0) b0 += br0;
// palette index: gg0rr0bb
t.attrtab[a+0x100] = u8((g1 << 6) + (r1 << 3) + b1);
t.attrtab[a] = u8((g0 << 6) + (r0 << 3) + b0);
}