home *** CD-ROM | disk | FTP | other *** search
/ Bila Vrana / BILA_VRANA.iso / 007A / SVGACC24.ZIP / SVGADEMO.C < prev    next >
C/C++ Source or Header  |  1996-01-30  |  18KB  |  614 lines

  1. /****************************************************************************
  2.      
  3.       'SVGACC' A Super Vga Graphics Library for use with Microsoft compatible
  4.       C/C++ compilers
  5.       Copyright 1993-1996 by Stephen L. Balkum and Daniel A. Sill
  6.  
  7.     **************** UNREGISTERD SHAREWARE VERSION ***********************
  8.     * FOR EVUALATION ONLY. NOT FOR RESALE IN ANY FORM. SOFTWARE WRITTEN  *
  9.     * USING THIS UNREGISTERED SHAREWARE GRAPHICS LIBRARY MAY NOT BY SOLD *
  10.     * OR USED FOR ANY PURPOSE OTHER THAN THE EVUALTION OF THIS LIBRARY.  *
  11.     **********************************************************************
  12.  
  13.     **************** NO WARRANTIES AND NO LIABILITY **********************
  14.     * Stephen L. Balkum and Daniel A. Sill provide no warranties, either *
  15.     * expressed or implied, of merchantability, or fitness, for a        *
  16.     * particular use or purpose of this SOFTWARE and documentation.      *
  17.     * In no event shall Stephen L. Balkum or Daniel A. Sill be held      *
  18.     * liable for any damages resulting from the use or misuse of the     * 
  19.     * SOFTWARE and documentation.                                        *
  20.     **********************************************************************
  21.  
  22.     ************** U.S. GOVERNMENT RESTRICTED RIGHTS *********************
  23.     * Use, duplication, or disclosure of the SOFTWARE and documentation  *
  24.     * by the U.S. Government is subject to the restictions as set forth  *
  25.     * in subparagraph (c)(1)(ii) of the Rights in Technical Data and     *
  26.     * Computer Software cluse at DFARS 252.227-7013.                     *
  27.     * Contractor/manufacturer is Stephen L. Balkum and Daniel A. Sill,   *
  28.     * P.O. Box 7704, Austin, Texas 78713-7704                            *
  29.     **********************************************************************
  30.  
  31.     **********************************************************************
  32.     * By using this SOFTWARE or documentation, you agree to the above    *
  33.     * terms and conditions.                                              *
  34.     **********************************************************************
  35.  
  36.  ***************************************************************************/
  37.     
  38.  
  39. #include <stdio.h>
  40. #include <conio.h>
  41. #include <stdlib.h>
  42. #include <string.h>
  43. #include <math.h>
  44. #include <dos.h>
  45.  
  46. #include "svgacc.h"
  47.  
  48. #include "svgademo.h"
  49.  
  50.  
  51. void main(void) {
  52.  
  53.     int startvideomode;
  54.     int i, max, ky;
  55.     int mjv, mnv, tp;
  56.     int cpu, videomemory;
  57.     int mouse, joystick;
  58.     int res;
  59.     int offset, colr;
  60.     float mypi;
  61.     char dummy;
  62.     char buf[TITLEN];
  63.     char *dumptr;
  64.     
  65.     
  66.     /*
  67.      * Save the starting videomode and set it to mode 3.
  68.      */
  69.     startvideomode = videomodeget();
  70.     restext();
  71.     screenclear();
  72.     
  73.     /*
  74.      * Move the DOS cursor to the top left to start the program and say hello
  75.      */
  76.     screengoto(11,0);
  77.     printf("/*SVGACC.LIB/* A SuperVGA Graphics Library for use with\n");
  78.     screengoto(23,1);
  79.     printf("Microsoft compatible C/C++ compilers\n");
  80.     screengoto(9,2);
  81.     printf("Copyright 1993-1995 by Stephen L. Balkum and Daniel A. Sill\n");
  82.     screengoto(23,11);
  83.     printf("Demonstration/Example Program\n");
  84.     screengoto(0,22);
  85.     printf("press a key to begin the demo...\n");
  86.     getkey();
  87.  
  88.     screenclear();
  89.    
  90.     /*
  91.      * Let's id the processor first as the library requires a 386 or better.
  92.      */
  93.     screengoto(0,0);
  94.     cpu = whichcpu();
  95.     if (cpu < 386) {
  96.         printf("Sorry, this library requires an 80386 or better processor.\n");
  97.         printf("Processor is identified as an 80%d.\n", cpu);
  98.         printf("Demo program will be terminated.\n\n");
  99.         printf("press a key...\n");
  100.         getkey();
  101.         videomodeset(startvideomode);
  102.         exit(0);
  103.     }
  104.  
  105.  
  106.     /*
  107.      * Let's id the video card/chip as the library requires a SuperVGA adapter.
  108.      */
  109.     switch(whichvga()) {
  110.         case ACUMOS:
  111.             sprintf(buf,"Acumos AVGA2/3 SuperVGA");
  112.             break;
  113.         case ATI:
  114.             sprintf(buf,"ATI Technologies 18/28/38/68800 SuperVGA");
  115.             break;
  116.         case AHEADA:
  117.             sprintf(buf,"Ahead V5000 Ver A SuperVGA");
  118.             break;
  119.         case AHEADB:
  120.             sprintf(buf,"Ahead V5000 Ver B SuperVGA");
  121.             break;
  122.         case CHIPSTECH:
  123.             sprintf(buf,"Chips and Technologies 82C450/1/2/3/5/6/7 SuperVGA");
  124.             break;
  125.         case CIRRUS:
  126.             sprintf(buf,"Cirrus Logic CL-GD 5xx,6xx,28xx,54xx,62xx SuperVGA");
  127.             break;
  128.         case EVEREX:
  129.             sprintf(buf,"Everex EV236/6xx Micro Enhancer SuperVGA");
  130.             break;
  131.         case GENOA:
  132.             sprintf(buf,"Genoa 61/62/63/64/6600 SuperVGA");
  133.             break;
  134.         case NCR:
  135.             sprintf(buf,"NCR 77C21/22/22E/22E+ SuperVGA");
  136.             break;
  137.         case OAKTECH:
  138.             sprintf(buf,"Oak Technologies OTI-037/67/77/87C SuperVGA");
  139.             break;
  140.         case PARADISE:
  141.             sprintf(buf,"Paradise/Western Digital PVGA1A,WD90C00/1x/2x/3x SuperVGA");
  142.             break;
  143.         case REALTEK:
  144.             sprintf(buf,"Realtek RT3106 SuperVGA");
  145.             break;
  146.         case TRIDENT:
  147.             sprintf(buf,"Trident 8800CS,8900B/C/CL/CX,90x0 SuperVGA");
  148.             break;
  149.         case TSENG3:
  150.             sprintf(buf,"Tseng Labs ET3000-AX/BX/BP SuperVGA");
  151.             break;
  152.         case TSENG4:
  153.             sprintf(buf,"Tseng Labs ET4000/W32/W32I SuperVGA");
  154.             break;
  155.         case VESA:
  156.             sprintf(buf,"VESA compatible SuperVGA");
  157.             break;
  158.         case VIDEO7:
  159.             sprintf(buf,"Video 7 HT-208/16 SuperVGA");
  160.             break;
  161.         case AVANCE:
  162.             sprintf(buf,"Avance Logic AL2101 SuperVGA");
  163.             break;
  164.         case MXIC:
  165.             sprintf(buf,"MXIC MX68000/10 SuperVGA");
  166.             break;
  167.         case PRIMUS:
  168.             sprintf(buf,"Primus P2000 SuperVGA");
  169.             break;
  170.         default:
  171.             printf("Microprocessor is identified as an 80%d.\n", cpu);
  172.             printf("Sorry, unable to identify video card or it is not a SuperVGA video adapter.\n");
  173.             printf("Demo program will be terminated.\n\n");
  174.             printf("press a key...\n");
  175.             getkey();
  176.             videomodeset(startvideomode);
  177.             exit(0);
  178.     }
  179.     printf("Microprocessor is identified as an 80%d.\n", cpu);
  180.     
  181.     fontsystem();
  182.     printf("Video card/chip is identified as %s.\n",&buf);
  183.    
  184.     /*
  185.      * Let's see the how much memory is installed on the super vga adapter.
  186.      */
  187.     videomemory = whichmem();
  188.     if (videomemory < 1) {
  189.         printf("Sorry, unable to identify the amount of installed video memory.\n");
  190.         printf("Demo program will be terminated.\n\n");
  191.         printf("press a key...\n");
  192.         getkey();
  193.         videomodeset(startvideomode);
  194.         exit(0);
  195.     } else
  196.         printf("Installed video memory identified as %dkb.\n", videomemory);
  197.        
  198.     /*
  199.      * Let's tell the user what the highest resolution that the video card
  200.      * and its installed memory card is capable of. The monitor must be able
  201.      * to support those modes too !
  202.      */
  203.     printf("Video card and installed memory is capable of the following resolutions:\n");
  204.     if (videomemory > 2047) {
  205.         printf("    320x200 in 256 colors\n");
  206.         printf("    640x400 in 256 colors\n");
  207.         printf("    640x480 in 256 colors\n");
  208.         printf("    800x600 in 256 colors\n");
  209.         printf("    1024x768 in 256 colors\n");
  210.         printf("    1280x1024 in 256 colors\n");
  211.         max = 5;
  212.     } else if (videomemory > 1023) {
  213.         printf("    320x200 in 256 colors\n");
  214.         printf("    640x400 in 256 colors\n");
  215.         printf("    640x480 in 256 colors\n");
  216.         printf("    800x600 in 256 colors\n");
  217.         printf("    1024x768 in 256 colors\n");
  218.         max = 4;
  219.     } else if (videomemory > 511) {
  220.         printf("    320x200 in 256 color