DEFINT A-Z TYPE liney r AS INTEGER g AS INTEGER B AS INTEGER x1 AS INTEGER y1 AS INTEGER x2 AS INTEGER y2 AS INTEGER END TYPE DECLARE SUB pal (colindex%, colr%, colg%, colb%) SCREEN 13 CLS 'if any text gets printed in default color, it's invisible! FOR a = 0 TO 22 PRINT NEXT a FOR a = 0 TO 255 pal a, 0, 0, 0 LINE (a, 191)-(a, 199), a NEXT a col = 0 'starting color cols = 200 'number of colors vis = 100 'number of visible colors dimr! = .96 'dimming factor for palette diminishing dimg! = .9 dimb! = .7 dimx! = 1.1 'kinda silly dimrad! = .85 'kinda silly newlines = 4 'number of new lines generated each pass DIM lin(0 TO (cols - 1)) AS liney B = 0 DO k$ = INKEY$ SOUND INT(RND * 32731) + 37, .05 PRINT FOR a = 1 TO (vis - 1) i = (col + a) MOD cols lin(i).r = lin(i).r * (INT(RND / 10) - .05 + dimr!)'diminish color lin(i).g = lin(i).g * (INT(RND / 10) - .05 + dimg!) lin(i).B = lin(i).B * (INT(RND / 10) - .05 + dimb!) lin(i).y1 = (200 - lin(i).y1) * (INT(RND / 10) - .05 + dimx!) + 200 lin(i).x2 = lin(i).x2 * (INT(RND / 10) - .05 + dimrad!) lin(i).x1 = lin(i).x1 + INT(RND * 5) - 2 lin(i).x2 = lin(i).x2 + INT(RND * 5) - 2 pal i + 16, lin(i).r, lin(i).g, lin(i).B CIRCLE (lin(i).x1, lin(i).y1), ABS(lin(i).x2) + 1, i + 16 CIRCLE (lin(i).x1, lin(i).y1), ABS(lin(i).x2) * .75 + 1, i + 16 CIRCLE (lin(i).x1, lin(i).y1), ABS(lin(i).x2) * .5 + 1, i + 16 CIRCLE (lin(i).x1, lin(i).y1), ABS(lin(i).x2) * .25 + 1, i + 16 NEXT a FOR a = 0 TO newlines - 1 coli = (col + cols - a) MOD cols lin(coli).r = INT(RND * 32) + 32 lin(coli).g = INT(RND * 32) + 32 lin(coli).B = INT(RND * 32) + 16 lin(coli).x1 = INT(RND * 320) lin(coli).y1 = INT(RND * 30) + 160 lin(coli).x2 = INT(RND * 50) lin(coli).y2 = INT(RND * 30) + 160 pal coli + 16, lin(coli).r, lin(coli).g, lin(coli).B CIRCLE (lin(col).x1, lin(col).y1), ABS(lin(col).x2) + 1, col + 16 CIRCLE (lin(col).x1, lin(col).y1), ABS(lin(col).x2) * .75 + 1, col + 16 CIRCLE (lin(col).x1, lin(col).y1), ABS(lin(col).x2) * .5 + 1, col + 16 CIRCLE (lin(col).x1, lin(col).y1), ABS(lin(col).x2) * .25 + 1, col + 16 NEXT a col = (col + (cols - newlines)) MOD cols LOOP UNTIL k$ = CHR$(27) DEFSNG A-Z SUB pal (colindex%, colr%, colg%, colb%) OUT &H3C8, colindex% OUT &H3C9, colr% OUT &H3C9, colg% OUT &H3C9, colb% END SUB