home *** CD-ROM | disk | FTP | other *** search
/ C++ Games Programming / CPPGAMES.ISO / fgl / fglight / expas.arj / TEMP / 05-16.PAS < prev    next >
Pascal/Delphi Source File  |  1995-01-20  |  2KB  |  86 lines

  1. program main;
  2. uses fgmain, fgbitmap, fgmisc, fgsvga;
  3.  
  4. var
  5.   mode, old_mode : integer;
  6.   status         : integer;
  7.   message        : string[5];
  8.  
  9. begin
  10.  
  11. { Ask for the video mode number }
  12.  
  13.   write('Which video mode? ');
  14.   read(mode);
  15.  
  16. { Make sure the entered value is valid }
  17.  
  18.   if (mode < 0) or (mode > 29) then
  19.   begin
  20.     writeln(mode,' is not a valid video mode number.');
  21.     exit;
  22.   end;
  23.  
  24. { Make sure the requested video mode is available }
  25.  
  26.   fg_initpm;
  27.   if (mode > 23) then status := fg_svgainit(0);
  28.   if (fg_testmode(mode,1) = 0) then
  29.   begin
  30.     writeln('Mode ',mode,' is not available on this system.');
  31.     exit;
  32.   end;
  33.  
  34. { Establish the video mode }
  35.  
  36.   old_mode := fg_getmode;
  37.   fg_setmode(mode);
  38.  
  39. { Perform mode-specific initializations }
  40.  
  41.   if (mode <= 3) or (mode = 7) then     { text modes }
  42.     fg_cursor(0)
  43.  
  44.   else if (mode = 4) or (mode = 5) then { CGA color modes }
  45.   begin
  46.     fg_palette(0,0);
  47.     fg_defcolor(14,3);
  48.   end
  49.  
  50.   else if (mode = 6) then      { CGA two-color mode }
  51.   begin
  52.     fg_palette(0,14);
  53.     fg_defcolor(14,1);
  54.   end
  55.  
  56.   else if (mode = 11) then     { Hercules mode }
  57.     fg_defcolor(14,1)
  58.  
  59.   else if (mode = 12) then     { Hercules low-res mode }
  60.     fg_defcolor(14,3)
  61.  
  62.   else if (mode = 17) then     { VGA two-color mode }
  63.   begin
  64.     fg_palette(1,14);
  65.     fg_setrgb(14,63,63,21);
  66.     fg_defcolor(14,1);
  67.   end;
  68.  
  69. { Display a message that includes the video mode number }
  70.  
  71.   fg_setcolor(14);
  72.   fg_text('I''m running in mode ',20);
  73.   str(mode,message);
  74.   message := message + '. ';
  75.   fg_text(message,3);
  76.  
  77. { Wait for a keystroke }
  78.  
  79.   fg_waitkey;
  80.  
  81. { Restore the original video mode and screen attributes }
  82.  
  83.   fg_setmode(old_mode);
  84.   fg_reset;
  85. end.
  86.