DEFINITION MODULE GRAPH1;
FROM SYSTEM IMPORT WORD;
VAR HLINE:PROCEDURE(INTEGER,INTEGER,INTEGER);
    PLOT,LINETO:PROCEDURE (INTEGER,INTEGER);
    AREA:PROCEDURE(INTEGER,INTEGER,INTEGER,INTEGER);
PROCEDURE QLINE(N,D:INTEGER);
PROCEDURE DHLINE(X1,Y,X2:INTEGER);
PROCEDURE DPLOT(X,Y:INTEGER);
PROCEDURE SETPOS(X,Y:INTEGER);
PROCEDURE POINT(X,Y:INTEGER):BOOLEAN;
PROCEDURE DLINETO(X,Y:INTEGER);
PROCEDURE DAREA(x,y,dx,dy:INTEGER);
PROCEDURE SETMODE(C:CARDINAL);
PROCEDURE SETMASK(W:WORD);
PROCEDURE SETBRKN(SOLID,GAP:CARDINAL);
END GRAPH1.
 
IMPLEMENTATION MODULE GRAPH1;
FROM GRAPH0 IMPORT SCRNAD,SCRDOT;
VAR [0BD0EH] PXPY:CARDINAL;
VAR [0BD0EH] PY,PX:SHORTCARD;
VAR MASK,MODE:SHORTCARD;
    BRKNHL,GAPLIN,IXSTO:CARDINAL;
 
PROCEDURE QLINE(N,D:INTEGER);HEX
D1 C1 E1 45 C5 C5 D5 ED 5B (@PXPY) 7D 26 03 A4 7B
C4 (@PXYALT) 32 (@PY) 2D 2D 7D A4 7A C4 (@PXYALT) 32 (@PX)
   3E 04 90 30 01 47 A4 28 12 C5 CD (@SCRDOT) 5A D9
DD 21 (@LY1) 26 0C 1E 07 C1 C3 (@DLINETO+71) 7A CB 50 20
04 81 4F 18 1A 91 4A 57 18 15
END QLINE;
 
PROCEDURE DHLINE(X1,Y,X2:INTEGER);HEX
DD E1 D1 C1 E1 C5 C5 C5 DD E5 7D BD 30 01 EB 3E
BF 91 55 4B 5F 7A CD (@SCRNAD) 5A CD (@XPART) 47 3A (@MODE)
   FE 02 28 1B 38 05 3A (@MASK) ED 44 ED 44 4F
END DHLINE;
PROCEDURE L0J;HEX
79 AE A2 AE 77 18 01 71 2C 10 FC 79 AE A3 AE 77
C9 END L0J;
PROCEDURE L0X;HEX
7A AE 77 18 03 7E 2F 77 2C 10 FA 7B AE 77 C9
END L0X;
 
PROCEDURE DPLOT(X,Y:INTEGER);HEX
E1 D1 C1 C5 C5 E5 3E BF 93 5F 51 ED 53 (@PXPY) CD
(@SCRDOT) 3A (@MODE) FE 02 28 1A 38 11 D9 2A (@BRKNHL) 2D
CC (@BRKNCH) 22 (@BRKNHL) CB 7E C8 D9 CB 97 ED 44 AE A2
AE 77 C9 7A AE 77 C9
END DPLOT;
 
PROCEDURE SETPOS(X,Y:INTEGER);HEX
C1 D1 3E BF 93 E1 E5 E5 C5 65 6F 22 (@PXPY) C9
END SETPOS;

PROCEDURE SETBRKN(SOLID,GAP:CARDINAL);
HEX C1 E1 D1 D5 E5 C5 63 22 (@GAPLIN) 22 (@BRKNHL) 2E 05
END SETBRKN;
PROCEDURE SETMODE(C:CARDINAL);
HEX 7D 32 (@MODE) C9
END SETMODE;

PROCEDURE SETMASK(W:WORD);
HEX 32 (@MASK) C9
END SETMASK;

PROCEDURE POINT(X,Y:INTEGER):BOOLEAN;HEX
E1 D1 3E BF 93 D1 D5 D5 53 5F E5 CD (@SCRDOT) 7A A6
C8 37 C9 END POINT;
 
PROCEDURE XPART;HEX
E5 18 02 E5 D9 26 BD 7B E6 07 C6 20 6F 56 79 E6
07 C6 28 6F 5E 79 1F 1F 1F E1 95 E6 1F C0 7A A3
57 AF 5F 3C C9 END XPART;
 
