X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;f=sw%2Fsrc%2Fmandel_screen%2FCALC2.FT;fp=sw%2Fsrc%2Fmandel_screen%2FCALC2.FT;h=527b5a36ecdcf5c4bb5fe10047d3154122fcb9db;hb=81e70d488b71bf995c459ca3a02c025993460ffa;hp=0000000000000000000000000000000000000000;hpb=07ec0278333ed187ac242dedcff13c56cf1b0b91;p=pdp8.git diff --git a/sw/src/mandel_screen/CALC2.FT b/sw/src/mandel_screen/CALC2.FT new file mode 100644 index 0000000..527b5a3 --- /dev/null +++ b/sw/src/mandel_screen/CALC2.FT @@ -0,0 +1,70 @@ +CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC +CCCCCC THE MANDELBROT SET CALCULATION + SUBROUTINE CALC2 +C + INTEGER MAXI,WIDTH,CR,LF + COMMON /PARAM2/MAXI,WIDTH,CR,LF + REAL LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP + COMMON /PARAM1/LOWX,LOWY,HIGHX,HIGHY,MAXVAL,XSTEP,YSTEP + REAL CMPVAL + REAL ZR,ZI,ZRN + REAL X,Y + REAL PX,PY + DIMENSION PX(1),PY(1) + INTEGER COUNT +C + CALL SCALE(LOWX,LOWY,HIGHX,HIGHY) +C +CCCCCC ENTER THE CALCULATION + 299 CMPVAL=MAXVAL*MAXVAL + X=LOWX + Y=HIGHY +C +CCCCCC EINSTIEG IN DEN AKTUELLEN PUNKT + 300 COUNT=0 + ZR=0.0 + ZI=0.0 +C +CCCCCC HIER DER ITERIERTE TEIL +C + 400 ZRN=ZR*ZR-ZI*ZI+X + ZI=2.0*ZR*ZI+Y + ZR=ZRN +C + IF ((ZR*ZR+ZI*ZI).GE.CMPVAL) GO TO 410 + COUNT=COUNT+1 + IF (COUNT.GE.MAXI) GO TO 410 + GO TO 400 +C +CCCCCC PUNKT FERTIG + 410 NOUT=32 +C IF (COUNT.GE.8) NOUT=46 +C IF (COUNT.GE.23) NOUT=43 +C IF (COUNT.EQ.MAXI) NOUT=64 + IF (COUNT.GE.8) NOUT=46 + IF (COUNT.GE.23) NOUT=43 + IF (COUNT.EQ.MAXI) NOUT=64 + PX(1)=X + PY(1)=Y + CALL RSW(8,I) + IF (COUNT.EQ.MAXI) CALL PLOT(1,PX,PY) + IF(I.EQ.1) GO TO 500 +C +CC 411 CALL PCHAR(NOUT) +C +CCCCCC NEUEN PUNKT MACHEN + 500 X = X + XSTEP +CCCCCC ZEILE NOCH NICHT VOLL? + IF (X.LE.HIGHX) GO TO 300 +CCCCCC X AN ANFANG SETZTEN, CR+LF DRUCKEN + X = LOWX +CC CALL PCHAR(13) + IF(I.EQ.1) GO TO 501 +CC CALL PCHAR(10) +CCCCCC Y WEITERRUECKEN - NEGATIV WEIL WIR VON OBEN KOMMEN +501 Y=Y-YSTEP + IF (Y.GE.LOWY) GO TO 300 +C +CCCCCC HIER IST DAS BILD FERTIG. + RETURN + END