/* 8-bit ripple test. Usage: ripple [ w [ l ] ] w = screen line width, default 80, must be > 0, max 132. l = how many lines to display, default 1000; < 1 means go forever. Author: Frank da Cruz, Columbia University, 2000. */ char *crlf = "\015\012"; char p[512]; main(argc,argv) int argc; char *argv[]; { int i, j, c, w = 80, l = 1000; char beep = '\07'; c = 32; for (i = 0; i < 94; i++) /* Initialize display array */ p[i] = c++; c = 160; for (i = 0; i < 96; i++) p[i+94] = c++; c = 32; for (i = 0; i < 94; i++) p[i+94+96] = c++; c = 160; for (i = 0; i < 96; i++) p[i+94+96+94] = c++; if (argc > 1) /* User-specified width */ w = atoi(argv[1]); if (argc > 2) /* User-specified number of lines */ l = atoi(argv[2]); if (w < 1 || w > 132) /* Quit upon conversion error */ exit(1); for (j = i = 0; l < 1 || i < l; i++) { /* Ripple loop */ write(1, p+j, w); write(1, crlf, 2); if (++j == 190) j = 0; } write(1, &beep, 1); exit(0); }