Metropoli BBS
VIEWER: 17-01.for MODE: TEXT (ASCII)
$INCLUDE: 'C:\FG\INTRFACE.FOR'

      PROGRAM MAIN

      INTEGER*4 ORIGINAL, MEM0, MEM1, MEM2
      INTEGER*2 MODE, OLD_MODE
      INTEGER*2 STATUS
      INTEGER*4 FG_MEMAVAIL
      INTEGER*2 FG_ALLOCATE, FG_FREEPAGE
      INTEGER*2 FG_GETMODE, FG_TESTMODE

      WRITE(6,*) 'Which video mode?'
      READ(5,*) MODE

      IF (FG_TESTMODE(MODE,0) .EQ. 0) THEN
         STOP 'Your system does not support that video mode.'
      ELSE IF (FG_TESTMODE(MODE,3) .EQ. 0) THEN
         STOP 'Your system does not have enough memory.'
      END IF

      ORIGINAL = FG_MEMAVAIL()
      OLD_MODE = FG_GETMODE()
      CALL FG_SETMODE(MODE)
      MEM0 = FG_MEMAVAIL()
      STATUS = FG_ALLOCATE(1)
      MEM1 = FG_MEMAVAIL()
      STATUS = FG_ALLOCATE(2)
      MEM2 = FG_MEMAVAIL()

      STATUS = FG_FREEPAGE(1)
      STATUS = FG_FREEPAGE(2)
      CALL FG_SETMODE(OLD_MODE)
      CALL FG_RESET

      WRITE(6,*) 'origanally     =', ORIGINAL
      WRITE(6,*) 'after setmode  =', MEM0
      WRITE(6,*) 'after 1st page =', MEM1
      WRITE(6,*) 'after 2nd page =', MEM2
      WRITE(6,*) 'at end         =', FG_MEMAVAIL()

      STOP ' '
      END

[ RETURN TO DIRECTORY ]