home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <stdlib.h>
- #include <conio.h>
- #include "video.h"
- /************************************************************************
- test.c - Example of using scrn_page and scrn_cls with other scrn_xxx
- functions to write to video memory pages in the background,
- then switch to them with vid_page. Not for use with monochrome.
- *************************************************************************/
-
- void main()
- {
- SCRN sc; /* define screen data structure */
- register i,j; /* for loops */
- char buff[2]; /* for itoa */
- int adapter; /* to hold adapter type */
- int max_page; /* to hold max page for video adapter */
- int c; /* for getch */
- int backgr; /* to hold current background color */
-
-
- scrn_init(&sc); /* initialize structure */
-
- vid_up(0,0,79,0,24,NORMAL_DISPLAY); /* blank current display page */
-
- if ( (adapter = vcard_type()) == MONO_ADAPTER) {
- scrn_puts("CGA or EGA required.", &sc);
- return;
- }
- else if (adapter == EGA_ADAPTER)
- max_page = 7;
- else
- max_page = 3;
-
- for (j = 0; j <= max_page; j++) { /* loop through pages */
- scrn_page(j, &sc); /* select the page */
- backgr = j; /* pick a background color */
- scrn_color(backgr, backgr, &sc); /* and set to clear the page with it */
- scrn_cls(&sc); /* clear the selected page */
-
- for(i = 0; i < 17; i++) { /* write some stuff on the page */
- scrn_color( (i & 0xf), backgr, &sc);
- scrn_pos( (i+j), (j * 2), &sc);
- scrn_puts("This is page ", &sc);
- scrn_puts( (char *)itoa(j, buff, 10), &sc);
- scrn_puts(" - Press a key or Q to quit", &sc);
- }
- }
-
- for (j = 0; j <= max_page; j++) { /* switch video between actual pages */
- vid_page(j);
- if (j == max_page)
- j = -1;
- if ( (c = getch()) == 'Q' || c == 'q') {
- vid_page(0); /* restore page zero before leaving */
- return;
- }
- }
-
-
- }