PROC INMOS.ENTRY.POINT() -- PROGRAMM MANDEL.OCC CHAN OF ANY INP, READY, AUT: PLACE AUT AT 0: PLACE INP AT 4: [768][1024]BYTE LINE: -- GLOBALE DATEN PLACE LINE AT 65536: PRI PAR -- EIN/AUSGABE PRIORISIERT INT Y, XPOINTS: WHILE TRUE -- ZEILENWEISE SEQ READY ? Y;XPOINTS -- WARTE AUF ZEILE AUT ! [LINE[Y] FROM 0 FOR XPOINTS] -- GEBE ZEILE AUS INT XPOINTS, YPOINTS, MAXITER: REAL64 LEFT, RIGHT, TOP, BOTTOM, XSTEP, YSTEP, XC, YC: SEQ INP ? XPOINTS;YPOINTS INP ? LEFT;RIGHT INP ? TOP;BOTTOM INP ? MAXITER XSTEP:=(RIGHT-LEFT)/(REAL64 TRUNC(XPOINTS-1)) YSTEP:=(TOP-BOTTOM)/(REAL64 TRUNC(YPOINTS-1)) YC:=TOP SEQ Y=0 FOR YPOINTS -- FUER JEDE ZEILE SEQ XC:=LEFT SEQ X=0 FOR XPOINTS -- FUER ZEDES PIXEL REAL64 X1, X2, Y1, Y2: INT DEPTH: SEQ X1:=0.0(REAL64) X2:=X1 Y1:=X2 Y2:=Y1 DEPTH:=0 WHILE (((X2+Y2) <= 4.0(REAL64)) AND (DEPTH < MAXITER)) SEQ Y1:=X1*Y1 Y1:=(Y1+Y1)+YC X1:=(X2-Y2)+XC X2:=X1*X1 Y2:=Y1*Y1 DEPTH:=DEPTH+1 LINE[Y][X]:=BYTE DEPTH -- SETZE PIXEL XC:=XC+XSTEP -- NAECHSTES PIXEL READY ! Y;XPOINTS -- GEBE ZEILE BEKANNT YC:=YC-YSTEP -- NAECHSTE ZEILE :