--- /dev/null
+PROGRAM PLOTTERTEST(OUTPUT);
+
+CONST UP="H"; DOWN="I";
+ C=100.0; P=0.125; RHO=0.0174532925;
+ X0=950.0; Y0=1300.0;
+
+VAR X,Y,R,PHI: REAL;
+ GRAD: INTEGER;
+
+ PENXPOS,PENYPOS: INTEGER;
+
+(********** P L O T T E R PROZEDUREN **********)
+
+PROCEDURE PEN(I:CHAR);
+ BEGIN WRITE(I) END;
+
+PROCEDURE SEND(IX,IY: INTEGER);
+ BEGIN
+ IF IX>=0 THEN WRITE( IX:1,"@")
+ ELSE WRITE(-IX:1,"P");
+ IF IY>=0 THEN WRITE( IY:1,"A")
+ ELSE WRITE(-IY:1,"Q")
+ END;
+
+PROCEDURE MOVE(X,Y: REAL);
+ BEGIN
+ PENXPOS:=ROUND(X); PENYPOS:=ROUND(Y);
+ WRITE("H");
+ SEND(PENXPOS,PENYPOS);
+ WRITELN("K")
+ END;
+
+PROCEDURE LINE(X,Y: REAL);
+ VAR DX,DY: INTEGER;
+ BEGIN
+ DX:=ROUND(X)-PENXPOS;
+ DY:=ROUND(Y)-PENYPOS;
+ SEND(DX,DY); WRITELN("J");
+ PENXPOS:=PENXPOS+DX; PENYPOS:=PENYPOS+DY
+ END;
+
+PROCEDURE SYSIZE(R,G: INTEGER);
+ BEGIN
+ WRITE("C", CHR(G+16*(R+2)))
+ END;
+
+(***********************************************)
+
+BEGIN
+ MOVE(200,2600);
+ SYSIZE(0,6);
+ WRITELN("BPLOTTER-PROGRAMMIERUNG IN PASCAL-S");
+ MOVE(X0,Y0);
+ PEN(DOWN);
+ MOVE(X0+C,Y0);
+ PEN(DOWN);
+ FOR GRAD := 1 TO 180 DO
+ BEGIN
+ PHI := 5*GRAD*RHO;
+ R := C*EXP(P*PHI);
+ X := R*COS(PHI);
+ Y := R*SIN(PHI);
+ LINE(X0+X,Y0+Y)
+ END;
+ PEN(UP)
+END.