INCLUDE "std primitives"; INCLUDE "terminal plot" ; PLOTTER "HERCULES XT",1,1,720,348,24.5,18.5; COLORS "000999"; PROC clear: INT VAR return; REP control(-5,512+0,0,return); UNTIL return <> -1 PER; IF return <> 0 THEN errorstop("Graphik nicht ansprechbar!") FI; END PROC clear; PROC prepare: break(quiet); REP disable stop; continue (channel(plotter)); clear error; enable stop; IF NOT online THEN pause(100) FI UNTIL online PER; END PROC prepare; PROC initplot: END PROC initplot; PROC endplot: INT VAR dummy; pause; control (-5,2,0, dummy); END PROC endplot; PROC home: moveto(0,347); END PROC home; PROC moveto(INT CONST x,y): INT VAR dummy; control (-7,x,(347-y),dummy); (* move nach SHARD-AT *) END PROC moveto; PROC set pixel(INT CONST x,y): moveto(x,(347-y)); point; END PROC set pixel; PROC drawto(INT CONST x,y): INT VAR dummy; control(-6,x,(347-y),dummy); (* draw nach SHARD-AT *) END PROC drawto; PROC foreground (INT VAR type): ROW 5 ROW 4 INT CONST nibble :: ROW 5 ROW 4 INT: (ROW 4 INT : ( 4369, 4369, 4369, 4369), (* durhgezogene Linie *) ROW 4 INT : ( 17, 17, 17, 17), (* gepunktete Linie *) ROW 4 INT : ( 4369, 0, 4369, 0), (* kurz gestrichelt *) ROW 4 INT : ( 4369, 4369, 0, 0), (* lang gestrichelt *) ROW 4 INT : ( 4369, 4369, 4369, 0)); (* gestrichpunktet *); INT VAR dummy; IF type > 5 OR type < 0 THEN type := 0 FI; IF type = 0 THEN control( -9, 0, 0, dummy); control(-10, 0, 0, dummy); (* loeschen *) ELSE control( -9, nibble[type][2], nibble[type][1], dummy); control(-10, nibble[type][4], nibble[type][3], dummy) 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): std circle (x,y,rad,from,to) 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): END PROC fill;