DECLARE SUB pal () CLS : SCREEN 13 pal DIM x%(3), y%(3), c%(1) xshift% = 190: '>+ yshift% = 100: '^- recen = 0: ' centre X imcen = 0: ' centre Y these coords x,y MUST be inside the M set, for -k its s = .02: ' some sort of scale, small=zoomed in k% = 2: '- number of its for this boundry, starts at 2 c%(1) = 1 CLS : c% = 2 FOR k% = 2 TO -20 STEP -1 c%(0) = c%(1) c%(1) = c%(1) + 2: IF c%(1) = 192 THEN c%(1) = 1 PAINT (xshift%, yshift%), c%(0), c%(0) FOR i% = 0 TO 10000 rec = s * i% + recen: imc = imcen GOSUB 500 IF outside% = 1 GOTO 100: ' if hit boundry NEXT i% END 100 vin% = 1: vout% = 2: vnew% = 3 x%(vin%) = i% - 1: x%(vout%) = i%: x%(vnew%) = i% y%(vin%) = 0: y%(vout%) = 0: y%(vnew%) = 1 xin% = x%(vin%): yin% = y%(vin%): xout% = x%(vout%): yout% = y%(vout%) PSET (x%(vin%) + xshift%, y%(vin%) + yshift%), c%(1) 200 rec = s * x%(vnew%) + recen: imc = s * y%(vnew%) + imcen GOSUB 500 IF outside% = 1 GOTO 300 LINE -(x%(vnew%) + xshift%, -y%(vnew%) + yshift%), c%(1) vref% = vin%: vin% = vnew%: vnew% = vref% GOTO 400 300 vref% = vout%: vout% = vnew%: vnew% = vref% 400 x%(vnew%) = x%(vin%) + x%(vout%) - x%(vref%) y%(vnew%) = y%(vin%) + y%(vout%) - y%(vref%) IF x%(vin%) <> xin% OR y%(vin%) <> yin% GOTO 200 IF x%(vout%) <> xout% OR y%(vout%) <> yout% GOTO 200 NEXT k% END 500 outside% = 1: 'This is where the point is calculated re = rec: im = imc FOR j% = 0 TO 2 - k% re2 = re * re: im2 = im * im im = 2 * re * im + imc re = re2 - im2 + rec IF re * re + im * im > 4 THEN RETURN NEXT j% outside% = 0 RETURN SUB pal FOR t% = 0 TO 192 LINE (t%, 195)-(t%, 199), t% NEXT t% FOR p = 0 TO 63 STEP 2 p% = p a% = a% + 1 PALETTE a%, 63 + 256 * p% NEXT p FOR p = 0 TO 63 STEP 2 p% = p a% = a% + 1 PALETTE a%, 63 - p% + 63 * 256 NEXT p FOR p = 0 TO 63 STEP 2 p% = p a% = a% + 1 PALETTE a%, 256 * 63 + p% * 65536 NEXT p FOR p = 0 TO 63 STEP 2 p% = p a% = a% + 1 PALETTE a%, (63 - p%) * 256 + 63 * 65536 NEXT p FOR p = 0 TO 63 STEP 2 p% = p a% = a% + 1 PALETTE a%, p% + 65536 * 63 NEXT p FOR p = 0 TO 63 STEP 2 p% = p a% = a% + 1 PALETTE a%, (63 - p%) * 65536 + 63 NEXT p END SUB