home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / dos / screen / scrn02 / test.c < prev    next >
Encoding:
C/C++ Source or Header  |  1987-03-29  |  2.0 KB  |  62 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include "video.h"
  5. /************************************************************************
  6.  test.c - Example of using scrn_page and scrn_cls with other scrn_xxx
  7.       functions to write to video memory pages in the background,
  8.       then switch to them with vid_page. Not for use with monochrome.
  9. *************************************************************************/
  10.  
  11. void main()
  12. {
  13.     SCRN sc;            /* define screen data structure */
  14.     register i,j;        /* for loops */
  15.     char buff[2];        /* for itoa */
  16.     int adapter;        /* to hold adapter type */
  17.     int max_page;        /* to hold max page for video adapter */
  18.     int c;            /* for getch */
  19.     int backgr;            /* to hold current background color */
  20.         
  21.  
  22.     scrn_init(&sc);        /* initialize structure */
  23.  
  24.     vid_up(0,0,79,0,24,NORMAL_DISPLAY);  /* blank current display page */
  25.  
  26.     if ( (adapter = vcard_type()) == MONO_ADAPTER) {
  27.     scrn_puts("CGA or EGA required.", &sc);
  28.     return;
  29.     }
  30.     else if (adapter == EGA_ADAPTER)
  31.     max_page = 7;
  32.     else
  33.     max_page = 3;    
  34.     
  35.     for (j = 0; j <= max_page; j++) {  /* loop through pages */
  36.       scrn_page(j, &sc);    /* select the page */
  37.       backgr = j;        /* pick a background color */
  38.       scrn_color(backgr, backgr, &sc);    /* and set to clear the page with it */
  39.       scrn_cls(&sc);        /* clear the selected page */    
  40.  
  41.         for(i = 0; i < 17; i++) {    /* write some stuff on the page */
  42.       scrn_color( (i & 0xf), backgr, &sc); 
  43.       scrn_pos( (i+j), (j * 2), &sc);
  44.       scrn_puts("This is page ", &sc);
  45.       scrn_puts( (char *)itoa(j, buff, 10), &sc);
  46.       scrn_puts(" - Press a key or Q to quit", &sc);
  47.       }
  48.       }
  49.  
  50.     for (j = 0; j <= max_page; j++) {    /* switch video between actual pages */
  51.       vid_page(j);
  52.       if (j == max_page)
  53.     j = -1;
  54.       if ( (c = getch()) == 'Q' || c == 'q') {
  55.     vid_page(0);    /* restore page zero before leaving */
  56.     return;
  57.     }        
  58.     }
  59.  
  60.  
  61. }
  62.