DEFINITION MODULE GRAPH2;
PROCEDURE CIRCLE(X,Y,R:INTEGER);
PROCEDURE ELLIPSE(X,Y,RX,RY:INTEGER);
PROCEDURE FCIRCLE(X,Y,R:INTEGER);
PROCEDURE FELLIPSE(X,Y,RX,RY:INTEGER);
PROCEDURE FTRAPEZ(XL0,Y0,XR0,XL1,Y1,XR1:INTEGER);
PROCEDURE  ARC0(FX,FY,THETA,OX,OY,X,Y,R,DUM:INTEGER);
PROCEDURE EARC0(FX,FY,THETA,OX,OY,X,Y,RX,RY:INTEGER);
END GRAPH2.
IMPLEMENTATION MODULE GRAPH2;
FROM GRAPH0 IMPORT SCRDOT;
FROM GRAPH1 IMPORT PLOT,HLINE,LINETO;
 
VAR CX,CY,RADIUS,NEGRAD:INTEGER;
    XLSTO,XRSTO,YSTO,RATIO:INTEGER;
    CIRCHK,ELIFLG:BOOLEAN;
    CIRCLC,CROUT:PROC;
PROCEDURE EARC0(FX,FY,THETA,OX,OY,X,Y,RX,RY:INTEGER);
HEX 01 (@ELIPR) DD E1 D1 D9 D1 D9 E1 D9 E1 CD (@EBOX) 18
0D END EARC0;
PROCEDURE ARC0(FX,FY,THETA,OX,OY,X,Y,R,DUM:INTEGER);HEX
01 (@ELIPR+3) DD E1 D1 D1 E1 D9 E1 CD (@CBOX) FA (@RET4)
D1 D9 D1 CD (@INITLA+12H) E1 C1 D9 C1 21 EE FF 18 4D END ARC0;
PROCEDURE FELLIPSE(X,Y,RX,RY:INTEGER);
HEX 01 (@FELIPR) DD E1 D1 D9 D1 D9 E1 D9 E1 CD (@EBOX) C5
18 0C END FELLIPSE;
PROCEDURE FCIRCLE(X,Y,R:INTEGER);
HEX 01 (@FELIPR+3) DD E1 D1 E1 D9 E1 CD (@CBOX) FA (@RET4+1) CD
(@INITF) 18 24 END FCIRCLE;
PROCEDURE ELLIPSE(X,Y,RX,RY:INTEGER);
HEX 01 (@ELIPR) DD E1 D1 D9 D1 D9 E1 D9 E1 CD (@EBOX) C5
18 0C END ELLIPSE;
PROCEDURE CIRCLE(X,Y,R:INTEGER);
HEX 01 (@ELIPR+3) DD E1 D1 E1 D9 E1 CD (@CBOX) FA (@RET4+1) CD
(@INITL) 21 FA FF END CIRCLE;
PROCEDURE GENCIRC; HEX 39 F9 DD E5 C5 0E 00 D9 C5 0E 00
CD (@SETCRC) 18 04 CB 3C CB 1D 10 FA 48 CD (@GENCLP) D1
D9 D1 2A (@CROUT) E9 END GENCIRC;
 
PROCEDURE GENCLP;HEX
7C B5 C8 E5 2A (@CIRCLC) CD 2C 16 D5 C5 D9 D5 C5 2A
(@CROUT) CD 2C 16 C1 D1 D9 C1 D1 E1 30 05 3A (@CIRCHK)
A7 C0 2B 18 DB END GENCLP;

 
PROCEDURE SETCRC;HEX
ED 4B (@RADIUS) 78 A7 28 12 FE 04 30 07 01 (@CRCLC3) 3E
09 18 19 01 (@CRCLC4) 3E 06 18 12 79 FE 10 7A 30 07
01 (@CRCLC1) 3E 0D 18 05 01 (@CRCLC2) 3E 0B ED 43 (@CIRCLC)
47 C9 END SETCRC;
 
