home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* CGABLEND.PAS *)
- (* Turbo Pascal ab 5.0 *)
- (* (c) 1990 Gerald Arend & TOOLBOX *)
- (* ------------------------------------------------------ *)
- PROGRAM CGABlend;
-
- USES Crt, Graph;
-
- TYPE
- Block = ARRAY[1..8192] OF BYTE; { für 100 Grafikzeilen }
-
- VAR
- Gd, Gm, r : INTEGER;
- ScreenOdd : Block ABSOLUTE $B800:$0000; { gerade Zeilen }
- ScreenEven : Block ABSOLUTE $B800:$2000; { ungerade Zln. }
- PufferEven,
- PufferOdd : Block; { Puffer für Grafik }
-
- CONST
- Zeit = 100; { Verzögerung in Millisekunden }
-
- BEGIN
- Gd := CGA;
- Gm := CGAC0;
- InitGraph(Gd, Gm, '');
- r := 5;
- SetBkColor(LightGray); { Hintergrund hellgrau }
- WHILE r < 100 DO BEGIN { Beispielgrafik }
- SetColor((R DIV 10) MOD 3 + 1); { konzentrische }
- Circle(160, 100, r); { Kreise }
- Inc(r, 5);
- END;
- REPEAT
- Delay(Zeit); { Stufe 1: }
- SetBkColor(DarkGray); { Hintergrund verdunkeln }
- Delay(Zeit); { Stufe 2: }
- Move(ScreenEven, PufferEven, 8000); { gerade Zeilen }
- FillChar(ScreenEven, 8000, 0); { sichern und löschen }
- Delay(Zeit); { Stufe 3: }
- SetBkColor(Black); { Hintergrund schwarz }
- Delay(Zeit); { Stufe 4: }
- Move(ScreenOdd, PufferOdd, 8000); { ungerade Zeilen }
- FillChar(ScreenOdd, 8000, 0); { sichern und löschen }
- Delay(Zeit); { ... und das ganze rückwärts: }
- SetBkColor(DarkGray); { Hintergrund aufhellen }
- Delay(Zeit); { gerade Zeilen }
- Move(PufferEven, ScreenEven, 8000); { restaurieren }
- Delay(Zeit);
- SetBkColor(LightGray); { Hintergrund noch heller }
- Delay(Zeit); { ungerade Zeilen }
- Move(PufferOdd, ScreenOdd, 8000); { restaurieren }
- UNTIL KeyPressed;
- CloseGraph;
- END.
- (* ------------------------------------------------------ *)
- (* Ende von CGAROT.PAS *)