INCLUDE "std primitives"; PLOTTER "VIDEOSTAR",3,6,640,480,27.0,19.5; COLORS "000999"; TEXT PROC koordinaten (INT CONST x,y): code(32+((y DIV 32) AND 31)) + code(96+(y MOD 32)) + code(32+((x DIV 32) AND 31)) + code(64+(x MOD 32)) END PROC koordinaten; PROC clear: out (""29""27""140""27"/0d"); moveto(0,0) END PROC clear; PROC prepare: break(quiet); REP disable stop; continue (channel(plotter)); clear error; enable stop; IF NOT online THEN pause (300) FI UNTIL online PER END PROC prepare; PROC initplot: END PROC initplot; PROC endplot: pause; out(""24"") END PROC endplot; PROC home: moveto (0,0) END PROC home; PROC moveto (INT CONST x,y): out (""29""29""); out (koordinaten (x,y)) END PROC moveto; PROC drawto (INT CONST x,y): out (koordinaten(x,y)) END PROC drawto; PROC setpixel (INT CONST x,y): out (""28""); out (koordinaten (x,y)) END PROC setpixel; PROC foreground (INT VAR type): IF type = 0 THEN out (""27"/1d") (* loeschend *) ELIF type < 0 THEN out (""27"/2d");type := -1 (* XOR *) ELSE out (""27"/0");type := 1 (* normal *) FI END PROC foreground; PROC background (INT VAR type): type := 0 END PROC background; PROC setpalette: END PROC setpalette; PROC circle (INT CONST x,y,rad,from,to): IF full circle inside screen THEN out (""29"" + koordinaten(x, y) + ""27"C" + subtext (koordinaten(0,rad),1,3) + ""28""); ELSE std circle (x,y,rad,from,to) FI. full circle inside screen: (from = 0 AND to = 360) AND (x + rad) < 640 AND (x - rad >= 0) AND (y + rad) < 480 AND (y - rad >= 0) END PROC circle; PROC box (INT CONST x1,y1,x2,y2,pattern): std box (x1, y1, x2, y2, pattern) END PROC box; PROC fill (INT CONST x,y,pattern): moveto (x,y); out (""27"F"); END PROC fill;