I made all these (black and white) screen savers in my spare time. all three create an optical effect. here they are!

Name: BoxySnake

Platform: QuickBasic

Progress : 100%

Description : Creates a really cool boxy looking snake that bounces around the screen.

QBASIC:

DIM x(35), y(35)

DIM xm(34), ym(34)

cnt = 1

FOR n = 5 TO 170 STEP 5

cnt = cnt + 1

x(cnt) = n

y(cnt) = n

NEXT

FOR n = 1 TO 34

xm(n) = -1

ym(n) = -1

NEXT n

SCREEN 7, 0, 1, 0

DO

press$ = INKEY$

FOR n = 1 TO 34

IF x(n) < 1 THEN xm(n) = -xm(n)

IF y(n) < 1 THEN ym(n) = -ym(n)

IF x(n) + 50 > 320 THEN xm(n) = -xm(n)

IF y(n) + 30 > 200 THEN ym(n) = -ym(n)

NEXT n

FOR n = 1 TO 34

x(n) = x(n) + xm(n)

y(n) = y(n) + ym(n)

NEXT n

PCOPY 1, 0

CLS

FOR n = 2 TO 34

RANDOMIZE TIMER

r = INT(10 * RND) + 1

LINE (x(n), y(n))-(x(n) + 50, y(n) + 30), 15, B

NEXT n

LOOP UNTIL press$ <> ""

Name: circles

Platform: QuickBasic

Progress : 100%

Description : staticy looking circles in a strait line bouncing around your screen.

QBASIC:

DIM x(35), y(35)

DIM xm(34), ym(34)

cnt = 1

FOR n = 5 TO 170 STEP 5

cnt = cnt + 1

x(cnt) = n

y(cnt) = n

NEXT

FOR n = 1 TO 34

xm(n) = -1

ym(n) = -1

NEXT n

SCREEN 7, 0, 1, 0

DO

press$ = INKEY$

FOR n = 1 TO 34

IF x(n) < 1 THEN xm(n) = -xm(n)

IF y(n) < 1 THEN ym(n) = -ym(n)

IF x(n) + 10 > 320 THEN xm(n) = -xm(n)

IF y(n) + 10 > 200 THEN ym(n) = -ym(n)

NEXT n

FOR n = 1 TO 34

x(n) = x(n) + xm(n)

y(n) = y(n) + ym(n)

NEXT n

PCOPY 1, 0

CLS

FOR n = 2 TO 34

RANDOMIZE TIMER

r = INT(10 * RND) + 1

CIRCLE (x(n), y(n)), r

NEXT n

LOOP UNTIL press$ <> ""

Name: Tunnel

Platform: QuickBasic

Progress : 100%

Description : Tunnel effect, really cool. i wish i could use it as my current screen saver.

QBASIC:

DIM x(35), y(35)

DIM xm(34), ym(34)

cnt = 1

FOR n = 5 TO 170 STEP 5

cnt = cnt + 1

x(cnt) = n

y(cnt) = n

NEXT

FOR n = 1 TO 34

xm(n) = -1

ym(n) = -1

NEXT n

SCREEN 7, 0, 1, 0

DO

press$ = INKEY$

FOR n = 1 TO 34

IF x(n) < 1 THEN xm(n) = -xm(n)

IF y(n) < 1 THEN ym(n) = -ym(n)

IF x(n) + 10 > 320 THEN xm(n) = -xm(n)

IF y(n) + 10 > 200 THEN ym(n) = -ym(n)

NEXT n

FOR n = 1 TO 34

x(n) = x(n) + xm(n)

y(n) = y(n) + ym(n)

NEXT n

PCOPY 1, 0

CLS

FOR n = 2 TO 34

RANDOMIZE TIMER

r = INT(10 * RND) + 1

CIRCLE (x(n), y(n)), n * n

NEXT n

LOOP UNTIL press$ <> ""