home *** CD-ROM | disk | FTP | other *** search
- /* MARGIN.C 22nd Feb 1981
-
- Prompts user to set margins on diablo daisy wheel printer,
- for use with a cut sheet feeder
-
- By Bill Bolton
- Software Tools
- P.O. Box 80
- Newport Beach
- NSW, 2106
- Australia
- */
-
- #define MINMARG 0
- #define MAXMARG 156
- #define MAXTAB 125
- #define LSIDE '9'
- #define RSIDE '0'
- #define HT 0x09
- #define ESC 0x1b
- #define STDIN 0
- #define STDOUT 1
- #define LST 2
-
- int odevice;
- int idevice;
- int ldevice;
-
- main (argc,argv)
-
- int argc;
- char *argv[];
-
- {
- int lmargin;
- int rmargin;
- char lstr[6];
- char rstr[6];
-
- lmargin = 0; /* intialisation */
- rmargin = 0;
- odevice = STDOUT;
- idevice = STDIN;
- ldevice = LST;
- sprintf(lstr,"left ");
- sprintf(rstr,"right");
-
- fprintf(odevice,"\n\tCopyright (C) 1981, Software Tools, Sydney,\
- Australia.\n");
- fprintf(odevice,"\tMARGIN Version 1.0 (Diablo)\n\n");
- fprintf(odevice,"\tThis program sets the margins on a Diablo daisy\
- wheel printer, margin\n");
- fprintf(odevice,"\tpositions can only be set in the range 0 to %d\
- from this program.\n\n\t",MAXMARG);
- while (rmargin <= lmargin) {
- fprintf(odevice,"Right margin must be greater than left\
- margin.\n\n");
- lmargin = get_margin(lstr);
- rmargin = get_margin(rstr);
- if (rmargin <= lmargin) {
- fprintf(odevice,"\007\tRight margin error. ");
- }
- }
- fprintf(odevice,"\n\tLeft margin is set to %d\n",lmargin);
- fprintf(odevice,"\tRight margin is set to %d\n",rmargin);
- set_margin(++lmargin,LSIDE);
- set_margin(++rmargin,RSIDE);
- putc('\r',ldevice);
- }
-
- /* prompts user for required margin, does range check and return margin */
-
- get_margin(str)
-
- char *str;
-
- {
- int margin;
- char reply[8];
-
- fprintf(odevice,"\tEnter position for %s margin : ",str);
- fgets(reply,idevice);
- margin = atoi(reply);
- while (margin > MAXMARG || margin < MINMARG) {
- fprintf(odevice,"\007\n\tMargin MUST be in the range 0\
- to %d, renter.\n\n",MAXMARG);
- margin = get_margin(str);
- }
- return(margin);
- }
-
-
- set_margin(margin,side)
-
- int margin;
- int side;
-
- {
- int i;
-
- if(margin > MAXTAB) {
- fprintf(ldevice,"%c%c%c",ESC,HT,MAXTAB);
- for( i = 1; i <= (margin - MAXTAB); i++)
- putc(' ',ldevice);
- }
- else {
- fprintf(ldevice,"%c%c%c",ESC,HT,margin);
- }
- fprintf(ldevice,"%c%c",ESC,side);
- }
-