Category : Files from Magazines
Archive   : CUJ0894.ZIP
Filename : SCLFXLN.C

 
Output of file : SCLFXLN.C contained in archive : CUJ0894.ZIP
/************************************************
* function: int scale_fax_line(unsigned char *dest, unsigned char *src)
************************************************/
int scale_fax_line(unsigned char *dest, unsigned char *src)
{
int y_repeat,x_repeat,i,bit;
unsigned int accum;
unsigned char byte;
unsigned char *start;
ROTATOR rotator;

/* get line repeat value and rotate to next */
y_repeat = y_base + (y_rotator & 0x01);
_ror(y_rotator);
/* if anything to do */
if (y_repeat)
{
rotator = x_rotator;
for (i=source_width, accum=1, start=dest ; i > 0 ; i--, src++)
{ /* each byte in the source line */
if (*src)
{ /* if it has black bits */
for (bit=8, byte=*src ; bit > 0 ; bit--)
{ /* for each bit in the byte */
x_repeat = x_base + (rotator & 1);
_ror(rotator); /* get repeat count and rotate */
while (x_repeat--)
{ /* for each repeat */
accum <<= 1; /* copy bit into accumulator */
accum += ((byte & 0x80) != 0);
if (accum & 0x100)
{ /* output a byte and reset sentinel */
*dest++ = (unsigned char) accum;
accum = 1;
}
}
byte <<= 1;
}
}
else
{ /* no black bits, just spin it out. */
/* how many repeats? */
x_repeat = bit_repeat_count + ((rotator & 0xff) > bit_repeat_pattern);
/* rotate by 8 */
rotator = (rotator << (PRECISION-8)) | (rotator >> 8);
/* do it */
while (x_repeat--)
{
accum <<= 1;
if (accum & 0x100)
{
*dest++ = (unsigned char) accum;
accum = 1;
}
}
}
}
if (accum > 1)
{ /* handle fragment */
while ((accum & 0x100) == 0)
accum <<= 1;
*dest++ = (unsigned char) accum;
}
while (dest < start + FAX_WIDTH)
{ /* white out tail */
*dest++ = 0;
}
}
return y_repeat;
}


  3 Responses to “Category : Files from Magazines
Archive   : CUJ0894.ZIP
Filename : SCLFXLN.C

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/