home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / c / pcpilot.zip / ASCII.C next >
Text File  |  1990-01-13  |  1KB  |  68 lines

  1. /*
  2.     ASCII.C - Display ASCII codes and characters
  3. */
  4.  
  5. #include <stdio.h>
  6. #include <kbd.h>
  7.  
  8. void Ascii(void);
  9. extern int Code;
  10.  
  11. extern int BorderClr;
  12. extern int TitleClr;
  13. extern int TextClr;
  14. extern int FooterClr;
  15.  
  16. void Ascii()
  17. {
  18.     register int i;
  19.     int Quit = 0;
  20.     int x = 12, y = 6;
  21.     int Oldx, Oldy;
  22.  
  23.     ScrGetCur(&Oldx, &Oldy, 0);
  24.     ScrPush();
  25.     HideCur();
  26.  
  27.     ShadowBox(x, 1, x+16, 22, 2, BorderClr);
  28.     PutStr(x+1, 2, TitleClr, "  Ascii codes  ");
  29.     PutStr(x,3, BorderClr,  "╞═══════════════╡");
  30.     PutStr(x+1,4, TextClr,   " Dec  Hex  Chr ");
  31.     PutStr(x,5, BorderClr,  "╞═══════════════╡");
  32.     ClrScrn(x+1,6,x+15,21, TextClr);
  33.  
  34.  
  35.     do    {
  36.         y = 6;
  37.         for (i=Code; y<22; ++i)    {
  38.             if (i % 2)
  39.                 PutStr(x+1,y,  FooterClr, " %3d   %02X   %c  ", i, i, i);
  40.             else
  41.                 PutStr(x+1,y,  TextClr, " %3d   %02X   %c  ", i, i, i);
  42.             y++;
  43.             if (Code == 0)   PutStr(x+13,  6, TextClr, " ");
  44.             if (Code == 240) PutStr(x+13, 21, TextClr, " ");
  45.         }
  46.  
  47.         switch (KbdGetC())    {
  48.             case UP:    Code--;     break;
  49.             case DN:    Code++;     break;
  50.             case PGDN:
  51.             case RIGHT: Code += 15; break;
  52.             case PGUP:
  53.             case LEFT:  Code -= 15; break;
  54.             case HOME:  Code = 0;   break;
  55.             case END:   Code = 240; break;
  56.             case RET:
  57.             case ESC:   Quit = 1;   break;
  58.             default :                break;
  59.         }
  60.         if (Code > 240) Code = 0;
  61.         if (Code < 0) Code = 240;
  62.     } while (!Quit);
  63.  
  64.     ScrPop(1);
  65.     ScrSetCur(Oldx, Oldy, 0);
  66.     return;
  67. }
  68.