OPTION BASE 0 DEFINT A-Z hi = 100 xc = 150: yc = 100 SCREEN 13: CLS '====================================================================== ' BRONZE MAGiC - VGA 256 colors ' shows faster cycling with 100 colors ' by Toshihiro Horie 1995 '====================================================================== DIM block1(4196), block2(4196) 'blank out palette while loading OUT 968, 1: FOR a = 1 TO 256 * 3: OUT 969, 0: NEXT 'FOR a = 0 TO (32) - 1 ' CIRCLE (32, 32), a, a ' CIRCLE (32 + 1, 32), a, a 'NEXT 'GET (0, 0)-(64, 64), block1 'LINE (0, 0)-(64, 64), 0, BF 'draw circle FOR a = 0 TO hi - 1 CIRCLE (xc, yc), a, a CIRCLE (xc + 1, yc), a, a NEXT 'axe FOR a = 0 TO hi - 1 LINE (a \ 2, a \ 2)-(hi - 1 - a, 0), a NEXT FOR a = 0 TO hi - 1 LINE (a \ 2, a \ 2)-(0, hi - 1 - a), a NEXT 'plot starry points FOR a = 0 TO 1000 PSET (RND * 320, (RND * 40) + 160), a MOD 256 NEXT 'draw palette map FOR a = 0 TO hi - 1 LINE (a + 30, xc)-(a + 30, xc + 10), a NEXT COLOR hi: LOCATE 22, 15: PRINT " BronzeAxe 1 " 'create smooth gradient palette array DIM c(hi, 3) FOR i = 1 TO 50: 'bronze c(i, 0) = i + 13 'RED c(i, 1) = i - 1 'GREEN c(i, 2) = 0: 'BLUE intensity NEXT i FOR i = 50 TO 1 STEP -1: ' jade c(100 - i, 0) = 0: 'RED intensity c(100 - i, 1) = i + 13 'GREEN c(100 - i, 2) = i - 1'BLUE NEXT i DO 'write PAL array to VGA registers OUT 968, 1 FOR j = i TO hi - 1 OUT 969, c(j, 0): 'red OUT 969, c(j, 1): 'green OUT 969, c(j, 2): 'blue NEXT j 'cycle colors FOR n2 = 0 TO 2 b = c(hi - 1, n2) FOR j = hi - 1 TO 1 STEP -1 c(j, n2) = c(j - 1, n2) NEXT j c(0, n2) = b NEXT n2 'IF n > yc - 32 THEN sign = sign * -1 ' GET (n + xc, yc)-(n + xc + 64, yc + 64), block2 ' PUT (n + xc, yc), block1, OR ' PUT (n + xc, yc), block2, PSET 'n = n + sign * 4 LOOP WHILE INKEY$ = ""