PROCEDURE CBOX;HEX
D9 D5 D9 D1 ED 53 (@RADIUS) AF 32 (@ELIFLG) 22 (@CX) D9
22 (@CY) ED 43 (@CROUT) 3A (@CIRCHK) A7 C8 01 BF 00 CD
(@CBOX+27H) D9 F8 01 FF 00 CB 7C 28 02 19 C9 D5 EB 09 A7
ED 52 D1 C9 END CBOX;
 
PROCEDURE EBOX;HEX
CD (@CBOX+12) F8 AF 3C D5 D9 E1 ED 52 19 38 01 EB ED
53 (@RADIUS) 17 32 (@ELIFLG) AF E5 67 6F ED 52 EB E1 4F
CD (@22) 47 ED 43 (@RATIO) AF C9 END EBOX;
 
PROCEDURE INITST;HEX
21 00 00 ED 5B (@RADIUS) A7 ED 52 22 (@NEGRAD) 2A (@CY)
01 40 FF 3A (@CIRCHK) A7 C9 END INITST;
 
PROCEDURE INITL;HEX
CD (@INITST) 28 43 3A (@CX+1) CB 7C 20 53 A7 09 30 2B
FA (@INITL+24H) 28 1E CD (@INITLA) 21 43 32 ED 4B (@NEGRAD) D9
01 00 00 C9 CD (@INITLA+10) 21 43 32 01 00 00 D9 ED 4B
(@RADIUS) C9 CD (@INITLA) 21 87 64 18 EF FA (@INITL+50H) 28 08
CD (@INITLA+14) 21 87 64 18 D3 CD (@INITLA+4) 21 0F C9 18 DA
CD (@INITLA+10) 21 87 64 ED 4B (@RADIUS) D9 01 00 00 C9 A7
28 1A FA (@INITL+74H) CD (@INITLA+14) 21 43 32 01 00 00 D9 ED
4B (@NEGRAD) C9 CD (@INITLA+4) 21 43 32 18 DA CD (@INITLA+4) 21
87 64 18 EB END INITL;
 
PROCEDURE INITF;HEX
CD (@INITST) 28 0C CB 7C 20 0D 09 30 05 CD (@INITF+1BH) 18
92 CD (@INITF+1BH) 18 B9 CD (@INITF+25H) 18 D8 11 00 00 D9 ED
5B (@NEGRAD) 18 04 D9 11 00 00 D5 D9 D5 3A (@ELIFLG) A7
C4 (@ELIPSQ+3) CD (@SETSTO) 18 30  END INITF;

PROCEDURE INITLA;HEX
ED 5B (@NEGRAD) D9 11 00 00 18 09 ED 5B (@NEGRAD) D9 11
00 00 D9 D5 D9 D5 3A (@ELIFLG) A7 C4 (@ELIPSQ+3) 2A (@CX)
19 E5 D9 2A (@CY) 19 E5 2A (@PLOT) CD 2C 16 C1 C1
D1 D9 D1 C9 END INITLA;
 
PROCEDURE SETSTO;HEX
2A (@CX) A7 ED 52 22 (@XLSTO) 44 4D 19 19 22 (@XRSTO)
D9 2A (@CY) 19 22 (@YSTO) C9 END SETSTO;

PROCEDURE ELIPSQ;HEX
3A (@ELIFLG) 1F 38 01 D9 ED 4B (@RATIO) CB 7A F5 C4 (@ELIPSQ+1CH)
   CD (@6) F1 C4 (@ELIPSQ+1BH) D8 D9 C9 08 AF 67 6F ED
52 EB 08 C9 END ELIPSQ;
 
PROCEDURE ELIPR;HEX 
CD (@ELIPSQ) 2A (@CX) 19 E5 D9 2A (@CY) 19 E5 2A (@LINETO)
   CD 2C 16 C1 C1 A7 C9 END ELIPR;
 
PROCEDURE FELIPR;HEX
CD (@ELIPSQ) ED 4B (@XLSTO) 2A (@YSTO) 7C 3D FA (@FELIPR+14H) 3A
(@CIRCHK) 0F D8 C5 E5 2A (@XRSTO) E5 CD (@SETSTO) D9 C5 D9
E5 D9 E5 CD (@FTRAPEZ) 21 0C 00 39 F9 C9 END FELIPR;
 
