/********************************************************/ /* MANDELBROTMENGE AUF RTOS */ /********************************************************/ /*-L*******************************************************/ /* Dieses Programm wurde direkt aus der C'T vom Maerz 83 */ /* in PEARL uebernommen. Die Geschwindigkeit von */ /* 42 min pro Bild in der Hochaufloesung ist ohne */ /* Co-Prozessor schon beachtlich. */ /**********************************************************/ /* bei Start und Ende des Programms wird die Uhrzeit ausgegeben */ /* das erzeugte Bild wird als "TESTBILD" auf F0: abgespeichert */ /* und kann mit der Task 'SLOAD' wieder von dort geladen werden */ /**********************************************************/ /* Uebersetzt wurde das Programm von */ /* Fred Gerber */ /* Schwalbenweg 8 */ /* 5910 Kredenbach */ /**********************************************************/ MODULE APFEL; SYSTEM; TERM: A1; BEDIEN:XC; PROBLEM; SPC TERM DATION INOUT ALPHIC CONTROL(ALL); SPC BEDIEN DATION OUT ALPHIC CONTROL(ALL); DCL (FL,RL,RR,IO,XC,YC) FLOAT; DCL (K) FIXED; DCL MAX INV FIXED INIT (250); DCL MAXI INV FIXED INIT (251); DCL G1 INV FIXED INIT (6); DCL G2 INV FIXED INIT (10); DCL G3 INV FIXED INIT (17); DCL ZERR INV FLOAT INIT (1.11); DCL MODN CHAR(2); DCL (FILEN) CHAR(24); SPC (SCLOAD,SCSAVE,SCRSET,CLEAR) ENTRY GLOBAL; ITER: PROC; DCL (X,Y,X2,Y2,R,S) FLOAT; DCL (Z1,Z2,Z3,Z4) FLOAT; X=0; Y=0; X2=0; Y2=0; K=0; R=XC*XC+YC*YC; S=SQRT(R-0.5*XC+0.0625); Z1=16*R*S; Z2=5*S-4*XC+1; Z3=(XC+1)*(XC+1)+YC*YC; IF (Z1>Z2) AND (Z3>0.0625) THEN WHILE (X2+Y2<=4) AND (K G3 THEN CALL SETPIX(SPA,ZEI,1); ELSE W=W1 - (SPA- ROUND(SPA/2)*2); IF W == 1 THEN IF K > G2 THEN CALL SETPIX(SPA,ZEI,1); FIN; ELSE IF W == 2 THEN IF K > G1 THEN CALL SETPIX(SPA,ZEI,1); FIN; FIN; FIN; FIN; FIN; XC=XC+FL; END; YC=YC-FL*ZERR; END; PUT 'CLOCK' TO BEDIEN BY A,SKIP; CALL SCSAVE(MODN,0,FILEN); END; MODEND;