This is hp7470.c in view mode; [Download] [Up]
/* This file contains the IMPRESS device dependent subroutines for */ /* use with plplot. */ #include "plplot.h" #include <stdio.h> #define ESC 27 #define HP7470X 10299 #define HP7470Y 7649 static FILE *OutFile=NULL; static int porient=0; static int fileopen=0; static int curpen, curwid; void hp7470setup(xdpi,ydpi,xwid,ywid) int xwid, ywid; double xdpi, ydpi; { } /* Open file. Set up for graphics. */ void hp7470init() { char response[80]; smod(0); /* not an interactive terminal */ scol(1); swid(1); setpxl(40.,40.); if(!porient) setphy(0,HP7470X,0,HP7470Y); else setphy(0,HP7470Y,0,HP7470X); while(!OutFile) { printf("Enter graphics command storage file name. "); fgets(response,sizeof(response),stdin); response[strlen(response)-1] = '\0'; if ((OutFile = fopen(response,"w")) == NULL) fprintf(stderr,"Can't open %s.\n",response); else { fileopen = 1; break; } } fprintf(OutFile,"%c.I200;;17:%c.N;19:%c.M;;;10:in;\n",ESC,ESC,ESC); fprintf(OutFile,"pg;\n"); } void hp7470orient(ori) int ori; { porient = ori; } void hp7470select(file) FILE *file; { OutFile = file; } /* Sets the IMPRESS to text mode */ void hp7470text() { } /* Sets the IMPRESS to graphics mode */ void hp7470graph() { } /* Form feed */ void hp7470clear() { } static int xold, yold; void hp7470page() { xold = -100000; yold = -100000; } void hp7470eop() { fflush(OutFile); } void hp7470color(colour) int colour; { if(colour<1 || colour>8) fprintf(stderr,"\nInvalid pen selection."); else { fprintf(OutFile,"sp%d %d\n",colour,curwid); curpen = colour; } } void hp7470width(width) int width; { if(width<1 || width>48) fprintf(stderr,"\nInvalid pen width selection."); else { fprintf(OutFile,"sp%d %d\n",curpen,width); curwid = width; } } void hp7470line(x1,y1,x2,y2) int x1,y1,x2,y2; { if(!porient) { if(x1 == xold && y1 == yold) /* Add new point to path */ fprintf(OutFile,"pd%d %d\n",x2,y2); else /* Write out old path */ fprintf(OutFile,"pu%d %d pd%d %d\n",x1,y1,x2,y2); } else { if(x1 == xold && y1 == yold) /* Add new point to path */ fprintf(OutFile,"pd%d %d\n",HP7470X-y2,x2); else /* Write out old path */ fprintf(OutFile,"pu%d %d pd%d %d\n",HP7470X-y1,x1,HP7470X-y2,x2); } xold = x2; yold = y2; } /* Close graphics file */ void hp7470tidy() { fprintf(OutFile,"sp0\n"); if(fileopen) /* If we opened it then close it */ fclose(OutFile); } void hp7470cwin() { } void hp7470gwin() { }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.