VAR GR,GL:INTEGER;
    GRA,GLA:[0..255];
PROCEDURE FTRAPEZ(XL0,Y0,XR0,XL1,Y1,XR1:INTEGER);
HEX DD E1 E1 C1 D9 E1 D9 D1 A7 ED 52 EB E3 C5 E3 C1
C5 A7 ED 42 28 65 E5 EB CD (@FIXDIV) 32 (@GRA) 22 (@GR)
   D9 D1 D9 C1 D1 D9 C1 A7 ED 42 D5 C5 CD (@FIXDIV) 32
(@GLA) 22 (@GL) D1 C1 21 F4 FF 39 F9 DD E5 21 00
00 78 B1 C8 C5 3A (@GLA) 84 47 4D 2A (@GL) ED 5A
EB D5 3A (@GRA) 81 4F C5 D9 2A (@GR) ED 5A EB 03
C5 D5 D9 D5 D9 C5 D5 2A (@HLINE) CD 2C 16 C1 C1 C1
D1 C1 D9 E1 D1 C1 0B 18 C8 END FTRAPEZ;
PROCEDURE RET4;HEX C5 C5 D5 D5 DD E9 END RET4;

PROCEDURE FIXDIV;HEX
AF CB 7C F5 28 06 44 4D 67 6F ED 42 CD (@34) 47
C5 AF 4F CD (@22) E1 47 F1 57 5F 78 C8 EB ED 44
ED 52 C9 END FIXDIV;
 
PROCEDURE CRCLC1;HEX
D5 79 D9 E1 CB 2C CB 1D 1F E5 F5 47 79 90 D5 EB
ED 52 D1 CB 2A CB 1B CB 19 D5 41 C5 CB 2A CB 1B
CB 19 CB 2A CB 1B CB 19 91 ED 52 EB 4F D9 F1 E1
81 ED 5A D1 4A D1 CB 2A CB 1B CB 19 CB 2A CB 1B
CB 19 81 ED 52 4F EB C9 END CRCLC1;
 
PROCEDURE CRCLC2;HEX
D5 79 08 62 6B 79 87 ED 6A EB 79 4B 5A 16 00 30
01 15 91 ED 52 4F D9 08 E1 D5 41 C5 CB 2C CB 1D
1F CB 2C CB 1D 1F CB 2C CB 1D 1F 91 ED 52 EB 47
CB 21 ED 6A 7D 6C 26 00 30 01 25 80 ED 5A 4F EB
AF 67 6F 91 ED 52 4F EB D9 F1 D1 CB 2A CB 1B 1F
CB 2A CB 1B 1F CB 2A CB 1B 1F 18 60 END CRCLC2;
 
PROCEDURE CRCLC3;HEX
62 6B 79 87 ED 6A 87 ED 6A 87 ED 6A E5 87 ED 6A
87 ED 6A 79 4C 21 00 00 30 01 2B EB 91 ED 52 4F
D9 E1 7D 6C 26 00 CB 7C 28 01 25 91 ED 52 47 EB
79 87 ED 6A 87 ED 6A 87 ED 6A E5 87 ED 6A 87 ED
6A 7C 21 00 00 30 01 2B 80 ED 5A 4F EB AF 67 6F
91 ED 52 EB 4F D9 D1 7B 5A 16 00 CB 7B 28 01 15
81 ED 5A EB 4F C9 END CRCLC3;
 
PROCEDURE CRCLC4;HEX
D5 CB 7A 28 01 13 79 92 30 01 1B 4F D9 E1 D5 CB
7A 28 01 13 79 92 30 01 1B 45 6C 26 00 CB 7D 28
01 25 EB 90 ED 52 EB 4F D9 E1 7D 6C 26 00 CB 7D
28 C8 25 18 C5 END CRCLC4;
 
BEGIN
CIRCHK:=TRUE;
END GRAPH2.
