'=========================================================================== ' Subject: DEMYSTIFY SCREEN SAVER Date: 06-11-96 (00:00) ' Author: Kurt Kuzba Code: QB, QBasic, PDS ' Origin: FidoNet QUIK_BAS Echo Packet: GRAPHICS.ABC '=========================================================================== 'I synched the program execution to the vertical retrace. 'This keeps the display speed constant on nearly any system. '_|_|_| DEMYST.BAS '_|_|_| A program that demystifies the mystify screen saver. '_|_|_| No warrantee or guarantee is given or implied. '_|_|_| Released to PUBLIC DOMAIN by Kurt Kuzba. (6/11/96) DEFINT A-Z SCREEN 12: RANDOMIZE (TIMER * 1000) TYPE IntersectPoints x AS INTEGER: y AS INTEGER: dx AS INTEGER: dy AS INTEGER: END TYPE DIM lnx(60) AS IntersectPoints lnx(0).x = 0: lnx(0).y = 0: lnx(0).dx = 0: lnx(0).dy = 0 FOR T = 1 TO 59: lnx(T) = lnx(0): NEXT DO WHILE ((INP(&H3DA)) AND 8) <> 0: WEND 'Here's where I keep the speed WHILE ((INP(&H3DA)) AND 8) = 0: WEND 'constant for almost all systems FOR L = 0 TO 5 IF lnx(L).x < 1 THEN lnx(L).dx = 2 + ((RND * 999) MOD 4) IF lnx(L).y < 1 THEN lnx(L).dy = 2 + ((RND * 999) MOD 4) IF lnx(L).x > 638 THEN lnx(L).dx = -(2 + ((RND * 999) MOD 4)) IF lnx(L).y > 478 THEN lnx(L).dy = -(2 + ((RND * 999) MOD 4)) lnx(L).x = lnx(L).x + lnx(L).dx: lnx(L).y = lnx(L).y + lnx(L).dy NEXT FOR L = 0 TO 5 IF (L MOD 3) <> 0 THEN S = L + 54: F = ((L + 1) MOD 6) + 54 LINE (lnx(S).x, lnx(S).y)-(lnx(F).x, lnx(F).y), 0 END IF S = L + 48: F = ((L + 1) MOD 6) + 48 LINE (lnx(S).x, lnx(S).y)-(lnx(F).x, lnx(F).y), 1 S = L + 42: F = ((L + 1) MOD 6) + 42 LINE (lnx(S).x, lnx(S).y)-(lnx(F).x, lnx(F).y), 1 S = L + 36: F = ((L + 1) MOD 6) + 36 LINE (lnx(S).x, lnx(S).y)-(lnx(F).x, lnx(F).y), 1 S = L + 30: F = ((L + 1) MOD 6) + 30 LINE (lnx(S).x, lnx(S).y)-(lnx(F).x, lnx(F).y), 9 S = L + 24: F = ((L + 1) MOD 6) + 24 LINE (lnx(S).x, lnx(S).y)-(lnx(F).x, lnx(F).y), 9 S = L + 18: F = ((L + 1) MOD 6) + 18 LINE (lnx(S).x, lnx(S).y)-(lnx(F).x, lnx(F).y), 11 S = L + 12: F = ((L + 1) MOD 6) + 12 LINE (lnx(S).x, lnx(S).y)-(lnx(F).x, lnx(F).y), 11 S = L + 6: F = ((L + 1) MOD 6) + 6 LINE (lnx(S).x, lnx(S).y)-(lnx(F).x, lnx(F).y), 15 E = (L + 1) MOD 6 LINE (lnx(L).x, lnx(L).y)-(lnx(E).x, lnx(E).y), 15 NEXT FOR L = 0 TO 5 lnx(L + 54) = lnx(L + 48): lnx(L + 48) = lnx(L + 42) lnx(L + 42) = lnx(L + 36): lnx(L + 36) = lnx(L + 30) lnx(L + 30) = lnx(L + 24): lnx(L + 24) = lnx(L + 18) lnx(L + 18) = lnx(L + 12): lnx(L + 12) = lnx(L + 6) lnx(L + 6) = lnx(L): NEXT LOOP WHILE INKEY$ = "": SCREEN 0 '_|_|_| end DEMYST.BAS