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