' ' simple unoptimized TEXT/ASCii/ANSI screen saver ' ' send comment to changev@aol.com ' ' visit JAWS-V soft home page at : http://members.com/changev/index.htm ' DEFINT A-Z DECLARE SUB SAVER () SAVER SYSTEM SUB SAVER ' this saver works only on screen 0 with 80 columns SCREEN 0: WIDTH 80, 50 '-< initialize >- CONST MAXOPT = 9 REDIM X(MAXOPT) REDIM Y(MAXOPT) REDIM D(MAXOPT) REDIM XDIR(MAXOPT) REDIM YDIR(MAXOPT) FOR I = 0 TO MAXOPT X(I) = 5 Y(I) = 2 D(I) = -1 XDIR(I) = 1 YDIR(I) = 1 NEXT '-< clear screen >- COLOR 7, 0 CLS DO '-< hit wall >- IF X(0) = 3 OR X(0) = 77 THEN XDIR(0) = -XDIR(0) IF Y(0) = 1 OR Y(0) = 49 THEN YDIR(0) = -YDIR(0) '-< update position >- FOR I = MAXOPT TO 1 STEP -1 X(I) = X(I - 1) Y(I) = Y(I - 1) D(I) = D(I - 1) NEXT X(0) = X(0) + XDIR(0) Y(0) = Y(0) + YDIR(0) D(0) = (XDIR(0) = YDIR(0)) '-< delay >- WAIT &H3DA, 8, 8 WAIT &H3DA, 8 ' it is little slower if I combine these 3 sections into one(on 486SX). '- draw #1 - COLOR 15: N = 0: LOCATE Y(N), X(N) IF X(N) = 3 OR X(N) = 77 OR Y(N) = 1 OR Y(N) = 49 THEN PRINT "x"; ELSE IF D(N) THEN PRINT "\"; ELSE PRINT "/"; END IF '- draw #2 - COLOR 7: N = 3: LOCATE Y(N), X(N) IF X(N) = 3 OR X(N) = 77 OR Y(N) = 1 OR Y(N) = 49 THEN PRINT "x"; ELSE IF D(N) THEN PRINT "\"; ELSE PRINT "/"; END IF '- draw #3 - COLOR 8: N = 6: LOCATE Y(N), X(N) IF X(N) = 3 OR X(N) = 77 OR Y(N) = 1 OR Y(N) = 49 THEN PRINT "x"; ELSE IF D(N) THEN PRINT "\"; ELSE PRINT "/"; END IF '- erase trail - COLOR 0: N = 9: LOCATE Y(N), X(N): PRINT " "; LOOP UNTIL INKEY$ <> "" '- clean - ERASE X ERASE Y ERASE D ERASE XDIR ERASE YDIR END SUB