home *** CD-ROM | disk | FTP | other *** search
- #include <fastgraf.h>
- #include <stdio.h>
- #include <stdlib.h>
-
- void main(void);
-
- void main()
- {
- int mode, old_mode;
- char string[5];
-
- /* Ask for the video mode number */
-
- printf("Which video mode? ");
- scanf("%d",&mode);
-
- /* Make sure the entered value is valid */
-
- if (mode < 0 || mode > 23) {
- printf("%d is not a valid video mode number.\n",mode);
- exit(1);
- }
-
- /* Make sure the requested video mode is available */
-
- if (fg_testmode(mode,1) == 0) {
- printf("Mode %d is not available on this system.\n",mode);
- exit(1);
- }
-
- /* Establish the video mode */
-
- old_mode = fg_getmode();
- fg_setmode(mode);
-
- /* Perform mode-specific initializations */
-
- if (mode <= 3 || mode == 7) /* text modes */
- fg_cursor(0);
-
- else if (mode == 4 || mode == 5) { /* CGA color modes */
- fg_palette(0,0);
- fg_defcolor(14,3);
- }
-
- else if (mode == 6) { /* CGA two-color mode */
- fg_palette(0,14);
- fg_defcolor(14,1);
- }
-
- else if (mode == 11) /* Hercules mode */
- fg_defcolor(14,1);
-
- else if (mode == 12) /* Hercules low-res mode */
- fg_defcolor(14,3);
-
- else if (mode == 17) { /* VGA two-color mode */
- fg_palette(1,14);
- fg_setrgb(14,63,63,21);
- fg_defcolor(14,1);
- }
-
- /* Display a message that includes the video mode number */
-
- fg_setcolor(14);
- fg_text("I'm running in mode ",20);
- sprintf(string,"%d. ",mode);
- fg_text(string,3);
-
- /* Wait for a keystroke */
-
- fg_waitkey();
-
- /* Restore the original video mode and screen attributes */
-
- fg_setmode(old_mode);
- fg_reset();
- }