Curves

Used Exports

BUILTINS: ABS BOOLEAN BYTE DEC INC INTEGER LONGINT NEW
Display: CopyPattern Dot FrameDesc.X FrameDesc.Y ReplConst black replace white
Files: ReadByte Rider WriteByte
GraphicFrames: Defocus Deselect DrawMsg DrawMsg.col DrawMsg.f DrawMsg.mode DrawMsg.x DrawMsg.y DrawObj Focus Frame FrameDesc.X1 FrameDesc.Y1 FrameDesc.col FrameDesc.graph FrameDesc.mark FrameDesc.x FrameDesc.y LocDesc.next LocDesc.x LocDesc.y tack
Graphics: Add ColorMsg ColorMsg.col Context Method MethodDesc.allocator MethodDesc.change MethodDesc.copy MethodDesc.draw MethodDesc.module MethodDesc.new MethodDesc.read MethodDesc.selectable MethodDesc.write Msg New Object ObjectDesc ObjectDesc.col ObjectDesc.do ObjectDesc.h ObjectDesc.selected ObjectDesc.w ObjectDesc.x ObjectDesc.y WriteObj width
Oberon: CurCol

MODULE Curves; (*NW 8.11.90 / 18.4.2013*)
.MODULE Curves (KEY 9CE75735, VERSION 1, SIZE 00001BAC)
.IMPORT Display (KEY 4C08D3EA)
.IMPORT Files (KEY 73F5D686)
.IMPORT Oberon (KEY A89CCEE2)
.IMPORT Fonts (KEY F4C9F557)
.IMPORT Texts (KEY 0B9E9984)
.IMPORT Viewers (KEY 25ABF199)
.IMPORT Graphics (KEY F7357DD9)
.IMPORT Modules (KEY 41C6A19A)
.IMPORT GraphicFrames (KEY 84ABBF86)
.TYPEDESC 00000040 00000001 FFFFFFFF FFFFFFFF 00000014 00000018 FFFFFFFF
.DATA 4H
.STRING 20H "Curves"
.STRING 28H "New"
.POINTER_REFERENCES 1CH
.FIXUP T 1H
IMPORT Display, Files, Oberon, Graphics, GraphicFrames;
TYPE
Curve* = POINTER TO CurveDesc;
CurveDesc* = RECORD (Graphics.ObjectDesc)
kind*, lw*: INTEGER
END ;
(*kind: 0 = up-line, 1 = down-line, 2 = circle, 3 = ellipse*)
VAR method*: Graphics.Method;
PROCEDURE Dot(f: GraphicFrames.Frame; col, x, y: INTEGER);
BEGINa
0000a .PROC 1
0000a(4EE90014): SUB SP, SP, 14H
0001a(AFE00000): STR LNK, SP, 0H
0002a(A0E00004): STR R0, SP, 4H
0003a(A1E00008): STR R1, SP, 8H
0004a(A2E0000C): STR R2, SP, CH
0005a(A3E00010): STR R3, SP, 10H
IF (x >= f.Xb)c & (dx+7 <e f.X1f)g & (hy >= f.Yi)j & (kx+7 <l f.Y1m)n THENo Display.Dot(col,p x,q y,r Display.replace)s ENDt
0006b(80E00004): LDR R0, SP, 4H
0007b .PROC 2
0007b(D1019F4C): BLEQ MT [trap=4, pos=415]
0008c(81E0000C): LDR R1, SP, CH
0009c(80000008): LDR R0, R0, 8H
000Ac(01190000): SUB R1, R1, R0
000Bd(E5000019): BLT 25 [0025H]
000Ce(80E0000C): LDR R0, SP, CH
000De(40080007): ADD R0, R0, 7H
000Ef(81E00004): LDR R1, SP, 4H
000Ff(D101AE4C): BLEQ MT [trap=4, pos=430]
0010g(81100028): LDR R1, R1, 28H
0011g(00090001): SUB R0, R0, R1
0012h(ED000012): BGE 18 [0025H]
0013i(80E00004): LDR R0, SP, 4H
0014i(D101BB4C): BLEQ MT [trap=4, pos=443]
0015j(81E00010): LDR R1, SP, 10H
0016j(8000000C): LDR R0, R0, CH
0017j(01190000): SUB R1, R1, R0
0018k(E500000C): BLT 12 [0025H]
0019l(80E0000C): LDR R0, SP, CH
001Al(40080007): ADD R0, R0, 7H
001Bm(81E00004): LDR R1, SP, 4H
001Cm(D101CA4C): BLEQ MT [trap=4, pos=458]
001Dn(8110002C): LDR R1, R1, 2CH
001En(00090001): SUB R0, R0, R1
001Fo(ED000005): BGE 5 [0025H]
0020p(80E00008): LDR R0, SP, 8H
0021q(81E0000C): LDR R1, SP, CH
0022r(82E00010): LDR R2, SP, 10H
0023s(43000000): MOV R3, R0, 0H
0024t .FIXUP P
0024t(F710E024): BL MOD1 [Display] PROC14
ENDu Dot;
0025u(8FE00000): LDR LNK, SP, 0H
0026u(4EE80014): ADD SP, SP, 14H
0027u(C700000F): B LNK
PROCEDURE mark(f: GraphicFrames.Frame; col, x, y: INTEGER);
BEGINv DEC(x, 3);w DEC(y, 3);x
0028v(4EE90014): SUB SP, SP, 14H
0029v(AFE00000): STR LNK, SP, 0H
002Av(A0E00004): STR R0, SP, 4H
002Bv(A1E00008): STR R1, SP, 8H
002Cv(A2E0000C): STR R2, SP, CH
002Dv(A3E00010): STR R3, SP, 10H
002Ew(80E0000C): LDR R0, SP, CH
002Fw(40090003): SUB R0, R0, 3H
0030w(A0E0000C): STR R0, SP, CH
0031x(80E00010): LDR R0, SP, 10H
0032x(40090003): SUB R0, R0, 3H
0033x(A0E00010): STR R0, SP, 10H
IF (x >= f.Xy)z & (ax+7 <b f.X1c)d & (ey >= f.Yf)g & (hy+7 <i f.Y1j)k THENl
0034y(80E00004): LDR R0, SP, 4H
0035y(D102754C): BLEQ MT [trap=4, pos=629]
0036z(81E0000C): LDR R1, SP, CH
0037z(80000008): LDR R0, R0, 8H
0038z(01190000): SUB R1, R1, R0
0039a(E5000025): BLT 37 [005FH]
003Ab(80E0000C): LDR R0, SP, CH
003Bb(40080007): ADD R0, R0, 7H
003Cc(81E00004): LDR R1, SP, 4H
003Dc(D102844C): BLEQ MT [trap=4, pos=644]
003Ed(81100028): LDR R1, R1, 28H
003Fd(00090001): SUB R0, R0, R1
0040e(ED00001E): BGE 30 [005FH]
0041f(80E00004): LDR R0, SP, 4H
0042f(D102914C): BLEQ MT [trap=4, pos=657]
0043g(81E00010): LDR R1, SP, 10H
0044g(8000000C): LDR R0, R0, CH
0045g(01190000): SUB R1, R1, R0
0046h(E5000018): BLT 24 [005FH]
0047i(80E00010): LDR R0, SP, 10H
0048i(40080007): ADD R0, R0, 7H
0049j(81E00004): LDR R1, SP, 4H
004Aj(D102A04C): BLEQ MT [trap=4, pos=672]
004Bk(8110002C): LDR R1, R1, 2CH
004Ck(00090001): SUB R0, R0, R1
004Dl(ED000011): BGE 17 [005FH]
IF col = Display.black THENm Display.ReplConst(Display.black,n x,o y,p 7,q 7,r Display.replace)s
004Em(80E00008): LDR R0, SP, 8H
004Fm(E9000008): BNE 8 [0058H]
0050n(40000000): MOV R0, R0, 0H
0051o(81E0000C): LDR R1, SP, CH
0052p(82E00010): LDR R2, SP, 10H
0053q(43000007): MOV R3, R0, 7H
0054r(44000007): MOV R4, R0, 7H
0055s(45000000): MOV R5, R0, 0H
ELSEt Displayu.CopyPattern(col,v GraphicFrames.tack,w x,x y,y Display.replace)z
0056t .FIXUP P
0056t(F710F032): BL MOD1 [Display] PROC15
0057u(E7000007): B 7 [005FH]
0058v(80E00008): LDR R0, SP, 8H
0059w .FIXUP D
0059w(8D900059): LDR SB, MT, MOD9 [GraphicFrames]
005Aw(81D00005): LDR R1, SB, VAR5
005Bx(82E0000C): LDR R2, SP, CH
005Cy(83E00010): LDR R3, SP, 10H
005Dz(44000000): MOV R4, R0, 0H
ENDa
005Ea .FIXUP P
005Ea(F7110008): BL MOD1 [Display] PROC16
END
ENDb mark;
005Fb(8FE00000): LDR LNK, SP, 0H
0060b(4EE80014): ADD SP, SP, 14H
0061b(C700000F): B LNK
PROCEDURE line(f: GraphicFrames.Frame; col: INTEGER; x, y, w, h, d: LONGINT);
VAR x1, y1, u: LONGINT;
BEGINc
0062c(4EE9002C): SUB SP, SP, 2CH
0063c(AFE00000): STR LNK, SP, 0H
0064c(A0E00004): STR R0, SP, 4H
0065c(A1E00008): STR R1, SP, 8H
0066c(A2E0000C): STR R2, SP, CH
0067c(A3E00010): STR R3, SP, 10H
0068c(A4E00014): STR R4, SP, 14H
0069c(A5E00018): STR R5, SP, 18H
006Ac(A6E0001C): STR R6, SP, 1CH
IF h < w THENd
006Bd(80E00018): LDR R0, SP, 18H
006Cd(81E00014): LDR R1, SP, 14H
006Dd(00090001): SUB R0, R0, R1
006Ed(ED000030): BGE 48 [009FH]
x1 := x+w;e u := (h-w)f DIV 2;g
006Fe(80E0000C): LDR R0, SP, CH
0070e(81E00014): LDR R1, SP, 14H
0071e(00080001): ADD R0, R0, R1
0072e(A0E00020): STR R0, SP, 20H
0073f(80E00018): LDR R0, SP, 18H
0074f(81E00014): LDR R1, SP, 14H
0075f(00090001): SUB R0, R0, R1
0076g(40020001): ASR R0, R0, 1H
0077g(A0E00028): STR R0, SP, 28H
IF d = -1 THENh INC(y, h) ENDi ;
0078h(80E0001C): LDR R0, SP, 1CH
0079h(5009FFFF): SUB R0, R0, FFFFFFFFH
007Ah(E9000004): BNE 4 [007FH]
007Bi(80E00010): LDR R0, SP, 10H
007Ci(81E00018): LDR R1, SP, 18H
007Di(00080001): ADD R0, R0, R1
007Ei(A0E00010): STR R0, SP, 10H
WHILE x < x1 DOj
007Fj(80E0000C): LDR R0, SP, CH
0080j(81E00020): LDR R1, SP, 20H
0081j(00090001): SUB R0, R0, R1
0082j(ED00001B): BGE 27 [009EH]
Dot(f,k col,l x,m y)n;o INC(x);p
0083k(80E00004): LDR R0, SP, 4H
0084l(81E00008): LDR R1, SP, 8H
0085m(82E0000C): LDR R2, SP, CH
0086n(83E00010): LDR R3, SP, 10H
0087o(F7FFFF78): BL -136 [0000H]
0088p(80E0000C): LDR R0, SP, CH
0089p(40080001): ADD R0, R0, 1H
008Ap(A0E0000C): STR R0, SP, CH
IF u < 0 THENq INC(u, h) ELSEr INCs(u, h-w)t;u INC(y, d) ENDv
008Bq(80E00028): LDR R0, SP, 28H
008Cq(40090000): SUB R0, R0, 0H
008Dq(ED000005): BGE 5 [0093H]
008Er(80E00028): LDR R0, SP, 28H
008Fr(81E00018): LDR R1, SP, 18H
0090r(00080001): ADD R0, R0, R1
0091r(A0E00028): STR R0, SP, 28H
0092s(E700000A): B 10 [009DH]
0093t(80E00018): LDR R0, SP, 18H
0094t(81E00014): LDR R1, SP, 14H
0095t(00090001): SUB R0, R0, R1
0096u(81E00028): LDR R1, SP, 28H
0097u(01180000): ADD R1, R1, R0
0098u(A1E00028): STR R1, SP, 28H
0099v(80E00010): LDR R0, SP, 10H
009Av(81E0001C): LDR R1, SP, 1CH
009Bv(00080001): ADD R0, R0, R1
009Cv(A0E00010): STR R0, SP, 10H
ENDw
009Dw(E7FFFFE1): B -31 [007FH]
ELSE y1x := y+h;y u := (w-h)z DIV 2;a
009Ex(E700002F): B 47 [00CEH]
009Fy(80E00010): LDR R0, SP, 10H
00A0y(81E00018): LDR R1, SP, 18H
00A1y(00080001): ADD R0, R0, R1
00A2y(A0E00024): STR R0, SP, 24H
00A3z(80E00014): LDR R0, SP, 14H
00A4z(81E00018): LDR R1, SP, 18H
00A5z(00090001): SUB R0, R0, R1
00A6a(40020001): ASR R0, R0, 1H
00A7a(A0E00028): STR R0, SP, 28H
IF d = -1 THENb INC(x, w) ENDc ;
00A8b(80E0001C): LDR R0, SP, 1CH
00A9b(5009FFFF): SUB R0, R0, FFFFFFFFH
00AAb(E9000004): BNE 4 [00AFH]
00ABc(80E0000C): LDR R0, SP, CH
00ACc(81E00014): LDR R1, SP, 14H
00ADc(00080001): ADD R0, R0, R1
00AEc(A0E0000C): STR R0, SP, CH
WHILE y < y1 DOd
00AFd(80E00010): LDR R0, SP, 10H
00B0d(81E00024): LDR R1, SP, 24H
00B1d(00090001): SUB R0, R0, R1
00B2d(ED00001B): BGE 27 [00CEH]
Dot(f,e col,f x,g y)h;i INC(y);j
00B3e(80E00004): LDR R0, SP, 4H
00B4f(81E00008): LDR R1, SP, 8H
00B5g(82E0000C): LDR R2, SP, CH
00B6h(83E00010): LDR R3, SP, 10H
00B7i(F7FFFF48): BL -184 [0000H]
00B8j(80E00010): LDR R0, SP, 10H
00B9j(40080001): ADD R0, R0, 1H
00BAj(A0E00010): STR R0, SP, 10H
IF u < 0 THENk INC(u, w) ELSEl INCm(u, w-h)n;o INC(x, d) ENDp
00BBk(80E00028): LDR R0, SP, 28H
00BCk(40090000): SUB R0, R0, 0H
00BDk(ED000005): BGE 5 [00C3H]
00BEl(80E00028): LDR R0, SP, 28H
00BFl(81E00014): LDR R1, SP, 14H
00C0l(00080001): ADD R0, R0, R1
00C1l(A0E00028): STR R0, SP, 28H
00C2m(E700000A): B 10 [00CDH]
00C3n(80E00014): LDR R0, SP, 14H
00C4n(81E00018): LDR R1, SP, 18H
00C5n(00090001): SUB R0, R0, R1
00C6o(81E00028): LDR R1, SP, 28H
00C7o(01180000): ADD R1, R1, R0
00C8o(A1E00028): STR R1, SP, 28H
00C9p(80E0000C): LDR R0, SP, CH
00CAp(81E0001C): LDR R1, SP, 1CH
00CBp(00080001): ADD R0, R0, R1
00CCp(A0E0000C): STR R0, SP, CH
ENDq
00CDq(E7FFFFE1): B -31 [00AFH]
END
ENDr line;
00CEr(8FE00000): LDR LNK, SP, 0H
00CFr(4EE8002C): ADD SP, SP, 2CH
00D0r(C700000F): B LNK
PROCEDURE circle(f: GraphicFrames.Frame; col: INTEGER; x0, y0, r: LONGINT);
VAR x, y, u: LONGINT;
BEGINs u := 1 - r;t x := r;u y := 0;v
00D1s(4EE90024): SUB SP, SP, 24H
00D2s(AFE00000): STR LNK, SP, 0H
00D3s(A0E00004): STR R0, SP, 4H
00D4s(A1E00008): STR R1, SP, 8H
00D5s(A2E0000C): STR R2, SP, CH
00D6s(A3E00010): STR R3, SP, 10H
00D7s(A4E00014): STR R4, SP, 14H
00D8t(40000001): MOV R0, R0, 1H
00D9t(81E00014): LDR R1, SP, 14H
00DAt(00090001): SUB R0, R0, R1
00DBt(A0E00020): STR R0, SP, 20H
00DCu(80E00014): LDR R0, SP, 14H
00DDu(A0E00018): STR R0, SP, 18H
00DEv(40000000): MOV R0, R0, 0H
00DFv(A0E0001C): STR R0, SP, 1CH
WHILE y <= x DOw
00E0w(80E0001C): LDR R0, SP, 1CH
00E1w(81E00018): LDR R1, SP, 18H
00E2w(00090001): SUB R0, R0, R1
00E3w(EE000061): BGT 97 [0145H]
Dot(f,x col,y x0+x,z y0+y)a;b
00E4x(80E00004): LDR R0, SP, 4H
00E5y(81E00008): LDR R1, SP, 8H
00E6z(82E0000C): LDR R2, SP, CH
00E7z(83E00018): LDR R3, SP, 18H
00E8z(02280003): ADD R2, R2, R3
00E9a(83E00010): LDR R3, SP, 10H
00EAa(84E0001C): LDR R4, SP, 1CH
00EBa(03380004): ADD R3, R3, R4
00ECb(F7FFFF13): BL -237 [0000H]
Dot(f,c col,d x0+y,e y0+x)f;g
00EDc(80E00004): LDR R0, SP, 4H
00EEd(81E00008): LDR R1, SP, 8H
00EFe(82E0000C): LDR R2, SP, CH
00F0e(83E0001C): LDR R3, SP, 1CH
00F1e(02280003): ADD R2, R2, R3
00F2f(83E00010): LDR R3, SP, 10H
00F3f(84E00018): LDR R4, SP, 18H
00F4f(03380004): ADD R3, R3, R4
00F5g(F7FFFF0A): BL -246 [0000H]
Dot(f,h col,i x0-y,j y0+x)k;l
00F6h(80E00004): LDR R0, SP, 4H
00F7i(81E00008): LDR R1, SP, 8H
00F8j(82E0000C): LDR R2, SP, CH
00F9j(83E0001C): LDR R3, SP, 1CH
00FAj(02290003): SUB R2, R2, R3
00FBk(83E00010): LDR R3, SP, 10H
00FCk(84E00018): LDR R4, SP, 18H
00FDk(03380004): ADD R3, R3, R4
00FEl(F7FFFF01): BL -255 [0000H]
Dot(f,m col,n x0-x,o y0+y)p;q
00FFm(80E00004): LDR R0, SP, 4H
0100n(81E00008): LDR R1, SP, 8H
0101o(82E0000C): LDR R2, SP, CH
0102o(83E00018): LDR R3, SP, 18H
0103o(02290003): SUB R2, R2, R3
0104p(83E00010): LDR R3, SP, 10H
0105p(84E0001C): LDR R4, SP, 1CH
0106p(03380004): ADD R3, R3, R4
0107q(F7FFFEF8): BL -264 [0000H]
Dot(f,r col,s x0-x,t y0-y)u;v
0108r(80E00004): LDR R0, SP, 4H
0109s(81E00008): LDR R1, SP, 8H
010At(82E0000C): LDR R2, SP, CH
010Bt(83E00018): LDR R3, SP, 18H
010Ct(02290003): SUB R2, R2, R3
010Du(83E00010): LDR R3, SP, 10H
010Eu(84E0001C): LDR R4, SP, 1CH
010Fu(03390004): SUB R3, R3, R4
0110v(F7FFFEEF): BL -273 [0000H]
Dot(f,w col,x x0-y,y y0-x)z;a
0111w(80E00004): LDR R0, SP, 4H
0112x(81E00008): LDR R1, SP, 8H
0113y(82E0000C): LDR R2, SP, CH
0114y(83E0001C): LDR R3, SP, 1CH
0115y(02290003): SUB R2, R2, R3
0116z(83E00010): LDR R3, SP, 10H
0117z(84E00018): LDR R4, SP, 18H
0118z(03390004): SUB R3, R3, R4
0119a(F7FFFEE6): BL -282 [0000H]
Dot(f,b col,c x0+y,d y0-x)e;f
011Ab(80E00004): LDR R0, SP, 4H
011Bc(81E00008): LDR R1, SP, 8H
011Cd(82E0000C): LDR R2, SP, CH
011Dd(83E0001C): LDR R3, SP, 1CH
011Ed(02280003): ADD R2, R2, R3
011Fe(83E00010): LDR R3, SP, 10H
0120e(84E00018): LDR R4, SP, 18H
0121e(03390004): SUB R3, R3, R4
0122f(F7FFFEDD): BL -291 [0000H]
Dot(f,g col,h x0+x,i y0-y)j;k
0123g(80E00004): LDR R0, SP, 4H
0124h(81E00008): LDR R1, SP, 8H
0125i(82E0000C): LDR R2, SP, CH
0126i(83E00018): LDR R3, SP, 18H
0127i(02280003): ADD R2, R2, R3
0128j(83E00010): LDR R3, SP, 10H
0129j(84E0001C): LDR R4, SP, 1CH
012Aj(03390004): SUB R3, R3, R4
012Bk(F7FFFED4): BL -300 [0000H]
IF u < 0 THENl INC(u, 2*y+m3)n ELSEo INCp(u, 2*(y-x)q+r5)s;t DEC(x) ENDu ;
012Cl(80E00020): LDR R0, SP, 20H
012Dl(40090000): SUB R0, R0, 0H
012El(ED000007): BGE 7 [0136H]
012Fm(80E0001C): LDR R0, SP, 1CH
0130m(40010001): LSL R0, R0, 1H
0131n(40080003): ADD R0, R0, 3H
0132o(81E00020): LDR R1, SP, 20H
0133o(01180000): ADD R1, R1, R0
0134o(A1E00020): STR R1, SP, 20H
0135p(E700000B): B 11 [0141H]
0136q(80E0001C): LDR R0, SP, 1CH
0137q(81E00018): LDR R1, SP, 18H
0138q(00090001): SUB R0, R0, R1
0139r(40010001): LSL R0, R0, 1H
013As(40080005): ADD R0, R0, 5H
013Bt(81E00020): LDR R1, SP, 20H
013Ct(01180000): ADD R1, R1, R0
013Dt(A1E00020): STR R1, SP, 20H
013Eu(80E00018): LDR R0, SP, 18H
013Fu(40090001): SUB R0, R0, 1H
0140u(A0E00018): STR R0, SP, 18H
INC(y)
ENDv
0141v(80E0001C): LDR R0, SP, 1CH
0142v(40080001): ADD R0, R0, 1H
0143v(A0E0001C): STR R0, SP, 1CH
0144v(E7FFFF9B): B -101 [00E0H]
ENDw circle;
0145w(8FE00000): LDR LNK, SP, 0H
0146w(4EE80024): ADD SP, SP, 24H
0147w(C700000F): B LNK
PROCEDURE ellipse(f: GraphicFrames.Frame; col: INTEGER; x0, y0, a, b: LONGINT);
VAR x, y, y1, aa, bb, d, g, h: LONGINT;
BEGINx aa := a*a;y bb := b*b;z
0148x(4EE9003C): SUB SP, SP, 3CH
0149x(AFE00000): STR LNK, SP, 0H
014Ax(A0E00004): STR R0, SP, 4H
014Bx(A1E00008): STR R1, SP, 8H
014Cx(A2E0000C): STR R2, SP, CH
014Dx(A3E00010): STR R3, SP, 10H
014Ex(A4E00014): STR R4, SP, 14H
014Fx(A5E00018): STR R5, SP, 18H
0150y(80E00014): LDR R0, SP, 14H
0151y(81E00014): LDR R1, SP, 14H
0152y(000A0001): MUL R0, R0, R1
0153y(A0E00028): STR R0, SP, 28H
0154z(80E00018): LDR R0, SP, 18H
0155z(81E00018): LDR R1, SP, 18H
0156z(000A0001): MUL R0, R0, R1
0157z(A0E0002C): STR R0, SP, 2CH
h := (aa DIV 4)a - b*aa +b bb;c g := (9*aa DIVd 4)e - 3*b*faa +g bb;h x := 0;i y := b;j
0158a(80E00028): LDR R0, SP, 28H
0159a(40020002): ASR R0, R0, 2H
015Ab(81E00018): LDR R1, SP, 18H
015Bb(82E00028): LDR R2, SP, 28H
015Cb(011A0002): MUL R1, R1, R2
015Db(00090001): SUB R0, R0, R1
015Ec(81E0002C): LDR R1, SP, 2CH
015Fc(00080001): ADD R0, R0, R1
0160c(A0E00038): STR R0, SP, 38H
0161d(80E00028): LDR R0, SP, 28H
0162d(400A0009): MUL R0, R0, 9H
0163e(40020002): ASR R0, R0, 2H
0164f(81E00018): LDR R1, SP, 18H
0165f(411A0003): MUL R1, R1, 3H
0166g(82E00028): LDR R2, SP, 28H
0167g(011A0002): MUL R1, R1, R2
0168g(00090001): SUB R0, R0, R1
0169h(81E0002C): LDR R1, SP, 2CH
016Ah(00080001): ADD R0, R0, R1
016Bh(A0E00034): STR R0, SP, 34H
016Ci(40000000): MOV R0, R0, 0H
016Di(A0E0001C): STR R0, SP, 1CH
016Ej(80E00018): LDR R0, SP, 18H
016Fj(A0E00020): STR R0, SP, 20H
WHILE g < 0 DOk
0170k(80E00034): LDR R0, SP, 34H
0171k(40090000): SUB R0, R0, 0H
0172k(ED000050): BGE 80 [01C3H]
Dot(f,l col,m x0+x,n y0+y)o;p
0173l(80E00004): LDR R0, SP, 4H
0174m(81E00008): LDR R1, SP, 8H
0175n(82E0000C): LDR R2, SP, CH
0176n(83E0001C): LDR R3, SP, 1CH
0177n(02280003): ADD R2, R2, R3
0178o(83E00010): LDR R3, SP, 10H
0179o(84E00020): LDR R4, SP, 20H
017Ao(03380004): ADD R3, R3, R4
017Bp(F7FFFE84): BL -380 [0000H]
Dot(f,q col,r x0-x,s y0+y)t;u
017Cq(80E00004): LDR R0, SP, 4H
017Dr(81E00008): LDR R1, SP, 8H
017Es(82E0000C): LDR R2, SP, CH
017Fs(83E0001C): LDR R3, SP, 1CH
0180s(02290003): SUB R2, R2, R3
0181t(83E00010): LDR R3, SP, 10H
0182t(84E00020): LDR R4, SP, 20H
0183t(03380004): ADD R3, R3, R4
0184u(F7FFFE7B): BL -389 [0000H]
Dot(f,v col,w x0-x,x y0-y)y;z
0185v(80E00004): LDR R0, SP, 4H
0186w(81E00008): LDR R1, SP, 8H
0187x(82E0000C): LDR R2, SP, CH
0188x(83E0001C): LDR R3, SP, 1CH
0189x(02290003): SUB R2, R2, R3
018Ay(83E00010): LDR R3, SP, 10H
018By(84E00020): LDR R4, SP, 20H
018Cy(03390004): SUB R3, R3, R4
018Dz(F7FFFE72): BL -398 [0000H]
Dot(f,a col,b x0+x,c y0-y)d;e
018Ea(80E00004): LDR R0, SP, 4H
018Fb(81E00008): LDR R1, SP, 8H
0190c(82E0000C): LDR R2, SP, CH
0191c(83E0001C): LDR R3, SP, 1CH
0192c(02280003): ADD R2, R2, R3
0193d(83E00010): LDR R3, SP, 10H
0194d(84E00020): LDR R4, SP, 20H
0195d(03390004): SUB R3, R3, R4
0196e(F7FFFE69): BL -407 [0000H]
IF h < 0 THENf d := (2*x+g3)h*bb;i INC(g, d)
0197f(80E00038): LDR R0, SP, 38H
0198f(40090000): SUB R0, R0, 0H
0199f(ED00000B): BGE 11 [01A5H]
019Ag(80E0001C): LDR R0, SP, 1CH
019Bg(40010001): LSL R0, R0, 1H
019Ch(40080003): ADD R0, R0, 3H
019Di(81E0002C): LDR R1, SP, 2CH
019Ei(000A0001): MUL R0, R0, R1
019Fi(A0E00030): STR R0, SP, 30H
ELSEj dk := (2*x+l3)m*bb -n 2*(y-1)o*paa;q INC(g, d + 2*aa)r;s DEC(y)
01A0j(80E00034): LDR R0, SP, 34H
01A1j(81E00030): LDR R1, SP, 30H
01A2j(00080001): ADD R0, R0, R1
01A3j(A0E00034): STR R0, SP, 34H
01A4k(E7000016): B 22 [01BBH]
01A5l(80E0001C): LDR R0, SP, 1CH
01A6l(40010001): LSL R0, R0, 1H
01A7m(40080003): ADD R0, R0, 3H
01A8n(81E0002C): LDR R1, SP, 2CH
01A9n(000A0001): MUL R0, R0, R1
01AAo(81E00020): LDR R1, SP, 20H
01ABo(41190001): SUB R1, R1, 1H
01ACp(41110001): LSL R1, R1, 1H
01ADq(82E00028): LDR R2, SP, 28H
01AEq(011A0002): MUL R1, R1, R2
01AFq(00090001): SUB R0, R0, R1
01B0q(A0E00030): STR R0, SP, 30H
01B1r(80E00028): LDR R0, SP, 28H
01B2r(40010001): LSL R0, R0, 1H
01B3r(81E00030): LDR R1, SP, 30H
01B4r(00180000): ADD R0, R1, R0
01B5s(81E00034): LDR R1, SP, 34H
01B6s(01180000): ADD R1, R1, R0
01B7s(A1E00034): STR R1, SP, 34H
ENDt ;
01B8t(80E00020): LDR R0, SP, 20H
01B9t(40090001): SUB R0, R0, 1H
01BAt(A0E00020): STR R0, SP, 20H
INC(h, d);u INC(x)
01BBu(80E00038): LDR R0, SP, 38H
01BCu(81E00030): LDR R1, SP, 30H
01BDu(00080001): ADD R0, R0, R1
01BEu(A0E00038): STR R0, SP, 38H
ENDv ;
01BFv(80E0001C): LDR R0, SP, 1CH
01C0v(40080001): ADD R0, R0, 1H
01C1v(A0E0001C): STR R0, SP, 1CH
01C2v(E7FFFFAD): B -83 [0170H]
y1 := y;w h := (bb DIV 4)x - a*bb +y aa;z x := a;a y := 0;b
01C3w(80E00020): LDR R0, SP, 20H
01C4w(A0E00024): STR R0, SP, 24H
01C5x(80E0002C): LDR R0, SP, 2CH
01C6x(40020002): ASR R0, R0, 2H
01C7y(81E00014): LDR R1, SP, 14H
01C8y(82E0002C): LDR R2, SP, 2CH
01C9y(011A0002): MUL R1, R1, R2
01CAy(00090001): SUB R0, R0, R1
01CBz(81E00028): LDR R1, SP, 28H
01CCz(00080001): ADD R0, R0, R1
01CDz(A0E00038): STR R0, SP, 38H
01CEa(80E00014): LDR R0, SP, 14H
01CFa(A0E0001C): STR R0, SP, 1CH
01D0b(40000000): MOV R0, R0, 0H
01D1b(A0E00020): STR R0, SP, 20H
WHILE y <= y1 DOc
01D2c(80E00020): LDR R0, SP, 20H
01D3c(81E00024): LDR R1, SP, 24H
01D4c(00090001): SUB R0, R0, R1
01D5c(EE000045): BGT 69 [021BH]
Dot(f,d col,e x0+x,f y0+y)g;h
01D6d(80E00004): LDR R0, SP, 4H
01D7e(81E00008): LDR R1, SP, 8H
01D8f(82E0000C): LDR R2, SP, CH
01D9f(83E0001C): LDR R3, SP, 1CH
01DAf(02280003): ADD R2, R2, R3
01DBg(83E00010): LDR R3, SP, 10H
01DCg(84E00020): LDR R4, SP, 20H
01DDg(03380004): ADD R3, R3, R4
01DEh(F7FFFE21): BL -479 [0000H]
Dot(f,i col,j x0-x,k y0+y)l;m
01DFi(80E00004): LDR R0, SP, 4H
01E0j(81E00008): LDR R1, SP, 8H
01E1k(82E0000C): LDR R2, SP, CH
01E2k(83E0001C): LDR R3, SP, 1CH
01E3k(02290003): SUB R2, R2, R3
01E4l(83E00010): LDR R3, SP, 10H
01E5l(84E00020): LDR R4, SP, 20H
01E6l(03380004): ADD R3, R3, R4
01E7m(F7FFFE18): BL -488 [0000H]
Dot(f,n col,o x0-x,p y0-y)q;r
01E8n(80E00004): LDR R0, SP, 4H
01E9o(81E00008): LDR R1, SP, 8H
01EAp(82E0000C): LDR R2, SP, CH
01EBp(83E0001C): LDR R3, SP, 1CH
01ECp(02290003): SUB R2, R2, R3
01EDq(83E00010): LDR R3, SP, 10H
01EEq(84E00020): LDR R4, SP, 20H
01EFq(03390004): SUB R3, R3, R4
01F0r(F7FFFE0F): BL -497 [0000H]
Dot(f,s col,t x0+x,u y0-y)v;w
01F1s(80E00004): LDR R0, SP, 4H
01F2t(81E00008): LDR R1, SP, 8H
01F3u(82E0000C): LDR R2, SP, CH
01F4u(83E0001C): LDR R3, SP, 1CH
01F5u(02280003): ADD R2, R2, R3
01F6v(83E00010): LDR R3, SP, 10H
01F7v(84E00020): LDR R4, SP, 20H
01F8v(03390004): SUB R3, R3, R4
01F9w(F7FFFE06): BL -506 [0000H]
IF h < 0 THENx INC(h, (2*y+y3)z*aa)a ELSEb INCc(h, (2*y+d3)e*aa -f 2*(x-1)g*hbb)i;j DEC(x) ENDk ;
01FAx(80E00038): LDR R0, SP, 38H
01FBx(40090000): SUB R0, R0, 0H
01FCx(ED000009): BGE 9 [0206H]
01FDy(80E00020): LDR R0, SP, 20H
01FEy(40010001): LSL R0, R0, 1H
01FFz(40080003): ADD R0, R0, 3H
0200a(81E00028): LDR R1, SP, 28H
0201a(000A0001): MUL R0, R0, R1
0202b(81E00038): LDR R1, SP, 38H
0203b(01180000): ADD R1, R1, R0
0204b(A1E00038): STR R1, SP, 38H
0205c(E7000011): B 17 [0217H]
0206d(80E00020): LDR R0, SP, 20H
0207d(40010001): LSL R0, R0, 1H
0208e(40080003): ADD R0, R0, 3H
0209f(81E00028): LDR R1, SP, 28H
020Af(000A0001): MUL R0, R0, R1
020Bg(81E0001C): LDR R1, SP, 1CH
020Cg(41190001): SUB R1, R1, 1H
020Dh(41110001): LSL R1, R1, 1H
020Ei(82E0002C): LDR R2, SP, 2CH
020Fi(011A0002): MUL R1, R1, R2
0210i(00090001): SUB R0, R0, R1
0211j(81E00038): LDR R1, SP, 38H
0212j(01180000): ADD R1, R1, R0
0213j(A1E00038): STR R1, SP, 38H
0214k(80E0001C): LDR R0, SP, 1CH
0215k(40090001): SUB R0, R0, 1H
0216k(A0E0001C): STR R0, SP, 1CH
INC(y)
ENDl
0217l(80E00020): LDR R0, SP, 20H
0218l(40080001): ADD R0, R0, 1H
0219l(A0E00020): STR R0, SP, 20H
021Al(E7FFFFB7): B -73 [01D2H]
ENDm ellipse;
021Bm(8FE00000): LDR LNK, SP, 0H
021Cm(4EE8003C): ADD SP, SP, 3CH
021Dm(C700000F): B LNK
PROCEDURE New*;
VAR c: Curve;
BEGINn NEW(c);o c.dop := method;q Graphics.New(c)r
021En .PROC 3
021En .COMMAND New
021En(4EE90008): SUB SP, SP, 8H
021Fn(AFE00000): STR LNK, SP, 0H
0220o(40E80004): ADD R0, SP, 4H
0221o .FIXUP D
0221o(8D0001C8): LDR SB, MT, MOD0 [Curves]
0222o(41D80000): ADD R1, SB, 0H [data]
0223o(D70B450C): BL MT [trap=0, pos=2885]
0224p(80E00004): LDR R0, SP, 4H
0225p(D10B4A4C): BLEQ MT [trap=4, pos=2890]
0226q .FIXUP D
0226q(8D000005): LDR SB, MT, MOD0 [Curves]
0227q(81D0001C): LDR R1, SB, 1CH [data]
0228q(A1000014): STR R1, R0, 14H
0229r(80E00004): LDR R0, SP, 4H
ENDs New;
022As .FIXUP P
022As(F77151CC): BL MOD7 [Graphics] PROC21
022Bs(8FE00000): LDR LNK, SP, 0H
022Cs(4EE80008): ADD SP, SP, 8H
022Ds(C700000F): B LNK
PROCEDURE Copy(src, dst: Graphics.Object);
BEGINt dst.xu := src.xv;w dst.yx := src.yy;z dst.wa := src.wb;c dst.hd := src.he;f dst.colg := src.colh;i
022Et(4EE9000C): SUB SP, SP, CH
022Ft(AFE00000): STR LNK, SP, 0H
0230t(A0E00004): STR R0, SP, 4H
0231t(A1E00008): STR R1, SP, 8H
0232u(80E00008): LDR R0, SP, 8H
0233u(D10BAC4C): BLEQ MT [trap=4, pos=2988]
0234v(81E00004): LDR R1, SP, 4H
0235v(D10BB54C): BLEQ MT [trap=4, pos=2997]
0236w(81100000): LDR R1, R1, 0H
0237w(A1000000): STR R1, R0, 0H
0238x(80E00008): LDR R0, SP, 8H
0239x(D10BBC4C): BLEQ MT [trap=4, pos=3004]
023Ay(81E00004): LDR R1, SP, 4H
023By(D10BC54C): BLEQ MT [trap=4, pos=3013]
023Cz(81100004): LDR R1, R1, 4H
023Dz(A1000004): STR R1, R0, 4H
023Ea(80E00008): LDR R0, SP, 8H
023Fa(D10BCC4C): BLEQ MT [trap=4, pos=3020]
0240b(81E00004): LDR R1, SP, 4H
0241b(D10BD54C): BLEQ MT [trap=4, pos=3029]
0242c(81100008): LDR R1, R1, 8H
0243c(A1000008): STR R1, R0, 8H
0244d(80E00008): LDR R0, SP, 8H
0245d(D10BDC4C): BLEQ MT [trap=4, pos=3036]
0246e(81E00004): LDR R1, SP, 4H
0247e(D10BE54C): BLEQ MT [trap=4, pos=3045]
0248f(8110000C): LDR R1, R1, CH
0249f(A100000C): STR R1, R0, CH
024Ag(80E00008): LDR R0, SP, 8H
024Bg(D10BEE4C): BLEQ MT [trap=4, pos=3054]
024Ch(81E00004): LDR R1, SP, 4H
024Dh(D10BF94C): BLEQ MT [trap=4, pos=3065]
024Ei(91100010): LDR R1, R1, 10H
024Fi(B1000010): STR R1, R0, 10H
dst(Curve)j.kind := src(Curve)k.kind;l dst(Curve)m.lw := src(Curve)n.lw
0250j(80E00008): LDR R0, SP, 8H
0251j(E1000005): BEQ 5 [0257H]
0252j(810FFFF8): LDR R1, R0, FFFFFFF8H
0253j(81100004): LDR R1, R1, 4H
0254j .FIXUP D
0254j(8D00002E): LDR SB, MT, MOD0 [Curves]
0255j(42D80000): ADD R2, SB, 0H [data]
0256j(02290001): SUB R2, R2, R1
0257j(D90C092C): BLNE MT [trap=2, pos=3081]
0258k(81E00004): LDR R1, SP, 4H
0259k(E1000004): BEQ 4 [025EH]
025Ak(821FFFF8): LDR R2, R1, FFFFFFF8H
025Bk(82200004): LDR R2, R2, 4H
025Ck(43D80000): ADD R3, SB, 0H
025Dk(03390002): SUB R3, R3, R2
025Ek(D90C1C2C): BLNE MT [trap=2, pos=3100]
025Fl(8110001C): LDR R1, R1, 1CH
0260l(A100001C): STR R1, R0, 1CH
0261m(80E00008): LDR R0, SP, 8H
0262m(E1000004): BEQ 4 [0267H]
0263m(810FFFF8): LDR R1, R0, FFFFFFF8H
0264m(81100004): LDR R1, R1, 4H
0265m(42D80000): ADD R2, SB, 0H
0266m(02290001): SUB R2, R2, R1
0267m(D90C2D2C): BLNE MT [trap=2, pos=3117]
0268n(81E00004): LDR R1, SP, 4H
0269n(E1000004): BEQ 4 [026EH]
026An(821FFFF8): LDR R2, R1, FFFFFFF8H
026Bn(82200004): LDR R2, R2, 4H
026Cn(43D80000): ADD R3, SB, 0H
026Dn(03390002): SUB R3, R3, R2
026En(D90C3E2C): BLNE MT [trap=2, pos=3134]
ENDo Copy;
026Fo(81100020): LDR R1, R1, 20H
0270o(A1000020): STR R1, R0, 20H
0271o(8FE00000): LDR LNK, SP, 0H
0272o(4EE8000C): ADD SP, SP, CH
0273o(C700000F): B LNK
PROCEDURE Draw(obj: Graphics.Object; VAR M: Graphics.Msg);
VAR x, y, w, h, col: INTEGER; f: GraphicFrames.Frame;
BEGINp
0274p(4EE90028): SUB SP, SP, 28H
0275p(AFE00000): STR LNK, SP, 0H
0276p(A0E00004): STR R0, SP, 4H
0277p(A1E00008): STR R1, SP, 8H
0278p(A2E0000C): STR R2, SP, CH
CASE M OF GraphicFrames.DrawMsg:q
0279q(80E0000C): LDR R0, SP, CH
027Aq(80000004): LDR R0, R0, 4H
027Bq .FIXUP D
027Bq(8D900027): LDR SB, MT, MOD9 [GraphicFrames]
027Cq(41D80003): ADD R1, SB, VAR3
027Dq(01190000): SUB R1, R1, R0
027Eq(E9000189): BNE 393 [0408H]
x := obj.xr + M.x;s y := obj.yt + M.y;u w := obj.wv;w h := obj.hx;y f := M.f;z
027Fr(80E00004): LDR R0, SP, 4H
0280r(D10D044C): BLEQ MT [trap=4, pos=3332]
0281s(80000000): LDR R0, R0, 0H
0282s(81E00008): LDR R1, SP, 8H
0283s(81100004): LDR R1, R1, 4H
0284s(00080001): ADD R0, R0, R1
0285s(A0E00010): STR R0, SP, 10H
0286t(80E00004): LDR R0, SP, 4H
0287t(D10D164C): BLEQ MT [trap=4, pos=3350]
0288u(80000004): LDR R0, R0, 4H
0289u(81E00008): LDR R1, SP, 8H
028Au(81100008): LDR R1, R1, 8H
028Bu(00080001): ADD R0, R0, R1
028Cu(A0E00014): STR R0, SP, 14H
028Dv(80E00004): LDR R0, SP, 4H
028Ev(D10D284C): BLEQ MT [trap=4, pos=3368]
028Fw(80000008): LDR R0, R0, 8H
0290w(A0E00018): STR R0, SP, 18H
0291x(80E00004): LDR R0, SP, 4H
0292x(D10D344C): BLEQ MT [trap=4, pos=3380]
0293y(8000000C): LDR R0, R0, CH
0294y(A0E0001C): STR R0, SP, 1CH
0295z(80E00008): LDR R0, SP, 8H
0296z(80000000): LDR R0, R0, 0H
0297z(A0E00024): STR R0, SP, 24H
IF M.col = Display.black THENa col := obj.colb ELSEc cold := M.col ENDe ;
0298a(80E00008): LDR R0, SP, 8H
0299a(8000000C): LDR R0, R0, CH
029Aa(E9000005): BNE 5 [02A0H]
029Bb(80E00004): LDR R0, SP, 4H
029Cb(D10D724C): BLEQ MT [trap=4, pos=3442]
029Dc(90000010): LDR R0, R0, 10H
029Ec(A0E00020): STR R0, SP, 20H
029Fd(E7000003): B 3 [02A3H]
02A0e(80E00008): LDR R0, SP, 8H
02A1e(8000000C): LDR R0, R0, CH
02A2e(A0E00020): STR R0, SP, 20H
IF (x < f.X1f)g & (hf.Xi <= x+w)j & (ky < f.Y1l)m & (nf.Yo <= y+h)p THENq
02A3f(80E00024): LDR R0, SP, 24H
02A4f(D10D9D4C): BLEQ MT [trap=4, pos=3485]
02A5g(81E00010): LDR R1, SP, 10H
02A6g(80000028): LDR R0, R0, 28H
02A7g(01190000): SUB R1, R1, R0
02A8h(ED00015F): BGE 351 [0408H]
02A9i(80E00024): LDR R0, SP, 24H
02AAi(D10DA54C): BLEQ MT [trap=4, pos=3493]
02ABj(81E00010): LDR R1, SP, 10H
02ACj(82E00018): LDR R2, SP, 18H
02ADj(01180002): ADD R1, R1, R2
02AEj(80000008): LDR R0, R0, 8H
02AFj(00090001): SUB R0, R0, R1
02B0k(EE000157): BGT 343 [0408H]
02B1l(80E00024): LDR R0, SP, 24H
02B2l(D10DB94C): BLEQ MT [trap=4, pos=3513]
02B3m(81E00014): LDR R1, SP, 14H
02B4m(8000002C): LDR R0, R0, 2CH
02B5m(01190000): SUB R1, R1, R0
02B6n(ED000151): BGE 337 [0408H]
02B7o(80E00024): LDR R0, SP, 24H
02B8o(D10DC14C): BLEQ MT [trap=4, pos=3521]
02B9p(81E00014): LDR R1, SP, 14H
02BAp(82E0001C): LDR R2, SP, 1CH
02BBp(01180002): ADD R1, R1, R2
02BCp(8000000C): LDR R0, R0, CH
02BDp(00090001): SUB R0, R0, R1
02BEq(EE000149): BGT 329 [0408H]
IF obj(Curve)r.kind = 0 THENs (*up-line*)
02BFr(80E00004): LDR R0, SP, 4H
02C0r(E1000005): BEQ 5 [02C6H]
02C1r(810FFFF8): LDR R1, R0, FFFFFFF8H
02C2r(81100004): LDR R1, R1, 4H
02C3r .FIXUP D
02C3r(8D000048): LDR SB, MT, MOD0 [Curves]
02C4r(42D80000): ADD R2, SB, 0H [data]
02C5r(02290001): SUB R2, R2, R1
02C6r(D90DE42C): BLNE MT [trap=2, pos=3556]
02C7s(8000001C): LDR R0, R0, 1CH
02C8s(E900003D): BNE 61 [0306H]
IF M.mode = 0 THENt
02C9t(80E00008): LDR R0, SP, 8H
02CAt(80000010): LDR R0, R0, 10H
02CBt(E9000012): BNE 18 [02DEH]
IF obj.selectedu THENv mark(f,w Display.white,x x,y y)z ENDa ;
02CCu(80E00004): LDR R0, SP, 4H
02CDu(D10E384C): BLEQ MT [trap=4, pos=3640]
02CEv(90000011): LDR R0, R0, 11H
02CFv(E1000005): BEQ 5 [02D5H]
02D0w(80E00024): LDR R0, SP, 24H
02D1x(41000001): MOV R1, R0, 1H
02D2y(82E00010): LDR R2, SP, 10H
02D3z(83E00014): LDR R3, SP, 14H
02D4a(F7FFFD53): BL -685 [0028H]
line(f,b col,c x,d y,e w,f h,g 1)h
02D5b(80E00024): LDR R0, SP, 24H
02D6c(81E00020): LDR R1, SP, 20H
02D7d(82E00010): LDR R2, SP, 10H
02D8e(83E00014): LDR R3, SP, 14H
02D9f(84E00018): LDR R4, SP, 18H
02DAg(85E0001C): LDR R5, SP, 1CH
02DBh(46000001): MOV R6, R0, 1H
ELSIFi Mj.mode = 1 THENk mark(f,l Display.white,m x,n y)o
02DCi(F7FFFD85): BL -635 [0062H]
02DDj(E7000027): B 39 [0305H]
02DEk(80E00008): LDR R0, SP, 8H
02DFk(80000010): LDR R0, R0, 10H
02E0k(40090001): SUB R0, R0, 1H
02E1k(E9000006): BNE 6 [02E8H]
02E2l(80E00024): LDR R0, SP, 24H
02E3m(41000001): MOV R1, R0, 1H
02E4n(82E00010): LDR R2, SP, 10H
02E5o(83E00014): LDR R3, SP, 14H
ELSIFp Mq.mode = 2 THENr mark(f,s f.colt,u x,v y)w
02E6p(F7FFFD41): BL -703 [0028H]
02E7q(E700001D): B 29 [0305H]
02E8r(80E00008): LDR R0, SP, 8H
02E9r(80000010): LDR R0, R0, 10H
02EAr(40090002): SUB R0, R0, 2H
02EBr(E9000008): BNE 8 [02F4H]
02ECs(80E00024): LDR R0, SP, 24H
02EDt(81E00024): LDR R1, SP, 24H
02EEt(D10EF34C): BLEQ MT [trap=4, pos=3827]
02EFu(81100038): LDR R1, R1, 38H
02F0v(82E00010): LDR R2, SP, 10H
02F1w(83E00014): LDR R3, SP, 14H
ELSIFx My.mode = 3 THENz mark(f,a Display.black,b x,c y)d;e line(f,f Display.black,g x,h y,i w,j h,k 1)l
02F2x(F7FFFD35): BL -715 [0028H]
02F3y(E7000011): B 17 [0305H]
02F4z(80E00008): LDR R0, SP, 8H
02F5z(80000010): LDR R0, R0, 10H
02F6z(40090003): SUB R0, R0, 3H
02F7z(E900000D): BNE 13 [0305H]
02F8a(80E00024): LDR R0, SP, 24H
02F9b(41000000): MOV R1, R0, 0H
02FAc(82E00010): LDR R2, SP, 10H
02FBd(83E00014): LDR R3, SP, 14H
02FCe(F7FFFD2B): BL -725 [0028H]
02FDf(80E00024): LDR R0, SP, 24H
02FEg(41000000): MOV R1, R0, 0H
02FFh(82E00010): LDR R2, SP, 10H
0300i(83E00014): LDR R3, SP, 14H
0301j(84E00018): LDR R4, SP, 18H
0302k(85E0001C): LDR R5, SP, 1CH
0303l(46000001): MOV R6, R0, 1H
ENDm
0304m(F7FFFD5D): BL -675 [0062H]
ELSIF objn(Curve)o.kind = 1 THENp (*down-line*)
0305n(E7000102): B 258 [0408H]
0306o(80E00004): LDR R0, SP, 4H
0307o(E1000005): BEQ 5 [030DH]
0308o(810FFFF8): LDR R1, R0, FFFFFFF8H
0309o(81100004): LDR R1, R1, 4H
030Ao .FIXUP D
030Ao(8D000047): LDR SB, MT, MOD0 [Curves]
030Bo(42D80000): ADD R2, SB, 0H [data]
030Co(02290001): SUB R2, R2, R1
030Do(D90F852C): BLNE MT [trap=2, pos=3973]
030Ep(8000001C): LDR R0, R0, 1CH
030Fp(40090001): SUB R0, R0, 1H
0310p(E9000045): BNE 69 [0356H]
IF M.mode = 0 THENq
0311q(80E00008): LDR R0, SP, 8H
0312q(80000010): LDR R0, R0, 10H
0313q(E9000014): BNE 20 [0328H]
IF obj.selectedr THENs mark(f,t Display.white,u x,v y+h)w ENDx ;
0314r(80E00004): LDR R0, SP, 4H
0315r(D10FDB4C): BLEQ MT [trap=4, pos=4059]
0316s(90000011): LDR R0, R0, 11H
0317s(E1000007): BEQ 7 [031FH]
0318t(80E00024): LDR R0, SP, 24H
0319u(41000001): MOV R1, R0, 1H
031Av(82E00010): LDR R2, SP, 10H
031Bw(83E00014): LDR R3, SP, 14H
031Cw(84E0001C): LDR R4, SP, 1CH
031Dw(03380004): ADD R3, R3, R4
031Ex(F7FFFD09): BL -759 [0028H]
line(f,y col,z x,a y,b w,c h,d -1)e
031Fy(80E00024): LDR R0, SP, 24H
0320z(81E00020): LDR R1, SP, 20H
0321a(82E00010): LDR R2, SP, 10H
0322b(83E00014): LDR R3, SP, 14H
0323c(84E00018): LDR R4, SP, 18H
0324d(85E0001C): LDR R5, SP, 1CH
0325e(5600FFFF): MOV R6, R0, FFFFFFFFH
ELSIFf Mg.mode = 1 THENh mark(f,i Display.white,j x,k y+h)l
0326f(F7FFFD3B): BL -709 [0062H]
0327g(E700002D): B 45 [0355H]
0328h(80E00008): LDR R0, SP, 8H
0329h(80000010): LDR R0, R0, 10H
032Ah(40090001): SUB R0, R0, 1H
032Bh(E9000008): BNE 8 [0334H]
032Ci(80E00024): LDR R0, SP, 24H
032Dj(41000001): MOV R1, R0, 1H
032Ek(82E00010): LDR R2, SP, 10H
032Fl(83E00014): LDR R3, SP, 14H
0330l(84E0001C): LDR R4, SP, 1CH
0331l(03380004): ADD R3, R3, R4
ELSIFm Mn.mode = 2 THENo mark(f,p f.colq,r x,s y+h)t
0332m(F7FFFCF5): BL -779 [0028H]
0333n(E7000021): B 33 [0355H]
0334o(80E00008): LDR R0, SP, 8H
0335o(80000010): LDR R0, R0, 10H
0336o(40090002): SUB R0, R0, 2H
0337o(E900000A): BNE 10 [0342H]
0338p(80E00024): LDR R0, SP, 24H
0339q(81E00024): LDR R1, SP, 24H
033Aq(D1109B4C): BLEQ MT [trap=4, pos=4251]
033Br(81100038): LDR R1, R1, 38H
033Cs(82E00010): LDR R2, SP, 10H
033Dt(83E00014): LDR R3, SP, 14H
033Et(84E0001C): LDR R4, SP, 1CH
033Ft(03380004): ADD R3, R3, R4
ELSIFu Mv.mode = 3 THENw mark(f,x Display.black,y x,z y+h)a;b line(f,c Display.black,d x,e y,f w,g h,h -1)i
0340u(F7FFFCE7): BL -793 [0028H]
0341v(E7000013): B 19 [0355H]
0342w(80E00008): LDR R0, SP, 8H
0343w(80000010): LDR R0, R0, 10H
0344w(40090003): SUB R0, R0, 3H
0345w(E900000F): BNE 15 [0355H]
0346x(80E00024): LDR R0, SP, 24H
0347y(41000000): MOV R1, R0, 0H
0348z(82E00010): LDR R2, SP, 10H
0349a(83E00014): LDR R3, SP, 14H
034Aa(84E0001C): LDR R4, SP, 1CH
034Ba(03380004): ADD R3, R3, R4
034Cb(F7FFFCDB): BL -805 [0028H]
034Dc(80E00024): LDR R0, SP, 24H
034Ed(41000000): MOV R1, R0, 0H
034Fe(82E00010): LDR R2, SP, 10H
0350f(83E00014): LDR R3, SP, 14H
0351g(84E00018): LDR R4, SP, 18H
0352h(85E0001C): LDR R5, SP, 1CH
0353i(5600FFFF): MOV R6, R0, FFFFFFFFH
ENDj
0354j(F7FFFD0D): BL -755 [0062H]
ELSIF objk(Curve)l.kind = 2 THENm (*circle*)
0355k(E70000B2): B 178 [0408H]
0356l(80E00004): LDR R0, SP, 4H
0357l(E1000005): BEQ 5 [035DH]
0358l(810FFFF8): LDR R1, R0, FFFFFFF8H
0359l(81100004): LDR R1, R1, 4H
035Al .FIXUP D
035Al(8D000050): LDR SB, MT, MOD0 [Curves]
035Bl(42D80000): ADD R2, SB, 0H [data]
035Cl(02290001): SUB R2, R2, R1
035Dl(D911322C): BLNE MT [trap=2, pos=4402]
035Em(8000001C): LDR R0, R0, 1CH
035Fm(40090002): SUB R0, R0, 2H
0360m(E900004C): BNE 76 [03ADH]
w := w DIV 2;n
0361n(80E00018): LDR R0, SP, 18H
0362n(40020001): ASR R0, R0, 1H
0363n(A0E00018): STR R0, SP, 18H
IF M.mode = 0 THENo
0364o(80E00008): LDR R0, SP, 8H
0365o(80000010): LDR R0, R0, 10H
0366o(E9000016): BNE 22 [037DH]
IF obj.selectedp THENq mark(f,r Display.white,s x+w,t y)u ENDv ;
0367p(80E00004): LDR R0, SP, 4H
0368p(D1119D4C): BLEQ MT [trap=4, pos=4509]
0369q(90000011): LDR R0, R0, 11H
036Aq(E1000007): BEQ 7 [0372H]
036Br(80E00024): LDR R0, SP, 24H
036Cs(41000001): MOV R1, R0, 1H
036Dt(82E00010): LDR R2, SP, 10H
036Et(83E00018): LDR R3, SP, 18H
036Ft(02280003): ADD R2, R2, R3
0370u(83E00014): LDR R3, SP, 14H
0371v(F7FFFCB6): BL -842 [0028H]
circle(f,w col,x x+w,y y+w,z w)a
0372w(80E00024): LDR R0, SP, 24H
0373x(81E00020): LDR R1, SP, 20H
0374y(82E00010): LDR R2, SP, 10H
0375y(83E00018): LDR R3, SP, 18H
0376y(02280003): ADD R2, R2, R3
0377z(83E00014): LDR R3, SP, 14H
0378z(84E00018): LDR R4, SP, 18H
0379z(03380004): ADD R3, R3, R4
037Aa(84E00018): LDR R4, SP, 18H
ELSIFb Mc.mode = 1 THENd mark(f,e Display.white,f x+w,g y)h
037Bb(F7FFFD55): BL -683 [00D1H]
037Cc(E700002F): B 47 [03ACH]
037Dd(80E00008): LDR R0, SP, 8H
037Ed(80000010): LDR R0, R0, 10H
037Fd(40090001): SUB R0, R0, 1H
0380d(E9000008): BNE 8 [0389H]
0381e(80E00024): LDR R0, SP, 24H
0382f(41000001): MOV R1, R0, 1H
0383g(82E00010): LDR R2, SP, 10H
0384g(83E00018): LDR R3, SP, 18H
0385g(02280003): ADD R2, R2, R3
0386h(83E00014): LDR R3, SP, 14H
ELSIFi Mj.mode = 2 THENk mark(f,l f.colm,n x+w,o y)p
0387i(F7FFFCA0): BL -864 [0028H]
0388j(E7000023): B 35 [03ACH]
0389k(80E00008): LDR R0, SP, 8H
038Ak(80000010): LDR R0, R0, 10H
038Bk(40090002): SUB R0, R0, 2H
038Ck(E900000A): BNE 10 [0397H]
038Dl(80E00024): LDR R0, SP, 24H
038Em(81E00024): LDR R1, SP, 24H
038Fm(D1125C4C): BLEQ MT [trap=4, pos=4700]
0390n(81100038): LDR R1, R1, 38H
0391o(82E00010): LDR R2, SP, 10H
0392o(83E00018): LDR R3, SP, 18H
0393o(02280003): ADD R2, R2, R3
0394p(83E00014): LDR R3, SP, 14H
ELSIFq Mr.mode = 3 THENs mark(f,t Display.black,u x+w,v y)w;x circle(f,y Display.black,z x+w,a y+w,b w)c
0395q(F7FFFC92): BL -878 [0028H]
0396r(E7000015): B 21 [03ACH]
0397s(80E00008): LDR R0, SP, 8H
0398s(80000010): LDR R0, R0, 10H
0399s(40090003): SUB R0, R0, 3H
039As(E9000011): BNE 17 [03ACH]
039Bt(80E00024): LDR R0, SP, 24H
039Cu(41000000): MOV R1, R0, 0H
039Dv(82E00010): LDR R2, SP, 10H
039Ev(83E00018): LDR R3, SP, 18H
039Fv(02280003): ADD R2, R2, R3
03A0w(83E00014): LDR R3, SP, 14H
03A1x(F7FFFC86): BL -890 [0028H]
03A2y(80E00024): LDR R0, SP, 24H
03A3z(41000000): MOV R1, R0, 0H
03A4a(82E00010): LDR R2, SP, 10H
03A5a(83E00018): LDR R3, SP, 18H
03A6a(02280003): ADD R2, R2, R3
03A7b(83E00014): LDR R3, SP, 14H
03A8b(84E00018): LDR R4, SP, 18H
03A9b(03380004): ADD R3, R3, R4
03AAc(84E00018): LDR R4, SP, 18H
ENDd
03ABd(F7FFFD25): BL -731 [00D1H]
ELSIF obje(Curve)f.kind = 3 THENg (*ellipse*)
03ACe(E700005B): B 91 [0408H]
03ADf(80E00004): LDR R0, SP, 4H
03AEf(E1000005): BEQ 5 [03B4H]
03AFf(810FFFF8): LDR R1, R0, FFFFFFF8H
03B0f(81100004): LDR R1, R1, 4H
03B1f .FIXUP D
03B1f(8D000057): LDR SB, MT, MOD0 [Curves]
03B2f(42D80000): ADD R2, SB, 0H [data]
03B3f(02290001): SUB R2, R2, R1
03B4f(D912F22C): BLNE MT [trap=2, pos=4850]
03B5g(8000001C): LDR R0, R0, 1CH
03B6g(40090003): SUB R0, R0, 3H
03B7g(E9000050): BNE 80 [0408H]
w := w DIV 2;h h := h DIV 2;i
03B8h(80E00018): LDR R0, SP, 18H
03B9h(40020001): ASR R0, R0, 1H
03BAh(A0E00018): STR R0, SP, 18H
03BBi(80E0001C): LDR R0, SP, 1CH
03BCi(40020001): ASR R0, R0, 1H
03BDi(A0E0001C): STR R0, SP, 1CH
IF M.mode = 0 THENj
03BEj(80E00008): LDR R0, SP, 8H
03BFj(80000010): LDR R0, R0, 10H
03C0j(E9000017): BNE 23 [03D8H]
IF obj.selectedk THENl mark(f,m Display.white,n x+w,o y)p ENDq ;
03C1k(80E00004): LDR R0, SP, 4H
03C2k(D1136C4C): BLEQ MT [trap=4, pos=4972]
03C3l(90000011): LDR R0, R0, 11H
03C4l(E1000007): BEQ 7 [03CCH]
03C5m(80E00024): LDR R0, SP, 24H
03C6n(41000001): MOV R1, R0, 1H
03C7o(82E00010): LDR R2, SP, 10H
03C8o(83E00018): LDR R3, SP, 18H
03C9o(02280003): ADD R2, R2, R3
03CAp(83E00014): LDR R3, SP, 14H
03CBq(F7FFFC5C): BL -932 [0028H]
ellipse(f,r col,s x+w,t y+h,u w,v h)w
03CCr(80E00024): LDR R0, SP, 24H
03CDs(81E00020): LDR R1, SP, 20H
03CEt(82E00010): LDR R2, SP, 10H
03CFt(83E00018): LDR R3, SP, 18H
03D0t(02280003): ADD R2, R2, R3
03D1u(83E00014): LDR R3, SP, 14H
03D2u(84E0001C): LDR R4, SP, 1CH
03D3u(03380004): ADD R3, R3, R4
03D4v(84E00018): LDR R4, SP, 18H
03D5w(85E0001C): LDR R5, SP, 1CH
ELSIFx My.mode = 1 THENz mark(f,a Display.white,b x+w,c y)d
03D6x(F7FFFD71): BL -655 [0148H]
03D7y(E7000030): B 48 [0408H]
03D8z(80E00008): LDR R0, SP, 8H
03D9z(80000010): LDR R0, R0, 10H
03DAz(40090001): SUB R0, R0, 1H
03DBz(E9000008): BNE 8 [03E4H]
03DCa(80E00024): LDR R0, SP, 24H
03DDb(41000001): MOV R1, R0, 1H
03DEc(82E00010): LDR R2, SP, 10H
03DFc(83E00018): LDR R3, SP, 18H
03E0c(02280003): ADD R2, R2, R3
03E1d(83E00014): LDR R3, SP, 14H
ELSIFe Mf.mode = 2 THENg mark(f,h f.coli,j x+w,k y)l
03E2e(F7FFFC45): BL -955 [0028H]
03E3f(E7000024): B 36 [0408H]
03E4g(80E00008): LDR R0, SP, 8H
03E5g(80000010): LDR R0, R0, 10H
03E6g(40090002): SUB R0, R0, 2H
03E7g(E900000A): BNE 10 [03F2H]
03E8h(80E00024): LDR R0, SP, 24H
03E9i(81E00024): LDR R1, SP, 24H
03EAi(D1142F4C): BLEQ MT [trap=4, pos=5167]
03EBj(81100038): LDR R1, R1, 38H
03ECk(82E00010): LDR R2, SP, 10H
03EDk(83E00018): LDR R3, SP, 18H
03EEk(02280003): ADD R2, R2, R3
03EFl(83E00014): LDR R3, SP, 14H
ELSIFm Mn.mode = 3 THENo mark(f,p Display.black,q x+w,r y)s;t ellipse(f,u Display.black,v x+w,w y+h,x w,y h)z
03F0m(F7FFFC37): BL -969 [0028H]
03F1n(E7000016): B 22 [0408H]
03F2o(80E00008): LDR R0, SP, 8H
03F3o(80000010): LDR R0, R0, 10H
03F4o(40090003): SUB R0, R0, 3H
03F5o(E9000012): BNE 18 [0408H]
03F6p(80E00024): LDR R0, SP, 24H
03F7q(41000000): MOV R1, R0, 0H
03F8r(82E00010): LDR R2, SP, 10H
03F9r(83E00018): LDR R3, SP, 18H
03FAr(02280003): ADD R2, R2, R3
03FBs(83E00014): LDR R3, SP, 14H
03FCt(F7FFFC2B): BL -981 [0028H]
03FDu(80E00024): LDR R0, SP, 24H
03FEv(41000000): MOV R1, R0, 0H
03FFw(82E00010): LDR R2, SP, 10H
0400w(83E00018): LDR R3, SP, 18H
0401w(02280003): ADD R2, R2, R3
0402x(83E00014): LDR R3, SP, 14H
0403x(84E0001C): LDR R4, SP, 1CH
0404x(03380004): ADD R3, R3, R4
0405y(84E00018): LDR R4, SP, 18H
0406z(85E0001C): LDR R5, SP, 1CH
ENDa
0407a(F7FFFD40): BL -704 [0148H]
END
END
END
ENDb Draw;
0408b(8FE00000): LDR LNK, SP, 0H
0409b(4EE80028): ADD SP, SP, 28H
040Ab(C700000F): B LNK
PROCEDURE Selectable(obj: Graphics.Object; x, y: INTEGER): BOOLEAN;
VAR xm, y0, w, h: INTEGER; res: BOOLEAN;
BEGINc
040Bc(4EE90024): SUB SP, SP, 24H
040Cc(AFE00000): STR LNK, SP, 0H
040Dc(A0E00004): STR R0, SP, 4H
040Ec(A1E00008): STR R1, SP, 8H
040Fc(A2E0000C): STR R2, SP, CH
IF obj(Curve)d.kind <= 1 THENe (*line*)
0410d(80E00004): LDR R0, SP, 4H
0411d(E1000005): BEQ 5 [0417H]
0412d(810FFFF8): LDR R1, R0, FFFFFFF8H
0413d(81100004): LDR R1, R1, 4H
0414d .FIXUP D
0414d(8D000063): LDR SB, MT, MOD0 [Curves]
0415d(42D80000): ADD R2, SB, 0H [data]
0416d(02290001): SUB R2, R2, R1
0417d(D915682C): BLNE MT [trap=2, pos=5480]
0418e(8000001C): LDR R0, R0, 1CH
0419e(40090001): SUB R0, R0, 1H
041Ae(EE00004A): BGT 74 [0465H]
w := obj.wf;g h := obj.hh;i
041Bf(80E00004): LDR R0, SP, 4H
041Cf(D115924C): BLEQ MT [trap=4, pos=5522]
041Dg(80000008): LDR R0, R0, 8H
041Eg(A0E00018): STR R0, SP, 18H
041Fh(80E00004): LDR R0, SP, 4H
0420h(D1159E4C): BLEQ MT [trap=4, pos=5534]
0421i(8000000C): LDR R0, R0, CH
0422i(A0E0001C): STR R0, SP, 1CH
IF obj(Curve)j.kind = 1 THENk y0 := obj.yl + h;m h := -h ELSEn y0o := obj.yp ENDq ;
0423j(80E00004): LDR R0, SP, 4H
0424j(E1000005): BEQ 5 [042AH]
0425j(810FFFF8): LDR R1, R0, FFFFFFF8H
0426j(81100004): LDR R1, R1, 4H
0427j .FIXUP D
0427j(8D000013): LDR SB, MT, MOD0 [Curves]
0428j(42D80000): ADD R2, SB, 0H [data]
0429j(02290001): SUB R2, R2, R1
042Aj(D915B32C): BLNE MT [trap=2, pos=5555]
042Bk(8000001C): LDR R0, R0, 1CH
042Ck(40090001): SUB R0, R0, 1H
042Dk(E900000B): BNE 11 [0439H]
042El(80E00004): LDR R0, SP, 4H
042Fl(D115CD4C): BLEQ MT [trap=4, pos=5581]
0430m(80000004): LDR R0, R0, 4H
0431m(81E0001C): LDR R1, SP, 1CH
0432m(00080001): ADD R0, R0, R1
0433m(A0E00014): STR R0, SP, 14H
0434n(80E0001C): LDR R0, SP, 1CH
0435n(41000000): MOV R1, R0, 0H
0436n(00190000): SUB R0, R1, R0
0437n(A0E0001C): STR R0, SP, 1CH
0438o(E7000004): B 4 [043DH]
0439p(80E00004): LDR R0, SP, 4H
043Ap(D115EB4C): BLEQ MT [trap=4, pos=5611]
043Bq(80000004): LDR R0, R0, 4H
043Cq(A0E00014): STR R0, SP, 14H
res := (obj.xr <= x)s & (tx < obj.xu + w)v & (wABS(y-y0)x*yw -z (x-obj.xa)b*h <c w*4)d
043Dr(80E00004): LDR R0, SP, 4H
043Er(D116054C): BLEQ MT [trap=4, pos=5637]
043Fs(80000000): LDR R0, R0, 0H
0440s(81E00008): LDR R1, SP, 8H
0441s(00090001): SUB R0, R0, R1
0442t(EE00001F): BGT 31 [0462H]
0443u(80E00004): LDR R0, SP, 4H
0444u(D116184C): BLEQ MT [trap=4, pos=5656]
0445v(80000000): LDR R0, R0, 0H
0446v(81E00018): LDR R1, SP, 18H
0447v(00080001): ADD R0, R0, R1
0448v(81E00008): LDR R1, SP, 8H
0449v(01190000): SUB R1, R1, R0
044Aw(ED000017): BGE 23 [0462H]
044Bx(80E0000C): LDR R0, SP, CH
044Cx(81E00014): LDR R1, SP, 14H
044Dx(00090001): SUB R0, R0, R1
044Ey(40090000): SUB R0, R0, 0H
044Fy(ED000002): BGE 2 [0452H]
0450y(41000000): MOV R1, R0, 0H
0451y(00190000): SUB R0, R1, R0
0452z(81E00018): LDR R1, SP, 18H
0453z(000A0001): MUL R0, R0, R1
0454a(81E00004): LDR R1, SP, 4H
0455a(D116374C): BLEQ MT [trap=4, pos=5687]
0456b(82E00008): LDR R2, SP, 8H
0457b(81100000): LDR R1, R1, 0H
0458b(01290001): SUB R1, R2, R1
0459c(82E0001C): LDR R2, SP, 1CH
045Ac(011A0002): MUL R1, R1, R2
045Bc(00090001): SUB R0, R0, R1
045Cd(81E00018): LDR R1, SP, 18H
045Dd(41110002): LSL R1, R1, 2H
045Ed(00090001): SUB R0, R0, R1
ELSEe (*circle or ellipse*)
045Fe(ED000002): BGE 2 [0462H]
0460e(40000001): MOV R0, R0, 1H
0461e(E7000001): B 1 [0463H]
0462e(40000000): MOV R0, R0, 0H
0463e(B0E00020): STR R0, SP, 20H
xmf := obj.wg DIV 2 +h obj.xi;j
0464f(E7000025): B 37 [048AH]
0465g(80E00004): LDR R0, SP, 4H
0466g(D116724C): BLEQ MT [trap=4, pos=5746]
0467h(80000008): LDR R0, R0, 8H
0468h(40020001): ASR R0, R0, 1H
0469i(81E00004): LDR R1, SP, 4H
046Ai(D116804C): BLEQ MT [trap=4, pos=5760]
046Bj(81100000): LDR R1, R1, 0H
046Cj(00080001): ADD R0, R0, R1
046Dj(A0E00010): STR R0, SP, 10H
res := (xm - 4 <=k x)l & (mx <= xm + 4)n & (oobj.yp - 4 <=q y)r & (sy <= obj.yt + 4)u
046Ek(80E00010): LDR R0, SP, 10H
046Fk(40090004): SUB R0, R0, 4H
0470l(81E00008): LDR R1, SP, 8H
0471l(00090001): SUB R0, R0, R1
0472m(EE000015): BGT 21 [0488H]
0473n(80E00010): LDR R0, SP, 10H
0474n(40080004): ADD R0, R0, 4H
0475n(81E00008): LDR R1, SP, 8H
0476n(01190000): SUB R1, R1, R0
0477o(EE000010): BGT 16 [0488H]
0478p(80E00004): LDR R0, SP, 4H
0479p(D116B54C): BLEQ MT [trap=4, pos=5813]
047Aq(80000004): LDR R0, R0, 4H
047Bq(40090004): SUB R0, R0, 4H
047Cr(81E0000C): LDR R1, SP, CH
047Dr(00090001): SUB R0, R0, R1
047Es(EE000009): BGT 9 [0488H]
047Ft(80E00004): LDR R0, SP, 4H
0480t(D116CD4C): BLEQ MT [trap=4, pos=5837]
0481u(80000004): LDR R0, R0, 4H
0482u(40080004): ADD R0, R0, 4H
0483u(81E0000C): LDR R1, SP, CH
0484u(01190000): SUB R1, R1, R0
ENDv ;
0485v(EE000002): BGT 2 [0488H]
0486v(40000001): MOV R0, R0, 1H
0487v(E7000001): B 1 [0489H]
0488v(40000000): MOV R0, R0, 0H
0489v(B0E00020): STR R0, SP, 20H
RETURN res
ENDw Selectable;
048Aw(90E00020): LDR R0, SP, 20H
048Bw(8FE00000): LDR LNK, SP, 0H
048Cw(4EE80024): ADD SP, SP, 24H
048Dw(C700000F): B LNK
PROCEDURE Change(obj: Graphics.Object; VAR M: Graphics.Msg);
BEGINx
048Ex(4EE90010): SUB SP, SP, 10H
048Fx(AFE00000): STR LNK, SP, 0H
0490x(A0E00004): STR R0, SP, 4H
0491x(A1E00008): STR R1, SP, 8H
0492x(A2E0000C): STR R2, SP, CH
IF M IS Graphics.ColorMsg THENy obj.colz := M(Graphics.ColorMsg)a.col ENDb
0493y(80E0000C): LDR R0, SP, CH
0494y(80000004): LDR R0, R0, 4H
0495y .FIXUP D
0495y(8D70006E): LDR SB, MT, MOD7 [Graphics]
0496y(41D80004): ADD R1, SB, VAR4
0497y(01190000): SUB R1, R1, R0
0498y(E900000B): BNE 11 [04A4H]
0499z(80E00004): LDR R0, SP, 4H
049Az(D117704C): BLEQ MT [trap=4, pos=6000]
049Ba(81E0000C): LDR R1, SP, CH
049Ca(81100004): LDR R1, R1, 4H
049Da .FIXUP D
049Da(8D700008): LDR SB, MT, MOD7 [Graphics]
049Ea(42D80004): ADD R2, SB, VAR4
049Fa(02290001): SUB R2, R2, R1
04A0a(D917882C): BLNE MT [trap=2, pos=6024]
04A1b(81E00008): LDR R1, SP, 8H
04A2b(81100000): LDR R1, R1, 0H
04A3b(B1000010): STR R1, R0, 10H
ENDc Change;
04A4c(8FE00000): LDR LNK, SP, 0H
04A5c(4EE80010): ADD SP, SP, 10H
04A6c(C700000F): B LNK
PROCEDURE Read(obj: Graphics.Object; VAR R: Files.Rider; VAR C: Graphics.Context);
VAR len: BYTE;
BEGINd Files.ReadByte(R,e len)f;g Files.ReadByte(R,h len)i;j obj(Curve)k.kind := len;l
04A7d(4EE9001C): SUB SP, SP, 1CH
04A8d(AFE00000): STR LNK, SP, 0H
04A9d(A0E00004): STR R0, SP, 4H
04AAd(A1E00008): STR R1, SP, 8H
04ABd(A2E0000C): STR R2, SP, CH
04ACd(A3E00010): STR R3, SP, 10H
04ADd(A4E00014): STR R4, SP, 14H
04AEe(80E00008): LDR R0, SP, 8H
04AFe(81E0000C): LDR R1, SP, CH
04B0f(42E80018): ADD R2, SP, 18H
04B1g .FIXUP P
04B1g(F720E287): BL MOD2 [Files] PROC14
04B2h(80E00008): LDR R0, SP, 8H
04B3h(81E0000C): LDR R1, SP, CH
04B4i(42E80018): ADD R2, SP, 18H
04B5j .FIXUP P
04B5j(F720E004): BL MOD2 [Files] PROC14
04B6k(80E00004): LDR R0, SP, 4H
04B7k(E1000005): BEQ 5 [04BDH]
04B8k(810FFFF8): LDR R1, R0, FFFFFFF8H
04B9k(81100004): LDR R1, R1, 4H
04BAk .FIXUP D
04BAk(8D00001D): LDR SB, MT, MOD0 [Curves]
04BBk(42D80000): ADD R2, SB, 0H [data]
04BCk(02290001): SUB R2, R2, R1
04BDk(D9184A2C): BLNE MT [trap=2, pos=6218]
04BEl(91E00018): LDR R1, SP, 18H
04BFl(A100001C): STR R1, R0, 1CH
Files.ReadByte(R,m len)n;o obj(Curve)p.lw := len
04C0m(80E00008): LDR R0, SP, 8H
04C1m(81E0000C): LDR R1, SP, CH
04C2n(42E80018): ADD R2, SP, 18H
04C3o .FIXUP P
04C3o(F720E00E): BL MOD2 [Files] PROC14
04C4p(80E00004): LDR R0, SP, 4H
04C5p(E1000005): BEQ 5 [04CBH]
04C6p(810FFFF8): LDR R1, R0, FFFFFFF8H
04C7p(81100004): LDR R1, R1, 4H
04C8p .FIXUP D
04C8p(8D00000E): LDR SB, MT, MOD0 [Curves]
04C9p(42D80000): ADD R2, SB, 0H [data]
04CAp(02290001): SUB R2, R2, R1
04CBp(D9187E2C): BLNE MT [trap=2, pos=6270]
ENDq Read;
04CCq(91E00018): LDR R1, SP, 18H
04CDq(A1000020): STR R1, R0, 20H
04CEq(8FE00000): LDR LNK, SP, 0H
04CFq(4EE8001C): ADD SP, SP, 1CH
04D0q(C700000F): B LNK
PROCEDURE Write(obj: Graphics.Object; cno: INTEGER; VAR W: Files.Rider; VAR C: Graphics.Context);
BEGINr Graphics.WriteObj(W,s cno,t obj)u;v
04D1r(4EE9001C): SUB SP, SP, 1CH
04D2r(AFE00000): STR LNK, SP, 0H
04D3r(A0E00004): STR R0, SP, 4H
04D4r(A1E00008): STR R1, SP, 8H
04D5r(A2E0000C): STR R2, SP, CH
04D6r(A3E00010): STR R3, SP, 10H
04D7r(A4E00014): STR R4, SP, 14H
04D8r(A5E00018): STR R5, SP, 18H
04D9s(80E0000C): LDR R0, SP, CH
04DAs(81E00010): LDR R1, SP, 10H
04DBt(82E00008): LDR R2, SP, 8H
04DCu(83E00004): LDR R3, SP, 4H
04DDv .FIXUP P
04DDv(F772401A): BL MOD7 [Graphics] PROC36
Files.WriteByte(W,w 2)x;y Files.WriteByte(W,z obj(Curve)a.kind)b;c Files.WriteByte(W,d obj(Curve)e.lw)f
04DEw(80E0000C): LDR R0, SP, CH
04DFw(81E00010): LDR R1, SP, 10H
04E0x(42000002): MOV R2, R0, 2H
04E1y .FIXUP P
04E1y(F7216004): BL MOD2 [Files] PROC22
04E2z(80E0000C): LDR R0, SP, CH
04E3z(81E00010): LDR R1, SP, 10H
04E4a(82E00004): LDR R2, SP, 4H
04E5a(E1000005): BEQ 5 [04EBH]
04E6a(832FFFF8): LDR R3, R2, FFFFFFF8H
04E7a(83300004): LDR R3, R3, 4H
04E8a .FIXUP D
04E8a(8D000020): LDR SB, MT, MOD0 [Curves]
04E9a(44D80000): ADD R4, SB, 0H [data]
04EAa(04490003): SUB R4, R4, R3
04EBa(D9195A2C): BLNE MT [trap=2, pos=6490]
04ECb(8220001C): LDR R2, R2, 1CH
04EDc .FIXUP P
04EDc(F721600C): BL MOD2 [Files] PROC22
04EEd(80E0000C): LDR R0, SP, CH
04EFd(81E00010): LDR R1, SP, 10H
04F0e(82E00004): LDR R2, SP, 4H
04F1e(E1000005): BEQ 5 [04F7H]
04F2e(832FFFF8): LDR R3, R2, FFFFFFF8H
04F3e(83300004): LDR R3, R3, 4H
04F4e .FIXUP D
04F4e(8D00000C): LDR SB, MT, MOD0 [Curves]
04F5e(44D80000): ADD R4, SB, 0H [data]
04F6e(04490003): SUB R4, R4, R3
04F7e(D9197F2C): BLNE MT [trap=2, pos=6527]
04F8f(82200020): LDR R2, R2, 20H
ENDg Write;
04F9g .FIXUP P
04F9g(F721600C): BL MOD2 [Files] PROC22
04FAg(8FE00000): LDR LNK, SP, 0H
04FBg(4EE8001C): ADD SP, SP, 1CH
04FCg(C700000F): B LNK
PROCEDURE MakeLine*; (*command*)
VAR x0, x1, y0, y1: INTEGER;
c: Curve;
G: GraphicFrames.Frame;
BEGINh G := GraphicFrames.Focus();i
04FDh .PROC 4
04FDh .COMMAND MakeLine
04FDh(4EE9001C): SUB SP, SP, 1CH
04FEh(AFE00000): STR LNK, SP, 0H
04FFi .FIXUP P
04FFi(F7909006): BL MOD9 [GraphicFrames] PROC9
0500i(A0E00018): STR R0, SP, 18H
IF (G # NIL)j & (kG.markl.next # NIL)m THENn
0501j(80E00018): LDR R0, SP, 18H
0502k(E1000093): BEQ 147 [0596H]
0503l(80E00018): LDR R0, SP, 18H
0504l(D11A434C): BLEQ MT [trap=4, pos=6723]
0505m(80000048): LDR R0, R0, 48H
0506n(E100008F): BEQ 143 [0596H]
GraphicFrames.Deselect(G)o;p
0507o(80E00018): LDR R0, SP, 18H
0508p .FIXUP P
0508p(F7912009): BL MOD9 [GraphicFrames] PROC18
x0 := G.markq.x;r y0 := G.marks.y;t x1 := G.marku.next.xv;w y1 := G.markx.next.yy;z
0509q(80E00018): LDR R0, SP, 18H
050Aq(D11A884C): BLEQ MT [trap=4, pos=6792]
050Br(80000040): LDR R0, R0, 40H
050Cr(A0E00004): STR R0, SP, 4H
050Ds(80E00018): LDR R0, SP, 18H
050Es(D11A984C): BLEQ MT [trap=4, pos=6808]
050Ft(80000044): LDR R0, R0, 44H
0510t(A0E0000C): STR R0, SP, CH
0511u(80E00018): LDR R0, SP, 18H
0512u(D11AA84C): BLEQ MT [trap=4, pos=6824]
0513v(80000048): LDR R0, R0, 48H
0514v(D11AAF4C): BLEQ MT [trap=4, pos=6831]
0515w(80000000): LDR R0, R0, 0H
0516w(A0E00008): STR R0, SP, 8H
0517x(80E00018): LDR R0, SP, 18H
0518x(D11ABD4C): BLEQ MT [trap=4, pos=6845]
0519y(80000048): LDR R0, R0, 48H
051Ay(D11AC44C): BLEQ MT [trap=4, pos=6852]
051Bz(80000004): LDR R0, R0, 4H
051Cz(A0E00010): STR R0, SP, 10H
NEW(c);a c.colb := Oberon.CurCol;c
051Da(40E80014): ADD R0, SP, 14H
051Ea .FIXUP D
051Ea(8D00002A): LDR SB, MT, MOD0 [Curves]
051Fa(41D80000): ADD R1, SB, 0H [data]
0520a(D71AD30C): BL MT [trap=0, pos=6867]
0521b(80E00014): LDR R0, SP, 14H
0522b(D11AD94C): BLEQ MT [trap=4, pos=6873]
0523c .FIXUP D
0523c(8D300005): LDR SB, MT, MOD3 [Oberon]
0524c(81D00010): LDR R1, SB, VAR16
0525c(B1000010): STR R1, R0, 10H
c.wd := ABS(x1-x0)e;f c.hg := ABS(y1-y0)h;i c.lwj := Graphics.width;k
0526d(80E00014): LDR R0, SP, 14H
0527d(D11AF54C): BLEQ MT [trap=4, pos=6901]
0528e(81E00008): LDR R1, SP, 8H
0529e(82E00004): LDR R2, SP, 4H
052Ae(01190002): SUB R1, R1, R2
052Bf(41190000): SUB R1, R1, 0H
052Cf(ED000002): BGE 2 [052FH]
052Df(42000000): MOV R2, R0, 0H
052Ef(01290001): SUB R1, R2, R1
052Ff(A1000008): STR R1, R0, 8H
0530g(80E00014): LDR R0, SP, 14H
0531g(D11B084C): BLEQ MT [trap=4, pos=6920]
0532h(81E00010): LDR R1, SP, 10H
0533h(82E0000C): LDR R2, SP, CH
0534h(01190002): SUB R1, R1, R2
0535i(41190000): SUB R1, R1, 0H
0536i(ED000002): BGE 2 [0539H]
0537i(42000000): MOV R2, R0, 0H
0538i(01290001): SUB R1, R2, R1
0539i(A100000C): STR R1, R0, CH
053Aj(80E00014): LDR R0, SP, 14H
053Bj(D11B1C4C): BLEQ MT [trap=4, pos=6940]
053Ck .FIXUP D
053Ck(8D700019): LDR SB, MT, MOD7 [Graphics]
053Dk(81D0000F): LDR R1, SB, VAR15
053Ek(A1000020): STR R1, R0, 20H
IF x0 <= x1 THENl c.xm := x0;n
053Fl(80E00004): LDR R0, SP, 4H
0540l(81E00008): LDR R1, SP, 8H
0541l(00090001): SUB R0, R0, R1
0542l(EE00001A): BGT 26 [055DH]
0543m(80E00014): LDR R0, SP, 14H
0544m(D11B4A4C): BLEQ MT [trap=4, pos=6986]
0545n(81E00004): LDR R1, SP, 4H
0546n(A1000000): STR R1, R0, 0H
IF y0 <= y1 THENo c.kindp := 0;q c.yr := y0 ELSEs ct.kindu := 1;v c.yw := y1 ENDx
0547o(80E0000C): LDR R0, SP, CH
0548o(81E00010): LDR R1, SP, 10H
0549o(00090001): SUB R0, R0, R1
054Ao(EE000009): BGT 9 [0554H]
054Bp(80E00014): LDR R0, SP, 14H
054Cp(D11B714C): BLEQ MT [trap=4, pos=7025]
054Dq(41000000): MOV R1, R0, 0H
054Eq(A100001C): STR R1, R0, 1CH
054Fr(80E00014): LDR R0, SP, 14H
0550r(D11B7B4C): BLEQ MT [trap=4, pos=7035]
0551s(81E0000C): LDR R1, SP, CH
0552s(A1000004): STR R1, R0, 4H
0553t(E7000008): B 8 [055CH]
0554u(80E00014): LDR R0, SP, 14H
0555u(D11B8D4C): BLEQ MT [trap=4, pos=7053]
0556v(41000001): MOV R1, R0, 1H
0557v(A100001C): STR R1, R0, 1CH
0558w(80E00014): LDR R0, SP, 14H
0559w(D11B974C): BLEQ MT [trap=4, pos=7063]
055Ax(81E00010): LDR R1, SP, 10H
055Bx(A1000004): STR R1, R0, 4H
ELSE cy.xz := x1;a
055Cy(E7000019): B 25 [0576H]
055Dz(80E00014): LDR R0, SP, 14H
055Ez(D11BB04C): BLEQ MT [trap=4, pos=7088]
055Fa(81E00008): LDR R1, SP, 8H
0560a(A1000000): STR R1, R0, 0H
IF y1 < y0 THENb c.kindc := 0;d c.ye := y1 ELSEf cg.kindh := 1;i c.yj := y0 ENDk
0561b(80E00010): LDR R0, SP, 10H
0562b(81E0000C): LDR R1, SP, CH
0563b(00090001): SUB R0, R0, R1
0564b(ED000009): BGE 9 [056EH]
0565c(80E00014): LDR R0, SP, 14H
0566c(D11BD64C): BLEQ MT [trap=4, pos=7126]
0567d(41000000): MOV R1, R0, 0H
0568d(A100001C): STR R1, R0, 1CH
0569e(80E00014): LDR R0, SP, 14H
056Ae(D11BE04C): BLEQ MT [trap=4, pos=7136]
056Bf(81E00010): LDR R1, SP, 10H
056Cf(A1000004): STR R1, R0, 4H
056Dg(E7000008): B 8 [0576H]
056Eh(80E00014): LDR R0, SP, 14H
056Fh(D11BF24C): BLEQ MT [trap=4, pos=7154]
0570i(41000001): MOV R1, R0, 1H
0571i(A100001C): STR R1, R0, 1CH
0572j(80E00014): LDR R0, SP, 14H
0573j(D11BFC4C): BLEQ MT [trap=4, pos=7164]
0574k(81E0000C): LDR R1, SP, CH
0575k(A1000004): STR R1, R0, 4H
END ;
DEC(c.xl, G.xm);n DEC(c.yo, G.yp);q c.dor := method;s
0576l(80E00014): LDR R0, SP, 14H
0577l(D11C204C): BLEQ MT [trap=4, pos=7200]
0578m(81E00018): LDR R1, SP, 18H
0579m(D11C254C): BLEQ MT [trap=4, pos=7205]
057An(82000000): LDR R2, R0, 0H
057Bn(81100030): LDR R1, R1, 30H
057Cn(02290001): SUB R2, R2, R1
057Dn(A2000000): STR R2, R0, 0H
057Eo(80E00014): LDR R0, SP, 14H
057Fo(D11C2F4C): BLEQ MT [trap=4, pos=7215]
0580p(81E00018): LDR R1, SP, 18H
0581p(D11C344C): BLEQ MT [trap=4, pos=7220]
0582q(40080004): ADD R0, R0, 4H
0583q(82000000): LDR R2, R0, 0H
0584q(81100034): LDR R1, R1, 34H
0585q(02290001): SUB R2, R2, R1
0586q(A2000000): STR R2, R0, 0H
0587r(80E00014): LDR R0, SP, 14H
0588r(D11C3B4C): BLEQ MT [trap=4, pos=7227]
0589s .FIXUP D
0589s(8D00004D): LDR SB, MT, MOD0 [Curves]
058As(81D0001C): LDR R1, SB, 1CH [data]
058Bs(A1000014): STR R1, R0, 14H
Graphics.Add(G.grapht,u c)v;w
058Ct(80E00018): LDR R0, SP, 18H
058Dt(D11C614C): BLEQ MT [trap=4, pos=7265]
058Eu(8000001C): LDR R0, R0, 1CH
058Fv(81E00014): LDR R1, SP, 14H
0590w .FIXUP P
0590w(F7716088): BL MOD7 [Graphics] PROC22
GraphicFrames.Defocus(G)x;y GraphicFrames.DrawObj(G,z c)a
0591x(80E00018): LDR R0, SP, 18H
0592y .FIXUP P
0592y(F7911002): BL MOD9 [GraphicFrames] PROC17
0593z(80E00018): LDR R0, SP, 18H
0594a(81E00014): LDR R1, SP, 14H
ENDb
0595b .FIXUP P
0595b(F790E003): BL MOD9 [GraphicFrames] PROC14
ENDc MakeLine;
0596c(8FE00000): LDR LNK, SP, 0H
0597c(4EE8001C): ADD SP, SP, 1CH
0598c(C700000F): B LNK
PROCEDURE MakeCircle*; (*command*)
VAR x0, y0, r: INTEGER;
c: Curve;
G: GraphicFrames.Frame;
BEGINd G := GraphicFrames.Focus();e
0599d .PROC 5
0599d .COMMAND MakeCircle
0599d(4EE90018): SUB SP, SP, 18H
059Ad(AFE00000): STR LNK, SP, 0H
059Be .FIXUP P
059Be(F7909006): BL MOD9 [GraphicFrames] PROC9
059Ce(A0E00014): STR R0, SP, 14H
IF (G # NIL)f & (gG.markh.next # NIL)i THENj
059Df(80E00014): LDR R0, SP, 14H
059Eg(E100005E): BEQ 94 [05FDH]
059Fh(80E00014): LDR R0, SP, 14H
05A0h(D11D6A4C): BLEQ MT [trap=4, pos=7530]
05A1i(80000048): LDR R0, R0, 48H
05A2j(E100005A): BEQ 90 [05FDH]
GraphicFrames.Deselect(G)k;l
05A3k(80E00014): LDR R0, SP, 14H
05A4l .FIXUP P
05A4l(F7912009): BL MOD9 [GraphicFrames] PROC18
x0 := G.markm.x;n y0 := G.marko.y;p r := ABS(G.markq.next.xr-x0)s;t
05A5m(80E00014): LDR R0, SP, 14H
05A6m(D11DAF4C): BLEQ MT [trap=4, pos=7599]
05A7n(80000040): LDR R0, R0, 40H
05A8n(A0E00004): STR R0, SP, 4H
05A9o(80E00014): LDR R0, SP, 14H
05AAo(D11DBF4C): BLEQ MT [trap=4, pos=7615]
05ABp(80000044): LDR R0, R0, 44H
05ACp(A0E00008): STR R0, SP, 8H
05ADq(80E00014): LDR R0, SP, 14H
05AEq(D11DD24C): BLEQ MT [trap=4, pos=7634]
05AFr(80000048): LDR R0, R0, 48H
05B0r(D11DD94C): BLEQ MT [trap=4, pos=7641]
05B1s(80000000): LDR R0, R0, 0H
05B2s(81E00004): LDR R1, SP, 4H
05B3s(00090001): SUB R0, R0, R1
05B4t(40090000): SUB R0, R0, 0H
05B5t(ED000002): BGE 2 [05B8H]
05B6t(41000000): MOV R1, R0, 0H
05B7t(00190000): SUB R0, R1, R0
05B8t(A0E0000C): STR R0, SP, CH
IF r > 4 THENu
05B9u(80E0000C): LDR R0, SP, CH
05BAu(40090004): SUB R0, R0, 4H
05BBu(E6000041): BLE 65 [05FDH]
NEW(c);v c.xw := x0 - r -x G.xy;z c.ya := y0 - r -b G.yc;d c.we := 2*r+f1;g c.hh := c.wi;j
05BCv(40E80010): ADD R0, SP, 10H
05BDv .FIXUP D
05BDv(8D000034): LDR SB, MT, MOD0 [Curves]
05BEv(41D80000): ADD R1, SB, 0H [data]
05BFv(D71E020C): BL MT [trap=0, pos=7682]
05C0w(80E00010): LDR R0, SP, 10H
05C1w(D11E064C): BLEQ MT [trap=4, pos=7686]
05C2x(81E00004): LDR R1, SP, 4H
05C3x(82E0000C): LDR R2, SP, CH
05C4x(01190002): SUB R1, R1, R2
05C5y(82E00014): LDR R2, SP, 14H
05C6y(D11E164C): BLEQ MT [trap=4, pos=7702]
05C7z(82200030): LDR R2, R2, 30H
05C8z(01190002): SUB R1, R1, R2
05C9z(A1000000): STR R1, R0, 0H
05CAa(80E00010): LDR R0, SP, 10H
05CBa(D11E1B4C): BLEQ MT [trap=4, pos=7707]
05CCb(81E00008): LDR R1, SP, 8H
05CDb(82E0000C): LDR R2, SP, CH
05CEb(01190002): SUB R1, R1, R2
05CFc(82E00014): LDR R2, SP, 14H
05D0c(D11E2B4C): BLEQ MT [trap=4, pos=7723]
05D1d(82200034): LDR R2, R2, 34H
05D2d(01190002): SUB R1, R1, R2
05D3d(A1000004): STR R1, R0, 4H
05D4e(80E00010): LDR R0, SP, 10H
05D5e(D11E304C): BLEQ MT [trap=4, pos=7728]
05D6f(81E0000C): LDR R1, SP, CH
05D7f(41110001): LSL R1, R1, 1H
05D8g(41180001): ADD R1, R1, 1H
05D9g(A1000008): STR R1, R0, 8H
05DAh(80E00010): LDR R0, SP, 10H
05DBh(D11E3E4C): BLEQ MT [trap=4, pos=7742]
05DCi(81E00010): LDR R1, SP, 10H
05DDi(D11E454C): BLEQ MT [trap=4, pos=7749]
05DEj(81100008): LDR R1, R1, 8H
05DFj(A100000C): STR R1, R0, CH
c.kindk := 2;l c.colm := Oberon.CurCol;n
05E0k(80E00010): LDR R0, SP, 10H
05E1k(D11E554C): BLEQ MT [trap=4, pos=7765]
05E2l(41000002): MOV R1, R0, 2H
05E3l(A100001C): STR R1, R0, 1CH
05E4m(80E00010): LDR R0, SP, 10H
05E5m(D11E614C): BLEQ MT [trap=4, pos=7777]
05E6n .FIXUP D
05E6n(8D300029): LDR SB, MT, MOD3 [Oberon]
05E7n(81D00010): LDR R1, SB, VAR16
05E8n(B1000010): STR R1, R0, 10H
c.lwo := Graphics.width;p c.doq := method;r
05E9o(80E00010): LDR R0, SP, 10H
05EAo(D11E804C): BLEQ MT [trap=4, pos=7808]
05EBp .FIXUP D
05EBp(8D700005): LDR SB, MT, MOD7 [Graphics]
05ECp(81D0000F): LDR R1, SB, VAR15
05EDp(A1000020): STR R1, R0, 20H
05EEq(80E00010): LDR R0, SP, 10H
05EFq(D11E984C): BLEQ MT [trap=4, pos=7832]
05F0r .FIXUP D
05F0r(8D000005): LDR SB, MT, MOD0 [Curves]
05F1r(81D0001C): LDR R1, SB, 1CH [data]
05F2r(A1000014): STR R1, R0, 14H
Graphics.Add(G.graphs,t c)u;v
05F3s(80E00014): LDR R0, SP, 14H
05F4s(D11EC04C): BLEQ MT [trap=4, pos=7872]
05F5t(8000001C): LDR R0, R0, 1CH
05F6u(81E00010): LDR R1, SP, 10H
05F7v .FIXUP P
05F7v(F7716053): BL MOD7 [Graphics] PROC22
GraphicFrames.Defocus(G)w;x GraphicFrames.DrawObj(G,y c)z
05F8w(80E00014): LDR R0, SP, 14H
05F9x .FIXUP P
05F9x(F7911002): BL MOD9 [GraphicFrames] PROC17
05FAy(80E00014): LDR R0, SP, 14H
05FBz(81E00010): LDR R1, SP, 10H
ENDa
05FCa .FIXUP P
05FCa(F790E003): BL MOD9 [GraphicFrames] PROC14
END
ENDb MakeCircle;
05FDb(8FE00000): LDR LNK, SP, 0H
05FEb(4EE80018): ADD SP, SP, 18H
05FFb(C700000F): B LNK
PROCEDURE MakeEllipse*; (*command*)
VAR x0, y0, a, b: INTEGER;
c: Curve;
G: GraphicFrames.Frame;
BEGINc G := GraphicFrames.Focus();d
0600c .PROC 6
0600c .COMMAND MakeEllipse
0600c(4EE9001C): SUB SP, SP, 1CH
0601c(AFE00000): STR LNK, SP, 0H
0602d .FIXUP P
0602d(F7909006): BL MOD9 [GraphicFrames] PROC9
0603d(A0E00018): STR R0, SP, 18H
IF (G # NIL)e & (fG.markg.next # NIL)h & (iG.markj.next.nextk # NIL)l THENm
0604e(80E00018): LDR R0, SP, 18H
0605f(E1000075): BEQ 117 [067BH]
0606g(80E00018): LDR R0, SP, 18H
0607g(D11FDB4C): BLEQ MT [trap=4, pos=8155]
0608h(80000048): LDR R0, R0, 48H
0609i(E1000071): BEQ 113 [067BH]
060Aj(80E00018): LDR R0, SP, 18H
060Bj(D11FF14C): BLEQ MT [trap=4, pos=8177]
060Ck(80000048): LDR R0, R0, 48H
060Dk(D11FFB4C): BLEQ MT [trap=4, pos=8187]
060El(80000008): LDR R0, R0, 8H
060Fm(E100006B): BEQ 107 [067BH]
GraphicFrames.Deselect(G)n;o
0610n(80E00018): LDR R0, SP, 18H
0611o .FIXUP P
0611o(F791200F): BL MOD9 [GraphicFrames] PROC18
x0 := G.markp.x;q y0 := G.markr.y;s
0612p(80E00018): LDR R0, SP, 18H
0613p(D1203B4C): BLEQ MT [trap=4, pos=8251]
0614q(80000040): LDR R0, R0, 40H
0615q(A0E00004): STR R0, SP, 4H
0616r(80E00018): LDR R0, SP, 18H
0617r(D1204B4C): BLEQ MT [trap=4, pos=8267]
0618s(80000044): LDR R0, R0, 44H
0619s(A0E00008): STR R0, SP, 8H
a := ABS(G.markt.next.xu-x0)v;w b := ABS(G.markx.next.nexty.yz - y0)a;b
061At(80E00018): LDR R0, SP, 18H
061Bt(D120644C): BLEQ MT [trap=4, pos=8292]
061Cu(80000048): LDR R0, R0, 48H
061Du(D1206B4C): BLEQ MT [trap=4, pos=8299]
061Ev(80000000): LDR R0, R0, 0H
061Fv(81E00004): LDR R1, SP, 4H
0620v(00090001): SUB R0, R0, R1
0621w(40090000): SUB R0, R0, 0H
0622w(ED000002): BGE 2 [0625H]
0623w(41000000): MOV R1, R0, 0H
0624w(00190000): SUB R0, R1, R0
0625w(A0E0000C): STR R0, SP, CH
0626x(80E00018): LDR R0, SP, 18H
0627x(D120804C): BLEQ MT [trap=4, pos=8320]
0628y(80000048): LDR R0, R0, 48H
0629y(D1208A4C): BLEQ MT [trap=4, pos=8330]
062Az(80000008): LDR R0, R0, 8H
062Bz(D1208C4C): BLEQ MT [trap=4, pos=8332]
062Ca(80000004): LDR R0, R0, 4H
062Da(81E00008): LDR R1, SP, 8H
062Ea(00090001): SUB R0, R0, R1
062Fb(40090000): SUB R0, R0, 0H
0630b(ED000002): BGE 2 [0633H]
0631b(41000000): MOV R1, R0, 0H
0632b(00190000): SUB R0, R1, R0
0633b(A0E00010): STR R0, SP, 10H
IF (a > 4)c & (db > 4)e THENf
0634c(80E0000C): LDR R0, SP, CH
0635c(40090004): SUB R0, R0, 4H
0636d(E6000044): BLE 68 [067BH]
0637e(80E00010): LDR R0, SP, 10H
0638e(40090004): SUB R0, R0, 4H
0639f(E6000041): BLE 65 [067BH]
NEW(c);g c.xh := x0 - a -i G.xj;k c.yl := y0 - b -m G.yn;o c.wp := 2*a+q1;r c.hs := 2*b+t1;u
063Ag(40E80014): ADD R0, SP, 14H
063Bg .FIXUP D
063Bg(8D00004B): LDR SB, MT, MOD0 [Curves]
063Cg(41D80000): ADD R1, SB, 0H [data]
063Dg(D720C30C): BL MT [trap=0, pos=8387]
063Eh(80E00014): LDR R0, SP, 14H
063Fh(D120C74C): BLEQ MT [trap=4, pos=8391]
0640i(81E00004): LDR R1, SP, 4H
0641i(82E0000C): LDR R2, SP, CH
0642i(01190002): SUB R1, R1, R2
0643j(82E00018): LDR R2, SP, 18H
0644j(D120D74C): BLEQ MT [trap=4, pos=8407]
0645k(82200030): LDR R2, R2, 30H
0646k(01190002): SUB R1, R1, R2
0647k(A1000000): STR R1, R0, 0H
0648l(80E00014): LDR R0, SP, 14H
0649l(D120DC4C): BLEQ MT [trap=4, pos=8412]
064Am(81E00008): LDR R1, SP, 8H
064Bm(82E00010): LDR R2, SP, 10H
064Cm(01190002): SUB R1, R1, R2
064Dn(82E00018): LDR R2, SP, 18H
064En(D120EC4C): BLEQ MT [trap=4, pos=8428]
064Fo(82200034): LDR R2, R2, 34H
0650o(01190002): SUB R1, R1, R2
0651o(A1000004): STR R1, R0, 4H
0652p(80E00014): LDR R0, SP, 14H
0653p(D120F14C): BLEQ MT [trap=4, pos=8433]
0654q(81E0000C): LDR R1, SP, CH
0655q(41110001): LSL R1, R1, 1H
0656r(41180001): ADD R1, R1, 1H
0657r(A1000008): STR R1, R0, 8H
0658s(80E00014): LDR R0, SP, 14H
0659s(D120FF4C): BLEQ MT [trap=4, pos=8447]
065At(81E00010): LDR R1, SP, 10H
065Bt(41110001): LSL R1, R1, 1H
065Cu(41180001): ADD R1, R1, 1H
065Du(A100000C): STR R1, R0, CH
c.kindv := 3;w c.colx := Oberon.CurCol;y
065Ev(80E00014): LDR R0, SP, 14H
065Fv(D121184C): BLEQ MT [trap=4, pos=8472]
0660w(41000003): MOV R1, R0, 3H
0661w(A100001C): STR R1, R0, 1CH
0662x(80E00014): LDR R0, SP, 14H
0663x(D121244C): BLEQ MT [trap=4, pos=8484]
0664y .FIXUP D
0664y(8D300029): LDR SB, MT, MOD3 [Oberon]
0665y(81D00010): LDR R1, SB, VAR16
0666y(B1000010): STR R1, R0, 10H
c.lwz := Graphics.width;a c.dob := method;c
0667z(80E00014): LDR R0, SP, 14H
0668z(D121434C): BLEQ MT [trap=4, pos=8515]
0669a .FIXUP D
0669a(8D700005): LDR SB, MT, MOD7 [Graphics]
066Aa(81D0000F): LDR R1, SB, VAR15
066Ba(A1000020): STR R1, R0, 20H
066Cb(80E00014): LDR R0, SP, 14H
066Db(D1215B4C): BLEQ MT [trap=4, pos=8539]
066Ec .FIXUP D
066Ec(8D000005): LDR SB, MT, MOD0 [Curves]
066Fc(81D0001C): LDR R1, SB, 1CH [data]
0670c(A1000014): STR R1, R0, 14H
Graphics.Add(G.graphd,e c)f;g
0671d(80E00018): LDR R0, SP, 18H
0672d(D121834C): BLEQ MT [trap=4, pos=8579]
0673e(8000001C): LDR R0, R0, 1CH
0674f(81E00014): LDR R1, SP, 14H
0675g .FIXUP P
0675g(F7716064): BL MOD7 [Graphics] PROC22
GraphicFrames.Defocus(G)h;i GraphicFrames.DrawObj(G,j c)k
0676h(80E00018): LDR R0, SP, 18H
0677i .FIXUP P
0677i(F7911002): BL MOD9 [GraphicFrames] PROC17
0678j(80E00018): LDR R0, SP, 18H
0679k(81E00014): LDR R1, SP, 14H
ENDl
067Al .FIXUP P
067Al(F790E003): BL MOD9 [GraphicFrames] PROC14
END
ENDm MakeEllipse;
067Bm(8FE00000): LDR LNK, SP, 0H
067Cm(4EE8001C): ADD SP, SP, 1CH
067Dm(C700000F): B LNK
BEGINn NEW(method);o method.modulep := "Curves";q method.allocatorr := "New";s
067En .PROC 0
067En .ENTRYPOINT
067En(4EE90004): SUB SP, SP, 4H
067Fn(AFE00000): STR LNK, SP, 0H
0680o .FIXUP D
0680o(8D000012): LDR SB, MT, MOD0 [Curves]
0681o(40D8001C): ADD R0, SB, 1CH [data]
0682o .FIXUP D
0682o(8D700002): LDR SB, MT, MOD7 [Graphics]
0683o(41D8000B): ADD R1, SB, VAR11
0684o(D721FF0C): BL MT [trap=0, pos=8703]
0685p .FIXUP D
0685p(8D000003): LDR SB, MT, MOD0 [Curves]
0686p(80D0001C): LDR R0, SB, 1CH [data]
0687p(D1220D4C): BLEQ MT [trap=4, pos=8717]
0688q(41D80020): ADD R1, SB, 20H
0689q(82100000): LDR R2, R1, 0H
068Aq(41180004): ADD R1, R1, 4H
068Bq(A2000000): STR R2, R0, 0H
068Cq(40080004): ADD R0, R0, 4H
068Dq(42220018): ASR R2, R2, 18H
068Eq(E9FFFFFA): BNE -6 [0689H]
068Fr(80D0001C): LDR R0, SB, 1CH
0690r(D1222B4C): BLEQ MT [trap=4, pos=8747]
0691s(40080020): ADD R0, R0, 20H
0692s(41D80028): ADD R1, SB, 28H
0693s(82100000): LDR R2, R1, 0H
0694s(41180004): ADD R1, R1, 4H
0695s(A2000000): STR R2, R0, 0H
0696s(40080004): ADD R0, R0, 4H
0697s(42220018): ASR R2, R2, 18H
0698s(E9FFFFFA): BNE -6 [0693H]
method.newt := New;u method.copyv := Copy;w method.drawx := Draw;y
0699t(80D0001C): LDR R0, SB, 1CH
069At(D122424C): BLEQ MT [trap=4, pos=8770]
069Bu(F7000000): BL 0 [069CH]
069Cu(41F911F8): SUB R1, LNK, 11F8H
069Du(A1000040): STR R1, R0, 40H
069Ev(80D0001C): LDR R0, SB, 1CH
069Fv(D122564C): BLEQ MT [trap=4, pos=8790]
06A0w(F7000000): BL 0 [06A1H]
06A1w(41F911CC): SUB R1, LNK, 11CCH
06A2w(A1000044): STR R1, R0, 44H
06A3x(80D0001C): LDR R0, SB, 1CH
06A4x(D1226B4C): BLEQ MT [trap=4, pos=8811]
06A5y(F7000000): BL 0 [06A6H]
06A6y(41F910C8): SUB R1, LNK, 10C8H
06A7y(A1000048): STR R1, R0, 48H
method.selectablez := Selectable;a method.changeb := Change;c
06A8z(80D0001C): LDR R0, SB, 1CH
06A9z(D122884C): BLEQ MT [trap=4, pos=8840]
06AAa(F7000000): BL 0 [06ABH]
06ABa(41F90A80): SUB R1, LNK, A80H
06ACa(A1000050): STR R1, R0, 50H
06ADb(80D0001C): LDR R0, SB, 1CH
06AEb(D122A54C): BLEQ MT [trap=4, pos=8869]
06AFc(F7000000): BL 0 [06B0H]
06B0c(41F90888): SUB R1, LNK, 888H
06B1c(A100004C): STR R1, R0, 4CH
method.readd := Read;e method.writef := Write
06B2d(80D0001C): LDR R0, SB, 1CH
06B3d(D122BE4C): BLEQ MT [trap=4, pos=8894]
06B4e(F7000000): BL 0 [06B5H]
06B5e(41F90838): SUB R1, LNK, 838H
06B6e(A1000054): STR R1, R0, 54H
06B7f(80D0001C): LDR R0, SB, 1CH
06B8f(D122D44C): BLEQ MT [trap=4, pos=8916]
ENDg Curves.h
06B9g(F7000000): BL 0 [06BAH]
06BAg(41F907A4): SUB R1, LNK, 7A4H
06BBg(A1000058): STR R1, R0, 58H
06BCh(8FE00000): LDR LNK, SP, 0H
06BDh(4EE80004): ADD SP, SP, 4H
06BEh(C700000F): B LNK