home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 10 / 10.iso / l / l291 / 6.ddi / MODES.FO$ / MODES.bin
Encoding:
Text File  |  1990-09-28  |  3.4 KB  |  89 lines

  1. CC  MODES.FOR - Illustrates configuration and text window
  2. CC              functions including:
  3. CC              getvideoconfig     outtext         settextwindow
  4. CC              setvideomoderows   setvideomode 
  5.  
  6.       INCLUDE  'FGRAPH.FI'
  7.       INCLUDE  'FGRAPH.FD'
  8.  
  9.       PARAMETER            ( NUM_ROWS =  5 )
  10.       PARAMETER            ( NUM_MODE = 17 )
  11.  
  12.       INTEGER*2              status, irow, x, y
  13.       INTEGER*2              modes(NUM_MODE), rows(NUM_ROWS)
  14.       CHARACTER*12           names(NUM_MODE), str
  15.       RECORD / videoconfig / vc
  16.  
  17.       DATA modes / $TEXTBW40     ,  $TEXTC40     ,  $TEXTBW80    ,
  18.      +             $TEXTC80      ,  $MRES4COLOR  ,  $MRESNOCOLOR ,
  19.      +             $HRESBW       ,  $TEXTMONO    ,  $HERCMONO    ,
  20.      +             $MRES16COLOR  ,  $HRES16COLOR ,  $ERESNOCOLOR ,
  21.      +             $ERESCOLOR    ,  $VRES2COLOR  ,  $VRES16COLOR ,
  22.      +             $MRES256COLOR ,  $ORESCOLOR   /
  23.  
  24.       DATA names / '    $TEXTBW40', '    $TEXTC40', '   $TEXTBW80',
  25.      +             '     $TEXTC80', ' $MRES4COLOR', '$MRESNOCOLOR',
  26.      +             '      $HRESBW', '   $TEXTMONO', '   $HERCMONO',
  27.      +             '$MRES16COLOR', '$HRES16COLOR', '$ERESNOCOLOR',
  28.      +             '   $ERESCOLOR', ' $VRES2COLOR', '$VRES16COLOR',
  29.      +             '$MRES256COLOR', '  $ORESCOLOR' /
  30.  
  31.       DATA rows  / 60, 50, 43, 30, 25 /
  32.  
  33.       status = displaycursor( $GCURSOROFF )
  34. C
  35. C     Try each mode.
  36. C
  37.       DO i = 1, NUM_MODE
  38.          DO j = 1, NUM_ROWS
  39. C
  40. C           Try each possible number of rows.
  41. C
  42.             irow = setvideomoderows( modes(i), rows(j) )
  43.             IF( ( irow .EQ. 0 )  .OR.  (rows(j) .NE. irow) ) THEN
  44.                GOTO 100
  45.             ELSE
  46.                CALL getvideoconfig( vc )
  47.                y = (vc.numtextrows - 12) / 2
  48.                x = (vc.numtextcols - 25) / 2
  49.             END IF
  50. C
  51. C           Use text window to place output in middle of screen.
  52. C
  53.             CALL settextwindow( y, x, vc.numtextrows - y,
  54.      +                          vc.numtextcols - x - 2 )
  55. C
  56. C           Display all information on the screen.
  57. C
  58.             CALL outtext( 'Video mode:  ' // names(i) )
  59.             WRITE (str, '(I12)') vc.numxpixels
  60.             CALL outtext( 'X pixels:    ' // str )
  61.             WRITE (str, '(I12)') vc.numypixels
  62.             CALL outtext( 'Y pixels:    ' // str )
  63.             WRITE (str, '(I12)') vc.numtextcols
  64.             CALL outtext( 'Text columns:' // str )
  65.             WRITE (str, '(I12)') vc.numtextrows
  66.             CALL outtext( 'Text rows:   ' // str )
  67.             WRITE (str, '(I12)') vc.numcolors
  68.             CALL outtext( 'Colors:      ' // str )
  69.             WRITE (str, '(I12)') vc.bitsperpixel
  70.             CALL outtext( 'Bits/pixel:  ' // str )
  71.             WRITE (str, '(I12)') vc.numvideopages
  72.             CALL outtext( 'Video pages: ' // str )
  73.             WRITE (str, '(I12)') vc.mode
  74.             CALL outtext( 'Mode:        ' // str )
  75.             WRITE (str, '(I12)') vc.adapter
  76.             CALL outtext( 'Adapter:     ' // str )
  77.             WRITE (str, '(I12)') vc.monitor
  78.             CALL outtext( 'Monitor:     ' // str )
  79.             WRITE (str, '(I12)') vc.memory
  80.             CALL outtext( 'Memory:      ' // str )
  81.  
  82.             READ (*,*)  ! Wait for ENTER to be pressed
  83.   100    END DO
  84.       END DO
  85.  
  86.       status = displaycursor( $GCURSORON )
  87.       status = setvideomode( $DEFAULTMODE )
  88.       END
  89.