MODULE FRAC; /* FRAC V 1.0 C.Zobel 08-07-86 Hamburg */ /* FRACTAL PROGRAMM */ /* START WERTE Z.B BILDGROESSE: 100,100,XMIN=-2.5 */ /* XMAX=2.5,YMIN=-2.5,YMAX=2.5, CX=0.99999,CY=0.00001 */ /* ARBEITET MIT ATARI ST - CP 10/86 */ SYSTEM; DISP : A1 <->; PROBLEM ; LENGTH FIXED(15); LENGTH FLOAT(23); DCL S INV FIXED INIT(100); DCL KMAX INV FIXED INIT(032); DCL (K,XACHSE,YACHSE) FIXED; DCL (XMIN,XMAX,YMIN,YMAX,X1,Y1,XX,YY,CX,CY,DX,DY,QX,QY) FLOAT; SPECIFY DISP DATION INOUT ALPHIC CONTROL(ALL); SPC (SCRCHG,SCRSET,CLEAR) ENTRY GLOBAL; FRACT:TASK ; PUT 'BILDGROESSE : ' TO DISP; GET XACHSE FROM DISP; GET YACHSE FROM DISP ; PUT TO DISP BY SKIP(1); PUT 'XMIN, XMAX : ' TO DISP; GET XMIN FROM DISP; GET XMAX FROM DISP; PUT TO DISP BY SKIP(1); PUT 'YMIN, YMAX : ' TO DISP; GET YMIN FROM DISP; GET YMAX FROM DISP; PUT TO DISP BY SKIP(1); PUT 'CX, CY :' TO DISP; GET CX FROM DISP; GET CY FROM DISP; PUT TOCHAR(16) TO DISP; DX:=(XMAX-XMIN)/(XACHSE-1); DY:=(YMAX-YMIN)/(YACHSE-1); CALL SCRSET('FRACT'); CALL SCRCHG('FRACT'); CALL CLEAR; FOR M FROM 0 BY 1 TO YACHSE REPEAT; FOR N FROM 0 BY 1 TO XACHSE REPEAT; XX:=XMIN+N*DX; YY:=YMIN+M*DY; K:=0; LOOP: QX:=XX*XX; QY:=YY*YY; X1:=QX-QY-CX; Y1:=2*XX*YY-CY; XX:=X1; YY:=Y1; K:=K+1; IF ((QX+QY)<=S AND K<=KMAX ) THEN GOTO LOOP; FIN; IF K>KMAX THEN K:=0; FIN; CALL SETPIX(N,YACHSE-M,(K-((K//2)*2))); END; END; END; MODEND;