home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V6 / usr / source / s1 / bcd.c < prev    next >
Encoding:
Text File  |  1975-05-13  |  1.7 KB  |  134 lines

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