home *** CD-ROM | disk | FTP | other *** search
/ C++ Games Programming / CPPGAMES.ISO / fgl / fglight / exfor.arj / TEMP / 05-16.FOR < prev    next >
Text File  |  1995-01-20  |  2KB  |  93 lines

  1. $INCLUDE: 'C:\FG\FASTGRAF.FI'
  2.  
  3.       PROGRAM MAIN
  4.  
  5.       INTEGER MODE, OLD_MODE, STATUS
  6.       CHARACTER*5 STRING
  7.       INTEGER FG_GETMODE, FG_SVGAINIT, FG_TESTMODE
  8.  
  9. C  Ask for the video mode number
  10.  
  11.       WRITE(6,*) 'Which video mode?'
  12.       READ(5,*) MODE
  13.  
  14. C  Make sure the entered value is valid
  15.  
  16.       CALL FG_INITPM
  17.       IF (MODE .GT. 23) STATUS = FG_SVGAINIT(0)
  18.       IF (MODE .LT. 0 .OR. MODE .GT. 29) THEN
  19.          WRITE(6,1000) MODE
  20.          STOP ' '
  21.       END IF
  22.  
  23. C  Make sure the requested video mode is available
  24.  
  25.       IF (FG_TESTMODE(MODE,1) .EQ. 0) THEN
  26.          WRITE(6,1010) MODE
  27.          STOP ' '
  28.       END IF
  29.  
  30. C  Establish the video mode
  31.  
  32.       OLD_MODE = FG_GETMODE()
  33.       CALL FG_SETMODE(MODE)
  34.  
  35. C  Perform mode-specific initializations
  36.  
  37. C  text modes
  38.  
  39.       IF (MODE .LE. 3 .OR. MODE .EQ. 7) THEN
  40.          CALL FG_CURSOR(0)
  41.  
  42. C  CGA color modes
  43.  
  44.       ELSE IF (MODE .EQ. 4 .OR. MODE .EQ. 5) THEN
  45.          CALL FG_PALETTE(0,0)
  46.          CALL FG_DEFCOLOR(14,3)
  47.  
  48. C  CGA two-color mode
  49.  
  50.       ELSE IF (MODE .EQ. 6) THEN
  51.          CALL FG_PALETTE(0,14)
  52.          CALL FG_DEFCOLOR(14,1)
  53.  
  54. C  Hercules mode
  55.  
  56.       ELSE IF (MODE .EQ. 11) THEN
  57.          CALL FG_DEFCOLOR(14,1)
  58.  
  59. C  Hercules low-res mode
  60.  
  61.       ELSE IF (MODE .EQ. 12) THEN
  62.          CALL FG_DEFCOLOR(14,3)
  63.  
  64. C  VGA two-color mode
  65.  
  66.       ELSE IF (MODE .EQ. 17) THEN
  67.          CALL FG_PALETTE(1,14)
  68.          CALL FG_SETRGB(14,63,63,21)
  69.          CALL FG_DEFCOLOR(14,1)
  70.       END IF
  71.  
  72. C  Display a message that includes the video mode number
  73.  
  74.       CALL FG_SETCOLOR(14)
  75.       CALL FG_TEXT('I''m running in mode ',20)
  76.       WRITE(STRING,1020) MODE
  77.       CALL FG_TEXT(STRING,3)
  78.  
  79. C  Wait for a keystroke
  80.  
  81.       CALL FG_WAITKEY
  82.  
  83. C  Restore the original video mode and screen attributes
  84.  
  85.       CALL FG_SETMODE(OLD_MODE)
  86.       CALL FG_RESET
  87.  
  88.       STOP ' '
  89. 1000  FORMAT(I6,' is not a valid video mode number.')
  90. 1010  FORMAT(' Mode ',I2,' is not available on this system.')
  91. 1020  FORMAT(I2,'.')
  92.       END
  93.