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 / ENTERPRS / CPM / UTILS / S / SGTOOL11.ARC / WINDOWS.C < prev   
C/C++ Source or Header  |  1993-07-25  |  2KB  |  76 lines

  1. /*
  2. SG C Tools 1.1
  3.  
  4. (C) 1993 Steve Goldsmith
  5. All Rights Reserved
  6.  
  7. Example of using high speed scrolling pop-up windows.
  8.  
  9. Compiled with HI-TECH C 3.09 (CP/M-80).
  10.  
  11. To compile with HI-TECH C and SG C Tools source on same disk use:
  12. C WINDOWS.C -LC128
  13. */
  14.  
  15. #include <stdlib.h>
  16. #include <hitech.h>
  17. #include <conio.h>
  18. #include <vdc.h>
  19.  
  20. #define appClrScrCh 32
  21.  
  22. void drawwindows(void);
  23. void scrollwindow(uchar X1, uchar Y1, uchar X2, uchar Y2);
  24.  
  25. char appScrlStr1[] = {
  26. "Use scrollupvdc() to scroll windows!"
  27. };
  28.  
  29. main()
  30. {
  31.   srand(9);
  32.   savevdc();                             /* save vdc regs and set global vars */
  33.   clrscrvdc(appClrScrCh);                /* clear screen */
  34.   clrattrvdc(vdcAltChrSet+vdcLightBlue); /* clear attributes */
  35.   setcursorvdc(0,0,vdcCurNone);          /* turn cursor off */
  36.   outvdc(vdcFgBgColor,vdcBlack);         /* set new screen color */
  37.   printstrvdc(0,5,vdcAltChrSet+vdcLightCyan,
  38.   "VDC window example.  Press [RETURN] to start.");
  39.   while (getch() != 0x0D);               /* wait for return press */
  40.   clrattrvdc(vdcAltChrSet+vdcLightBlue);
  41.   clrscrvdc(137);
  42.   drawwindows();                    /* draw random windows */
  43.   scrollwindow(20,6,59,16);         /* scroll 3 different size windows */
  44.   scrollwindow(10,4,69,18);
  45.   scrollwindow(1,1,77,22);
  46.   while (getch() != 0x0D);          /* wait for return press */
  47.   restorevdc();                     /* restore registers saved by savevdc() */
  48.   putchar(0x1A);                    /* adm-3a clear-home cursor */
  49. }
  50.  
  51. void drawwindows(void)
  52. {
  53.   uchar X1, Y1, X2, Y2, I;
  54.  
  55.   for (I = 1; I <= 50; I++)      /* draw 50 random windows */
  56.   {
  57.     X1 = (uchar) (rand() >> 10);
  58.     Y1 = (uchar) (rand() >> 12);
  59.     X2 = X1+(uchar) (rand() >> 10)+3;
  60.     Y2 = Y1+(uchar) (rand() >> 12)+3;
  61.     winvdc(X1,Y1,X2,Y2,vdcAltChrSet+(uchar) (rand() >> 11),"C Windows!");
  62.   }
  63. }
  64.  
  65. void scrollwindow(uchar X1, uchar Y1, uchar X2, uchar Y2)
  66. {
  67.   uchar I;
  68.  
  69.   winvdc(X1,Y1,X2,Y2,vdcAltChrSet+vdcDarkGreen,"Scroller");
  70.   for (I = 1; I <= 100; I++) /* scroll window with random color string */
  71.   {
  72.     scrollupvdc(X1+1,Y1+2,X2-1,Y2-1);
  73.     printstrvdc(X1+1,Y2-2,vdcAltChrSet+(uchar) (rand() >> 11),appScrlStr1);
  74.   }
  75. }
  76.