home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / C128 / 801PRT11.LBR / 801PRT11.C < prev    next >
Text File  |  2000-06-30  |  2KB  |  58 lines

  1. /*
  2.      801PRT11 - MPS801 file printer version 1.1
  3.  
  4.      This is a file printer designed with the Commodore MPS801 and
  5.      1525 printers in mind.  It should, however, work with any
  6.      printer that does not need linefeeds.  It sends two extra
  7.      carriage returns to the printer at the end to clear out
  8.      the buffer, so that no lines will be dropped as happens with
  9.      many file listers when used with the MPS801.  It also filters
  10.      out linefeeds.
  11.  
  12.      This source code and the program are in the public domain. Modify
  13.      them as you see fit.
  14.  
  15.      9/7/86 - Removed code-wasting check to see if printer opened ok
  16.               since it didn't work and added tab expansion to make
  17.               version 1.1.
  18. */
  19.  
  20. #include <stdio.h>
  21. #define LF '\012'
  22. #define TAB '\t'
  23. #define EXPTAB "     "
  24.  
  25. main(argc,argv)
  26. int argc;
  27. char *argv[];
  28. {
  29.   FILE *in;
  30.   FILE *lst;
  31.   int ch;
  32.  
  33.   if (argc < 2) {
  34.     printf("\n\n801PRT11 - MPS801 file printer version 1.1\n\n");
  35.     printf("Usage:\n\n801PRT11 filename\n\n");
  36.     printf("where filename is the name of the file to print out.\n\n");
  37.     exit(-1);
  38.   }
  39.   if ((in = fopen(argv[1], "r")) == NULL) {
  40.     printf("\nCould not open file %s.\n",argv[1]);
  41.     exit(-1);
  42.   }
  43.   lst = fopen("lst:", "w");
  44.   ch = getc(in);
  45.   while (ch != EOF) {
  46.     if (ch != LF) {
  47.       if (ch == TAB) fprintf(lst, "%s", EXPTAB);
  48.       else putc(ch, lst);
  49.     }
  50.     ch = getc(in);
  51.   }
  52.   putc('\n',lst);
  53.   putc('\n',lst);
  54.   fclose(in);
  55.   fclose(lst);
  56. }
  57.  
  58. n801