;¢PROC DRAW_FRACTAL()¢ BYTE ATTRACT=77¢ ATTRACT=0¢ IF Y>=0 THEN J=JC+ (Y RSH SCREEN_SIZE)¢ ELSE J=JC- (-Y RSH SCREEN_SIZE)¢ ENDIF¢ IF X>=0 THEN XX=Y+((X RSH R1)+CX)¢ IF J>0 AND J<191 THEN I=IC+(X RSH SCREEN_SIZE)¢ IF I>0 AND I<319 THEN PLOT(I,J)¢ ENDIF¢ ENDIF¢ ELSE XX=Y+((-X RSH R2)-CX)¢ IF J>0 AND J<191 THEN I=IC-(-X RSH SCREEN_SIZE) ¢ IF I>0 AND I<319 THEN PLOT(I,J)¢ ENDIF¢ ENDIF¢ ENDIF¢ Y=(CY-X) Z==+1 X=XX¢ IF Z=0 THEN Y==-7¢ ENDIF¢ IF DEMOMODE=ON THEN COUNT==+1¢ IF COUNT>15000 THEN KEY=DEMO¢ ENDIF¢ ENDIF¢RETURN¢;¢PROC CHANGE_PARAMETERS()¢ IF KEY=MENUKEY THEN MENU() INITIALIZE_PLOT() ¢ ENDIF¢ IF KEY=SPACEBAR THEN ¢ IF DISPLAY=OFF THEN DISPLAY=ON¢ ELSE DISPLAY=OFF¢ ENDIF¢ KEY=CLEAR RETURN¢ ENDIF¢ IF KEY=SAVE THEN SAVE_FRACTAL() RETURN¢ ENDIF¢ IF KEY=LOAD THEN LOAD_FRACTAL() NEW_PARAMETERS() RETURN¢ ENDIF¢ IF KEY=DEMO THEN DEMOMODE=ON NEW_PARAMETERS()¢ ELSE DEMOMODE=OFF¢ ENDIF¢ IF KEY=CREATE THEN NEW_PARAMETERS()¢ ENDIF¢ IF KEY=LARGER AND SCREEN_SIZE>1 THEN SCREEN_SIZE==-1 ¢ IC=2*IC-162 JC=2*JC-96¢ ENDIF¢ IF KEY=SMALLER AND SCREEN_SIZE<8 THEN SCREEN_SIZE==+1¢ IC=(162+IC)/2 JC=(96+JC)/2¢ ENDIF¢ IF KEY=LEFT THEN IC==-10¢ ENDIF¢ IF KEY=RIGHT THEN IC==+10¢ ENDIF¢ IF KEY=UP THEN JC==-10¢ ENDIF¢ IF KEY=DOWN THEN JC==+10¢ ENDIF¢ ZERO(SCREEN,7680)¢ X=0 Y=0 Z=0 COUNT=0¢ KEY=CLEAR¢RETURN¢;¢PROC HOPDEMO()¢ SETUP()¢ MENU()¢ NEW_PARAMETERS()¢ BEGIN¢ WHILE KEY=CLEAR BEGIN¢ DRAW_FRACTAL()¢ ENDWHILE¢ CHANGE_PARAMETERS()¢ END¢RETURN¢;¢