PROCEDURE DLINETO(X,Y:INTEGER);HEX
E1 D1 C1 41 3E BF 93 4F C5 C5 E5 ED 5B (@PXPY) ED
43 (@PXPY) 26 00 7B 91 30 02 ED 44 CB 14 4F 78 92
30 02 ED 44 CB 14 B9 20 02 A7 C8 E5 D9 57 D9 D2
(@IXDLP+20) CD (@SCRDOT) 5A 79 D9 5F C1 CB 10 CB 3F ED 44
08 DD 21 (@LVR) 26 06 3A (@MODE) 2E 14 FE 02 28 07
30 5A 2E 00 ED 44 4F AF CB 48 28 06 7C CB 40 28
01 7B 85 6F 26 00 EB DD 19 EB DD 22 (@IXSTO) DD 21
(@DUM1ST) 2A (@BRKNHL) CB 50 D9 CA (@YPARTU) 3E 07 90 47 79
90 30 02 41 AF 4F E6 07 CB 39 CB 39 CB 39 57 0C
04 CD (@IXDLP) 06 08 7D C6 20 6F 38 03 7C 90 67 0D
20 EF 42 15 F8 END DLINETO;
PROCEDURE IXDLP; HEX
CD F4 03 24 10 FA C9 2E 24 CB 97 CD (@DLINETO+84) D9 22
(@BRKNHL) D9 C9 CD (@SCRDOT) 5A 04 3A (@MODE) FE 02 DD 21 
(@LHR+18) 28 09 30 65 DD 21 (@LHR) ED 44 57 79 D9 C1
END IXDLP;
PROCEDURE LHJ;HEX
CB 38 42 30 06 11 07 00 DD 19 50 5F 08 7A CB 3F
ED 44 08 20 20 08 83 38 09 08 D9 CD F4 03 D9 10
F4 C9 92 08 D9 25 10 F3 06 08 7D D6 20 6F 38 EB
7C 80 67 18 E6 D9 3E 09 90 47 D9 08 83 38 09 08
D9 CD F4 03 D9 10 F4 C9 92 08 D9 24 10 F3 06 08 
7D C6 20 6F 38 EB 7C 90 67 18 E6 DD 21 (@LHR+34) CB
97 ED 44 57 79 D9 C1 2A (@BRKNHL) CD (@LHJ) 22 (@BRKNHL)
C9 END LHJ;
 
PROCEDURE DAREA(x,y,dx,dy:INTEGER);
HEX
DD E1 C1 E1 D1 3E BF 93 5F 7D D9 D1 83 4F 7B D9
21 F8 FF 39 F9 DD E5 CD (@SCRNAD) CD (@XPART+3) 08 3A (@MODE)
   FE 02 DD 21 (@AREA1X) 28 0E 30 04 ED 44 18 03 3A
(@MASK) 4F DD 21 (@AREA1) D9 08 5F END DAREA;
PROCEDURE YPARTU;HEX
79 90 30 02 41 AF 4F E6 07 CB 39 CB 39 CB 39 57
0C 04 CD (@IXULP) 06 08 7D D6 20 6F 38 03 7C 80 67 0D
20 EF 42 15 F8 END YPARTU;
PROCEDURE IXULP;HEX
CD F4 03 25 10 FA C9 END IXULP;
 
PROCEDURE DUM1ST;
HEX DD 2A (@IXSTO) C9 END DUM1ST;
 
PROCEDURE LY1; HEX
CB 0B 30 08 2C 18 05 CB 03 30 01 2D D9 79 D9 AE
A3 AE 77 C9 CB 0B 30 08 2C 18 05 CB 03 30 01 2D
7B AE 77 C9 CB 0B 30 08 2C 18 05 CB 03 30 01 2D
D9 2D CC (@BRKNCH) CB 7C D9 C8 18 D1 END LY1;
 
PROCEDURE LVR;HEX
CD (@SDR) 08 18 CC CD (@SDL) 08 18 C6 END LVR;
PROCEDURE PXYALT;HEX
CB 55 28 02 81 C9 91 C9 END PXYALT;
PROCEDURE LVRX;HEX
CD (@SDR) 18 04 00 CD (@SDL) 08 D9 7B AE 77 C9 00
CD (@SDR) 08 18 CC CD (@SDL) 08 18 C6 END LVRX;
 
PROCEDURE LHR;HEX
CB 0B 30 08 2C 18 05 CB 03 30 01 2D 7A AE A3 AE
77 C9 CB 0B 30 08 2C 18 05 CB 03 30 01 2D 7B AE
77 C9 CB 0B 30 08 2C 18 05 CB 03 30 01 2D D9 2D
CC (@BRKNCH) CB 7C D9 C8 18 D3 END LHR;
 
PROCEDURE AREA1;HEX
E5 7B D9 E1 47 CD (@L0J) CB 09 D9 C9 END AREA1;
PROCEDURE AREA1X;HEX
E5 7B D9 E1 47 CD (@L0X) D9 C9 END AREA1X;
 
PROCEDURE SDR;HEX
D9 08 82 D0 93 D9 CB 0B 30 01 2C D9 C9 END SDR;
PROCEDURE SDL;HEX
D9 08 82 D0 93 D9 CB 03 30 01 2D D9 C9 END SDL;
 
PROCEDURE BRKNCH;HEX
CB 7C 2A (@GAPLIN) C0 6C CB FC C9 END BRKNCH;
 
BEGIN
HLINE:=DHLINE;
PLOT:=DPLOT;
LINETO:=DLINETO;
AREA:=DAREA;
MODE:=1;
END GRAPH1.
