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

      PROGRAM MAIN

      INTEGER*1 PIXEL_RUNS(20000)
      INTEGER*2 FILE_SIZE, RUN_COUNT
      INTEGER*2 OLD_MODE, NEW_MODE
      INTEGER*2 FILELENGTH
      INTEGER*2 FG_BESTMODE, FG_GETMODE

      NEW_MODE = FG_BESTMODE(320,200,1)
      IF (NEW_MODE .LT. 0 .OR. NEW_MODE .EQ. 12) THEN
         STOP 'This program requires a 320 x 200 color graphics mode.'
      END IF

      OLD_MODE = FG_GETMODE()
      CALL FG_SETMODE(NEW_MODE)

      OPEN(UNIT=1,STATUS='OLD',FILE='CORAL.SPR',FORM='BINARY',RECL=1)
      FILE_SIZE = FILELENGTH(1)
      READ(1) (PIXEL_RUNS(I),I=1,FILE_SIZE)
      CLOSE(UNIT=1)
      RUN_COUNT = FILE_SIZE / 2
      CALL FG_MOVE(0,199)
      CALL FG_DISPLAY(PIXEL_RUNS,RUN_COUNT,320)
      CALL FG_WAITKEY

      OPEN(UNIT=1,STATUS='OLD',FILE='CORAL.PPR',FORM='BINARY',RECL=1)
      FILE_SIZE = FILELENGTH(1)
      READ(1) (PIXEL_RUNS(I),I=1,FILE_SIZE)
      CLOSE(UNIT=1)
      RUN_COUNT = FILE_SIZE / 3 * 2
      CALL FG_ERASE
      CALL FG_DISPLAYP(PIXEL_RUNS,RUN_COUNT,320)
      CALL FG_WAITKEY

      CALL FG_SETMODE(OLD_MODE)
      CALL FG_RESET

      STOP ' '
      END

      INTEGER*2 FUNCTION FILELENGTH(UNIT)
      INTEGER*2 UNIT

      INTEGER*1 CH

      FILELENGTH = 0
10    READ(UNIT,END=99) CH
      FILELENGTH = FILELENGTH + 1
      GO TO 10

99    REWIND UNIT
      RETURN
      END

[ RETURN TO DIRECTORY ]