SCREEN 12

FOR I = 0 TO 15
   CIRCLE (15, 15), I, 15
   CIRCLE (15, 14), I, 15
   CIRCLE (45, 15), I, I
   CIRCLE (45, 14), I, I
NEXT

FOR X = 0 TO 29
   FOR Y = 0 TO 29
      IF POINT(X, Y) = 0 THEN PSET (X, Y), 15 ELSE PSET (X, Y), 0
   NEXT
NEXT

DIM A(500) '---> enthält Negativmaske
DIM B(500) '---> enthält Bild
DIM C(500) '---> Zwischenspeicher für Hintergrund

GET (0, 0)-(29, 29), A(0)
GET (30, 0)-(59, 29), B(0)
CLS

FOR X = 0 TO 640 STEP 4
   LINE (X, 0)-(X, 480), 1
NEXT

Begin:
FOR I = 600 TO 0 STEP -1
   GET (I, 320)-(I + 30, 350), C(0)
   PUT (I, 320), A(0), AND
   PUT (I, 320), B(0), XOR
   WAIT &H3DA, 8
   PUT (I, 320), C(0), PSET
   IF INKEY$ <> "" THEN END
NEXT
FOR I = 0 TO 600
   GET (I, 320)-(I + 30, 350), C(0)
   PUT (I, 320), A(0), AND
   PUT (I, 320), B(0), XOR
   WAIT &H3DA, 8
   PUT (I, 320), C(0), PSET
   IF INKEY$ <> "" THEN END
NEXT
GOTO Begin