home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / dos / grafik / tc_3d / tc-01.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-02-13  |  2.4 KB  |  99 lines

  1. /*
  2. tc-01.c AUTOMATIC MONITOR CONFIGURATION PROGRAM
  3.  
  4. This program invokes the highest resolution graphics mode
  5. which is permitted on your hardware.  Supports MCGA, CGA,
  6. EGA, and VGA.
  7. */
  8.  
  9. /* INCLUDE FILES */
  10. #include <bios.h>
  11. #include <stdio.h>
  12. #include <graphics.h>
  13. #include <process.h>
  14.  
  15. /* DECLARATIONS */
  16.  
  17. /* declare global variables */
  18. int    C0=0,C1=1,C2=2,C3=3,C4=4,C5=5,
  19.         C6=6,C7=7,C8=8,C9=9,C10=10,C11=11,
  20.         C12=12,C13=13,C14=14,C15=15,mode_flag=0;
  21. float    x_res,y_res;
  22. float    sx,sy;
  23. int    t1=1;
  24.  
  25. /* declare global subroutines */
  26. void keyboard(void); void quit_pgm(void); void graphics_setup(void);
  27.  
  28. /* MAIN ROUTINE */
  29. main ()
  30. {
  31. graphics_setup();
  32. for (t1=1;t1!=2; ) keyboard ();
  33. quit_pgm();
  34. }
  35.  
  36. /* SUBROUTINE: CHECK THE KEYBOARD BUFFER */
  37. void keyboard(void)
  38. {
  39. if (bioskey(1)==0) return; else quit_pgm();
  40. }
  41.  
  42. /* SUBROUTINE: GRACEFUL EXIT FROM PROGRAM */
  43. void quit_pgm(void)
  44. {
  45. cleardevice();restorecrtmode();exit(0);
  46. }
  47.  
  48. /* SUBROUTINE: COMPATIBILITY MODULE */
  49. void graphics_setup(void)
  50. {
  51. int graphics_adapter,graphics_mode;
  52. detectgraph(&graphics_adapter,&graphics_mode);
  53. if (graphics_adapter==VGA) goto VGA_mode;
  54. if (graphics_mode=EGAHI) goto EGA_ECD_mode;
  55. if (graphics_mode=EGALO) goto EGA_SCD_mode;
  56. if (graphics_adapter=CGA) goto CGA_mode;
  57. if (graphics_adapter=MCGA) goto CGA_mode;
  58. goto abort_message;
  59.  
  60. VGA_mode:
  61. graphics_adapter=VGA;graphics_mode=VGAHI;
  62. initgraph(&graphics_adapter,&graphics_mode,"");
  63. x_res=640;y_res=480;mode_flag=1;
  64. setcolor(C7);outtextxy(240,472,"640*480 16-color VGA mode");
  65. return;
  66.  
  67. EGA_ECD_mode:
  68. graphics_adapter=EGA;graphics_mode=EGAHI;
  69. initgraph(&graphics_adapter,&graphics_mode,"");
  70. x_res=640;y_res=350;mode_flag=2;
  71. setcolor(C7);outtextxy(240,342,"640*350 16-color EGA mode");
  72. return;
  73.  
  74.  
  75. EGA_SCD_mode:
  76. graphics_adapter=EGA;graphics_mode=EGALO;
  77. initgraph(&graphics_adapter,&graphics_mode,"");
  78. x_res=640;y_res=200;mode_flag=3;
  79. setcolor(C7);outtextxy(240,192,"640*200 16-color EGA mode");
  80. return;
  81.  
  82.  
  83.  
  84. CGA_mode:
  85. graphics_adapter=CGA;graphics_mode=CGAC3;
  86. initgraph(&graphics_adapter,&graphics_mode,"");
  87. x_res=320;y_res=200;C0=0,C1=3,C2=3,C3=3,C4=3,C5=3,C6=3,C7=3;
  88. C8=2,C9=1,C10=3,C11=1,C12=3,C13=1,C14=3,C15=3,mode_flag=4;
  89. setcolor(C7);outtextxy(64,192,"320*200 4-color CGA mode");
  90. return;
  91.  
  92. abort_message:
  93. printf("\n\nUnable to proceed.\n");
  94. printf("Requires MCGA,CGA,EGA, or VGA adapter\n");
  95. printf("  with appropriate monitor.\n");
  96. printf("Please refer to the book.\n\n");
  97. exit(0);
  98. }
  99.