#ifndef lint static char sccsid[] = "@(#)bcd.c 1.1 92/07/30 SMI"; /* from UCB 4.1 82/10/24 */ #endif #include #include #define CARDLEN 48 /* number of columns in the card */ int chtab[] = { 00000, /* */ 03004, /* ! */ 02404, /* " */ 02040, /* sharp */ 02042, /* $ */ 02104, /* % */ 00001, /* & */ 03002, /* ' */ 02201, /* ( */ 02202, /* ) */ 02102, /* * */ 00005, /* + */ 02044, /* , */ 00002, /* - */ 02041, /* . */ 00014, /* / */ 00004, /* 0 */ 00010, /* 1 */ 00020, /* 2 */ 00040, /* 3 */ 00100, /* 4 */ 00200, /* 5 */ 00400, /* 6 */ 01000, /* 7 */ 02000, /* 8 */ 04000, /* 9 */ 02200, /* : */ 02402, /* ; */ 02401, /* < */ 02204, /* = */ 02400, /* > */ 03000, /* ? */ 02100, /* at */ 011, 021, 041, 0101, 0201, 0401, 01001, 02001, 04001, 012, 022, 042, 0102, 0202, 0402, 01002, 02002, 02002, 024, 044, 0104, 0204, 0404, 01004, 02004, 04004, 02020, /* [ */ 03001, /* \ */ 02101, /* ] */ 00006, /* ^ */ 02024 /* _ */ }; char s[128]; char *sp = {&s[0]}; main(argc, argv) char *argv[]; { char *spp; int i; int j; int c; int l; if (argc<2) { fputs("$ ", stdout); while ((c=getchar())!='\0'&&c!='\n') *sp++ = c; *sp = 0; sp = &s[0]; } else sp = *++argv; fputs("\n\n\n\n", stdout); putchar(' '); for(i=0;i0) putchar(' '); fputs("|\n", stdout); j = 0; spp = sp; while (j++<12) { putchar('|'); i = 0; spp = sp; while (il) c = 0; else c = *spp++ - 040; i++; if (c<0 || c>137) c = 0; if ((chtab[c]>>(j-1))&1) fputs("[\b]", stdout); else putchar(j>3?'0'+j-3:' '); } fputs("|\n", stdout); } putchar('|'); for(i=0;i