When we run an explicitly Mandelbrot or Julia fractal in fractint, space bar toggling lets us generate the reverse type corresponding to a point on the screen represented by the cursor. I know that the "ismand" boolean variable is supposed to help implement that behavior when writing formula type fractals. But how is the "cursor position" variable communicated to the program? I see how one may use an IF/ELSE to take differing execution paths in the generation of the fractal, but for it to work the cursor position from before the toggle must be known after the toggle. How is that done? I have an inkling that the cursor position might be put into the parameter p1 (which would overwrite anything in there before) due to an accident; I ran this "image" version of the M-set (to see the image of attractor points -- I put the value of the attractor in p1), but then when playing around with it while looking at the orbit screen hit the space bar (ismand isn't in the formula and no attempt was made for it to have a toggle counterpart, but...) which caused the same fractal to be rendered, but the location of the image points changed. So I'd appreciate it if someone more experienced with writing .frms would confirm/deny/explain what happens with the space bar toggle. Thanks, Hiram ===================BEGIN=================================== img of pt in 3bud { ; Fractint Version 2003 Patchlevel 1 reset=2003 type=formula formulafile=exprmntl.frm formulaname=MsetImages passes=1 center-mag=0/0/0.6666667 params=-0.1700879765395894/0.7607561929595827/0/10/0.01/0 float=y maxiter=2000 inside=zmag outside=0 periodicity=0; colors=@spectrum.map colors=000zzzc00<7>o00p00r00s00u00w00<9>lIBjJCiLD<3>dTI<4>nTApU8rU7<2>xU\ 2zV0zX0<5>yi0yk0xn0<2>xt0ww0vw1<8>fxIexKcyL<2>ZyRXyTXyU<16>WyoWypWyq<2>W\ yuVzwWww<8>lOwmKwoGw<3>w0w<9>e0kc0ja0h<2>W0eU0cU0c<118>TQTTQTTRT<3>SSS00\ 0000 } MsetImages{ ; inside=zmag renders closest approach to given point ; p1=target point p2=(bailout-4,begin scan pass) p3=(bullseye granularity,0) ; color=1 shows points which hit < granularity from p1. periodicity=0. ; Roughly shows the image of points with p1 as an attractor. IF(isinit==0) bailout = 4 + real(p2) isinit = 1 IF(imag(p2)<1) scan = 1 ELSE scan = trunc(imag(p2)) ENDIF gran = real(p3) targ = p1 ENDIF z = zp = 0 iter = 1 C = pixel : IF(iter == scan) ; start tabulating closest distance closest = cabs(zp-targ) ELSEIF(iter > scan) ; compare to see if new closest dist = cabs(zp-targ) IF(dist < closest) closest = dist ENDIF ENDIF zp = sqr(zp) + C iter = iter + 1 IF( iter==maxit && iter>=scan ) ;last pass-- render inside ins_col = 1 + trunc( closest/gran ) z = sqrt( ( ins_col*2 - 1 ) / maxit ) ENDIF |zp| <= bailout } =======================END=====================