'Just to show you you could do 16 colors. ;*) 'And in textmode. ;*) 'Relsoft 2003 DEFINT A-Z CLS SCREEN 0 WIDTH 80, 50 CONST PI = 3.14151693# DIM Lsin1%(-1024 TO 1024) DIM Lsin2%(-1024 TO 1024) DIM Lsin3%(-1024 TO 1024) FOR i% = -1024 TO 1024 Lsin1%(i%) = SIN(i% / (18)) * 16 Lsin2%(i%) = SIN(i% / (16)) * 24 Lsin3%(i%) = SIN(i% / (32)) * 32 NEXT i% j! = 255 / 360 * 16 k! = 255 / 360 * 8 l! = 255 / 360 * 16 FOR i% = 0 TO 64 m% = INT(a!) n% = INT(b!) o% = INT(c!) r% = 63 * ABS(SIN(m% * PI / 180)) g% = 63 * ABS(SIN(n% * PI / 180)) b% = 63 * ABS(SIN(o% * PI / 180)) a! = a! + j! b! = b! + k! c! = c! + l! OUT &H3C8, i% OUT &H3C9, r% OUT &H3C9, g% OUT &H3C9, b% NEXT Dir% = 1 DEF SEG = &HB800 DO counter& = (counter& + Dir%) IF counter& > 600 THEN Dir% = -Dir% IF counter& < -600 THEN Dir% = -Dir% rot% = 64 * (((counter& AND 1) = 1) OR 1) offset% = 0 FOR y% = 1 TO 50 FOR x% = 1 TO 79 rot% = -rot% c% = Lsin3%(x% + rot%) + Lsin1%(x% + counter& + rot% - y%) + Lsin2%(y% + rot% + counter&) c% = Lsin3%(c%) + Lsin1%(c%) + Lsin2%(c%) POKE offset%, 127 + (c% AND 63) POKE offset% + 1, c% AND 15 offset% = offset% + 2 NEXT x% offset% = offset% + 2 NEXT y% LOOP UNTIL INKEY$ <> "" END