home *** CD-ROM | disk | FTP | other *** search
/ Power Programming / powerprogramming1994.iso / progtool / microcrn / issue_40.arc / VIEW.C < prev   
Text File  |  1988-01-11  |  1KB  |  65 lines

  1. /* Code from Kaypro column in Micro Cornucopia Issue #40 */
  2.  
  3. /* Figure 1 - VIEW, Displays CP/M text file to the screen */
  4.  
  5. /*   Written for Small-C compiler vers 2.03 (ASM)
  6.      Pauses every 22 lines; strips high bit so that
  7.      WordStar files will display properly on terminals
  8.      with graphics displays.
  9. */
  10.  
  11. #include <stdioa.h>
  12. #include "iolib.asm"
  13. #include "call.asm"
  14.  
  15. #define MASK 127      /* high bit mask = 01111111b */
  16. #define NOCCARGC
  17.  
  18. int infile;
  19. char fname[15];
  20.  
  21. main(argc,argv) int argc, argv[]; {
  22.  
  23.    int line, ch;
  24.  
  25.    if (argc == 2)
  26.       infile = fopen(argv[1],"r");
  27.    else {
  28.       fputs("Name of text file to view?",stdout);
  29.       gets(fname);
  30.       infile = fopen(fname,"r");
  31.    }
  32.  
  33.    if (infile == NULL) {
  34.       fputs("File not found.",stdout);
  35.       exit();
  36.    }
  37.  
  38.    line = 1;
  39.    while ((ch = getc(infile)) != EOF ) {
  40.       ch &=  MASK;           /* strip high bit */
  41.       putchar(ch);
  42.       if (ch == CR) {
  43.          line++;
  44.          if ((line % 22) == 0)
  45.             pause();
  46.       }
  47.    }
  48.  
  49.    fclose(infile);
  50. }
  51.  
  52. /*
  53. *   Pause and wait for user to hit any key.
  54. *   Key pressed does not echo to the console.
  55. *   Control-C will exit program.
  56. */
  57.  
  58. pause() {
  59.    int c;
  60.    while ((c = cpm(6,255)) == 0);
  61.    if (c == 3) exit();
  62. }
  63.  
  64.  
  65.