' *************************************************
' *              Farb-Animations-Demo             *
' *                                               *
' * Autor der MAXOM PASCAL-Routine: Christen Fihl *
' *    GFA-BASIC-Konvertierung: Thomas Werner     *
' *         (c) 1992 MAXON Computer GmbH          *
' *************************************************
'
animate
'
PROCEDURE animate
  LOCAL n,key,snow!,col_1,col_2
  farb_init
  snow!=TRUE
  CLS
  GRAPHMODE 0
  COLOR 2
  BOX 220,10,250,40
  COLOR 8
  BOX 220+50,10,250+50,40
  HIDEM
  setpalette(p1%())
  col_1=2
  col_2=8
  REPEAT
    GRAPHMODE 0
    COLOR col_1
    BOX 0,0,160,160
    FOR n=1 TO 30 STEP 2
      COLOR col_2
      BOX n,n,n+160,n+160
      PAUSE 1
      IF snow!=FALSE
        setpalette(p3%())
      ENDIF
      setpalette(p2%())
      COLOR 0
      GRAPHMODE 0
      BOX n-1,n-1,n+159,n+159
      COLOR col_1
      BOX n+1,n+1,n+161,n+161
      PAUSE 1
      IF snow!=FALSE
        setpalette(p3%())
      ENDIF
      setpalette(p1%())
      COLOR 0
      GRAPHMODE 0
      BOX n,n,n+160,n+160
    NEXT n
    BOX 30,30,190,190
    KEYTEST key
  UNTIL key<>0
  SHOWM
RETURN
'
PROCEDURE farb_init
  DIM p1%(16),p2%(16),p3%(16)
  '
  ARRAYFILL p1%(),0
  ARRAYFILL p2%(),0
  ARRAYFILL p3%(),0
  '
  p1%(1)=1792
  p1%(2)=112
  p1%(3)=7
  p1%(5)=1792
  p1%(6)=112
  p1%(7)=7
  p1%(9)=1792
  p1%(10)=112
  p1%(11)=7
  p1%(13)=1792
  p1%(14)=112
  p1%(15)=7
  '
  p2%(4)=1792
  p2%(5)=1792
  p2%(6)=1792
  p2%(7)=1792
  p2%(8)=112
  p2%(9)=112
  p2%(10)=112
  p2%(11)=112
  p2%(12)=7
  p2%(13)=7
  p2%(14)=7
  p2%(15)=7
  '
  p3%(1)=1792
  p3%(2)=112
  p3%(3)=7
  p3%(4)=112
  p3%(5)=1792
  p3%(6)=112
  p3%(7)=7
  p3%(8)=112
  p3%(9)=1792
  p3%(10)=112
  p3%(11)=7
  p3%(13)=1792
  p3%(14)=112
  p3%(15)=7
RETURN
'
PROCEDURE setpalette(VAR p%())
  LOCAL n%
  FOR n%=0 TO 15
    VSETCOLOR n%,p%(n%)
  NEXT n%
RETURN
