home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64-128Toolkit / GRAFPAK.ARC / GDRIVER.C next >
Encoding:
C/C++ Source or Header  |  2019-04-13  |  2.7 KB  |  134 lines

  1. /* ╟RAPHICS ─RIVER
  2. ** ╞ILENAME: GDRIVER.C
  3. ** ┴UTHOR: ═ARK ╥. ╥INFRET
  4. ** ─ATE:   12/14/85
  5. ** ─ESCRIPTION:
  6. **
  7. ** ╘HIS PACKAGE SERVES AS A DRIVER TO DEMO THE FEATURES IMPLEMENTED IN THE
  8. ** GRAFPAK GRAPHICS ROUTINES PACKAGE.
  9. **
  10. */
  11. #INCLUDE <STDIO.H>
  12. #INCLUDE <STRINGS.H>
  13. #INCLUDE <MATH.H>
  14.  
  15. #DEFINE ╥┴─├╧╬ 57.2957795 /* DEGREES TO RADIANS FACTOR */
  16.  
  17. MAIN()
  18.   REGISTER UNSIGNED BASE;
  19.   REGISTER UNSIGNED I,J;
  20.  
  21.   BASE = 40960;    /* BITMAP IN UPPER 8K OF BANK 2 */
  22.   HIGHMEM(32768);
  23.   GINIT();         /* INITIALIZE GRAPHICS PACKAGE */
  24.   GRAPHICS(0,1);
  25.   PUTS("╘HIS IS TEXT MODE - ╥┼╘╒╥╬ TO CONTINUE.\N");
  26.   DELAY();
  27.   TEST1();         /* TEST HI-RES GRAPHICS */
  28.   TEST2();         /* TEST MULTI-COLOR MODE */
  29.   GRAPHICS(0,0);
  30.   PUTS("┬ACK TO TEXT MODE.\N");
  31.  
  32. /* ╘EST HI-RES GRAPHICS */
  33. TEST1()
  34.   REGISTER UNSIGNED A,B,D,I,X,X1,Y,R;
  35.   REGISTER CHAR C,*P;
  36.   FLOAT R2,X2,INCR;
  37.  
  38.   GRAPHICS(1,1);         /* HI-RES W/CLEAR */
  39.  
  40.   SPINTEXT(160,100,"╚I-RES");
  41.  
  42.   GRAPHICS(1,1);
  43.  
  44.   LINE(0,0,319,199,1);   /* UPPER LEFT TO LOWER RIGHT */
  45.   LINE(0,199,319,0,1);   /* LOWER LEFT TO UPPER RIGHT */
  46.   LINE(0,100,319,100,1); /* HORIZONTAL AXIS */
  47.   LINE(160,0,160,199,1); /* VERTICAL AXIS */
  48.   
  49. /* ├IRCLES */
  50.  
  51.   CIRCLE(160,100,80,1);
  52.  
  53. /* ─IAGONAL LINES THROUGH CENTER */
  54.  
  55.   LINE(0,0,319,199,1);
  56.   LINE(319,0,0,199,1);
  57.  
  58. /* ╚ORIZONTAL ELLIPSE */
  59.   ARC(160,100,100,50,0,360,0,1.0,1);
  60.  
  61. /* ╓ERTICAL ELLIPSE */
  62.  
  63.   ARC(160,100,50,100,0,360,0,1.0,1);
  64.  
  65.   DELAY();
  66.  
  67. /* ╨OLYGONS */
  68.  
  69.   GRAPHICS(1,1);
  70.   COLORS(-1,-1,5,-1,-1);
  71.   DRAWTEXT(32,0,"╨OLYGONS USING 'ARC'",0,1);
  72.  
  73.   COLORS(-1,-1,6,-1,-1);
  74.   ARC(48,48,40,40,0,360,0,120.0,1); /* TRIANGLE */
  75.   DRAWTEXT(0,88,"╘RIANGLE",0,1);
  76.  
  77.   COLORS(-1,-1,7,-1,-1);            /* YELLOW */
  78.   ARC(240,48,40,40,0,360,0,90.0,1); /* SQUARE */
  79.   DRAWTEXT(200,88,"╙QUARE",0,1);
  80.  
  81.   COLORS(-1,-1,3,-1,-1);            /* CYAN */
  82.   ARC(80,144,40,40,0,360,0,60.0,1); /* HEXAGON */
  83.   DRAWTEXT(20,192,"╚EXAGON",0,1);  
  84.  
  85.   COLORS(-1,-1,2,-1,-1);            /* RED */
  86.   ARC(240,144,40,40,0,360,0,45.0,1); /* OCTAGON */  
  87.   DRAWTEXT(200,192,"╧CTAGON",0,1);
  88.  
  89.   DELAY();
  90.  
  91. TEST2()
  92.   REGISTER UNSIGNED PEN,X,Y,XX,YY,S;
  93.  
  94.   GRAPHICS(2,1);
  95.   COLORS(0,1,2,5,6);
  96.  
  97.   SPINTEXT(80,100,"═ULTICOLOR");
  98.  
  99.   GRAPHICS(2,1);              /* CLEAR SCREEN */
  100.  
  101.   PEN = 1;
  102.   FOR (S=10;S<=80;S+=10) █    /* BOXES IN BOXES */
  103.     X=80-(S/2);
  104.     Y=100-(S/2);
  105.     LINE(X,Y,X+S,Y,PEN);
  106.     LINE(X+S,Y,X+S,Y+S,PEN);
  107.     LINE(X+S,Y+S,X,Y+S,PEN);
  108.     LINE(X,Y+S,X,Y,PEN);
  109.     IF (++PEN == 4) PEN=1;
  110.   ▌
  111.   CIRCLE(80,100,70,1);  
  112.   DELAY();
  113.  
  114. DELAY()
  115.   FOR (;GETCHAR() != '\N';);
  116.  
  117. /* ─RAW TEXT ROTATED ABOUT AN X,Y COORDINATE */
  118. SPINTEXT(X,Y,S)
  119. UNSIGNED X,Y; CHAR *S;
  120.   FLOAT ANGLE;
  121.  
  122.   FOR (ANGLE=0.0;ANGLE < 360.0; ANGLE += 45.0)
  123.     DRAWTEXT(X,Y,S,ANGLE,1); 
  124.