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 / SCROLL.C < prev    next >
C/C++ Source or Header  |  1993-07-25  |  2KB  |  75 lines

  1. /*
  2. SG C Tools 1.1
  3.  
  4. (C) 1993 Steve Goldsmith
  5. All Rights Reserved
  6.  
  7. Example scrolling regions of the screen.
  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 SCROLL.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 scrolltext(void);
  23.  
  24. extern uchar  vdcScrHorz;
  25. extern uchar  vdcScrVert;
  26.  
  27. char appScrlStr1[] = {
  28. "This is a string used to test scrolling VDC display memory."
  29. };
  30. char appScrlStr2[] = {
  31. "You can scroll any region of the screen too!"
  32. };
  33.  
  34. main()
  35. {
  36.   srand(99);
  37.   savevdc();                         /* save vdc regs and set global vars */
  38.   clrscrvdc(137);                    /* clear screen */
  39.   clrattrvdc(vdcAltChrSet);          /* clear attributes */
  40.   setcursorvdc(0,0,vdcCurNone);      /* turn cursor off */
  41.   outvdc(vdcFgBgColor,vdcDarkGreen); /* set new screen color */
  42.   printstrvdc(0,0,vdcAltChrSet,
  43.   "VDC scrolling example.  Press [RETURN] to start.");
  44.   while (getch() != 0x0D);          /* wait for return press */
  45.   scrolltext();                     /* scrolling demo */
  46.   restorevdc();                     /* restore registers saved by savevdc() */
  47.   clrscrvdc(appClrScrCh);
  48.   clrattrvdc(vdcAltChrSet+vdcWhite);
  49. }
  50.  
  51. /* scroll whole screen up and down then just a window region */
  52.  
  53. void scrolltext(void)
  54. {
  55.   uchar I;
  56.  
  57.   printstrvdc(0,vdcScrVert-1,vdcAltChrSet,appScrlStr1);
  58.   for (I = 1; I <= 23; I++)
  59.     scrollupvdc(0,1,vdcScrHorz-1,vdcScrVert-1);
  60.   for (I = 1; I <= 24; I++)
  61.     scrolldownvdc(0,0,vdcScrHorz-1,vdcScrVert-2);
  62.   printstrvdc(0,vdcScrVert-1,vdcAltChrSet,appScrlStr1);
  63.   for (I = 1; I <= 24; I++)
  64.     scrollupvdc(0,1,vdcScrHorz-1,vdcScrVert-1);
  65.   clrscrvdc(137);
  66.   clrwinvdc(17,7,60,18,appClrScrCh);
  67.   for (I = 1; I <= 100; I++)
  68.   {
  69.     scrollupvdc(17,8,60,18);
  70.     if (rand() > 16384)
  71.       printstrvdc(17,17,vdcAltChrSet+(uchar) (rand() >> 11),appScrlStr2);
  72.   }
  73.   while (getch() != 0x0D);          /* wait for return press */
  74. }
  75.