Код:
(* Файл определений для графического протокола версия 2.0 *)
CONST
MAXCOORDINATES = 100; (* максимальное число пар координат *)
MAXTEXTLENGTH = 95; (* максимальное число символов в строке, <= 95 *)
MAXBUFFERLENGTH = 256; (* максимальный размер буфера для изображения *)
TYPE
COORDINATES = (* массив координат *)
ARRAY [1..MAXCOORDINATES] OF RECORD X,Y:INTEGER; END;
TEXTSTRING = (* строка текста для вывода *)
PACKED ARRAY [1..MAXTEXTLENGTH] OF CHAR;
COLORTABLE = (* таблица цветности *)
PACKED ARRAY [0..15] OF CHAR;
CELL = (* образ символа для LOADFONT *)
ARRAY [1..18] OF INTEGER;
IMAGEBUFFER = (* буфер изображения для PUTPICTURE *)
ARRAY [1..MAXBUFFERLENGTH] OF INTEGER;
HATC = (* пользовательский образец штриховки *)
ARRAY [1..4] OF INTEGER;
PATT = (* пользовательский узор заполнения *)
ARRAY [1..16] OF INTEGER;
PROCEDURE ARC(X1, Y1, R, CCW, XC, YC, ICOLOR, X2, Y2, PIE : INTEGER); EXTERNAL;
PROCEDURE ARC2(XC, YC, C, R, CCW, DX1, DY1, DX2, DY2, PIE : INTEGER); EXTERNAL;
PROCEDURE ARC3(X1, Y1, X2, Y2, X3, Y3, C, PIE : INTEGER); EXTERNAL;
PROCEDURE BEGFIGURE; EXTERNAL;
PROCEDURE BFILL(X, Y, ICOLOR, FILLER : INTEGER); EXTERNAL;
PROCEDURE BLINK(ONOFF : INTEGER); EXTERNAL;
PROCEDURE CCURVE(N : INTEGER; VAR COORD : COORDINATES; ICOLOR, CURSET : INTEGER); EXTERNAL;
PROCEDURE CHARACTER(X, Y, ICOLOR : INTEGER; CHR : CHAR); EXTERNAL;
PROCEDURE CIRC2(XC, YC, X1, Y1, C : INTEGER); EXTERNAL;
PROCEDURE CIRC3(X1, Y1, X2, Y2, X3, Y3, C : INTEGER); EXTERNAL;
PROCEDURE CIRCLE(XC, YC, ICOLOR, R : INTEGER); EXTERNAL;
PROCEDURE CLIPPING(ONOFF : INTEGER); EXTERNAL;
PROCEDURE COLOR(ICOLOR : INTEGER); EXTERNAL;
PROCEDURE CURVE(N : INTEGER; VAR COORD : COORDINATES; ICOLOR : INTEGER); EXTERNAL;
PROCEDURE DCSCLOSE; EXTERNAL;
PROCEDURE DCSOPEN; EXTERNAL;
PROCEDURE DEFLOCATOR(ONOFF : INTEGER); EXTERNAL;
PROCEDURE DOFILL(ONOFF : INTEGER); EXTERNAL;
PROCEDURE DOT(X, Y, ICOLOR : INTEGER); EXTERNAL;
PROCEDURE DOTL(X, Y, ICOLOR : INTEGER); EXTERNAL;
PROCEDURE DRAWMODE(DWMODE : INTEGER); EXTERNAL;
PROCEDURE DUMPPICTURE(X, Y, NX, NY, DIR : INTEGER); EXTERNAL;
PROCEDURE EARC(X1, Y1, RX, RY, CCW, XC, YC, ICOLOR, X2, Y2, PIE : INTEGER); EXTERNAL;
PROCEDURE EARC2(XC, YC, C, XR1, YR1, XR2, YR2, DX1, DY1, DX2, DY2, PIE : INTEGER); EXTERNAL;
PROCEDURE ELLI2(XC, YC, C, XR1, YR1, XR2, YR2 : INTEGER); EXTERNAL;
PROCEDURE ELLIPS(X, Y, C, RX, RY : INTEGER); EXTERNAL;
PROCEDURE ENDFIGURE; EXTERNAL;
PROCEDURE FILL(X, Y, ICOLOR, FILLER : INTEGER); EXTERNAL;
PROCEDURE GCURSOR(ONOFF : INTEGER); EXTERNAL;
PROCEDURE GETCOLORS(VAR COLORS : COLORTABLE); EXTERNAL;
FUNCTION GETCOORD(VAR X, Y : INTEGER) : INTEGER; EXTERNAL;
FUNCTION GETCURRENT(VAR X, Y : INTEGER) : INTEGER; EXTERNAL;
FUNCTION GETLOCATOR(VAR X, Y : INTEGER) : INTEGER; EXTERNAL;
PROCEDURE GETPICTURE(N : INTEGER; PROCEDURE RECEIVER); EXTERNAL;
FUNCTION GETPIXEL(X, Y : INTEGER) : INTEGER; EXTERNAL;
FUNCTION GETWCURRENT(VAR X, Y : INTEGER) : INTEGER; EXTERNAL;
FUNCTION GETWLOCATOR(VAR X, Y : INTEGER) : INTEGER; EXTERNAL;
FUNCTION GPGETW(VAR WORD : INTEGER) : INTEGER; EXTERNAL;
FUNCTION GPTTIW(VAR WORD : INTEGER) : INTEGER; EXTERNAL;
PROCEDURE HARDCOPY(X0, Y0, X1, Y1, DIR, OFFSET : INTEGER); EXTERNAL;
PROCEDURE LINE(X1, Y1, X2, Y2, ICOLOR : INTEGER); EXTERNAL;
PROCEDURE LINESTYLE(NSTYLE : INTEGER); EXTERNAL;
PROCEDURE LOADFONT(C : CHAR; VAR FONT : CELL); EXTERNAL;
PROCEDURE LOADPICTURE(VAR COLORS : COLORTABLE; X, Y, NX, NY, DEN800, TB : INTEGER); EXTERNAL;
PROCEDURE LOCATOR(ONOFF : INTEGER); EXTERNAL;
PROCEDURE MAPPING(ONOFF : INTEGER); EXTERNAL;
PROCEDURE MARKER(X, Y, ICOLOR : INTEGER); EXTERNAL;
PROCEDURE MODE100; EXTERNAL;
PROCEDURE MODE52; EXTERNAL;
PROCEDURE NEWPICTURE(DWMODE, ICOLOR : INTEGER); EXTERNAL;
PROCEDURE NEWREGION; EXTERNAL;
PROCEDURE NVIEWPORT(XVLEFT, YVBOTTOM, XVRIGHT, YVTOP : INTEGER); EXTERNAL;
PROCEDURE POLYGN(N : INTEGER; VAR COORD : COORDINATES; ICOLOR, POLSET : INTEGER); EXTERNAL;
PROCEDURE POLYLN(N : INTEGER; VAR COORD : COORDINATES; ICOLOR : INTEGER); EXTERNAL;
PROCEDURE POLYMARKER(N : INTEGER; VAR COORD : COORDINATES; ICOLOR : INTEGER); EXTERNAL;
PROCEDURE POSITION(X, Y : INTEGER); EXTERNAL;
PROCEDURE PUTCOLORS(VAR COLORS : COLORTABLE); EXTERNAL;
PROCEDURE PUTLOCATOR(X, Y : INTEGER); EXTERNAL;
PROCEDURE PUTPICTURE(VAR BUFFER : IMAGEBUFFER; N : INTEGER); EXTERNAL;
PROCEDURE PUTTCUR(ROW, COL : INTEGER); EXTERNAL;
PROCEDURE RARC(DX1, DY1, R, CCW, DXC, DYC, DX2, DY2, PIE : INTEGER); EXTERNAL;
PROCEDURE RARC2(DXC, DYC, R, CCW, DX1, DY1, DX2, DY2, PIE : INTEGER); EXTERNAL;
PROCEDURE RARC3(DX1, DY1, DX2, DY2, DX3, DY3, PIE : INTEGER); EXTERNAL;
PROCEDURE RBFILL(DX, DY, FILLER : INTEGER); EXTERNAL;
PROCEDURE RCCURVE(N : INTEGER; VAR COORD : COORDINATES; POLSET : INTEGER); EXTERNAL;
PROCEDURE RCHAR(DX, DY : INTEGER; CHR : CHAR); EXTERNAL;
PROCEDURE RCIRC2(DXC, DYC, DX1, DY1 : INTEGER); EXTERNAL;
PROCEDURE RCIRC3(DX1, DY1, DX2, DY2, DX3, DY3 : INTEGER); EXTERNAL;
PROCEDURE RCIRCLE(DXC, DYC, R : INTEGER); EXTERNAL;
PROCEDURE RCURVE(N : INTEGER; VAR DCOORD : COORDINATES); EXTERNAL;
PROCEDURE RDOT(DX, DY : INTEGER); EXTERNAL;
PROCEDURE RDOTL(DX, DY : INTEGER); EXTERNAL;
PROCEDURE REARC(DX1, DY1, RX, RY, CCW, DXC, DYC, DX2, DY2, PIE : INTEGER); EXTERNAL;
PROCEDURE REARC2(DXC, DYC, DXR1, DYR1, DXR2, DYR2, DX1, DY1, DX2, DY2, PIE : INTEGER); EXTERNAL;
PROCEDURE RECT(X1, Y1, X2, Y2, ICOLOR : INTEGER); EXTERNAL;
PROCEDURE RELLI2(DXC, DYC, DXR1, DYR1, DXR2, DYR2 : INTEGER); EXTERNAL;
PROCEDURE RELLIPS(DXC, DYC, RX, RY : INTEGER); EXTERNAL;
PROCEDURE REQCURRENT; EXTERNAL;
PROCEDURE REQLOCATOR; EXTERNAL;
PROCEDURE REQWCURRENT; EXTERNAL;
PROCEDURE REQWLOCATOR; EXTERNAL;
PROCEDURE RESTPICTURE(X, Y, NX, NY, DIR : INTEGER); EXTERNAL;
PROCEDURE RFILL(DX, DY, FILLER : INTEGER); EXTERNAL;
PROCEDURE RLINE(DX, DY : INTEGER); EXTERNAL;
PROCEDURE RMARKER(DX, DY : INTEGER); EXTERNAL;
PROCEDURE RPOLYGN(N : INTEGER; VAR COORD : COORDINATES; POLSET : INTEGER); EXTERNAL;
PROCEDURE RPOLYLN(N : INTEGER; VAR DCOORD : COORDINATES); EXTERNAL;
PROCEDURE RPOLYMARKER(N : INTEGER; VAR DCOORD : COORDINATES); EXTERNAL;
PROCEDURE RPOSITION(DX, DY : INTEGER); EXTERNAL;
PROCEDURE RRECT(DX, DY : INTEGER); EXTERNAL;
PROCEDURE RTEXT(DX, DY, N : INTEGER; VAR TXT : TEXTSTRING); EXTERNAL;
PROCEDURE SAVEPICTURE(X, Y, NX, NY, DIR : INTEGER); EXTERNAL;
PROCEDURE SCROLLREGION(TOP, BOT : INTEGER); EXTERNAL;
PROCEDURE SETCHTYP(SX, SY, CHUP, CHDIR, SPACE, SKEW : INTEGER); EXTERNAL;
PROCEDURE SETCHVEC(XB, YB, XV, YV, DX, DY : INTEGER); EXTERNAL;
PROCEDURE SETCOLOR(ICOLOR, VALUE : INTEGER); EXTERNAL;
PROCEDURE SETDENSITY(DEN : INTEGER); EXTERNAL;
PROCEDURE SETEDGE(ONOFF : INTEGER); EXTERNAL;
PROCEDURE SETFILLER(FILLER : INTEGER); EXTERNAL;
PROCEDURE SETFONT(FONT : INTEGER); EXTERNAL;
PROCEDURE SETGCURSOR(CTYPE, CSIZE, CCOLOR : INTEGER); EXTERNAL;
PROCEDURE SETLOCATOR(LTYPE, LSIZE, LCOLOR : INTEGER); EXTERNAL;
PROCEDURE SETMARKER(MTYPE, MSIZE : INTEGER); EXTERNAL;
PROCEDURE SOFTRESET; EXTERNAL;
PROCEDURE TCHAR(CHR : CHAR); EXTERNAL;
PROCEDURE TCURSOR(ONOFF : INTEGER); EXTERNAL;
PROCEDURE TEXT(X, Y, ICOLOR, N : INTEGER; VAR TXT : TEXTSTRING); EXTERNAL;
PROCEDURE USERHATCH(VAR HATCH : HATC); EXTERNAL;
PROCEDURE USERPATTERN(VAR PATTERN : PATT); EXTERNAL;
PROCEDURE USERSTYLE(PATTRN : INTEGER); EXTERNAL;
PROCEDURE VIEWPORT(XVLEFT, YVBOTTOM, XVRIGHT, YVTOP : INTEGER); EXTERNAL;
PROCEDURE WINDOW(XWLEFT, YWBOTTOM, XWRIGHT, YWTOP : INTEGER); EXTERNAL;