|
|
DataMuseum.dkPresents historical artifacts from the history of: Commodore CBM-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Commodore CBM-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 6001 (0x1771)
Types: TextFile
Notes: UNIX file
Names: »lpd2.c«
└─⟦f27320a65⟧ Bits:30001972 Commodore 900 hard disk image with partial source code
└─⟦f4b8d8c84⟧ UNIX Filesystem
└─⟦this⟧ »cmd/lpr/lpd2.c«
/*
* Produce banners for the line printer.
*/
#include <stdio.h>
#define BAS 035 /* Base character in table */
#define FILL '#' /* Fill character for banner */
char font[98][9] = {
0077,0177,0300,0314,0314,0314,0014,0007,0003, /* MW-1 */
0077,0377,0300,0314,0314,0314,0014,0377,0363, /* MW-2 */
0000,0200,0300,0314,0314,0314,0014,0370,0360, /* MW-3 */
0000,0000,0000,0000,0000,0000,0000,0000,0000, /* sp */
0010,0010,0010,0010,0010,0000,0010,0000,0000, /* ! */
0024,0024,0024,0000,0000,0000,0000,0000,0000, /* " */
0024,0024,0076,0024,0076,0024,0024,0000,0000, /* # */
0010,0036,0050,0034,0012,0074,0010,0000,0000, /* $ */
0060,0062,0004,0010,0020,0046,0006,0000,0000, /* % */
0010,0024,0024,0030,0052,0044,0032,0000,0000, /* & */
0010,0010,0020,0000,0000,0000,0000,0000,0000, /* ' */
0004,0010,0020,0020,0020,0010,0004,0000,0000, /* ( */
0020,0010,0004,0004,0004,0010,0020,0000,0000, /* ) */
0000,0010,0052,0034,0052,0010,0000,0000,0000, /* * */
0000,0010,0010,0076,0010,0010,0000,0000,0000, /* + */
0000,0000,0000,0000,0000,0030,0030,0010,0020, /* , */
0000,0000,0000,0076,0000,0000,0000,0000,0000, /* - */
0000,0000,0000,0000,0000,0030,0030,0000,0000, /* . */
0001,0002,0004,0010,0020,0040,0100,0000,0000, /* / */
0034,0042,0046,0052,0062,0042,0034,0000,0000, /* 0 */
0010,0030,0010,0010,0010,0010,0034,0000,0000, /* 1 */
0034,0042,0002,0004,0010,0020,0076,0000,0000, /* 2 */
0076,0004,0010,0004,0002,0042,0034,0000,0000, /* 3 */
0004,0014,0024,0044,0076,0004,0004,0000,0000, /* 4 */
0076,0040,0074,0002,0002,0042,0034,0000,0000, /* 5 */
0014,0020,0040,0074,0042,0042,0034,0000,0000, /* 6 */
0076,0002,0004,0010,0020,0020,0020,0000,0000, /* 7 */
0034,0042,0042,0034,0042,0042,0034,0000,0000, /* 8 */
0034,0042,0042,0036,0002,0004,0030,0000,0000, /* 9 */
0000,0030,0030,0000,0030,0030,0000,0000,0000, /* : */
0000,0030,0030,0000,0030,0030,0010,0020,0000, /* ; */
0002,0004,0010,0020,0010,0004,0002,0000,0000, /* < */
0000,0000,0076,0000,0076,0000,0000,0000,0000, /* = */
0040,0020,0010,0004,0010,0020,0040,0000,0000, /* > */
0034,0042,0002,0004,0010,0000,0010,0000,0000, /* ? */
0014,0022,0056,0052,0056,0040,0036,0000,0000, /* @ */
0034,0042,0042,0076,0042,0042,0042,0000,0000, /* A */
0074,0042,0042,0074,0042,0042,0074,0000,0000, /* B */
0034,0042,0040,0040,0040,0042,0034,0000,0000, /* C */
0070,0044,0042,0042,0042,0044,0070,0000,0000, /* D */
0076,0040,0040,0074,0040,0040,0076,0000,0000, /* E */
0076,0040,0040,0074,0040,0040,0040,0000,0000, /* F */
0036,0040,0040,0046,0042,0042,0036,0000,0000, /* G */
0042,0042,0042,0076,0042,0042,0042,0000,0000, /* H */
0034,0010,0010,0010,0010,0010,0034,0000,0000, /* I */
0034,0010,0010,0010,0010,0050,0020,0000,0000, /* J */
0042,0044,0050,0060,0050,0044,0042,0000,0000, /* K */
0040,0040,0040,0040,0040,0040,0076,0000,0000, /* L */
0042,0066,0052,0052,0042,0042,0042,0000,0000, /* M */
0042,0042,0062,0052,0046,0042,0042,0000,0000, /* N */
0034,0042,0042,0042,0042,0042,0034,0000,0000, /* O */
0074,0042,0042,0074,0040,0040,0040,0000,0000, /* P */
0034,0042,0042,0042,0052,0044,0032,0000,0000, /* Q */
0074,0042,0042,0074,0050,0044,0042,0000,0000, /* R */
0034,0042,0040,0034,0002,0042,0034,0000,0000, /* S */
0076,0010,0010,0010,0010,0010,0010,0000,0000, /* T */
0042,0042,0042,0042,0042,0042,0034,0000,0000, /* U */
0042,0042,0042,0024,0024,0010,0010,0000,0000, /* V */
0042,0042,0042,0052,0052,0052,0024,0000,0000, /* W */
0042,0042,0024,0010,0024,0042,0042,0000,0000, /* X */
0042,0042,0024,0010,0010,0010,0010,0000,0000, /* Y */
0076,0002,0004,0010,0020,0040,0076,0000,0000, /* Z */
0034,0020,0020,0020,0020,0020,0034,0000,0000, /* [ */
0100,0040,0020,0010,0004,0002,0001,0000,0000, /* \ */
0034,0004,0004,0004,0004,0004,0034,0000,0000, /* ] */
0010,0024,0042,0000,0000,0000,0000,0000,0000, /* ^ */
0000,0000,0000,0000,0000,0000,0076,0000,0000, /* _ */
0010,0010,0004,0000,0000,0000,0000,0000,0000, /* ` */
0000,0000,0034,0002,0036,0042,0036,0000,0000, /* a */
0040,0040,0074,0042,0042,0042,0074,0000,0000, /* b */
0000,0000,0030,0044,0040,0044,0030,0000,0000, /* c */
0002,0002,0036,0042,0042,0042,0036,0000,0000, /* d */
0000,0000,0034,0042,0076,0040,0034,0000,0000, /* e */
0014,0022,0070,0020,0020,0020,0020,0000,0000, /* f */
0000,0000,0032,0046,0042,0046,0032,0002,0034, /* g */
0040,0040,0074,0042,0042,0042,0042,0000,0000, /* h */
0010,0000,0030,0010,0010,0010,0034,0000,0000, /* i */
0004,0000,0004,0004,0004,0004,0004,0044,0030, /* j */
0040,0040,0044,0050,0064,0042,0042,0000,0000, /* k */
0030,0010,0010,0010,0010,0010,0034,0000,0000, /* l */
0000,0000,0064,0052,0052,0052,0052,0000,0000, /* m */
0000,0000,0074,0042,0042,0042,0042,0000,0000, /* n */
0000,0000,0034,0042,0042,0042,0034,0000,0000, /* o */
0000,0000,0054,0062,0042,0062,0054,0040,0040, /* p */
0000,0000,0032,0046,0042,0046,0032,0002,0002, /* q */
0000,0000,0054,0062,0040,0040,0040,0000,0000, /* r */
0000,0000,0036,0040,0034,0002,0074,0000,0000, /* s */
0020,0020,0070,0020,0020,0022,0014,0000,0000, /* t */
0000,0000,0042,0042,0042,0046,0032,0000,0000, /* u */
0000,0000,0042,0042,0042,0024,0010,0000,0000, /* v */
0000,0000,0042,0042,0052,0052,0024,0000,0000, /* w */
0000,0000,0042,0024,0010,0024,0042,0000,0000, /* x */
0000,0000,0042,0042,0042,0046,0032,0002,0034, /* y */
0000,0000,0076,0004,0010,0020,0076,0000,0000, /* z */
0014,0020,0020,0040,0020,0020,0014,0000,0000, /* { */
0010,0010,0010,0000,0010,0010,0010,0000,0000, /* | */
0030,0004,0004,0002,0004,0004,0030,0000,0000, /* } */
0020,0052,0004,0000,0000,0000,0000,0000,0000, /* ~ */
0177,0177,0177,0177,0177,0177,0177,0177,0177, /* del */
};
/*
* Write a line onto the printer on
* file `fp'.
*/
banner(line, fp)
char *line;
FILE *fp;
{
register i, j;
register char *s;
for (i=0; i!=9; i++) {
for (s=line; *s!='\0'; s++)
for (j=0200; j!=0; j>>=1)
if(BAS<=*s && *s<=0177 && font[*s-BAS][i]&j)
putc(FILL, fp); else
putc(' ', fp);
putc('\n', fp);
}
putc('\n', fp);
}