xref: /csrg-svn/games/bcd/bcd.c (revision 8857)
1*8857Smckusick 
2*8857Smckusick static char sccsid[] = "	bcd.c	4.1	82/10/24	";
3*8857Smckusick 
4*8857Smckusick int chtab[] = {
5*8857Smckusick 00000, /*   */
6*8857Smckusick 03004, /* ! */
7*8857Smckusick 02404, /* " */
8*8857Smckusick 02040, /* sharp */
9*8857Smckusick 02042, /* $ */
10*8857Smckusick 02104, /* % */
11*8857Smckusick 00001, /* & */
12*8857Smckusick 03002, /* ' */
13*8857Smckusick 02201, /* ( */
14*8857Smckusick 02202, /* ) */
15*8857Smckusick 02102, /* * */
16*8857Smckusick 00005, /* + */
17*8857Smckusick 02044, /* , */
18*8857Smckusick 00002, /* - */
19*8857Smckusick 02041, /* . */
20*8857Smckusick 00014, /* / */
21*8857Smckusick 00004, /* 0 */
22*8857Smckusick 00010, /* 1 */
23*8857Smckusick 00020, /* 2 */
24*8857Smckusick 00040, /* 3 */
25*8857Smckusick 00100, /* 4 */
26*8857Smckusick 00200, /* 5 */
27*8857Smckusick 00400, /* 6 */
28*8857Smckusick 01000, /* 7 */
29*8857Smckusick 02000, /* 8 */
30*8857Smckusick 04000, /* 9 */
31*8857Smckusick 02200, /* : */
32*8857Smckusick 02402, /* ; */
33*8857Smckusick 02401, /* < */
34*8857Smckusick 02204, /* = */
35*8857Smckusick 02400, /* > */
36*8857Smckusick 03000, /* ? */
37*8857Smckusick 02100, /* at */
38*8857Smckusick  011,
39*8857Smckusick  021,
40*8857Smckusick  041,
41*8857Smckusick 0101,
42*8857Smckusick 0201,
43*8857Smckusick 0401,
44*8857Smckusick 01001,
45*8857Smckusick 02001,
46*8857Smckusick 04001,
47*8857Smckusick 012,
48*8857Smckusick 022,
49*8857Smckusick 042,
50*8857Smckusick 0102,
51*8857Smckusick 0202,
52*8857Smckusick 0402,
53*8857Smckusick 01002,
54*8857Smckusick 02002,
55*8857Smckusick 02002,
56*8857Smckusick 024,
57*8857Smckusick 044,
58*8857Smckusick 0104,
59*8857Smckusick 0204,
60*8857Smckusick 0404,
61*8857Smckusick 01004,
62*8857Smckusick 02004,
63*8857Smckusick 04004,
64*8857Smckusick 02020, /* [ */
65*8857Smckusick 03001, /* \ */
66*8857Smckusick 02101, /* ] */
67*8857Smckusick 00006, /* ^ */
68*8857Smckusick 02024 /* _ */
69*8857Smckusick };
70*8857Smckusick 	char s[128];
71*8857Smckusick 	char *sp = {&s[0]};
72*8857Smckusick main(argc, argv)
73*8857Smckusick char *argv[];
74*8857Smckusick {
75*8857Smckusick 	char *spp;
76*8857Smckusick 	int i;
77*8857Smckusick 	int j;
78*8857Smckusick 	int c;
79*8857Smckusick 	int l;
80*8857Smckusick 
81*8857Smckusick 	if (argc<2) {
82*8857Smckusick 		puts("% ");
83*8857Smckusick 		while ((c=getchar())!='\0'&c!='\n')
84*8857Smckusick 			*sp++ = c;
85*8857Smckusick 		*sp = 0;
86*8857Smckusick 		sp = &s[0];
87*8857Smckusick 	} else
88*8857Smckusick 		sp = *++argv;
89*8857Smckusick 	puts("\n\n\n\n");
90*8857Smckusick 	puts(" ________________________________");
91*8857Smckusick 	puts("________________\n");
92*8857Smckusick 	spp = sp;
93*8857Smckusick 	while(*spp++);
94*8857Smckusick 	spp--;
95*8857Smckusick 	l = spp - sp;
96*8857Smckusick 	putchar('/');
97*8857Smckusick 	puts(sp);
98*8857Smckusick 	i = 49 - l;
99*8857Smckusick 	while(--i>0) putchar(' ');
100*8857Smckusick 	puts("|\n");
101*8857Smckusick 	j = 0;
102*8857Smckusick 	spp = sp;
103*8857Smckusick 	while (j++<12) {
104*8857Smckusick 		putchar('|');
105*8857Smckusick 		i = 0;
106*8857Smckusick 		spp = sp;
107*8857Smckusick 		while (i<48) {
108*8857Smckusick 			if(i>l) c = 0;
109*8857Smckusick 			else c = *spp++ - 040;
110*8857Smckusick 			i++;
111*8857Smckusick 			if (c>='a'-040) c = c - 040;
112*8857Smckusick 			if (c<0 | c>137) c = 0;
113*8857Smckusick 			if ((chtab[c]>>(j-1))&1)
114*8857Smckusick 				puts("[]");
115*8857Smckusick 			else
116*8857Smckusick 				putchar(j>3?'0'+j-3:' ');
117*8857Smckusick 		}
118*8857Smckusick 		puts("|\n");
119*8857Smckusick 	}
120*8857Smckusick 	putchar('|');
121*8857Smckusick 	puts("____________");
122*8857Smckusick 	puts("____________________________________");
123*8857Smckusick 	puts("|\n");
124*8857Smckusick 	puts("\n\n\n\n");
125*8857Smckusick }
126*8857Smckusick 
127*8857Smckusick puts(ss) char *ss; {
128*8857Smckusick 	int i;
129*8857Smckusick 	char t;
130*8857Smckusick 	i = 0;
131*8857Smckusick 	while(t = *ss++) {
132*8857Smckusick 		if(t >= 'a' && t <= 'z')
133*8857Smckusick 			t += 'A'-'a';
134*8857Smckusick 		putchar(t);
135*8857Smckusick 	}
136*8857Smckusick }
137