home *** CD-ROM | disk | FTP | other *** search
/ kermit.columbia.edu / kermit.columbia.edu.tar / kermit.columbia.edu / vt100 / ripple8.c < prev    next >
C/C++ Source or Header  |  2000-10-12  |  1KB  |  44 lines

  1. /*
  2.   8-bit ripple test.
  3.   Usage: ripple [ w [ l ] ]
  4.    w = screen line width, default 80, must be > 0, max 132.
  5.    l = how many lines to display, default 1000; < 1 means go forever.
  6.   Author: Frank da Cruz, Columbia University, 2000.
  7. */
  8. char *crlf = "\015\012";
  9.  
  10. char p[512];
  11.  
  12. main(argc,argv) int argc; char *argv[]; {
  13.     int i, j, c, w = 80, l = 1000;
  14.     char beep = '\07';
  15.  
  16.     c = 32;
  17.     for (i = 0; i < 94; i++)        /* Initialize display array */
  18.       p[i] = c++;
  19.     c = 160;
  20.     for (i = 0; i < 96; i++)
  21.       p[i+94] = c++;
  22.     c = 32;
  23.     for (i = 0; i < 94; i++)
  24.       p[i+94+96] = c++;
  25.     c = 160;
  26.     for (i = 0; i < 96; i++)
  27.       p[i+94+96+94] = c++;
  28.  
  29.     if (argc > 1)            /* User-specified width */
  30.       w = atoi(argv[1]);
  31.     if (argc > 2)            /* User-specified number of lines */
  32.       l = atoi(argv[2]);
  33.     if (w < 1 || w > 132)        /* Quit upon conversion error */
  34.       exit(1);
  35.  
  36.     for (j = i = 0; l < 1 || i < l; i++) { /* Ripple loop */
  37.     write(1, p+j, w);
  38.     write(1, crlf, 2);
  39.     if (++j == 190) j = 0;
  40.     }
  41.     write(1, &beep, 1);
  42.     exit(0);
  43. }
  44.