'=========================================================================== ' Subject: MONITOR MADNESS 3 Date: 08-02-97 (08:44) ' Author: Brad Bailey Code: QB, QBasic, PDS ' Origin: ducttape@info2000.net Packet: GRAPHICS.ABC '=========================================================================== 'ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ '³ Moniter Madness 3 BY: Duct_Tape ³ 'ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ '³ I was playing with COS and SIN and I made this ³ '³ neat looking screen saver type thing. ³ 'ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ '³ If you would like for me to explain this code ³ '³ to you then email me at ducttape@info2000.net ³ 'ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ '³ Duct_Tape's QBasic Page ³ '³ http://duct-tape.home.ml.org ³ 'ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ DECLARE SUB pal.set (lo%, hi%, red%, green%, blue%, r%, g%, b%) DECLARE SUB write.pal (r%, g%, b%, c%) DECLARE SUB get.pal (r%, g%, b%, c%) DECLARE SUB pal.fadeout () DECLARE SUB pal.cycle () COMMON SHARED c CONST speed% = 1 ' makes this a smaller number to make this prog ' go faster and vice-versa SCREEN 13: CLS RANDOMIZE TIMER FOR c = 1 TO 7 READ lo%, hi%, red%, green%, blue%, r%, g%, b% CALL pal.set(lo%, hi%, red%, green%, blue%, r%, g%, b%) NEXT c CALL pal.cycle CALL pal.fadeout SYSTEM DATA 1, 22, 0, 0, 0, 3, 0, 0 DATA 23, 44, 0, 0, 0, 3, 1, 0 DATA 45, 66, 0, 0, 0, 3, 3, 0 DATA 67, 88, 0, 0, 0, 0, 3, 1 DATA 89, 110, 0, 0, 0, 0, 3, 3 DATA 111, 132, 0, 0, 0, 0, 1, 3 DATA 133, 154, 0, 0, 0, 3, 0, 3 SUB get.pal (r%, g%, b%, c%) OUT &H3C7, c% r% = INP(&H3C9) g% = INP(&H3C9) b% = INP(&H3C9) END SUB SUB pal.cycle xpos% = INT(RND * 200) + 60 ypos% = INT(RND * 140) + 30 addx% = 1: addy% = 1: col% = 1: n! = 0 DO x! = 25 * COS(n!) y! = 25 * SIN(n!) CIRCLE (xpos% + x!, ypos% + y!), 10, col% PAINT (xpos% + x!, ypos% + y!), col%, col% xpos% = xpos% + addx% ypos% = ypos% + addy% col% = col% + 1 IF col% > 153 THEN col% = 1 IF xpos% > 300 THEN addx% = -1 IF xpos% < 20 THEN addx% = 1 IF ypos% > 180 THEN addy% = -1 IF ypos% < 20 THEN addy% = 1 IF n! < 6.28 THEN n! = n! + .04 ELSE n! = 0 CALL get.pal(ro%, og%, bo%, 1) FOR i% = 2 TO 154 get.pal r%, g%, b%, i% write.pal r%, g%, b%, i% - 1 FOR dlay% = 1 TO speed%: NEXT dlay% NEXT i% CALL write.pal(ro%, og%, bo%, 154) LOOP UNTIL INKEY$ <> "" END SUB SUB pal.fadeout FOR n% = 1 TO 64 FOR i% = 1 TO 154 CALL get.pal(r%, g%, b%, i%) IF r% > 0 THEN r% = r% - 1 IF g% > 0 THEN g% = g% - 1 IF b% > 0 THEN b% = b% - 1 CALL write.pal(r%, g%, b%, i%) NEXT i% NEXT n% END SUB SUB pal.set (lo%, hi%, red%, green%, blue%, r%, g%, b%) FOR i% = lo% TO hi% OUT &H3C8, i% OUT &H3C9, red% OUT &H3C9, green% OUT &H3C9, blue% red% = red% + r% green% = green% + g% blue% = blue% + b% NEXT i% END SUB SUB write.pal (r%, g%, b%, c%) OUT &H3C8, c% OUT &H3C9, r% OUT &H3C9, g% OUT &H3C9, b% END SUB