Graphics

Used Exports

BUILTINS: BOOLEAN BYTE CHAR DEC INC INTEGER LONGINT NEW ORD
Files: Base File New Old Pos Read ReadByte ReadInt ReadString Register Rider Rider.eof Set Write WriteByte WriteInt WriteString
Fonts: Font FontDesc.height FontDesc.minY FontDesc.name GetPat This
Modules: Command Load Module ThisCommand
Oberon: Log Time
SYSTEM: GET
Texts: Append ChangeLooks Open OpenReader OpenWriter Read Reader Reader.fnt Text TextDesc.len TextDesc.notify Write WriteHex WriteInt WriteLn WriteString Writer Writer.buf Writer.fnt

MODULE Graphics; (*NW 21.12.89 / 18.11.201 / 8.4.2016*)
.MODULE Graphics (KEY F7357DD9, VERSION 1, SIZE 00003C0C)
.IMPORT Files (KEY 73F5D686)
.IMPORT Modules (KEY 41C6A19A)
.IMPORT Fonts (KEY F4C9F557)
.IMPORT Texts (KEY 0B9E9984)
.IMPORT Oberon (KEY A89CCEE2)
.IMPORT Display (KEY 4C08D3EA)
.IMPORT Viewers (KEY 25ABF199)
.TYPEDESC 00000040 FFFFFFFF FFFFFFFF FFFFFFFF 00000018 00000014 FFFFFFFF 00000020 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000020 0003000D FFFFFFFF FFFFFFFF FFFFFFFF 00000020 00044005 FFFFFFFF FFFFFFFF FFFFFFFF 00000020 00058005 FFFFFFFF FFFFFFFF 00000000 FFFFFFFF 00000020 FFFFFFFF FFFFFFFF FFFFFFFF 00000008 00000004 FFFFFFFF 00000040 FFFFFFFF FFFFFFFF FFFFFFFF 00000034 00000030 0000002C 00000028 FFFFFFFF 00000040 FFFFFFFF FFFFFFFF FFFFFFFF 00000024 00000020 FFFFFFFF 00000020 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000080 FFFFFFFF FFFFFFFF FFFFFFFF 00000034 00000038 0000003C 00000040 0000000C 00000010 00000014 00000018 0000001C 00000020 00000024 00000028 0000002C 00000030 FFFFFFFF 00000080 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000040 0014003A FFFFFFFF FFFFFFFF 00000018 00000014 FFFFFFFF 00000040 0015C007 FFFFFFFF FFFFFFFF 00000018 00000014 FFFFFFFF 00000040 00178007 FFFFFFFF FFFFFFFF 0000001C 00000018 00000014 FFFFFFFF
.DATA 9CH
.STRING 234H " unknown"
.STRING 240H " not available"
.STRING 250H "loading "
.STRING 25CH " not found"
.STRING 268H ""
.POINTER_REFERENCES 1A0H 1A4H 1A8H 1ACH 1B0H 1B8H 1BCH 1C0H 1E0H 1D4H 1E4H 1E8H 208H 1FCH 20CH 210H 230H 224H
.FIXUP T 5FH
IMPORT SYSTEM, Files, Modules, Fonts, (*Printer,*) Texts, Oberon;
CONST NameLen* = 32; GraphFileId = 0FAX; LibFileId = 0FBX;
TYPE
Graph* = POINTER TO GraphDesc;
Object* = POINTER TO ObjectDesc;
Method* = POINTER TO MethodDesc;
Line* = POINTER TO LineDesc;
Caption* = POINTER TO CaptionDesc;
Macro* = POINTER TO MacroDesc;
ObjectDesc* = RECORD
x*, y*, w*, h*: INTEGER;
col*: BYTE;
selected*, marked*: BOOLEAN;
do*: Method;
next: Object
END ;
Msg* = RECORD END ;
WidMsg* = RECORD (Msg) w*: INTEGER END ;
ColorMsg* = RECORD (Msg) col*: INTEGER END ;
FontMsg* = RECORD (Msg) fnt*: Fonts.Font END ;
Name* = ARRAY NameLen OF CHAR;
GraphDesc* = RECORD
time*: LONGINT;
sel*, first: Object;
changed*: BOOLEAN
END ;
MacHead* = POINTER TO MacHeadDesc;
MacExt* = POINTER TO MacExtDesc;
Library* = POINTER TO LibraryDesc;
MacHeadDesc* = RECORD
name*: Name;
w*, h*: INTEGER;
ext*: MacExt;
lib*: Library;
first: Object;
next: MacHead
END ;
LibraryDesc* = RECORD
name*: Name;
first: MacHead;
next: Library
END ;
MacExtDesc* = RECORD END ;
Context* = RECORD
nofonts, noflibs, nofclasses: INTEGER;
font: ARRAY 10 OF Fonts.Font;
lib: ARRAY 4 OF Library;
class: ARRAY 6 OF Modules.Command
END;
MethodDesc* = RECORD
module*, allocator*: Name;
new*: Modules.Command;
copy*: PROCEDURE (from, to: Object);
draw*, change*: PROCEDURE (obj: Object; VAR msg: Msg);
selectable*: PROCEDURE (obj: Object; x, y: INTEGER): BOOLEAN;
read*: PROCEDURE (obj: Object; VAR R: Files.Rider; VAR C: Context);
write*: PROCEDURE (obj: Object; cno: INTEGER; VAR R: Files.Rider; VAR C: Context);
print*: PROCEDURE (obj: Object; x, y: INTEGER)
END ;
LineDesc* = RECORD (ObjectDesc)
unused*: INTEGER
END ;
CaptionDesc* = RECORD (ObjectDesc)
pos*, len*: INTEGER
END ;
MacroDesc* = RECORD (ObjectDesc)
mac*: MacHead
END ;
VAR width*, res*: INTEGER;
new: Object;
T*: Texts.Text; (*captions*)
LineMethod*, CapMethod*, MacMethod* : Method;
GetLib0: PROCEDURE (name: ARRAY OF CHAR; replace: BOOLEAN; VAR Lib: Library);
FirstLib: Library;
W, TW, XW: Texts.Writer;
PROCEDURE New*(obj: Object);
BEGINa new := obj
0000a .PROC 1
0000a .PROC 21
0000a(4EE90008): SUB SP, SP, 8H
0001a(AFE00000): STR LNK, SP, 0H
0002a(A0E00004): STR R0, SP, 4H
ENDb New;
0003b(80E00004): LDR R0, SP, 4H
0004b .FIXUP D
0004b(8D000004): LDR SB, MT, MOD0 [Graphics]
0005b(A0D001A0): STR R0, SB, 1A0H [data]
0006b(8FE00000): LDR LNK, SP, 0H
0007b .PROC 2
0007b(4EE80008): ADD SP, SP, 8H
0008b(C700000F): B LNK
PROCEDURE Add*(G: Graph; obj: Object);
BEGINc obj.markedd := FALSE;e obj.selectedf := TRUE;g obj.nexth := G.firsti;j
0009c .PROC 22
0009c(4EE9000C): SUB SP, SP, CH
000Ac(AFE00000): STR LNK, SP, 0H
000Bc(A0E00004): STR R0, SP, 4H
000Cc .PROC 3
000Cc(A1E00008): STR R1, SP, 8H
000Dd(80E00008): LDR R0, SP, 8H
000Ed(D10A554C): BLEQ MT [trap=4, pos=2645]
000Fe(41000000): MOV R1, R0, 0H
0010e(B1000012): STR R1, R0, 12H
0011f .PROC 4
0011f(80E00008): LDR R0, SP, 8H
0012f(D10A6C4C): BLEQ MT [trap=4, pos=2668]
0013g(41000001): MOV R1, R0, 1H
0014g(B1000011): STR R1, R0, 11H
0015h(80E00008): LDR R0, SP, 8H
0016h .PROC 5
0016h(D10A7E4C): BLEQ MT [trap=4, pos=2686]
0017i(81E00004): LDR R1, SP, 4H
0018i(D10A894C): BLEQ MT [trap=4, pos=2697]
0019j(81100008): LDR R1, R1, 8H
001Aj(A1000018): STR R1, R0, 18H
G.firstk := obj;l G.selm := obj;n G.timeo := Oberon.Time()p;q G.changedr := TRUE
001Bk(80E00004): LDR R0, SP, 4H
001Ck .PROC 6
001Ck(D10A964C): BLEQ MT [trap=4, pos=2710]
001Dl(81E00008): LDR R1, SP, 8H
001El(A1000008): STR R1, R0, 8H
001Fm(80E00004): LDR R0, SP, 4H
0020m(D10AA44C): BLEQ MT [trap=4, pos=2724]
0021n(81E00008): LDR R1, SP, 8H
0022n(A1000004): STR R1, R0, 4H
0023o .PROC 7
0023o(80E00004): LDR R0, SP, 4H
0024o(D10AB34C): BLEQ MT [trap=4, pos=2739]
0025p(4EE90004): SUB SP, SP, 4H
0026p(A0E00000): STR R0, SP, 0H
0027q .FIXUP P
0027q(F7516027): BL MOD5 [Oberon] PROC22
0028q(01000000): MOV R1, R0, R0
0029q(80E00000): LDR R0, SP, 0H
002Aq(4EE80004): ADD SP, SP, 4H
002Bq(A1000000): STR R1, R0, 0H
002Cr .PROC 8
002Cr(80E00004): LDR R0, SP, 4H
002Dr(D10ACF4C): BLEQ MT [trap=4, pos=2767]
ENDs Add;
002Es(41000001): MOV R1, R0, 1H
002Fs(B100000C): STR R1, R0, CH
0030s(8FE00000): LDR LNK, SP, 0H
0031s(4EE8000C): ADD SP, SP, CH
0032s(C700000F): B LNK
PROCEDURE ThisObj*(G: Graph; x, y: INTEGER): Object;
VAR obj: Object;
BEGINt obj := G.firstu;v
0033t .PROC 9
0033t .PROC 23
0033t(4EE90014): SUB SP, SP, 14H
0034t(AFE00000): STR LNK, SP, 0H
0035t(A0E00004): STR R0, SP, 4H
0036t(A1E00008): STR R1, SP, 8H
0037t(A2E0000C): STR R2, SP, CH
0038u .PROC 10
0038u(80E00004): LDR R0, SP, 4H
0039u(D10B464C): BLEQ MT [trap=4, pos=2886]
003Av(80000008): LDR R0, R0, 8H
003Bv(A0E00010): STR R0, SP, 10H
WHILE (obj # NIL)w & ~xobj.doy.selectablez(obja,b x ,cy)d DOe obj := obj.nextf ENDg ;
003Cw(80E00010): LDR R0, SP, 10H
003Dx(E1000015): BEQ 21 [0053H]
003Ey(80E00010): LDR R0, SP, 10H
003Fy(D10B674C): BLEQ MT [trap=4, pos=2919]
0040z(80000014): LDR R0, R0, 14H
0041z(D10B724C): BLEQ MT [trap=4, pos=2930]
0042a(80000050): LDR R0, R0, 50H
0043a(4EE90004): SUB SP, SP, 4H
0044a(A0E00000): STR R0, SP, 0H
0045b(80E00014): LDR R0, SP, 14H
0046c(81E0000C): LDR R1, SP, CH
0047d(82E00010): LDR R2, SP, 10H
0048e(83E00000): LDR R3, SP, 0H
0049e(4EE80004): ADD SP, SP, 4H
004Ae(D10B805C): BLEQ MT [trap=5, pos=2944]
004Be .PROC 11
004Be(D7000003): BL R3
004Ce(40090000): SUB R0, R0, 0H
004De(E9000005): BNE 5 [0053H]
004Ef(80E00010): LDR R0, SP, 10H
004Ff(D10B904C): BLEQ MT [trap=4, pos=2960]
0050g .PROC 12
0050g(80000018): LDR R0, R0, 18H
0051g(A0E00010): STR R0, SP, 10H
0052g(E7FFFFE9): B -23 [003CH]
RETURN obj
ENDh ThisObj;
0053h(80E00010): LDR R0, SP, 10H
0054h(8FE00000): LDR LNK, SP, 0H
0055h(4EE80014): ADD SP, SP, 14H
0056h(C700000F): B LNK
PROCEDURE SelectObj*(G: Graph; obj: Object);
BEGINi
0057i .PROC 13
0057i .PROC 24
0057i(4EE9000C): SUB SP, SP, CH
0058i(AFE00000): STR LNK, SP, 0H
0059i(A0E00004): STR R0, SP, 4H
005Ai(A1E00008): STR R1, SP, 8H
IF obj # NIL THENj obj.selectedk := TRUE;l G.selm := obj;n G.timeo := Oberon.Time()p ENDq
005Bj(80E00008): LDR R0, SP, 8H
005Cj(E1000011): BEQ 17 [006EH]
005Dk(80E00008): LDR R0, SP, 8H
005Ek .PROC 14
005Ek(D10C0F4C): BLEQ MT [trap=4, pos=3087]
005Fl(41000001): MOV R1, R0, 1H
0060l(B1000011): STR R1, R0, 11H
0061m(80E00004): LDR R0, SP, 4H
0062m(D10C1E4C): BLEQ MT [trap=4, pos=3102]
0063n(81E00008): LDR R1, SP, 8H
0064n(A1000004): STR R1, R0, 4H
0065o(80E00004): LDR R0, SP, 4H
0066o .PROC 15
0066o(D10C2D4C): BLEQ MT [trap=4, pos=3117]
0067p .PROC 16
0067p(4EE90004): SUB SP, SP, 4H
0068p(A0E00000): STR R0, SP, 0H
0069q .PROC 17
0069q .FIXUP P
0069q(F7516042): BL MOD5 [Oberon] PROC22
006Aq .PROC 18
006Aq(01000000): MOV R1, R0, R0
006Bq .PROC 19
006Bq(80E00000): LDR R0, SP, 0H
006Cq .PROC 20
006Cq(4EE80004): ADD SP, SP, 4H
006Dq(A1000000): STR R1, R0, 0H
ENDr SelectObj;
006Er(8FE00000): LDR LNK, SP, 0H
006Fr(4EE8000C): ADD SP, SP, CH
0070r(C700000F): B LNK
PROCEDURE SelectArea*(G: Graph; x0, y0, x1, y1: INTEGER);
VAR obj: Object; t: INTEGER;
BEGINs obj := G.firstt;u
0071s .PROC 25
0071s(4EE90020): SUB SP, SP, 20H
0072s(AFE00000): STR LNK, SP, 0H
0073s(A0E00004): STR R0, SP, 4H
0074s(A1E00008): STR R1, SP, 8H
0075s(A2E0000C): STR R2, SP, CH
0076s(A3E00010): STR R3, SP, 10H
0077s(A4E00014): STR R4, SP, 14H
0078t(80E00004): LDR R0, SP, 4H
0079t(D10CC84C): BLEQ MT [trap=4, pos=3272]
007Au(80000008): LDR R0, R0, 8H
007Bu(A0E00018): STR R0, SP, 18H
IF x1 < x0 THENv t := x0;w x0 := x1;x x1 := t ENDy ;
007Cv(80E00010): LDR R0, SP, 10H
007Dv(81E00008): LDR R1, SP, 8H
007Ev(00090001): SUB R0, R0, R1
007Fv(ED000006): BGE 6 [0086H]
0080w(80E00008): LDR R0, SP, 8H
0081w(A0E0001C): STR R0, SP, 1CH
0082x(80E00010): LDR R0, SP, 10H
0083x(A0E00008): STR R0, SP, 8H
0084y(80E0001C): LDR R0, SP, 1CH
0085y(A0E00010): STR R0, SP, 10H
IF y1 < y0 THENz t := y0;a y0 := y1;b y1 := t ENDc ;
0086z(80E00014): LDR R0, SP, 14H
0087z(81E0000C): LDR R1, SP, CH
0088z(00090001): SUB R0, R0, R1
0089z(ED000006): BGE 6 [0090H]
008Aa(80E0000C): LDR R0, SP, CH
008Ba(A0E0001C): STR R0, SP, 1CH
008Cb(80E00014): LDR R0, SP, 14H
008Db(A0E0000C): STR R0, SP, CH
008Ec(80E0001C): LDR R0, SP, 1CH
008Fc(A0E00014): STR R0, SP, 14H
WHILE obj # NIL DOd
0090d(80E00018): LDR R0, SP, 18H
0091d(E100002D): BEQ 45 [00BFH]
IF (x0 <= obj.xe)f & (gobj.xh + obj.wi <=j x1)k & (ly0 <= obj.ym)n & (oobj.yp + obj.hq <=r y1)s THENt
0092e(80E00018): LDR R0, SP, 18H
0093e(D10D604C): BLEQ MT [trap=4, pos=3424]
0094f(81E00008): LDR R1, SP, 8H
0095f(80000000): LDR R0, R0, 0H
0096f(01190000): SUB R1, R1, R0
0097g(EE000022): BGT 34 [00BAH]
0098h(80E00018): LDR R0, SP, 18H
0099h(D10D6A4C): BLEQ MT [trap=4, pos=3434]
009Ai(81E00018): LDR R1, SP, 18H
009Bi(D10D724C): BLEQ MT [trap=4, pos=3442]
009Cj(80000000): LDR R0, R0, 0H
009Dj(81100008): LDR R1, R1, 8H
009Ej(00080001): ADD R0, R0, R1
009Fk(81E00010): LDR R1, SP, 10H
00A0k(00090001): SUB R0, R0, R1
00A1l(EE000018): BGT 24 [00BAH]
00A2m(80E00018): LDR R0, SP, 18H
00A3m(D10D884C): BLEQ MT [trap=4, pos=3464]
00A4n(81E0000C): LDR R1, SP, CH
00A5n(80000004): LDR R0, R0, 4H
00A6n(01190000): SUB R1, R1, R0
00A7o(EE000012): BGT 18 [00BAH]
00A8p(80E00018): LDR R0, SP, 18H
00A9p(D10D924C): BLEQ MT [trap=4, pos=3474]
00AAq(81E00018): LDR R1, SP, 18H
00ABq(D10D9A4C): BLEQ MT [trap=4, pos=3482]
00ACr(80000004): LDR R0, R0, 4H
00ADr(8110000C): LDR R1, R1, CH
00AEr(00080001): ADD R0, R0, R1
00AFs(81E00014): LDR R1, SP, 14H
00B0s(00090001): SUB R0, R0, R1
00B1t(EE000008): BGT 8 [00BAH]
obj.selectedu := TRUE;v G.selw := obj
00B2u(80E00018): LDR R0, SP, 18H
00B3u(D10DBB4C): BLEQ MT [trap=4, pos=3515]
00B4v(41000001): MOV R1, R0, 1H
00B5v(B1000011): STR R1, R0, 11H
00B6w(80E00004): LDR R0, SP, 4H
00B7w(D10DCA4C): BLEQ MT [trap=4, pos=3530]
ENDx ;
00B8x(81E00018): LDR R1, SP, 18H
00B9x(A1000004): STR R1, R0, 4H
obj := obj.nexty
00BAy(80E00018): LDR R0, SP, 18H
00BBy(D10DF34C): BLEQ MT [trap=4, pos=3571]
ENDz ;
00BCz(80000018): LDR R0, R0, 18H
00BDz(A0E00018): STR R0, SP, 18H
00BEz(E7FFFFD1): B -47 [0090H]
IF G.sela # NIL THENb G.timec := Oberon.Time()d ENDe
00BFa(80E00004): LDR R0, SP, 4H
00C0a(D10E0A4C): BLEQ MT [trap=4, pos=3594]
00C1b(80000004): LDR R0, R0, 4H
00C2b(E1000009): BEQ 9 [00CCH]
00C3c(80E00004): LDR R0, SP, 4H
00C4c(D10E1C4C): BLEQ MT [trap=4, pos=3612]
00C5d(4EE90004): SUB SP, SP, 4H
00C6d(A0E00000): STR R0, SP, 0H
00C7e .FIXUP P
00C7e(F751605E): BL MOD5 [Oberon] PROC22
00C8e(01000000): MOV R1, R0, R0
00C9e(80E00000): LDR R0, SP, 0H
00CAe(4EE80004): ADD SP, SP, 4H
00CBe(A1000000): STR R1, R0, 0H
ENDf SelectArea;
00CCf(8FE00000): LDR LNK, SP, 0H
00CDf(4EE80020): ADD SP, SP, 20H
00CEf(C700000F): B LNK
PROCEDURE Draw*(G: Graph; VAR M: Msg);
VAR obj: Object;
BEGINg obj := G.firsth;i
00CFg .PROC 26
00CFg(4EE90014): SUB SP, SP, 14H
00D0g(AFE00000): STR LNK, SP, 0H
00D1g(A0E00004): STR R0, SP, 4H
00D2g(A1E00008): STR R1, SP, 8H
00D3g(A2E0000C): STR R2, SP, CH
00D4h(80E00004): LDR R0, SP, 4H
00D5h(D10E994C): BLEQ MT [trap=4, pos=3737]
00D6i(80000008): LDR R0, R0, 8H
00D7i(A0E00010): STR R0, SP, 10H
WHILE obj # NIL DOj obj.dok.drawl(objm,n M)o;p obj := obj.nextq ENDr
00D8j(80E00010): LDR R0, SP, 10H
00D9j(E1000013): BEQ 19 [00EDH]
00DAk(80E00010): LDR R0, SP, 10H
00DBk(D10EB84C): BLEQ MT [trap=4, pos=3768]
00DCl(80000014): LDR R0, R0, 14H
00DDl(D10EBD4C): BLEQ MT [trap=4, pos=3773]
00DEm(80000048): LDR R0, R0, 48H
00DFm(4EE90004): SUB SP, SP, 4H
00E0m(A0E00000): STR R0, SP, 0H
00E1n(80E00014): LDR R0, SP, 14H
00E2o(81E0000C): LDR R1, SP, CH
00E3o(82E00010): LDR R2, SP, 10H
00E4p(83E00000): LDR R3, SP, 0H
00E5p(4EE80004): ADD SP, SP, 4H
00E6p(D10EC65C): BLEQ MT [trap=5, pos=3782]
00E7p(D7000003): BL R3
00E8q(80E00010): LDR R0, SP, 10H
00E9q(D10ED64C): BLEQ MT [trap=4, pos=3798]
00EAr(80000018): LDR R0, R0, 18H
00EBr(A0E00010): STR R0, SP, 10H
00ECr(E7FFFFEB): B -21 [00D8H]
ENDs Draw;
00EDs(8FE00000): LDR LNK, SP, 0H
00EEs(4EE80014): ADD SP, SP, 14H
00EFs(C700000F): B LNK
PROCEDURE List*(G: Graph);
VAR obj: Object; tag: INTEGER;
BEGINt obj := G.firstu;v
00F0t .PROC 27
00F0t(4EE90010): SUB SP, SP, 10H
00F1t(AFE00000): STR LNK, SP, 0H
00F2t(A0E00004): STR R0, SP, 4H
00F3u(80E00004): LDR R0, SP, 4H
00F4u(D10F3E4C): BLEQ MT [trap=4, pos=3902]
00F5v(80000008): LDR R0, R0, 8H
00F6v(A0E00008): STR R0, SP, 8H
WHILE obj # NIL DOw
00F7w(80E00008): LDR R0, SP, 8H
00F8w(E100005A): BEQ 90 [0153H]
Texts.Write(XW,x 9X)y;z Texts.WriteHex(XW,a ORD(obj))b;c Texts.Write(XW,d 9X)e;f
00F9x .FIXUP D
00F9x(8D0000F5): LDR SB, MT, MOD0 [Graphics]
00FAx(40D8020C): ADD R0, SB, 20CH [data]
00FBx .FIXUP D
00FBx(8D400002): LDR SB, MT, MOD4 [Texts]
00FCx(41D80005): ADD R1, SB, VAR5
00FDy(42000009): MOV R2, R0, 9H
00FEz .FIXUP P
00FEz(F741B037): BL MOD4 [Texts] PROC27
00FFa .FIXUP D
00FFa(8D000004): LDR SB, MT, MOD0 [Graphics]
0100a(40D8020C): ADD R0, SB, 20CH [data]
0101a .FIXUP D
0101a(8D400002): LDR SB, MT, MOD4 [Texts]
0102a(41D80005): ADD R1, SB, VAR5
0103b(82E00008): LDR R2, SP, 8H
0104c .FIXUP P
0104c(F741F006): BL MOD4 [Texts] PROC31
0105d .FIXUP D
0105d(8D000004): LDR SB, MT, MOD0 [Graphics]
0106d(40D8020C): ADD R0, SB, 20CH [data]
0107d .FIXUP D
0107d(8D400002): LDR SB, MT, MOD4 [Texts]
0108d(41D80005): ADD R1, SB, VAR5
0109e(42000009): MOV R2, R0, 9H
010Af .FIXUP P
010Af(F741B006): BL MOD4 [Texts] PROC27
Texts.WriteInt(XW,g obj.xh,i 5)j;k Texts.WriteInt(XW,l obj.ym,n 5)o;p Texts.WriteInt(XW,q obj.wr,s 5)t;u Texts.WriteInt(XW,v obj.hw,x 5)y;z
010Bg .FIXUP D
010Bg(8D000004): LDR SB, MT, MOD0 [Graphics]
010Cg(40D8020C): ADD R0, SB, 20CH [data]
010Dg .FIXUP D
010Dg(8D400002): LDR SB, MT, MOD4 [Texts]
010Eg(41D80005): ADD R1, SB, VAR5
010Fh(82E00008): LDR R2, SP, 8H
0110h(D10FC34C): BLEQ MT [trap=4, pos=4035]
0111i(82200000): LDR R2, R2, 0H
0112j(43000005): MOV R3, R0, 5H
0113k .FIXUP P
0113k(F741E009): BL MOD4 [Texts] PROC30
0114l .FIXUP D
0114l(8D000007): LDR SB, MT, MOD0 [Graphics]
0115l(40D8020C): ADD R0, SB, 20CH [data]
0116l .FIXUP D
0116l(8D400002): LDR SB, MT, MOD4 [Texts]
0117l(41D80005): ADD R1, SB, VAR5
0118m(82E00008): LDR R2, SP, 8H
0119m(D10FE14C): BLEQ MT [trap=4, pos=4065]
011An(82200004): LDR R2, R2, 4H
011Bo(43000005): MOV R3, R0, 5H
011Cp .FIXUP P
011Cp(F741E009): BL MOD4 [Texts] PROC30
011Dq .FIXUP D
011Dq(8D000007): LDR SB, MT, MOD0 [Graphics]
011Eq(40D8020C): ADD R0, SB, 20CH [data]
011Fq .FIXUP D
011Fq(8D400002): LDR SB, MT, MOD4 [Texts]
0120q(41D80005): ADD R1, SB, VAR5
0121r(82E00008): LDR R2, SP, 8H
0122r(D10FFF4C): BLEQ MT [trap=4, pos=4095]
0123s(82200008): LDR R2, R2, 8H
0124t(43000005): MOV R3, R0, 5H
0125u .FIXUP P
0125u(F741E009): BL MOD4 [Texts] PROC30
0126v .FIXUP D
0126v(8D000007): LDR SB, MT, MOD0 [Graphics]
0127v(40D8020C): ADD R0, SB, 20CH [data]
0128v .FIXUP D
0128v(8D400002): LDR SB, MT, MOD4 [Texts]
0129v(41D80005): ADD R1, SB, VAR5
012Aw(82E00008): LDR R2, SP, 8H
012Bw(D1101D4C): BLEQ MT [trap=4, pos=4125]
012Cx(8220000C): LDR R2, R2, CH
012Dy(43000005): MOV R3, R0, 5H
012Ez .FIXUP P
012Ez(F741E009): BL MOD4 [Texts] PROC30
Texts.Write(XW,a "/")b;c SYSTEM.GET(ORD(obj)-d8,e tag);f Texts.WriteHex(XW,g tag)h;i
012Fa .FIXUP D
012Fa(8D000007): LDR SB, MT, MOD0 [Graphics]
0130a(40D8020C): ADD R0, SB, 20CH [data]
0131a .FIXUP D
0131a(8D400002): LDR SB, MT, MOD4 [Texts]
0132a(41D80005): ADD R1, SB, VAR5
0133b(4200002F): MOV R2, R0, 2FH
0134c .FIXUP P
0134c(F741B006): BL MOD4 [Texts] PROC27
0135d(80E00008): LDR R0, SP, 8H
0136e(40090008): SUB R0, R0, 8H
0137f(80000000): LDR R0, R0, 0H
0138f(A0E0000C): STR R0, SP, CH
0139g .FIXUP D
0139g(8D000008): LDR SB, MT, MOD0 [Graphics]
013Ag(40D8020C): ADD R0, SB, 20CH [data]
013Bg .FIXUP D
013Bg(8D400002): LDR SB, MT, MOD4 [Texts]
013Cg(41D80005): ADD R1, SB, VAR5
013Dh(82E0000C): LDR R2, SP, CH
013Ei .FIXUP P
013Ei(F741F00A): BL MOD4 [Texts] PROC31
SYSTEM.GET(ORD(obj)-j4,k tag);l Texts.WriteHex(XW,m tag)n;o Texts.WriteLn(XW)p;q obj := obj.nextr
013Fj(80E00008): LDR R0, SP, 8H
0140k(40090004): SUB R0, R0, 4H
0141l(80000000): LDR R0, R0, 0H
0142l(A0E0000C): STR R0, SP, CH
0143m .FIXUP D
0143m(8D000008): LDR SB, MT, MOD0 [Graphics]
0144m(40D8020C): ADD R0, SB, 20CH [data]
0145m .FIXUP D
0145m(8D400002): LDR SB, MT, MOD4 [Texts]
0146m(41D80005): ADD R1, SB, VAR5
0147n(82E0000C): LDR R2, SP, CH
0148o .FIXUP P
0148o(F741F00A): BL MOD4 [Texts] PROC31
0149p .FIXUP D
0149p(8D000004): LDR SB, MT, MOD0 [Graphics]
014Ap(40D8020C): ADD R0, SB, 20CH [data]
014Bp .FIXUP D
014Bp(8D400002): LDR SB, MT, MOD4 [Texts]
014Cp(41D80005): ADD R1, SB, VAR5
014Dq .FIXUP P
014Dq(F741C005): BL MOD4 [Texts] PROC28
014Er(80E00008): LDR R0, SP, 8H
014Fr(D110D34C): BLEQ MT [trap=4, pos=4307]
ENDs ;
0150s(80000018): LDR R0, R0, 18H
0151s(A0E00008): STR R0, SP, 8H
0152s(E7FFFFA4): B -92 [00F7H]
Texts.Append(Oberon.Log,t XW.buf)u
0153t .FIXUP D
0153t(8D500008): LDR SB, MT, MOD5 [Oberon]
0154t(80D0000D): LDR R0, SB, VAR13
0155u .FIXUP D
0155u(8D000002): LDR SB, MT, MOD0 [Graphics]
0156u(81D0020C): LDR R1, SB, 20CH [data]
ENDv List;
0157v .FIXUP P
0157v(F740E00A): BL MOD4 [Texts] PROC14
0158v(8FE00000): LDR LNK, SP, 0H
0159v(4EE80010): ADD SP, SP, 10H
015Av(C700000F): B LNK
(*----------------procedures operating on selection -------------------*)
PROCEDURE Deselect*(G: Graph);
VAR obj: Object;
BEGINw obj := G.firstx;y G.selz := NIL;a G.timeb := 0;c
015Bw .PROC 28
015Bw(4EE9000C): SUB SP, SP, CH
015Cw(AFE00000): STR LNK, SP, 0H
015Dw(A0E00004): STR R0, SP, 4H
015Ex(80E00004): LDR R0, SP, 4H
015Fx(D111A94C): BLEQ MT [trap=4, pos=4521]
0160y(80000008): LDR R0, R0, 8H
0161y(A0E00008): STR R0, SP, 8H
0162z(80E00004): LDR R0, SP, 4H
0163z(D111B04C): BLEQ MT [trap=4, pos=4528]
0164a(41000000): MOV R1, R0, 0H
0165a(A1000004): STR R1, R0, 4H
0166b(80E00004): LDR R0, SP, 4H
0167b(D111BF4C): BLEQ MT [trap=4, pos=4543]
0168c(41000000): MOV R1, R0, 0H
0169c(A1000000): STR R1, R0, 0H
WHILE obj # NIL DOd obj.selectede := FALSE;f obj := obj.nextg ENDh
016Ad(80E00008): LDR R0, SP, 8H
016Bd(E1000009): BEQ 9 [0175H]
016Ce(80E00008): LDR R0, SP, 8H
016De(D111E94C): BLEQ MT [trap=4, pos=4585]
016Ef(41000000): MOV R1, R0, 0H
016Ff(B1000011): STR R1, R0, 11H
0170g(80E00008): LDR R0, SP, 8H
0171g(D112034C): BLEQ MT [trap=4, pos=4611]
0172h(80000018): LDR R0, R0, 18H
0173h(A0E00008): STR R0, SP, 8H
0174h(E7FFFFF5): B -11 [016AH]
ENDi Deselect;
0175i(8FE00000): LDR LNK, SP, 0H
0176i(4EE8000C): ADD SP, SP, CH
0177i(C700000F): B LNK
PROCEDURE DrawSel*(G: Graph; VAR M: Msg);
VAR obj: Object;
BEGINj obj := G.firstk;l
0178j .PROC 29
0178j(4EE90014): SUB SP, SP, 14H
0179j(AFE00000): STR LNK, SP, 0H
017Aj(A0E00004): STR R0, SP, 4H
017Bj(A1E00008): STR R1, SP, 8H
017Cj(A2E0000C): STR R2, SP, CH
017Dk(80E00004): LDR R0, SP, 4H
017Ek(D112704C): BLEQ MT [trap=4, pos=4720]
017Fl(80000008): LDR R0, R0, 8H
0180l(A0E00010): STR R0, SP, 10H
WHILE obj # NIL DOm
0181m(80E00010): LDR R0, SP, 10H
0182m(E1000017): BEQ 23 [019AH]
IF obj.selectedn THENo obj.dop.drawq(objr,s M)t ENDu ;
0183n(80E00010): LDR R0, SP, 10H
0184n(D1129E4C): BLEQ MT [trap=4, pos=4766]
0185o(90000011): LDR R0, R0, 11H
0186o(E100000E): BEQ 14 [0195H]
0187p(80E00010): LDR R0, SP, 10H
0188p(D112AA4C): BLEQ MT [trap=4, pos=4778]
0189q(80000014): LDR R0, R0, 14H
018Aq(D112AF4C): BLEQ MT [trap=4, pos=4783]
018Br(80000048): LDR R0, R0, 48H
018Cr(4EE90004): SUB SP, SP, 4H
018Dr(A0E00000): STR R0, SP, 0H
018Es(80E00014): LDR R0, SP, 14H
018Ft(81E0000C): LDR R1, SP, CH
0190t(82E00010): LDR R2, SP, 10H
0191u(83E00000): LDR R3, SP, 0H
0192u(4EE80004): ADD SP, SP, 4H
0193u(D112BB5C): BLEQ MT [trap=5, pos=4795]
0194u(D7000003): BL R3
obj := obj.nextv
0195v(80E00010): LDR R0, SP, 10H
0196v(D112D34C): BLEQ MT [trap=4, pos=4819]
ENDw
0197w(80000018): LDR R0, R0, 18H
0198w(A0E00010): STR R0, SP, 10H
0199w(E7FFFFE7): B -25 [0181H]
ENDx DrawSel;
019Ax(8FE00000): LDR LNK, SP, 0H
019Bx(4EE80014): ADD SP, SP, 14H
019Cx(C700000F): B LNK
PROCEDURE Change*(G: Graph; VAR M: Msg);
VAR obj: Object;
BEGINy obj := G.firstz;a G.changedb := TRUE;c
019Dy .PROC 30
019Dy(4EE90014): SUB SP, SP, 14H
019Ey(AFE00000): STR LNK, SP, 0H
019Fy(A0E00004): STR R0, SP, 4H
01A0y(A1E00008): STR R1, SP, 8H
01A1y(A2E0000C): STR R2, SP, CH
01A2z(80E00004): LDR R0, SP, 4H
01A3z(D113424C): BLEQ MT [trap=4, pos=4930]
01A4a(80000008): LDR R0, R0, 8H
01A5a(A0E00010): STR R0, SP, 10H
01A6b(80E00004): LDR R0, SP, 4H
01A7b(D1134D4C): BLEQ MT [trap=4, pos=4941]
01A8c(41000001): MOV R1, R0, 1H
01A9c(B100000C): STR R1, R0, CH
WHILE obj # NIL DOd
01AAd(80E00010): LDR R0, SP, 10H
01ABd(E1000017): BEQ 23 [01C3H]
IF obj.selectede THENf obj.dog.changeh(obji,j M)k ENDl ;
01ACe(80E00010): LDR R0, SP, 10H
01ADe(D113834C): BLEQ MT [trap=4, pos=4995]
01AEf(90000011): LDR R0, R0, 11H
01AFf(E100000E): BEQ 14 [01BEH]
01B0g(80E00010): LDR R0, SP, 10H
01B1g(D1138F4C): BLEQ MT [trap=4, pos=5007]
01B2h(80000014): LDR R0, R0, 14H
01B3h(D113964C): BLEQ MT [trap=4, pos=5014]
01B4i(8000004C): LDR R0, R0, 4CH
01B5i(4EE90004): SUB SP, SP, 4H
01B6i(A0E00000): STR R0, SP, 0H
01B7j(80E00014): LDR R0, SP, 14H
01B8k(81E0000C): LDR R1, SP, CH
01B9k(82E00010): LDR R2, SP, 10H
01BAl(83E00000): LDR R3, SP, 0H
01BBl(4EE80004): ADD SP, SP, 4H
01BCl(D113A25C): BLEQ MT [trap=5, pos=5026]
01BDl(D7000003): BL R3
obj := obj.nextm
01BEm(80E00010): LDR R0, SP, 10H
01BFm(D113BA4C): BLEQ MT [trap=4, pos=5050]
ENDn
01C0n(80000018): LDR R0, R0, 18H
01C1n(A0E00010): STR R0, SP, 10H
01C2n(E7FFFFE7): B -25 [01AAH]
ENDo Change;
01C3o(8FE00000): LDR LNK, SP, 0H
01C4o(4EE80014): ADD SP, SP, 14H
01C5o(C700000F): B LNK
PROCEDURE Move*(G: Graph; dx, dy: INTEGER);
VAR obj, ob0: Object; x0, x1, y0, y1: INTEGER;
BEGINp obj := G.firstq;r G.changeds := TRUE;t
01C6p .PROC 31
01C6p(4EE90028): SUB SP, SP, 28H
01C7p(AFE00000): STR LNK, SP, 0H
01C8p(A0E00004): STR R0, SP, 4H
01C9p(A1E00008): STR R1, SP, 8H
01CAp(A2E0000C): STR R2, SP, CH
01CBq(80E00004): LDR R0, SP, 4H
01CCq(D114494C): BLEQ MT [trap=4, pos=5193]
01CDr(80000008): LDR R0, R0, 8H
01CEr(A0E00010): STR R0, SP, 10H
01CFs(80E00004): LDR R0, SP, 4H
01D0s(D114544C): BLEQ MT [trap=4, pos=5204]
01D1t(41000001): MOV R1, R0, 1H
01D2t(B100000C): STR R1, R0, CH
WHILE obj # NIL DOu
01D3u(80E00010): LDR R0, SP, 10H
01D4u(E10000FB): BEQ 251 [02D0H]
IF obj.selectedv & ~w(obj IS Caption)x THENy
01D5v(80E00010): LDR R0, SP, 10H
01D6v(D1148A4C): BLEQ MT [trap=4, pos=5258]
01D7w(90000011): LDR R0, R0, 11H
01D8w(E10000F2): BEQ 242 [02CBH]
01D9x(80E00010): LDR R0, SP, 10H
01DAx(E1000005): BEQ 5 [01E0H]
01DBx(810FFFF8): LDR R1, R0, FFFFFFF8H
01DCx(81100004): LDR R1, R1, 4H
01DDx .FIXUP D
01DDx(8D000088): LDR SB, MT, MOD0 [Graphics]
01DEx(42D8015C): ADD R2, SB, 15CH [data]
01DFx(02290001): SUB R2, R2, R1
01E0y(E10000EA): BEQ 234 [02CBH]
x0 := obj.xz;a x1 := obj.wb + x0;c y0 := obj.yd;e y1 := obj.hf + y0;g
01E1z(80E00010): LDR R0, SP, 10H
01E2z(D114B74C): BLEQ MT [trap=4, pos=5303]
01E3a(80000000): LDR R0, R0, 0H
01E4a(A0E00018): STR R0, SP, 18H
01E5b(80E00010): LDR R0, SP, 10H
01E6b(D114C44C): BLEQ MT [trap=4, pos=5316]
01E7c(80000008): LDR R0, R0, 8H
01E8c(81E00018): LDR R1, SP, 18H
01E9c(00080001): ADD R0, R0, R1
01EAc(A0E0001C): STR R0, SP, 1CH
01EBd(80E00010): LDR R0, SP, 10H
01ECd(D114D64C): BLEQ MT [trap=4, pos=5334]
01EDe(80000004): LDR R0, R0, 4H
01EEe(A0E00020): STR R0, SP, 20H
01EFf(80E00010): LDR R0, SP, 10H
01F0f(D114E34C): BLEQ MT [trap=4, pos=5347]
01F1g(8000000C): LDR R0, R0, CH
01F2g(81E00020): LDR R1, SP, 20H
01F3g(00080001): ADD R0, R0, R1
01F4g(A0E00024): STR R0, SP, 24H
IF dx = 0 THENh (*vertical move*)
01F5h(80E00008): LDR R0, SP, 8H
01F6h(E900006A): BNE 106 [0261H]
ob0 := G.firsti;j
01F7i(80E00004): LDR R0, SP, 4H
01F8i(D1152B4C): BLEQ MT [trap=4, pos=5419]
01F9j(80000008): LDR R0, R0, 8H
01FAj(A0E00014): STR R0, SP, 14H
WHILE ob0 # NIL DOk
01FBk(80E00014): LDR R0, SP, 14H
01FCk(E1000063): BEQ 99 [0260H]
IF ~ob0.selectedl &m (nob0 IS Line)o & (px0 <= ob0.xq)r & (sob0.xt <= x1)u & (vob0.ww < ob0.hx)y THENz
01FDl(80E00014): LDR R0, SP, 14H
01FEl(D115664C): BLEQ MT [trap=4, pos=5478]
01FFm(90000011): LDR R0, R0, 11H
0200n(E900005A): BNE 90 [025BH]
0201o(80E00014): LDR R0, SP, 14H
0202o(E1000005): BEQ 5 [0208H]
0203o(810FFFF8): LDR R1, R0, FFFFFFF8H
0204o(81100004): LDR R1, R1, 4H
0205o .FIXUP D
0205o(8D000028): LDR SB, MT, MOD0 [Graphics]
0206o(42D80140): ADD R2, SB, 140H [data]
0207o(02290001): SUB R2, R2, R1
0208p(E9000052): BNE 82 [025BH]
0209q(80E00014): LDR R0, SP, 14H
020Aq(D115854C): BLEQ MT [trap=4, pos=5509]
020Br(81E00018): LDR R1, SP, 18H
020Cr(80000000): LDR R0, R0, 0H
020Dr(01190000): SUB R1, R1, R0
020Es(EE00004C): BGT 76 [025BH]
020Ft(80E00014): LDR R0, SP, 14H
0210t(D1158F4C): BLEQ MT [trap=4, pos=5519]
0211u(80000000): LDR R0, R0, 0H
0212u(81E0001C): LDR R1, SP, 1CH
0213u(00090001): SUB R0, R0, R1
0214v(EE000046): BGT 70 [025BH]
0215w(80E00014): LDR R0, SP, 14H
0216w(D1159F4C): BLEQ MT [trap=4, pos=5535]
0217x(81E00014): LDR R1, SP, 14H
0218x(D115A74C): BLEQ MT [trap=4, pos=5543]
0219y(80000008): LDR R0, R0, 8H
021Ay(8110000C): LDR R1, R1, CH
021By(00090001): SUB R0, R0, R1
021Cz(ED00003E): BGE 62 [025BH]
IF (y0 <= ob0.ya)b & (cob0.yd <= y1)e THENf
021Da(80E00014): LDR R0, SP, 14H
021Ea(D115CB4C): BLEQ MT [trap=4, pos=5579]
021Fb(81E00020): LDR R1, SP, 20H
0220b(80000004): LDR R0, R0, 4H
0221b(01190000): SUB R1, R1, R0
0222c(EE000019): BGT 25 [023CH]
0223d(80E00014): LDR R0, SP, 14H
0224d(D115D54C): BLEQ MT [trap=4, pos=5589]
0225e(80000004): LDR R0, R0, 4H
0226e(81E00024): LDR R1, SP, 24H
0227e(00090001): SUB R0, R0, R1
0228f(EE000013): BGT 19 [023CH]
INC(ob0.yg, dy);h DEC(ob0.hi, dy);j ob0.markedk := TRUE
0229g(80E00014): LDR R0, SP, 14H
022Ag(D115FB4C): BLEQ MT [trap=4, pos=5627]
022Bh(40080004): ADD R0, R0, 4H
022Ch(81000000): LDR R1, R0, 0H
022Dh(82E0000C): LDR R2, SP, CH
022Eh(01180002): ADD R1, R1, R2
022Fh(A1000000): STR R1, R0, 0H
0230i(80E00014): LDR R0, SP, 14H
0231i(D1160B4C): BLEQ MT [trap=4, pos=5643]
0232j(4008000C): ADD R0, R0, CH
0233j(81000000): LDR R1, R0, 0H
0234j(82E0000C): LDR R2, SP, CH
0235j(01190002): SUB R1, R1, R2
0236j(A1000000): STR R1, R0, 0H
0237k(80E00014): LDR R0, SP, 14H
0238k(D1161C4C): BLEQ MT [trap=4, pos=5660]
ELSIFl (my0 <= ob0.yn + ob0.ho)p & (qob0.yr + ob0.hs <=t y1)u THENv
0239l(41000001): MOV R1, R0, 1H
023Al(B1000012): STR R1, R0, 12H
023Bm(E700001F): B 31 [025BH]
023Cn(80E00014): LDR R0, SP, 14H
023Dn(D116454C): BLEQ MT [trap=4, pos=5701]
023Eo(81E00014): LDR R1, SP, 14H
023Fo(D1164D4C): BLEQ MT [trap=4, pos=5709]
0240p(80000004): LDR R0, R0, 4H
0241p(8110000C): LDR R1, R1, CH
0242p(00080001): ADD R0, R0, R1
0243p(81E00020): LDR R1, SP, 20H
0244p(01190000): SUB R1, R1, R0
0245q(EE000015): BGT 21 [025BH]
0246r(80E00014): LDR R0, SP, 14H
0247r(D116574C): BLEQ MT [trap=4, pos=5719]
0248s(81E00014): LDR R1, SP, 14H
0249s(D1165F4C): BLEQ MT [trap=4, pos=5727]
024At(80000004): LDR R0, R0, 4H
024Bt(8110000C): LDR R1, R1, CH
024Ct(00080001): ADD R0, R0, R1
024Du(81E00024): LDR R1, SP, 24H
024Eu(00090001): SUB R0, R0, R1
024Fv(EE00000B): BGT 11 [025BH]
INC(ob0.hw, dy);x ob0.markedy := TRUE
0250w(80E00014): LDR R0, SP, 14H
0251w(D116854C): BLEQ MT [trap=4, pos=5765]
0252x(4008000C): ADD R0, R0, CH
0253x(81000000): LDR R1, R0, 0H
0254x(82E0000C): LDR R2, SP, CH
0255x(01180002): ADD R1, R1, R2
0256x(A1000000): STR R1, R0, 0H
0257y(80E00014): LDR R0, SP, 14H
0258y(D116964C): BLEQ MT [trap=4, pos=5782]
ENDz
0259z(41000001): MOV R1, R0, 1H
025Az(B1000012): STR R1, R0, 12H
END ;
ob0 := ob0.nexta
025Ba(80E00014): LDR R0, SP, 14H
025Ca(D116DE4C): BLEQ MT [trap=4, pos=5854]
ENDb
025Db(80000018): LDR R0, R0, 18H
025Eb(A0E00014): STR R0, SP, 14H
025Fb(E7FFFF9B): B -101 [01FBH]
ELSIF dyc = 0 THENd (*horizontal move*)
0260c(E700006A): B 106 [02CBH]
0261d(80E0000C): LDR R0, SP, CH
0262d(E9000068): BNE 104 [02CBH]
ob0 := G.firste;f
0263e(80E00004): LDR R0, SP, 4H
0264e(D117334C): BLEQ MT [trap=4, pos=5939]
0265f(80000008): LDR R0, R0, 8H
0266f(A0E00014): STR R0, SP, 14H
WHILE ob0 # NIL DOg
0267g(80E00014): LDR R0, SP, 14H
0268g(E1000062): BEQ 98 [02CBH]
IF ~ob0.selectedh &i (job0 IS Line)k & (ly0 <= ob0.ym)n & (oob0.yp <= y1)q & (rob0.hs < ob0.wt)u THENv
0269h(80E00014): LDR R0, SP, 14H
026Ah(D1176E4C): BLEQ MT [trap=4, pos=5998]
026Bi(90000011): LDR R0, R0, 11H
026Cj(E9000059): BNE 89 [02C6H]
026Dk(80E00014): LDR R0, SP, 14H
026Ek(E1000005): BEQ 5 [0274H]
026Fk(810FFFF8): LDR R1, R0, FFFFFFF8H
0270k(81100004): LDR R1, R1, 4H
0271k .FIXUP D
0271k(8D00006C): LDR SB, MT, MOD0 [Graphics]
0272k(42D80140): ADD R2, SB, 140H [data]
0273k(02290001): SUB R2, R2, R1
0274l(E9000051): BNE 81 [02C6H]
0275m(80E00014): LDR R0, SP, 14H
0276m(D1178D4C): BLEQ MT [trap=4, pos=6029]
0277n(81E00020): LDR R1, SP, 20H
0278n(80000004): LDR R0, R0, 4H
0279n(01190000): SUB R1, R1, R0
027Ao(EE00004B): BGT 75 [02C6H]
027Bp(80E00014): LDR R0, SP, 14H
027Cp(D117974C): BLEQ MT [trap=4, pos=6039]
027Dq(80000004): LDR R0, R0, 4H
027Eq(81E00024): LDR R1, SP, 24H
027Fq(00090001): SUB R0, R0, R1
0280r(EE000045): BGT 69 [02C6H]
0281s(80E00014): LDR R0, SP, 14H
0282s(D117A74C): BLEQ MT [trap=4, pos=6055]
0283t(81E00014): LDR R1, SP, 14H
0284t(D117AF4C): BLEQ MT [trap=4, pos=6063]
0285u(8000000C): LDR R0, R0, CH
0286u(81100008): LDR R1, R1, 8H
0287u(00090001): SUB R0, R0, R1
0288v(ED00003D): BGE 61 [02C6H]
IF (x0 <= ob0.xw)x & (yob0.xz <= x1)a THENb
0289w(80E00014): LDR R0, SP, 14H
028Aw(D117D34C): BLEQ MT [trap=4, pos=6099]
028Bx(81E00018): LDR R1, SP, 18H
028Cx(80000000): LDR R0, R0, 0H
028Dx(01190000): SUB R1, R1, R0
028Ey(EE000018): BGT 24 [02A7H]
028Fz(80E00014): LDR R0, SP, 14H
0290z(D117DD4C): BLEQ MT [trap=4, pos=6109]
0291a(80000000): LDR R0, R0, 0H
0292a(81E0001C): LDR R1, SP, 1CH
0293a(00090001): SUB R0, R0, R1
0294b(EE000012): BGT 18 [02A7H]
INC(ob0.xc, dx);d DEC(ob0.we, dx);f ob0.markedg := TRUE
0295c(80E00014): LDR R0, SP, 14H
0296c(D118034C): BLEQ MT [trap=4, pos=6147]
0297d(81000000): LDR R1, R0, 0H
0298d(82E00008): LDR R2, SP, 8H
0299d(01180002): ADD R1, R1, R2
029Ad(A1000000): STR R1, R0, 0H
029Be(80E00014): LDR R0, SP, 14H
029Ce(D118134C): BLEQ MT [trap=4, pos=6163]
029Df(40080008): ADD R0, R0, 8H
029Ef(81000000): LDR R1, R0, 0H
029Ff(82E00008): LDR R2, SP, 8H
02A0f(01190002): SUB R1, R1, R2
02A1f(A1000000): STR R1, R0, 0H
02A2g(80E00014): LDR R0, SP, 14H
02A3g(D118244C): BLEQ MT [trap=4, pos=6180]
ELSIFh (ix0 <= ob0.xj + ob0.wk)l & (mob0.xn + ob0.wo <=p x1)q THENr
02A4h(41000001): MOV R1, R0, 1H
02A5h(B1000012): STR R1, R0, 12H
02A6i(E700001F): B 31 [02C6H]
02A7j(80E00014): LDR R0, SP, 14H
02A8j(D1184D4C): BLEQ MT [trap=4, pos=6221]
02A9k(81E00014): LDR R1, SP, 14H
02AAk(D118554C): BLEQ MT [trap=4, pos=6229]
02ABl(80000000): LDR R0, R0, 0H
02ACl(81100008): LDR R1, R1, 8H
02ADl(00080001): ADD R0, R0, R1
02AEl(81E00018): LDR R1, SP, 18H
02AFl(01190000): SUB R1, R1, R0
02B0m(EE000015): BGT 21 [02C6H]
02B1n(80E00014): LDR R0, SP, 14H
02B2n(D1185F4C): BLEQ MT [trap=4, pos=6239]
02B3o(81E00014): LDR R1, SP, 14H
02B4o(D118674C): BLEQ MT [trap=4, pos=6247]
02B5p(80000000): LDR R0, R0, 0H
02B6p(81100008): LDR R1, R1, 8H
02B7p(00080001): ADD R0, R0, R1
02B8q(81E0001C): LDR R1, SP, 1CH
02B9q(00090001): SUB R0, R0, R1
02BAr(EE00000B): BGT 11 [02C6H]
INC(ob0.ws, dx);t ob0.markedu := TRUE
02BBs(80E00014): LDR R0, SP, 14H
02BCs(D1188D4C): BLEQ MT [trap=4, pos=6285]
02BDt(40080008): ADD R0, R0, 8H
02BEt(81000000): LDR R1, R0, 0H
02BFt(82E00008): LDR R2, SP, 8H
02C0t(01180002): ADD R1, R1, R2
02C1t(A1000000): STR R1, R0, 0H
02C2u(80E00014): LDR R0, SP, 14H
02C3u(D1189E4C): BLEQ MT [trap=4, pos=6302]
ENDv
02C4v(41000001): MOV R1, R0, 1H
02C5v(B1000012): STR R1, R0, 12H
END ;
ob0 := ob0.nextw
02C6w(80E00014): LDR R0, SP, 14H
02C7w(D118E64C): BLEQ MT [trap=4, pos=6374]
ENDx
02C8x(80000018): LDR R0, R0, 18H
02C9x(A0E00014): STR R0, SP, 14H
02CAx(E7FFFF9C): B -100 [0267H]
END
END ;
obj := obj.nexty
02CBy(80E00010): LDR R0, SP, 10H
02CCy(D119224C): BLEQ MT [trap=4, pos=6434]
ENDz ;
02CDz(80000018): LDR R0, R0, 18H
02CEz(A0E00010): STR R0, SP, 10H
02CFz(E7FFFF03): B -253 [01D3H]
obj := G.firsta;b (*now move*)
02D0a(80E00004): LDR R0, SP, 4H
02D1a(D1193F4C): BLEQ MT [trap=4, pos=6463]
02D2b(80000008): LDR R0, R0, 8H
02D3b(A0E00010): STR R0, SP, 10H
WHILE obj # NIL DOc
02D4c(80E00010): LDR R0, SP, 10H
02D5c(E100001A): BEQ 26 [02F0H]
IF obj.selectedd THENe INC(obj.xf, dx);g INC(obj.yh, dy) ENDi ;
02D6d(80E00010): LDR R0, SP, 10H
02D7d(D1197A4C): BLEQ MT [trap=4, pos=6522]
02D8e(90000011): LDR R0, R0, 11H
02D9e(E100000D): BEQ 13 [02E7H]
02DAf(80E00010): LDR R0, SP, 10H
02DBf(D119894C): BLEQ MT [trap=4, pos=6537]
02DCg(81000000): LDR R1, R0, 0H
02DDg(82E00008): LDR R2, SP, 8H
02DEg(01180002): ADD R1, R1, R2
02DFg(A1000000): STR R1, R0, 0H
02E0h(80E00010): LDR R0, SP, 10H
02E1h(D119994C): BLEQ MT [trap=4, pos=6553]
02E2i(40080004): ADD R0, R0, 4H
02E3i(81000000): LDR R1, R0, 0H
02E4i(82E0000C): LDR R2, SP, CH
02E5i(01180002): ADD R1, R1, R2
02E6i(A1000000): STR R1, R0, 0H
obj.markedj := FALSE;k obj := obj.nextl
02E7j(80E00010): LDR R0, SP, 10H
02E8j(D119B54C): BLEQ MT [trap=4, pos=6581]
02E9k(41000000): MOV R1, R0, 0H
02EAk(B1000012): STR R1, R0, 12H
02EBl(80E00010): LDR R0, SP, 10H
02ECl(D119CF4C): BLEQ MT [trap=4, pos=6607]
ENDm
02EDm(80000018): LDR R0, R0, 18H
02EEm(A0E00010): STR R0, SP, 10H
02EFm(E7FFFFE4): B -28 [02D4H]
ENDn Move;
02F0n(8FE00000): LDR LNK, SP, 0H
02F1n(4EE80028): ADD SP, SP, 28H
02F2n(C700000F): B LNK
PROCEDURE Copy*(Gs, Gd: Graph; dx, dy: INTEGER);
VAR obj: Object;
BEGINo obj := Gs.firstp;q Gd.changedr := TRUE;s
02F3o .PROC 32
02F3o(4EE90018): SUB SP, SP, 18H
02F4o(AFE00000): STR LNK, SP, 0H
02F5o(A0E00004): STR R0, SP, 4H
02F6o(A1E00008): STR R1, SP, 8H
02F7o(A2E0000C): STR R2, SP, CH
02F8o(A3E00010): STR R3, SP, 10H
02F9p(80E00004): LDR R0, SP, 4H
02FAp(D11A444C): BLEQ MT [trap=4, pos=6724]
02FBq(80000008): LDR R0, R0, 8H
02FCq(A0E00014): STR R0, SP, 14H
02FDr(80E00008): LDR R0, SP, 8H
02FEr(D11A504C): BLEQ MT [trap=4, pos=6736]
02FFs(41000001): MOV R1, R0, 1H
0300s(B100000C): STR R1, R0, CH
WHILE obj # NIL DOt
0301t(80E00014): LDR R0, SP, 14H
0302t(E1000037): BEQ 55 [033AH]
IF obj.selectedu THENv
0303u(80E00014): LDR R0, SP, 14H
0304u(D11A864C): BLEQ MT [trap=4, pos=6790]
0305v(90000011): LDR R0, R0, 11H
0306v(E100002E): BEQ 46 [0335H]
obj.dow.newx;y obj.doz.copya(objb,c new)d;e INC(new.xf, dx);g INC(new.yh, dy);i
0307w(80E00014): LDR R0, SP, 14H
0308w(D11A9A4C): BLEQ MT [trap=4, pos=6810]
0309x(80000014): LDR R0, R0, 14H
030Ax(D11A9E4C): BLEQ MT [trap=4, pos=6814]
030By(80000040): LDR R0, R0, 40H
030Cy(4EE90004): SUB SP, SP, 4H
030Dy(A0E00000): STR R0, SP, 0H
030Ey(80E00000): LDR R0, SP, 0H
030Fy(4EE80004): ADD SP, SP, 4H
0310y(D11A9F5C): BLEQ MT [trap=5, pos=6815]
0311y(D7000000): BL R0
0312z(80E00014): LDR R0, SP, 14H
0313z(D11AA64C): BLEQ MT [trap=4, pos=6822]
0314a(80000014): LDR R0, R0, 14H
0315a(D11AAB4C): BLEQ MT [trap=4, pos=6827]
0316b(80000044): LDR R0, R0, 44H
0317b(4EE90004): SUB SP, SP, 4H
0318b(A0E00000): STR R0, SP, 0H
0319c(80E00018): LDR R0, SP, 18H
031Ad .FIXUP D
031Ad(8D0000A9): LDR SB, MT, MOD0 [Graphics]
031Bd(81D001A0): LDR R1, SB, 1A0H [data]
031Ce(82E00000): LDR R2, SP, 0H
031De(4EE80004): ADD SP, SP, 4H
031Ee(D11AB65C): BLEQ MT [trap=5, pos=6838]
031Fe(D7000002): BL R2
0320f .FIXUP D
0320f(8D000006): LDR SB, MT, MOD0 [Graphics]
0321f(80D001A0): LDR R0, SB, 1A0H [data]
0322f(D11AC04C): BLEQ MT [trap=4, pos=6848]
0323g(81000000): LDR R1, R0, 0H
0324g(82E0000C): LDR R2, SP, CH
0325g(01180002): ADD R1, R1, R2
0326g(A1000000): STR R1, R0, 0H
0327h(80D001A0): LDR R0, SB, 1A0H
0328h(D11AD04C): BLEQ MT [trap=4, pos=6864]
0329i(40080004): ADD R0, R0, 4H
032Ai(81000000): LDR R1, R0, 0H
032Bi(82E00010): LDR R2, SP, 10H
032Ci(01180002): ADD R1, R1, R2
032Di(A1000000): STR R1, R0, 0H
obj.selectedj := FALSE;k Add(Gd,l new)m
032Ej(80E00014): LDR R0, SP, 14H
032Fj(D11AEB4C): BLEQ MT [trap=4, pos=6891]
0330k(41000000): MOV R1, R0, 0H
0331k(B1000011): STR R1, R0, 11H
0332l(80E00008): LDR R0, SP, 8H
0333m(81D001A0): LDR R1, SB, 1A0H
ENDn ;
0334n(F7FFFCD4): BL -812 [0009H]
obj := obj.nexto
0335o(80E00014): LDR R0, SP, 14H
0336o(D11B244C): BLEQ MT [trap=4, pos=6948]
ENDp ;
0337p(80000018): LDR R0, R0, 18H
0338p(A0E00014): STR R0, SP, 14H
0339p(E7FFFFC7): B -57 [0301H]
new := NIL
ENDq Copy;
033Aq(40000000): MOV R0, R0, 0H
033Bq .FIXUP D
033Bq(8D00001B): LDR SB, MT, MOD0 [Graphics]
033Cq(A0D001A0): STR R0, SB, 1A0H [data]
033Dq(8FE00000): LDR LNK, SP, 0H
033Eq(4EE80018): ADD SP, SP, 18H
033Fq(C700000F): B LNK
PROCEDURE Delete*(G: Graph);
VAR obj, pred: Object;
BEGINr G.sels := NIL;t G.changedu := TRUE;v obj := G.firstw;x
0340r .PROC 33
0340r(4EE90010): SUB SP, SP, 10H
0341r(AFE00000): STR LNK, SP, 0H
0342r(A0E00004): STR R0, SP, 4H
0343s(80E00004): LDR R0, SP, 4H
0344s(D11B924C): BLEQ MT [trap=4, pos=7058]
0345t(41000000): MOV R1, R0, 0H
0346t(A1000004): STR R1, R0, 4H
0347u(80E00004): LDR R0, SP, 4H
0348u(D11BA44C): BLEQ MT [trap=4, pos=7076]
0349v(41000001): MOV R1, R0, 1H
034Av(B100000C): STR R1, R0, CH
034Bw(80E00004): LDR R0, SP, 4H
034Cw(D11BBC4C): BLEQ MT [trap=4, pos=7100]
034Dx(80000008): LDR R0, R0, 8H
034Ex(A0E00008): STR R0, SP, 8H
WHILE (obj # NIL)y & objz.selecteda DOb obj := obj.nextc ENDd ;
034Fy(80E00008): LDR R0, SP, 8H
0350z(E1000009): BEQ 9 [035AH]
0351a(80E00008): LDR R0, SP, 8H
0352a(D11BE24C): BLEQ MT [trap=4, pos=7138]
0353b(90000011): LDR R0, R0, 11H
0354b(E1000005): BEQ 5 [035AH]
0355c(80E00008): LDR R0, SP, 8H
0356c(D11BF54C): BLEQ MT [trap=4, pos=7157]
0357d(80000018): LDR R0, R0, 18H
0358d(A0E00008): STR R0, SP, 8H
0359d(E7FFFFF5): B -11 [034FH]
G.firste := obj;f
035Ae(80E00004): LDR R0, SP, 4H
035Be(D11C074C): BLEQ MT [trap=4, pos=7175]
035Cf(81E00008): LDR R1, SP, 8H
035Df(A1000008): STR R1, R0, 8H
IF obj # NIL THENg
035Eg(80E00008): LDR R0, SP, 8H
035Fg(E100001A): BEQ 26 [037AH]
pred := obj;h obj := obj.nexti;j
0360h(80E00008): LDR R0, SP, 8H
0361h(A0E0000C): STR R0, SP, CH
0362i(80E00008): LDR R0, SP, 8H
0363i(D11C484C): BLEQ MT [trap=4, pos=7240]
0364j(80000018): LDR R0, R0, 18H
0365j(A0E00008): STR R0, SP, 8H
WHILE obj # NIL DOk
0366k(80E00008): LDR R0, SP, 8H
0367k(E1000012): BEQ 18 [037AH]
IF obj.selectedl THENm pred.nextn := obj.nexto ELSEp predq := obj ENDr ;
0368l(80E00008): LDR R0, SP, 8H
0369l(D11C7A4C): BLEQ MT [trap=4, pos=7290]
036Am(90000011): LDR R0, R0, 11H
036Bm(E1000007): BEQ 7 [0373H]
036Cn(80E0000C): LDR R0, SP, CH
036Dn(D11C894C): BLEQ MT [trap=4, pos=7305]
036Eo(81E00008): LDR R1, SP, 8H
036Fo(D11C954C): BLEQ MT [trap=4, pos=7317]
0370p(81100018): LDR R1, R1, 18H
0371p(A1000018): STR R1, R0, 18H
0372q(E7000002): B 2 [0375H]
0373r(80E00008): LDR R0, SP, 8H
0374r(A0E0000C): STR R0, SP, CH
obj := obj.nexts
0375s(80E00008): LDR R0, SP, 8H
0376s(D11CC44C): BLEQ MT [trap=4, pos=7364]
ENDt
0377t(80000018): LDR R0, R0, 18H
0378t(A0E00008): STR R0, SP, 8H
0379t(E7FFFFEC): B -20 [0366H]
END
ENDu Delete;
037Au(8FE00000): LDR LNK, SP, 0H
037Bu(4EE80010): ADD SP, SP, 10H
037Cu(C700000F): B LNK
(* ---------------------- Storing ----------------------- *)
PROCEDURE WMsg(s0, s1: ARRAY OF CHAR);
BEGINv Texts.WriteString(W,w s0)x;y Texts.WriteString(W,z s1)a;b
037Dv(4EE90014): SUB SP, SP, 14H
037Ev(AFE00000): STR LNK, SP, 0H
037Fv(A0E00004): STR R0, SP, 4H
0380v(A1E00008): STR R1, SP, 8H
0381v(A2E0000C): STR R2, SP, CH
0382v(A3E00010): STR R3, SP, 10H
0383w .FIXUP D
0383w(8D000048): LDR SB, MT, MOD0 [Graphics]
0384w(40D801BC): ADD R0, SB, 1BCH [data]
0385w .FIXUP D
0385w(8D400002): LDR SB, MT, MOD4 [Texts]
0386w(41D80005): ADD R1, SB, VAR5
0387x(82E00004): LDR R2, SP, 4H
0388x(83E00008): LDR R3, SP, 8H
0389y .FIXUP P
0389y(F741D232): BL MOD4 [Texts] PROC29
038Az .FIXUP D
038Az(8D000005): LDR SB, MT, MOD0 [Graphics]
038Bz(40D801BC): ADD R0, SB, 1BCH [data]
038Cz .FIXUP D
038Cz(8D400002): LDR SB, MT, MOD4 [Texts]
038Dz(41D80005): ADD R1, SB, VAR5
038Ea(82E0000C): LDR R2, SP, CH
038Fa(83E00010): LDR R3, SP, 10H
0390b .FIXUP P
0390b(F741D007): BL MOD4 [Texts] PROC29
Texts.WriteLn(W)c;d Texts.Append(Oberon.Log,e W.buf)f
0391c .FIXUP D
0391c(8D000005): LDR SB, MT, MOD0 [Graphics]
0392c(40D801BC): ADD R0, SB, 1BCH [data]
0393c .FIXUP D
0393c(8D400002): LDR SB, MT, MOD4 [Texts]
0394c(41D80005): ADD R1, SB, VAR5
0395d .FIXUP P
0395d(F741C005): BL MOD4 [Texts] PROC28
0396e .FIXUP D
0396e(8D500003): LDR SB, MT, MOD5 [Oberon]
0397e(80D0000D): LDR R0, SB, VAR13
0398f .FIXUP D
0398f(8D000002): LDR SB, MT, MOD0 [Graphics]
0399f(81D001BC): LDR R1, SB, 1BCH [data]
ENDg WMsg;
039Ag .FIXUP P
039Ag(F740E005): BL MOD4 [Texts] PROC14
039Bg(8FE00000): LDR LNK, SP, 0H
039Cg(4EE80014): ADD SP, SP, 14H
039Dg(C700000F): B LNK
PROCEDURE InitContext(VAR C: Context);
BEGINh C.nofonts := 0;i C.noflibs := 0;j C.nofclasses := 4;k
039Eh(4EE9000C): SUB SP, SP, CH
039Fh(AFE00000): STR LNK, SP, 0H
03A0h(A0E00004): STR R0, SP, 4H
03A1h(A1E00008): STR R1, SP, 8H
03A2i(40000000): MOV R0, R0, 0H
03A3i(81E00004): LDR R1, SP, 4H
03A4i(A0100000): STR R0, R1, 0H
03A5j(40000000): MOV R0, R0, 0H
03A6j(81E00004): LDR R1, SP, 4H
03A7j(A0100004): STR R0, R1, 4H
03A8k(40000004): MOV R0, R0, 4H
03A9k(81E00004): LDR R1, SP, 4H
03AAk(A0100008): STR R0, R1, 8H
C.class[1] := LineMethod.newl;m C.class[2] := CapMethod.newn;o C.class[3] := MacMethod.newp
03ABl .FIXUP D
03ABl(8D000013): LDR SB, MT, MOD0 [Graphics]
03ACl(80D001A8): LDR R0, SB, 1A8H [data]
03ADl(D11E524C): BLEQ MT [trap=4, pos=7762]
03AEm(80000040): LDR R0, R0, 40H
03AFm(81E00004): LDR R1, SP, 4H
03B0m(A0100048): STR R0, R1, 48H
03B1n(80D001AC): LDR R0, SB, 1ACH
03B2n(D11E6F4C): BLEQ MT [trap=4, pos=7791]
03B3o(80000040): LDR R0, R0, 40H
03B4o(81E00004): LDR R1, SP, 4H
03B5o(A010004C): STR R0, R1, 4CH
03B6p(80D001B0): LDR R0, SB, 1B0H
03B7p(D11E8C4C): BLEQ MT [trap=4, pos=7820]
ENDq InitContext;
03B8q(80000040): LDR R0, R0, 40H
03B9q(81E00004): LDR R1, SP, 4H
03BAq(A0100050): STR R0, R1, 50H
03BBq(8FE00000): LDR LNK, SP, 0H
03BCq(4EE8000C): ADD SP, SP, CH
03BDq(C700000F): B LNK
PROCEDURE FontNo*(VAR W: Files.Rider; VAR C: Context; fnt: Fonts.Font): INTEGER;
VAR fno: INTEGER;
BEGINr fno := 0;s
03BEr .PROC 34
03BEr(4EE9001C): SUB SP, SP, 1CH
03BFr(AFE00000): STR LNK, SP, 0H
03C0r(A0E00004): STR R0, SP, 4H
03C1r(A1E00008): STR R1, SP, 8H
03C2r(A2E0000C): STR R2, SP, CH
03C3r(A3E00010): STR R3, SP, 10H
03C4r(A4E00014): STR R4, SP, 14H
03C5s(40000000): MOV R0, R0, 0H
03C6s(A0E00018): STR R0, SP, 18H
WHILE (fno < C.nofonts)t & (uC.font[fno]v # fnt)w DOx INC(fno) ENDy ;
03C7t(80E00018): LDR R0, SP, 18H
03C8t(81E0000C): LDR R1, SP, CH
03C9t(81100000): LDR R1, R1, 0H
03CAt(00090001): SUB R0, R0, R1
03CBu(ED00000E): BGE 14 [03DAH]
03CCv(80E00018): LDR R0, SP, 18H
03CDv(4109000A): SUB R1, R0, AH
03CEv(DA1F461C): BLCC MT [trap=1, pos=8006]
03CFv(40010002): LSL R0, R0, 2H
03D0v(81E0000C): LDR R1, SP, CH
03D1v(00180000): ADD R0, R1, R0
03D2w(8000000C): LDR R0, R0, CH
03D3w(81E00014): LDR R1, SP, 14H
03D4w(00090001): SUB R0, R0, R1
03D5x(E1000004): BEQ 4 [03DAH]
03D6y(80E00018): LDR R0, SP, 18H
03D7y(40080001): ADD R0, R0, 1H
03D8y(A0E00018): STR R0, SP, 18H
03D9y(E7FFFFED): B -19 [03C7H]
IF fno = C.nofonts THENz
03DAz(80E00018): LDR R0, SP, 18H
03DBz(81E0000C): LDR R1, SP, CH
03DCz(81100000): LDR R1, R1, 0H
03DDz(00090001): SUB R0, R0, R1
03DEz(E900001E): BNE 30 [03FDH]
Files.WriteByte(W,a 0)b;c Files.WriteByte(W,d 0)e;f Files.WriteByte(W,g fno)h;i
03DFa(80E00004): LDR R0, SP, 4H
03E0a(81E00008): LDR R1, SP, 8H
03E1b(42000000): MOV R2, R0, 0H
03E2c .FIXUP P
03E2c(F7116048): BL MOD1 [Files] PROC22
03E3d(80E00004): LDR R0, SP, 4H
03E4d(81E00008): LDR R1, SP, 8H
03E5e(42000000): MOV R2, R0, 0H
03E6f .FIXUP P
03E6f(F7116004): BL MOD1 [Files] PROC22
03E7g(80E00004): LDR R0, SP, 4H
03E8g(81E00008): LDR R1, SP, 8H
03E9h(82E00018): LDR R2, SP, 18H
03EAi .FIXUP P
03EAi(F7116004): BL MOD1 [Files] PROC22
Files.WriteString(W,j fnt.namek)l;m C.font[fno]n := fnt;o INC(C.nofonts)
03EBj(80E00004): LDR R0, SP, 4H
03ECj(81E00008): LDR R1, SP, 8H
03EDk(82E00014): LDR R2, SP, 14H
03EEk(D11FEC4C): BLEQ MT [trap=4, pos=8172]
03EFl(43000020): MOV R3, R0, 20H
03F0m .FIXUP P
03F0m(F711C006): BL MOD1 [Files] PROC28
03F1n(80E00018): LDR R0, SP, 18H
03F2n(4109000A): SUB R1, R0, AH
03F3n(DA1FFA1C): BLCC MT [trap=1, pos=8186]
03F4n(40010002): LSL R0, R0, 2H
03F5n(81E0000C): LDR R1, SP, CH
03F6n(00180000): ADD R0, R1, R0
03F7o(81E00014): LDR R1, SP, 14H
03F8o(A100000C): STR R1, R0, CH
ENDp ;
03F9p(80E0000C): LDR R0, SP, CH
03FAp(81000000): LDR R1, R0, 0H
03FBp(41180001): ADD R1, R1, 1H
03FCp(A1000000): STR R1, R0, 0H
RETURN fno
ENDq FontNo;
03FDq(80E00018): LDR R0, SP, 18H
03FEq(8FE00000): LDR LNK, SP, 0H
03FFq(4EE8001C): ADD SP, SP, 1CH
0400q(C700000F): B LNK
PROCEDURE StoreElems(VAR W: Files.Rider; VAR C: Context; obj: Object);
VAR cno: INTEGER;
BEGINr
0401r(4EE9001C): SUB SP, SP, 1CH
0402r(AFE00000): STR LNK, SP, 0H
0403r(A0E00004): STR R0, SP, 4H
0404r(A1E00008): STR R1, SP, 8H
0405r(A2E0000C): STR R2, SP, CH
0406r(A3E00010): STR R3, SP, 10H
0407r(A4E00014): STR R4, SP, 14H
WHILE obj # NIL DOs
0408s(80E00014): LDR R0, SP, 14H
0409s(E1000062): BEQ 98 [046CH]
cno := 1;t
040At(40000001): MOV R0, R0, 1H
040Bt(A0E00018): STR R0, SP, 18H
WHILE (cno < C.nofclasses)u & (vobj.dow.newx # C.class[cno]y)z DOa INC(cno) ENDb ;
040Cu(80E00018): LDR R0, SP, 18H
040Du(81E0000C): LDR R1, SP, CH
040Eu(81100008): LDR R1, R1, 8H
040Fu(00090001): SUB R0, R0, R1
0410v(ED000012): BGE 18 [0423H]
0411w(80E00014): LDR R0, SP, 14H
0412w(D120F24C): BLEQ MT [trap=4, pos=8434]
0413x(80000014): LDR R0, R0, 14H
0414x(D120F64C): BLEQ MT [trap=4, pos=8438]
0415y(81E00018): LDR R1, SP, 18H
0416y(42190006): SUB R2, R1, 6H
0417y(DA21051C): BLCC MT [trap=1, pos=8453]
0418y(41110002): LSL R1, R1, 2H
0419y(82E0000C): LDR R2, SP, CH
041Ay(01280001): ADD R1, R2, R1
041Bz(80000040): LDR R0, R0, 40H
041Cz(81100044): LDR R1, R1, 44H
041Dz(00090001): SUB R0, R0, R1
041Ea(E1000004): BEQ 4 [0423H]
041Fb(80E00018): LDR R0, SP, 18H
0420b(40080001): ADD R0, R0, 1H
0421b(A0E00018): STR R0, SP, 18H
0422b(E7FFFFE9): B -23 [040CH]
IF cno = C.nofclasses THENc
0423c(80E00018): LDR R0, SP, 18H
0424c(81E0000C): LDR R1, SP, CH
0425c(81100008): LDR R1, R1, 8H
0426c(00090001): SUB R0, R0, R1
0427c(E900002E): BNE 46 [0456H]
Files.WriteByte(W,d 0)e;f Files.WriteByte(W,g 2)h;i Files.WriteByte(W,j cno)k;l
0428d(80E00004): LDR R0, SP, 4H
0429d(81E00008): LDR R1, SP, 8H
042Ae(42000000): MOV R2, R0, 0H
042Bf .FIXUP P
042Bf(F711603B): BL MOD1 [Files] PROC22
042Cg(80E00004): LDR R0, SP, 4H
042Dg(81E00008): LDR R1, SP, 8H
042Eh(42000002): MOV R2, R0, 2H
042Fi .FIXUP P
042Fi(F7116004): BL MOD1 [Files] PROC22
0430j(80E00004): LDR R0, SP, 4H
0431j(81E00008): LDR R1, SP, 8H
0432k(82E00018): LDR R2, SP, 18H
0433l .FIXUP P
0433l(F7116004): BL MOD1 [Files] PROC22
Files.WriteString(W,m obj.don.moduleo)p;q Files.WriteString(W,r obj.dos.allocatort)u;v
0434m(80E00004): LDR R0, SP, 4H
0435m(81E00008): LDR R1, SP, 8H
0436n(82E00014): LDR R2, SP, 14H
0437n(D121AC4C): BLEQ MT [trap=4, pos=8620]
0438o(82200014): LDR R2, R2, 14H
0439o(D121B34C): BLEQ MT [trap=4, pos=8627]
043Ap(43000020): MOV R3, R0, 20H
043Bq .FIXUP P
043Bq(F711C008): BL MOD1 [Files] PROC28
043Cr(80E00004): LDR R0, SP, 4H
043Dr(81E00008): LDR R1, SP, 8H
043Es(82E00014): LDR R2, SP, 14H
043Fs(D121D14C): BLEQ MT [trap=4, pos=8657]
0440t(82200014): LDR R2, R2, 14H
0441t(D121DB4C): BLEQ MT [trap=4, pos=8667]
0442u(42280020): ADD R2, R2, 20H
0443u(43000020): MOV R3, R0, 20H
0444v .FIXUP P
0444v(F711C009): BL MOD1 [Files] PROC28
C.class[cno]w := obj.dox.newy;z INC(C.nofclasses)
0445w(80E00018): LDR R0, SP, 18H
0446w(41090006): SUB R1, R0, 6H
0447w(DA21F21C): BLCC MT [trap=1, pos=8690]
0448w(40010002): LSL R0, R0, 2H
0449w(81E0000C): LDR R1, SP, CH
044Aw(00180000): ADD R0, R1, R0
044Bx(81E00014): LDR R1, SP, 14H
044Cx(D121FC4C): BLEQ MT [trap=4, pos=8700]
044Dy(81100014): LDR R1, R1, 14H
044Ey(D122004C): BLEQ MT [trap=4, pos=8704]
044Fz(81100040): LDR R1, R1, 40H
0450z(A1000044): STR R1, R0, 44H
ENDa ;
0451a(80E0000C): LDR R0, SP, CH
0452a(40080008): ADD R0, R0, 8H
0453a(81000000): LDR R1, R0, 0H
0454a(41180001): ADD R1, R1, 1H
0455a(A1000000): STR R1, R0, 0H
obj.dob.writec(objd,e cno,f W,g C)h;i obj := obj.nextj
0456b(80E00014): LDR R0, SP, 14H
0457b(D1222C4C): BLEQ MT [trap=4, pos=8748]
0458c(80000014): LDR R0, R0, 14H
0459c(D122324C): BLEQ MT [trap=4, pos=8754]
045Ad(80000058): LDR R0, R0, 58H
045Bd(4EE90004): SUB SP, SP, 4H
045Cd(A0E00000): STR R0, SP, 0H
045De(80E00018): LDR R0, SP, 18H
045Ef(81E0001C): LDR R1, SP, 1CH
045Fg(82E00008): LDR R2, SP, 8H
0460g(83E0000C): LDR R3, SP, CH
0461h(84E00010): LDR R4, SP, 10H
0462h(85E00014): LDR R5, SP, 14H
0463i(86E00000): LDR R6, SP, 0H
0464i(4EE80004): ADD SP, SP, 4H
0465i(D122435C): BLEQ MT [trap=5, pos=8771]
0466i(D7000006): BL R6
0467j(80E00014): LDR R0, SP, 14H
0468j(D122534C): BLEQ MT [trap=4, pos=8787]
ENDk ;
0469k(80000018): LDR R0, R0, 18H
046Ak(A0E00014): STR R0, SP, 14H
046Bk(E7FFFF9C): B -100 [0408H]
Files.WriteByte(W,l 255)m
046Cl(80E00004): LDR R0, SP, 4H
046Dl(81E00008): LDR R1, SP, 8H
046Em(420000FF): MOV R2, R0, FFH
ENDn StoreElems;
046Fn .FIXUP P
046Fn(F711602B): BL MOD1 [Files] PROC22
0470n(8FE00000): LDR LNK, SP, 0H
0471n(4EE8001C): ADD SP, SP, 1CH
0472n(C700000F): B LNK
PROCEDURE Store*(G: Graph; VAR W: Files.Rider);
VAR C: Context;
BEGINo InitContext(C)p;q StoreElems(W,r C,s G.firstt)u;v G.changedw := FALSE
0473o .PROC 35
0473o(4EE9006C): SUB SP, SP, 6CH
0474o(AFE00000): STR LNK, SP, 0H
0475o(A0E00004): STR R0, SP, 4H
0476o(A1E00008): STR R1, SP, 8H
0477o(A2E0000C): STR R2, SP, CH
0478p(40E80010): ADD R0, SP, 10H
0479p .FIXUP D
0479p(8D0000CE): LDR SB, MT, MOD0 [Graphics]
047Ap(41D800E0): ADD R1, SB, E0H [data]
047Bq(F7FFFF22): BL -222 [039EH]
047Cr(80E00008): LDR R0, SP, 8H
047Dr(81E0000C): LDR R1, SP, CH
047Es(42E80010): ADD R2, SP, 10H
047Fs .FIXUP D
047Fs(8D000006): LDR SB, MT, MOD0 [Graphics]
0480s(43D800E0): ADD R3, SB, E0H [data]
0481t(84E00004): LDR R4, SP, 4H
0482t(D123034C): BLEQ MT [trap=4, pos=8963]
0483u(84400008): LDR R4, R4, 8H
0484v(F7FFFF7C): BL -132 [0401H]
0485w(80E00004): LDR R0, SP, 4H
0486w(D1230F4C): BLEQ MT [trap=4, pos=8975]
ENDx Store;
0487x(41000000): MOV R1, R0, 0H
0488x(B100000C): STR R1, R0, CH
0489x(8FE00000): LDR LNK, SP, 0H
048Ax(4EE8006C): ADD SP, SP, 6CH
048Bx(C700000F): B LNK
PROCEDURE WriteObj*(VAR W: Files.Rider; cno: INTEGER; obj: Object);
BEGINy Files.WriteByte(W,z cno)a;b Files.WriteInt(W,c obj.yd * 10000H +e obj.xf)g;h
048Cy .PROC 36
048Cy(4EE90014): SUB SP, SP, 14H
048Dy(AFE00000): STR LNK, SP, 0H
048Ey(A0E00004): STR R0, SP, 4H
048Fy(A1E00008): STR R1, SP, 8H
0490y(A2E0000C): STR R2, SP, CH
0491y(A3E00010): STR R3, SP, 10H
0492z(80E00004): LDR R0, SP, 4H
0493z(81E00008): LDR R1, SP, 8H
0494a(82E0000C): LDR R2, SP, CH
0495b .FIXUP P
0495b(F7116026): BL MOD1 [Files] PROC22
0496c(80E00004): LDR R0, SP, 4H
0497c(81E00008): LDR R1, SP, 8H
0498d(82E00010): LDR R2, SP, 10H
0499d(D123A54C): BLEQ MT [trap=4, pos=9125]
049Ae(82200004): LDR R2, R2, 4H
049Be(42210010): LSL R2, R2, 10H
049Cf(83E00010): LDR R3, SP, 10H
049Df(D123B64C): BLEQ MT [trap=4, pos=9142]
049Eg(83300000): LDR R3, R3, 0H
049Fg(02280003): ADD R2, R2, R3
04A0h .FIXUP P
04A0h(F711900B): BL MOD1 [Files] PROC25
Files.WriteInt(W,i obj.hj * 10000H +k obj.wl)m;n Files.WriteByte(W,o obj.colp)q
04A1i(80E00004): LDR R0, SP, 4H
04A2i(81E00008): LDR R1, SP, 8H
04A3j(82E00010): LDR R2, SP, 10H
04A4j(D123D44C): BLEQ MT [trap=4, pos=9172]
04A5k(8220000C): LDR R2, R2, CH
04A6k(42210010): LSL R2, R2, 10H
04A7l(83E00010): LDR R3, SP, 10H
04A8l(D123E54C): BLEQ MT [trap=4, pos=9189]
04A9m(83300008): LDR R3, R3, 8H
04AAm(02280003): ADD R2, R2, R3
04ABn .FIXUP P
04ABn(F711900B): BL MOD1 [Files] PROC25
04ACo(80E00004): LDR R0, SP, 4H
04ADo(81E00008): LDR R1, SP, 8H
04AEp(82E00010): LDR R2, SP, 10H
04AFp(D124024C): BLEQ MT [trap=4, pos=9218]
04B0q(92200010): LDR R2, R2, 10H
ENDr WriteObj;
04B1r .FIXUP P
04B1r(F7116006): BL MOD1 [Files] PROC22
04B2r(8FE00000): LDR LNK, SP, 0H
04B3r(4EE80014): ADD SP, SP, 14H
04B4r(C700000F): B LNK
PROCEDURE WriteFile*(G: Graph; name: ARRAY OF CHAR);
VAR F: Files.File; W: Files.Rider; C: Context;
BEGINs F := Files.New(name)t;u Files.Set(W,v F,w 0)x;y Files.Write(W,z GraphFileId)a;b
04B5s .PROC 37
04B5s(4EE90088): SUB SP, SP, 88H
04B6s(AFE00000): STR LNK, SP, 0H
04B7s(A0E00004): STR R0, SP, 4H
04B8s(A1E00008): STR R1, SP, 8H
04B9s(A2E0000C): STR R2, SP, CH
04BAt(80E00008): LDR R0, SP, 8H
04BBt(81E0000C): LDR R1, SP, CH
04BCu .FIXUP P
04BCu(F710300B): BL MOD1 [Files] PROC3
04BDu(A0E00010): STR R0, SP, 10H
04BEv(40E80014): ADD R0, SP, 14H
04BFv .FIXUP D
04BFv(8D100040): LDR SB, MT, MOD1 [Files]
04C0v(41D80001): ADD R1, SB, VAR1
04C1w(82E00010): LDR R2, SP, 10H
04C2x(43000000): MOV R3, R0, 0H
04C3y .FIXUP P
04C3y(F710B007): BL MOD1 [Files] PROC11
04C4z(40E80014): ADD R0, SP, 14H
04C5z .FIXUP D
04C5z(8D100006): LDR SB, MT, MOD1 [Files]
04C6z(41D80001): ADD R1, SB, VAR1
04C7a(420000FA): MOV R2, R0, FAH
04C8b .FIXUP P
04C8b(F7118005): BL MOD1 [Files] PROC24
InitContext(C)c;d StoreElems(W,e C,f G.firstg)h;i Files.Register(F)j
04C9c(40E8002C): ADD R0, SP, 2CH
04CAc .FIXUP D
04CAc(8D000005): LDR SB, MT, MOD0 [Graphics]
04CBc(41D800E0): ADD R1, SB, E0H [data]
04CCd(F7FFFED1): BL -303 [039EH]
04CDe(40E80014): ADD R0, SP, 14H
04CEe .FIXUP D
04CEe(8D100004): LDR SB, MT, MOD1 [Files]
04CFe(41D80001): ADD R1, SB, VAR1
04D0f(42E8002C): ADD R2, SP, 2CH
04D1f .FIXUP D
04D1f(8D000003): LDR SB, MT, MOD0 [Graphics]
04D2f(43D800E0): ADD R3, SB, E0H [data]
04D3g(84E00004): LDR R4, SP, 4H
04D4g(D124FA4C): BLEQ MT [trap=4, pos=9466]
04D5h(84400008): LDR R4, R4, 8H
04D6i(F7FFFF2A): BL -214 [0401H]
04D7j(80E00010): LDR R0, SP, 10H
ENDk WriteFile;
04D8k .FIXUP P
04D8k(F7104010): BL MOD1 [Files] PROC4
04D9k(8FE00000): LDR LNK, SP, 0H
04DAk(4EE80088): ADD SP, SP, 88H
04DBk(C700000F): B LNK
PROCEDURE Print*(G: Graph; x0, y0: INTEGER);
VAR obj: Object;
BEGINl obj := G.firstm;n
04DCl .PROC 38
04DCl(4EE90014): SUB SP, SP, 14H
04DDl(AFE00000): STR LNK, SP, 0H
04DEl(A0E00004): STR R0, SP, 4H
04DFl(A1E00008): STR R1, SP, 8H
04E0l(A2E0000C): STR R2, SP, CH
04E1m(80E00004): LDR R0, SP, 4H
04E2m(D1257B4C): BLEQ MT [trap=4, pos=9595]
04E3n(80000008): LDR R0, R0, 8H
04E4n(A0E00010): STR R0, SP, 10H
WHILE obj # NIL DOo obj.dop.printq(objr,s x0,t y0)u;v obj := obj.nextw ENDx
04E5o(80E00010): LDR R0, SP, 10H
04E6o(E1000013): BEQ 19 [04FAH]
04E7p(80E00010): LDR R0, SP, 10H
04E8p(D1259A4C): BLEQ MT [trap=4, pos=9626]
04E9q(80000014): LDR R0, R0, 14H
04EAq(D125A04C): BLEQ MT [trap=4, pos=9632]
04EBr(8000005C): LDR R0, R0, 5CH
04ECr(4EE90004): SUB SP, SP, 4H
04EDr(A0E00000): STR R0, SP, 0H
04EEs(80E00014): LDR R0, SP, 14H
04EFt(81E0000C): LDR R1, SP, CH
04F0u(82E00010): LDR R2, SP, 10H
04F1v(83E00000): LDR R3, SP, 0H
04F2v(4EE80004): ADD SP, SP, 4H
04F3v(D125AE5C): BLEQ MT [trap=5, pos=9646]
04F4v(D7000003): BL R3
04F5w(80E00010): LDR R0, SP, 10H
04F6w(D125BE4C): BLEQ MT [trap=4, pos=9662]
04F7x(80000018): LDR R0, R0, 18H
04F8x(A0E00010): STR R0, SP, 10H
04F9x(E7FFFFEB): B -21 [04E5H]
ENDy Print;
04FAy(8FE00000): LDR LNK, SP, 0H
04FBy(4EE80014): ADD SP, SP, 14H
04FCy(C700000F): B LNK
(* ---------------------- Loading ------------------------ *)
PROCEDURE GetClass*(module, allocator: ARRAY OF CHAR; VAR com: Modules.Command);
VAR mod: Modules.Module;
BEGINz Modules.Load(module,a mod)b;c
04FDz .PROC 39
04FDz(4EE9001C): SUB SP, SP, 1CH
04FEz(AFE00000): STR LNK, SP, 0H
04FFz(A0E00004): STR R0, SP, 4H
0500z(A1E00008): STR R1, SP, 8H
0501z(A2E0000C): STR R2, SP, CH
0502z(A3E00010): STR R3, SP, 10H
0503z(A4E00014): STR R4, SP, 14H
0504a(80E00004): LDR R0, SP, 4H
0505a(81E00008): LDR R1, SP, 8H
0506b(42E80018): ADD R2, SP, 18H
0507c .FIXUP P
0507c(F720802F): BL MOD2 [Modules] PROC8
IF mod # NIL THENd
0508d(80E00018): LDR R0, SP, 18H
0509d(E1000010): BEQ 16 [051AH]
com := Modules.ThisCommand(mod,e allocator)f;g
050Ae(80E00018): LDR R0, SP, 18H
050Bf(81E0000C): LDR R1, SP, CH
050Cf(82E00010): LDR R2, SP, 10H
050Dg .FIXUP P
050Dg(F7209006): BL MOD2 [Modules] PROC9
050Eg(81E00014): LDR R1, SP, 14H
050Fg(A0100000): STR R0, R1, 0H
IF com = NIL THENh WMsg(allocator,i " unknown")j ENDk
0510h(80E00014): LDR R0, SP, 14H
0511h(80000000): LDR R0, R0, 0H
0512h(E9000006): BNE 6 [0519H]
0513i(80E0000C): LDR R0, SP, CH
0514i(81E00010): LDR R1, SP, 10H
0515j .FIXUP D
0515j(8D000044): LDR SB, MT, MOD0 [Graphics]
0516j(42D80234): ADD R2, SB, 234H [" unknown"]
0517j(43000009): MOV R3, R0, 9H
0518k(F7FFFE64): BL -412 [037DH]
ELSE WMsgl(module,m " not available")n;o com := NIL
0519l(E7000009): B 9 [0523H]
051Am(80E00004): LDR R0, SP, 4H
051Bm(81E00008): LDR R1, SP, 8H
051Cn .FIXUP D
051Cn(8D000007): LDR SB, MT, MOD0 [Graphics]
051Dn(42D80240): ADD R2, SB, 240H [" not available"]
051En(4300000F): MOV R3, R0, FH
051Fo(F7FFFE5D): BL -419 [037DH]
ENDp
0520p(40000000): MOV R0, R0, 0H
0521p(81E00014): LDR R1, SP, 14H
0522p(A0100000): STR R0, R1, 0H
ENDq GetClass;
0523q(8FE00000): LDR LNK, SP, 0H
0524q(4EE8001C): ADD SP, SP, 1CH
0525q(C700000F): B LNK
PROCEDURE Font*(VAR R: Files.Rider; VAR C: Context): Fonts.Font;
VAR fno: BYTE;
BEGINr Files.ReadByte(R,s fno)t;u RETURN C.font[fno]v
0526r .PROC 40
0526r(4EE90018): SUB SP, SP, 18H
0527r(AFE00000): STR LNK, SP, 0H
0528r(A0E00004): STR R0, SP, 4H
0529r(A1E00008): STR R1, SP, 8H
052Ar(A2E0000C): STR R2, SP, CH
052Br(A3E00010): STR R3, SP, 10H
052Cs(80E00004): LDR R0, SP, 4H
052Ds(81E00008): LDR R1, SP, 8H
052Et(42E80014): ADD R2, SP, 14H
052Fu .FIXUP P
052Fu(F710E022): BL MOD1 [Files] PROC14
0530v(90E00014): LDR R0, SP, 14H
0531v(4109000A): SUB R1, R0, AH
0532v(DA27FA1C): BLCC MT [trap=1, pos=10234]
0533v(40010002): LSL R0, R0, 2H
0534v(81E0000C): LDR R1, SP, CH
0535v(00180000): ADD R0, R1, R0
ENDw Font;
0536w(8000000C): LDR R0, R0, CH
0537w(8FE00000): LDR LNK, SP, 0H
0538w(4EE80018): ADD SP, SP, 18H
0539w(C700000F): B LNK
PROCEDURE ReadObj(VAR R: Files.Rider; obj: Object);
VAR xy, wh: INTEGER; dmy: BYTE;
BEGINx Files.ReadInt(R,y xy)z;a obj.yb := xy DIV 10000H;c obj.xd := xy * 10000H DIVe 10000H;f
053Ax(4EE9001C): SUB SP, SP, 1CH
053Bx(AFE00000): STR LNK, SP, 0H
053Cx(A0E00004): STR R0, SP, 4H
053Dx(A1E00008): STR R1, SP, 8H
053Ex(A2E0000C): STR R2, SP, CH
053Fy(80E00004): LDR R0, SP, 4H
0540y(81E00008): LDR R1, SP, 8H
0541z(42E80010): ADD R2, SP, 10H
0542a .FIXUP P
0542a(F7111013): BL MOD1 [Files] PROC17
0543b(80E0000C): LDR R0, SP, CH
0544b(D128854C): BLEQ MT [trap=4, pos=10373]
0545c(81E00010): LDR R1, SP, 10H
0546c(41120010): ASR R1, R1, 10H
0547c(A1000004): STR R1, R0, 4H
0548d(80E0000C): LDR R0, SP, CH
0549d(D1289D4C): BLEQ MT [trap=4, pos=10397]
054Ae(81E00010): LDR R1, SP, 10H
054Be(41110010): LSL R1, R1, 10H
054Cf(41120010): ASR R1, R1, 10H
054Df(A1000000): STR R1, R0, 0H
Files.ReadInt(R,g wh)h;i obj.hj := wh DIV 10000H;k obj.wl := wh * 10000H DIVm 10000H;n
054Eg(80E00004): LDR R0, SP, 4H
054Fg(81E00008): LDR R1, SP, 8H
0550h(42E80014): ADD R2, SP, 14H
0551i .FIXUP P
0551i(F711100F): BL MOD1 [Files] PROC17
0552j(80E0000C): LDR R0, SP, CH
0553j(D128D84C): BLEQ MT [trap=4, pos=10456]
0554k(81E00014): LDR R1, SP, 14H
0555k(41120010): ASR R1, R1, 10H
0556k(A100000C): STR R1, R0, CH
0557l(80E0000C): LDR R0, SP, CH
0558l(D128F04C): BLEQ MT [trap=4, pos=10480]
0559m(81E00014): LDR R1, SP, 14H
055Am(41110010): LSL R1, R1, 10H
055Bn(41120010): ASR R1, R1, 10H
055Cn(A1000008): STR R1, R0, 8H
Files.ReadByte(R,o obj.colp)q
055Do(80E00004): LDR R0, SP, 4H
055Eo(81E00008): LDR R1, SP, 8H
055Fp(82E0000C): LDR R2, SP, CH
0560p(D129294C): BLEQ MT [trap=4, pos=10537]
0561q(42280010): ADD R2, R2, 10H
ENDr ReadObj;
0562r .FIXUP P
0562r(F710E011): BL MOD1 [Files] PROC14
0563r(8FE00000): LDR LNK, SP, 0H
0564r(4EE8001C): ADD SP, SP, 1CH
0565r(C700000F): B LNK
PROCEDURE LoadElems(VAR R: Files.Rider; VAR C: Context; VAR fobj: Object);
VAR cno, m, n, len: BYTE; pos: INTEGER;
obj: Object;
fnt: Fonts.Font;
name, name1: ARRAY 32 OF CHAR;
BEGINs obj := NIL;t Files.ReadByte(R,u cno)v;w
0566s(4EE90068): SUB SP, SP, 68H
0567s(AFE00000): STR LNK, SP, 0H
0568s(A0E00004): STR R0, SP, 4H
0569s(A1E00008): STR R1, SP, 8H
056As(A2E0000C): STR R2, SP, CH
056Bs(A3E00010): STR R3, SP, 10H
056Cs(A4E00014): STR R4, SP, 14H
056Dt(40000000): MOV R0, R0, 0H
056Et(A0E00020): STR R0, SP, 20H
056Fu(80E00004): LDR R0, SP, 4H
0570u(81E00008): LDR R1, SP, 8H
0571v(42E80018): ADD R2, SP, 18H
0572w .FIXUP P
0572w(F710E010): BL MOD1 [Files] PROC14
WHILE ~R.eof &x (ycno < 255)z DOa
0573x(80E00004): LDR R0, SP, 4H
0574x(90000000): LDR R0, R0, 0H
0575y(E90000A4): BNE 164 [061AH]
0576z(90E00018): LDR R0, SP, 18H
0577z(400900FF): SUB R0, R0, FFH
0578a(ED0000A1): BGE 161 [061AH]
IF cno = 0 THENb
0579b(90E00018): LDR R0, SP, 18H
057Ab(E9000043): BNE 67 [05BEH]
Files.ReadByte(R,c m)d;e Files.ReadByte(R,f n)g;h Files.ReadString(R,i name)j;k
057Bc(80E00004): LDR R0, SP, 4H
057Cc(81E00008): LDR R1, SP, 8H
057Dd(42E80019): ADD R2, SP, 19H
057Ee .FIXUP P
057Ee(F710E00C): BL MOD1 [Files] PROC14
057Ff(80E00004): LDR R0, SP, 4H
0580f(81E00008): LDR R1, SP, 8H
0581g(42E8001A): ADD R2, SP, 1AH
0582h .FIXUP P
0582h(F710E004): BL MOD1 [Files] PROC14
0583i(80E00004): LDR R0, SP, 4H
0584i(81E00008): LDR R1, SP, 8H
0585j(42E80028): ADD R2, SP, 28H
0586j(43000020): MOV R3, R0, 20H
0587k .FIXUP P
0587k(F7114005): BL MOD1 [Files] PROC20
IF m = 0 THENl fnt := Fonts.This(name)m;n C.font[n]o := fnt
0588l(90E00019): LDR R0, SP, 19H
0589l(E900000D): BNE 13 [0597H]
058Am(40E80028): ADD R0, SP, 28H
058Bm(41000020): MOV R1, R0, 20H
058Cn .FIXUP P
058Cn(F7305005): BL MOD3 [Fonts] PROC5
058Dn(A0E00024): STR R0, SP, 24H
058Eo(90E0001A): LDR R0, SP, 1AH
058Fo(4109000A): SUB R1, R0, AH
0590o(DA2AEE1C): BLCC MT [trap=1, pos=10990]
0591o(40010002): LSL R0, R0, 2H
0592o(81E0000C): LDR R1, SP, CH
0593o(00180000): ADD R0, R1, R0
ELSIFp mq = 1 THENr GetLib0(name,s FALSE,t C.lib[n]u)v
0594p(81E00024): LDR R1, SP, 24H
0595p(A100000C): STR R1, R0, CH
0596q(E7000026): B 38 [05BDH]
0597r(90E00019): LDR R0, SP, 19H
0598r(40090001): SUB R0, R0, 1H
0599r(E900000F): BNE 15 [05A9H]
059As(40E80028): ADD R0, SP, 28H
059Bs(41000020): MOV R1, R0, 20H
059Ct(42000000): MOV R2, R0, 0H
059Du(93E0001A): LDR R3, SP, 1AH
059Eu(44390004): SUB R4, R3, 4H
059Fu(DA2B2C1C): BLCC MT [trap=1, pos=11052]
05A0u(43310002): LSL R3, R3, 2H
05A1u(84E0000C): LDR R4, SP, CH
05A2u(03480003): ADD R3, R4, R3
05A3v(43380034): ADD R3, R3, 34H
ELSIFw mx = 2 THENy Files.ReadString(R,z name1)a;b GetClass(name,c name1,d C.class[n]e)f
05A4w .FIXUP D
05A4w(8D000088): LDR SB, MT, MOD0 [Graphics]
05A5w(84D001B4): LDR R4, SB, 1B4H [data]
05A6w(D12B3B5C): BLEQ MT [trap=5, pos=11067]
05A7w(D7000004): BL R4
05A8x(E7000014): B 20 [05BDH]
05A9y(90E00019): LDR R0, SP, 19H
05AAy(40090002): SUB R0, R0, 2H
05ABy(E9000011): BNE 17 [05BDH]
05ACz(80E00004): LDR R0, SP, 4H
05ADz(81E00008): LDR R1, SP, 8H
05AEa(42E80048): ADD R2, SP, 48H
05AFa(43000020): MOV R3, R0, 20H
05B0b .FIXUP P
05B0b(F7114024): BL MOD1 [Files] PROC20
05B1c(40E80028): ADD R0, SP, 28H
05B2c(41000020): MOV R1, R0, 20H
05B3d(42E80048): ADD R2, SP, 48H
05B4d(43000020): MOV R3, R0, 20H
05B5e(94E0001A): LDR R4, SP, 1AH
05B6e(45490006): SUB R5, R4, 6H
05B7e(DA2B831C): BLCC MT [trap=1, pos=11139]
05B8e(44410002): LSL R4, R4, 2H
05B9e(85E0000C): LDR R5, SP, CH
05BAe(04580004): ADD R4, R5, R4
05BBf(44480044): ADD R4, R4, 44H
ENDg
05BCg(F7FFFF40): BL -192 [04FDH]
ELSIF Ch.class[cno]i # NIL THENj
05BDh(E7000057): B 87 [0615H]
05BEi(90E00018): LDR R0, SP, 18H
05BFi(41090006): SUB R1, R0, 6H
05C0i(DA2BA91C): BLCC MT [trap=1, pos=11177]
05C1i(40010002): LSL R0, R0, 2H
05C2i(81E0000C): LDR R1, SP, CH
05C3i(00180000): ADD R0, R1, R0
05C4j(80000044): LDR R0, R0, 44H
05C5j(E1000032): BEQ 50 [05F8H]
C.class[cno]k;l
05C6k(90E00018): LDR R0, SP, 18H
05C7k(41090006): SUB R1, R0, 6H
05C8k(DA2BC91C): BLCC MT [trap=1, pos=11209]
05C9k(40010002): LSL R0, R0, 2H
05CAk(81E0000C): LDR R1, SP, CH
05CBk(00180000): ADD R0, R1, R0
05CCl(80000044): LDR R0, R0, 44H
05CDl(4EE90004): SUB SP, SP, 4H
05CEl(A0E00000): STR R0, SP, 0H
05CFl(80E00000): LDR R0, SP, 0H
05D0l(4EE80004): ADD SP, SP, 4H
05D1l(D12BCA5C): BLEQ MT [trap=5, pos=11210]
05D2l(D7000000): BL R0
ReadObj(R,m new)n;o
05D3m(80E00004): LDR R0, SP, 4H
05D4m(81E00008): LDR R1, SP, 8H
05D5n .FIXUP D
05D5n(8D000031): LDR SB, MT, MOD0 [Graphics]
05D6n(82D001A0): LDR R2, SB, 1A0H [data]
05D7o(F7FFFF62): BL -158 [053AH]
new.selectedp := FALSE;q new.markedr := FALSE;s new.nextt := obj;u obj := new;v
05D8p .FIXUP D
05D8p(8D000003): LDR SB, MT, MOD0 [Graphics]
05D9p(80D001A0): LDR R0, SB, 1A0H [data]
05DAp(D12BF84C): BLEQ MT [trap=4, pos=11256]
05DBq(41000000): MOV R1, R0, 0H
05DCq(B1000011): STR R1, R0, 11H
05DDr(80D001A0): LDR R0, SB, 1A0H
05DEr(D12C0D4C): BLEQ MT [trap=4, pos=11277]
05DFs(41000000): MOV R1, R0, 0H
05E0s(B1000012): STR R1, R0, 12H
05E1t(80D001A0): LDR R0, SB, 1A0H
05E2t(D12C204C): BLEQ MT [trap=4, pos=11296]
05E3u(81E00020): LDR R1, SP, 20H
05E4u(A1000018): STR R1, R0, 18H
05E5v(80D001A0): LDR R0, SB, 1A0H
05E6v(A0E00020): STR R0, SP, 20H
new.dow.readx(newy,z R,a C)b
05E7w(80D001A0): LDR R0, SB, 1A0H
05E8w(D12C434C): BLEQ MT [trap=4, pos=11331]
05E9x(80000014): LDR R0, R0, 14H
05EAx(D12C484C): BLEQ MT [trap=4, pos=11336]
05EBy(80000054): LDR R0, R0, 54H
05ECy(4EE90004): SUB SP, SP, 4H
05EDy(A0E00000): STR R0, SP, 0H
05EEz(80D001A0): LDR R0, SB, 1A0H
05EFa(81E00008): LDR R1, SP, 8H
05F0a(82E0000C): LDR R2, SP, CH
05F1b(83E00010): LDR R3, SP, 10H
05F2b(84E00014): LDR R4, SP, 14H
ELSEc ReadObjd(R,e new)f;g Files.ReadByte(R,h len)i;j pos := Files.Pos(R)k;l Files.Set(R,m Files.Base(Rn)o,p pos + len)q
05F3c(85E00000): LDR R5, SP, 0H
05F4c(4EE80004): ADD SP, SP, 4H
05F5c(D12C5E5C): BLEQ MT [trap=5, pos=11358]
05F6c(D7000005): BL R5
05F7d(E700001D): B 29 [0615H]
05F8e(80E00004): LDR R0, SP, 4H
05F9e(81E00008): LDR R1, SP, 8H
05FAf .FIXUP D
05FAf(8D000022): LDR SB, MT, MOD0 [Graphics]
05FBf(82D001A0): LDR R2, SB, 1A0H [data]
05FCg(F7FFFF3D): BL -195 [053AH]
05FDh(80E00004): LDR R0, SP, 4H
05FEh(81E00008): LDR R1, SP, 8H
05FFi(42E8001B): ADD R2, SP, 1BH
0600j .FIXUP P
0600j(F710E050): BL MOD1 [Files] PROC14
0601k(80E00004): LDR R0, SP, 4H
0602k(81E00008): LDR R1, SP, 8H
0603l .FIXUP P
0603l(F710C003): BL MOD1 [Files] PROC12
0604l(A0E0001C): STR R0, SP, 1CH
0605m(80E00004): LDR R0, SP, 4H
0606m(81E00008): LDR R1, SP, 8H
0607n(4EE90008): SUB SP, SP, 8H
0608n(A0E00004): STR R0, SP, 4H
0609n(A1E00000): STR R1, SP, 0H
060Ao(80E0000C): LDR R0, SP, CH
060Bo(81E00010): LDR R1, SP, 10H
060Cp .FIXUP P
060Cp(F710D009): BL MOD1 [Files] PROC13
060Dp(02000000): MOV R2, R0, R0
060Ep(81E00000): LDR R1, SP, 0H
060Fp(80E00004): LDR R0, SP, 4H
0610p(4EE80008): ADD SP, SP, 8H
0611q(83E0001C): LDR R3, SP, 1CH
0612q(94E0001B): LDR R4, SP, 1BH
0613q(03380004): ADD R3, R3, R4
ENDr ;
0614r .FIXUP P
0614r(F710B008): BL MOD1 [Files] PROC11
Files.ReadByte(R,s cno)t
0615s(80E00004): LDR R0, SP, 4H
0616s(81E00008): LDR R1, SP, 8H
0617t(42E80018): ADD R2, SP, 18H
ENDu ;
0618u .FIXUP P
0618u(F710E004): BL MOD1 [Files] PROC14
0619u(E7FFFF59): B -167 [0573H]
new := NIL;v fobj := obj
061Av(40000000): MOV R0, R0, 0H
061Bv .FIXUP D
061Bv(8D000021): LDR SB, MT, MOD0 [Graphics]
061Cv(A0D001A0): STR R0, SB, 1A0H [data]
ENDw LoadElems;
061Dw(80E00020): LDR R0, SP, 20H
061Ew(81E00014): LDR R1, SP, 14H
061Fw(A0100000): STR R0, R1, 0H
0620w(8FE00000): LDR LNK, SP, 0H
0621w(4EE80068): ADD SP, SP, 68H
0622w(C700000F): B LNK
PROCEDURE Load*(G: Graph; VAR R: Files.Rider);
VAR C: Context;
BEGINx G.sely := NIL;z InitContext(C)a;b LoadElems(R,c C,d G.firste)f
0623x .PROC 41
0623x(4EE9006C): SUB SP, SP, 6CH
0624x(AFE00000): STR LNK, SP, 0H
0625x(A0E00004): STR R0, SP, 4H
0626x(A1E00008): STR R1, SP, 8H
0627x(A2E0000C): STR R2, SP, CH
0628y(80E00004): LDR R0, SP, 4H
0629y(D12D774C): BLEQ MT [trap=4, pos=11639]
062Az(41000000): MOV R1, R0, 0H
062Bz(A1000004): STR R1, R0, 4H
062Ca(40E80010): ADD R0, SP, 10H
062Da .FIXUP D
062Da(8D000012): LDR SB, MT, MOD0 [Graphics]
062Ea(41D800E0): ADD R1, SB, E0H [data]
062Fb(F7FFFD6E): BL -658 [039EH]
0630c(80E00008): LDR R0, SP, 8H
0631c(81E0000C): LDR R1, SP, CH
0632d(42E80010): ADD R2, SP, 10H
0633d .FIXUP D
0633d(8D000006): LDR SB, MT, MOD0 [Graphics]
0634d(43D800E0): ADD R3, SB, E0H [data]
0635e(84E00004): LDR R4, SP, 4H
0636e(D12DA74C): BLEQ MT [trap=4, pos=11687]
0637f(44480008): ADD R4, R4, 8H
ENDg Load;
0638g(F7FFFF2D): BL -211 [0566H]
0639g(8FE00000): LDR LNK, SP, 0H
063Ag(4EE8006C): ADD SP, SP, 6CH
063Bg(C700000F): B LNK
PROCEDURE Open*(G: Graph; name: ARRAY OF CHAR);
VAR tag: CHAR;
F: Files.File; R: Files.Rider; C: Context;
BEGINh G.firsti := NIL;j G.selk := NIL;l G.timem := 0;n G.changedo := FALSE;p F := Files.Old(name)q;r
063Ch .PROC 42
063Ch(4EE9008C): SUB SP, SP, 8CH
063Dh(AFE00000): STR LNK, SP, 0H
063Eh(A0E00004): STR R0, SP, 4H
063Fh(A1E00008): STR R1, SP, 8H
0640h(A2E0000C): STR R2, SP, CH
0641i(80E00004): LDR R0, SP, 4H
0642i(D12E3B4C): BLEQ MT [trap=4, pos=11835]
0643j(41000000): MOV R1, R0, 0H
0644j(A1000008): STR R1, R0, 8H
0645k(80E00004): LDR R0, SP, 4H
0646k(D12E494C): BLEQ MT [trap=4, pos=11849]
0647l(41000000): MOV R1, R0, 0H
0648l(A1000004): STR R1, R0, 4H
0649m(80E00004): LDR R0, SP, 4H
064Am(D12E584C): BLEQ MT [trap=4, pos=11864]
064Bn(41000000): MOV R1, R0, 0H
064Cn(A1000000): STR R1, R0, 0H
064Do(80E00004): LDR R0, SP, 4H
064Eo(D12E684C): BLEQ MT [trap=4, pos=11880]
064Fp(41000000): MOV R1, R0, 0H
0650p(B100000C): STR R1, R0, CH
0651q(80E00008): LDR R0, SP, 8H
0652q(81E0000C): LDR R1, SP, CH
0653r .FIXUP P
0653r(F710203B): BL MOD1 [Files] PROC2
0654r(A0E00014): STR R0, SP, 14H
IF F # NIL THENs
0655s(80E00014): LDR R0, SP, 14H
0656s(E1000024): BEQ 36 [067BH]
Files.Set(R,t F,u 0)v;w Files.Read(R,x tag)y;z
0657t(40E80018): ADD R0, SP, 18H
0658t .FIXUP D
0658t(8D100025): LDR SB, MT, MOD1 [Files]
0659t(41D80001): ADD R1, SB, VAR1
065Au(82E00014): LDR R2, SP, 14H
065Bv(43000000): MOV R3, R0, 0H
065Cw .FIXUP P
065Cw(F710B009): BL MOD1 [Files] PROC11
065Dx(40E80018): ADD R0, SP, 18H
065Ex .FIXUP D
065Ex(8D100006): LDR SB, MT, MOD1 [Files]
065Fx(41D80001): ADD R1, SB, VAR1
0660y(42E80010): ADD R2, SP, 10H
0661z .FIXUP P
0661z(F7110005): BL MOD1 [Files] PROC16
IF tag = GraphFileId THENa InitContext(C)b;c LoadElems(R,d C,e G.firstf)g;h res := 0 ELSEi resj := 1 ENDk
0662a(90E00010): LDR R0, SP, 10H
0663a(400900FA): SUB R0, R0, FAH
0664a(E9000012): BNE 18 [0677H]
0665b(40E80030): ADD R0, SP, 30H
0666b .FIXUP D
0666b(8D000008): LDR SB, MT, MOD0 [Graphics]
0667b(41D800E0): ADD R1, SB, E0H [data]
0668c(F7FFFD35): BL -715 [039EH]
0669d(40E80018): ADD R0, SP, 18H
066Ad .FIXUP D
066Ad(8D100004): LDR SB, MT, MOD1 [Files]
066Bd(41D80001): ADD R1, SB, VAR1
066Ce(42E80030): ADD R2, SP, 30H
066De .FIXUP D
066De(8D000003): LDR SB, MT, MOD0 [Graphics]
066Ee(43D800E0): ADD R3, SB, E0H [data]
066Ff(84E00004): LDR R4, SP, 4H
0670f(D12F124C): BLEQ MT [trap=4, pos=12050]
0671g(44480008): ADD R4, R4, 8H
0672h(F7FFFEF3): BL -269 [0566H]
0673i(40000000): MOV R0, R0, 0H
0674i .FIXUP D
0674i(8D000007): LDR SB, MT, MOD0 [Graphics]
0675i(A0D0019C): STR R0, SB, 19CH [data]
0676j(E7000003): B 3 [067AH]
0677k(40000001): MOV R0, R0, 1H
0678k .FIXUP D
0678k(8D000004): LDR SB, MT, MOD0 [Graphics]
0679k(A0D0019C): STR R0, SB, 19CH [data]
ELSE resl := 2
067Al(E7000003): B 3 [067EH]
ENDm
067Bm(40000002): MOV R0, R0, 2H
067Cm .FIXUP D
067Cm(8D000004): LDR SB, MT, MOD0 [Graphics]
067Dm(A0D0019C): STR R0, SB, 19CH [data]
ENDn Open;
067En(8FE00000): LDR LNK, SP, 0H
067Fn(4EE8008C): ADD SP, SP, 8CH
0680n(C700000F): B LNK
PROCEDURE SetWidth*(w: INTEGER);
BEGINo width := w
0681o .PROC 43
0681o(4EE90008): SUB SP, SP, 8H
0682o(AFE00000): STR LNK, SP, 0H
0683o(A0E00004): STR R0, SP, 4H
ENDp SetWidth;
0684p(80E00004): LDR R0, SP, 4H
0685p .FIXUP D
0685p(8D000009): LDR SB, MT, MOD0 [Graphics]
0686p(A0D00198): STR R0, SB, 198H [data]
0687p(8FE00000): LDR LNK, SP, 0H
0688p(4EE80008): ADD SP, SP, 8H
0689p(C700000F): B LNK
(* --------------------- Macros / Libraries ----------------------- *)
PROCEDURE GetLib*(name: ARRAY OF CHAR; replace: BOOLEAN; VAR Lib: Library);
VAR i, wh: INTEGER; ch: CHAR;
L: Library; mh: MacHead; obj: Object;
F: Files.File; R: Files.Rider; C: Context;
Lname, Fname: ARRAY 32 OF CHAR;
BEGINq L := FirstLib;r i := 0;s
068Aq .PROC 44
068Aq(4EE900E4): SUB SP, SP, E4H
068Bq(AFE00000): STR LNK, SP, 0H
068Cq(A0E00004): STR R0, SP, 4H
068Dq(A1E00008): STR R1, SP, 8H
068Eq(A2E0000C): STR R2, SP, CH
068Fq(A3E00010): STR R3, SP, 10H
0690r .FIXUP D
0690r(8D00000B): LDR SB, MT, MOD0 [Graphics]
0691r(80D001B8): LDR R0, SB, 1B8H [data]
0692r(A0E00020): STR R0, SP, 20H
0693s(40000000): MOV R0, R0, 0H
0694s(A0E00014): STR R0, SP, 14H
WHILE (L # NIL)t & (uL.namev # name)w DOx L := L.nexty ENDz ;
0695t(80E00020): LDR R0, SP, 20H
0696u(E1000011): BEQ 17 [06A8H]
0697v(80E00020): LDR R0, SP, 20H
0698v(D131174C): BLEQ MT [trap=4, pos=12567]
0699w(81E00004): LDR R1, SP, 4H
069Aw(92000000): LDR R2, R0, 0H
069Bw(40080001): ADD R0, R0, 1H
069Cw(93100000): LDR R3, R1, 0H
069Dw(41180001): ADD R1, R1, 1H
069Ew(04290003): SUB R4, R2, R3
069Fw(E9000002): BNE 2 [06A2H]
06A0w(44290000): SUB R4, R2, 0H
06A1w(E9FFFFF8): BNE -8 [069AH]
06A2x(E1000005): BEQ 5 [06A8H]
06A3y(80E00020): LDR R0, SP, 20H
06A4y(D1312E4C): BLEQ MT [trap=4, pos=12590]
06A5z(80000024): LDR R0, R0, 24H
06A6z(A0E00020): STR R0, SP, 20H
06A7z(E7FFFFED): B -19 [0695H]
IF L = NIL THENa
06A8a(80E00020): LDR R0, SP, 20H
06A9a(E90000C2): BNE 194 [076CH]
(*load library from file*) i := 0;b
06AAb(40000000): MOV R0, R0, 0H
06ABb(A0E00014): STR R0, SP, 14H
WHILE name[i]c > 0X DOd Fname[i]e := name[i]f;g INC(i) ENDh ;
06ACc(80E00014): LDR R0, SP, 14H
06ADc(81E00008): LDR R1, SP, 8H
06AEc(01090001): SUB R1, R0, R1
06AFc(DA31851C): BLCC MT [trap=1, pos=12677]
06B0c(81E00004): LDR R1, SP, 4H
06B1c(00180000): ADD R0, R1, R0
06B2d(90000000): LDR R0, R0, 0H
06B3d(40090000): SUB R0, R0, 0H
06B4d(E6000010): BLE 16 [06C5H]
06B5e(80E00014): LDR R0, SP, 14H
06B6e(41090020): SUB R1, R0, 20H
06B7e(DA31961C): BLCC MT [trap=1, pos=12694]
06B8e(00E80000): ADD R0, SP, R0
06B9f(81E00014): LDR R1, SP, 14H
06BAf(82E00008): LDR R2, SP, 8H
06BBf(02190002): SUB R2, R1, R2
06BCf(DA31A11C): BLCC MT [trap=1, pos=12705]
06BDf(82E00004): LDR R2, SP, 4H
06BEf(01280001): ADD R1, R2, R1
06BFg(91100000): LDR R1, R1, 0H
06C0g(B10000C4): STR R1, R0, C4H
06C1h(80E00014): LDR R0, SP, 14H
06C2h(40080001): ADD R0, R0, 1H
06C3h(A0E00014): STR R0, SP, 14H
06C4h(E7FFFFE7): B -25 [06ACH]
Fname[i]i := ".";j Fname[i+1]k := "L";l Fname[i+2]m := "i";n Fname[i+3]o := "b";p Fname[i+4]q := 0X;r
06C5i(80E00014): LDR R0, SP, 14H
06C6i(41090020): SUB R1, R0, 20H
06C7i(DA31BE1C): BLCC MT [trap=1, pos=12734]
06C8i(00E80000): ADD R0, SP, R0
06C9j(4100002E): MOV R1, R0, 2EH
06CAj(B10000C4): STR R1, R0, C4H
06CBk(80E00014): LDR R0, SP, 14H
06CCk(40080001): ADD R0, R0, 1H
06CDk(41090020): SUB R1, R0, 20H
06CEk(DA31D11C): BLCC MT [trap=1, pos=12753]
06CFk(00E80000): ADD R0, SP, R0
06D0l(4100004C): MOV R1, R0, 4CH
06D1l(B10000C4): STR R1, R0, C4H
06D2m(80E00014): LDR R0, SP, 14H
06D3m(40080002): ADD R0, R0, 2H
06D4m(41090020): SUB R1, R0, 20H
06D5m(DA31E41C): BLCC MT [trap=1, pos=12772]
06D6m(00E80000): ADD R0, SP, R0
06D7n(41000069): MOV R1, R0, 69H
06D8n(B10000C4): STR R1, R0, C4H
06D9o(80E00014): LDR R0, SP, 14H
06DAo(40080003): ADD R0, R0, 3H
06DBo(41090020): SUB R1, R0, 20H
06DCo(DA31F71C): BLCC MT [trap=1, pos=12791]
06DDo(00E80000): ADD R0, SP, R0
06DEp(41000062): MOV R1, R0, 62H
06DFp(B10000C4): STR R1, R0, C4H
06E0q(80E00014): LDR R0, SP, 14H
06E1q(40080004): ADD R0, R0, 4H
06E2q(41090020): SUB R1, R0, 20H
06E3q(DA320A1C): BLCC MT [trap=1, pos=12810]
06E4q(00E80000): ADD R0, SP, R0
06E5r(41000000): MOV R1, R0, 0H
06E6r(B10000C4): STR R1, R0, C4H
F := Files.Old(Fname)s;t
06E7s(40E800C4): ADD R0, SP, C4H
06E8s(41000020): MOV R1, R0, 20H
06E9t .FIXUP P
06E9t(F7102088): BL MOD1 [Files] PROC2
06EAt(A0E0002C): STR R0, SP, 2CH
IF F # NIL THENu
06EBu(80E0002C): LDR R0, SP, 2CH
06ECu(E100007D): BEQ 125 [076AH]
WMsg("loading ",v Fname)w;x Files.Set(R,y F,z 0)a;b Files.Read(R,c ch)d;e
06EDv .FIXUP D
06EDv(8D00005D): LDR SB, MT, MOD0 [Graphics]
06EEv(40D80250): ADD R0, SB, 250H ["loading "]
06EFv(41000009): MOV R1, R0, 9H
06F0w(42E800C4): ADD R2, SP, C4H
06F1w(43000020): MOV R3, R0, 20H
06F2x(F7FFFC8A): BL -886 [037DH]
06F3y(40E80030): ADD R0, SP, 30H
06F4y .FIXUP D
06F4y(8D100007): LDR SB, MT, MOD1 [Files]
06F5y(41D80001): ADD R1, SB, VAR1
06F6z(82E0002C): LDR R2, SP, 2CH
06F7a(43000000): MOV R3, R0, 0H
06F8b .FIXUP P
06F8b(F710B00F): BL MOD1 [Files] PROC11
06F9c(40E80030): ADD R0, SP, 30H
06FAc .FIXUP D
06FAc(8D100006): LDR SB, MT, MOD1 [Files]
06FBc(41D80001): ADD R1, SB, VAR1
06FCd(42E8001C): ADD R2, SP, 1CH
06FDe .FIXUP P
06FDe(F7110005): BL MOD1 [Files] PROC16
IF ch = LibFileId THENf
06FEf(90E0001C): LDR R0, SP, 1CH
06FFf(400900FB): SUB R0, R0, FBH
0700f(E9000066): BNE 102 [0767H]
IF L = NIL THENg NEW(L);h L.namei := name;j L.nextk := FirstLib;l FirstLib := L ENDm ;
0701g(80E00020): LDR R0, SP, 20H
0702g(E900001B): BNE 27 [071EH]
0703h(40E80020): ADD R0, SP, 20H
0704h .FIXUP D
0704h(8D00000A): LDR SB, MT, MOD0 [Graphics]
0705h(41D800B0): ADD R1, SB, B0H [data]
0706h(D732CE0C): BL MT [trap=0, pos=13006]
0707i(80E00020): LDR R0, SP, 20H
0708i(D132D54C): BLEQ MT [trap=4, pos=13013]
0709j(81E00004): LDR R1, SP, 4H
070Aj(82E00008): LDR R2, SP, 8H
070Bj(E100000B): BEQ 11 [0717H]
070Cj(42280003): ADD R2, R2, 3H
070Dj(42220002): ASR R2, R2, 2H
070Ej(43000008): MOV R3, R0, 8H
070Fj(03290003): SUB R3, R2, R3
0710j(DE32DE3C): BLGT MT [trap=3, pos=13022]
0711j(83100000): LDR R3, R1, 0H
0712j(41180004): ADD R1, R1, 4H
0713j(A3000000): STR R3, R0, 0H
0714j(40080004): ADD R0, R0, 4H
0715j(42290001): SUB R2, R2, 1H
0716j(E9FFFFFA): BNE -6 [0711H]
0717k(80E00020): LDR R0, SP, 20H
0718k(D132E54C): BLEQ MT [trap=4, pos=13029]
0719l .FIXUP D
0719l(8D000015): LDR SB, MT, MOD0 [Graphics]
071Al(81D001B8): LDR R1, SB, 1B8H [data]
071Bl(A1000024): STR R1, R0, 24H
071Cm(80E00020): LDR R0, SP, 20H
071Dm(A0D001B8): STR R0, SB, 1B8H
L.firstn := NIL;o InitContext(C)p;q
071En(80E00020): LDR R0, SP, 20H
071Fn(D133184C): BLEQ MT [trap=4, pos=13080]
0720o(41000000): MOV R1, R0, 0H
0721o(A1000020): STR R1, R0, 20H
0722p(40E80048): ADD R0, SP, 48H
0723p .FIXUP D
0723p(8D00000A): LDR SB, MT, MOD0 [Graphics]
0724p(41D800E0): ADD R1, SB, E0H [data]
0725q(F7FFFC78): BL -904 [039EH]
LoadElems(R,r C,s obj)t;u
0726r(40E80030): ADD R0, SP, 30H
0727r .FIXUP D
0727r(8D100004): LDR SB, MT, MOD1 [Files]
0728r(41D80001): ADD R1, SB, VAR1
0729s(42E80048): ADD R2, SP, 48H
072As .FIXUP D
072As(8D000003): LDR SB, MT, MOD0 [Graphics]
072Bs(43D800E0): ADD R3, SB, E0H [data]
072Ct(44E80028): ADD R4, SP, 28H
072Du(F7FFFE38): BL -456 [0566H]
WHILE obj # NIL DOv
072Ev(80E00028): LDR R0, SP, 28H
072Fv(E1000036): BEQ 54 [0766H]
NEW(mh);w mh.firstx := obj;y
0730w(40E80024): ADD R0, SP, 24H
0731w .FIXUP D
0731w(8D000007): LDR SB, MT, MOD0 [Graphics]
0732w(41D8008C): ADD R1, SB, 8CH [data]
0733w(D733830C): BL MT [trap=0, pos=13187]
0734x(80E00024): LDR R0, SP, 24H
0735x(D1338C4C): BLEQ MT [trap=4, pos=13196]
0736y(81E00028): LDR R1, SP, 28H
0737y(A1000030): STR R1, R0, 30H
Files.ReadInt(R,z wh)a;b mh.hc := wh DIV 10000H MODd 10000H;e mh.wf := wh MOD 10000H;g
0738z(40E80030): ADD R0, SP, 30H
0739z .FIXUP D
0739z(8D100008): LDR SB, MT, MOD1 [Files]
073Az(41D80001): ADD R1, SB, VAR1
073Ba(42E80018): ADD R2, SP, 18H
073Cb .FIXUP P
073Cb(F711103F): BL MOD1 [Files] PROC17
073Dc(80E00024): LDR R0, SP, 24H
073Ec(D133BB4C): BLEQ MT [trap=4, pos=13243]
073Fd(81E00018): LDR R1, SP, 18H
0740d(41120010): ASR R1, R1, 10H
0741e(4114FFFF): AND R1, R1, FFFFFFFFH
0742e(A1000024): STR R1, R0, 24H
0743f(80E00024): LDR R0, SP, 24H
0744f(D133DD4C): BLEQ MT [trap=4, pos=13277]
0745g(81E00018): LDR R1, SP, 18H
0746g(4114FFFF): AND R1, R1, FFFFFFFFH
0747g(A1000020): STR R1, R0, 20H
Files.ReadString(R,h mh.namei)j;k
0748h(40E80030): ADD R0, SP, 30H
0749h .FIXUP D
0749h(8D100010): LDR SB, MT, MOD1 [Files]
074Ah(41D80001): ADD R1, SB, VAR1
074Bi(82E00024): LDR R2, SP, 24H
074Ci(D134174C): BLEQ MT [trap=4, pos=13335]
074Dj(43000020): MOV R3, R0, 20H
074Ek .FIXUP P
074Ek(F7114012): BL MOD1 [Files] PROC20
mh.libl := L;m mh.nextn := L.firsto;p L.firstq := mh;r LoadElems(R,s C,t obj)u
074Fl(80E00024): LDR R0, SP, 24H
0750l(D1342C4C): BLEQ MT [trap=4, pos=13356]
0751m(81E00020): LDR R1, SP, 20H
0752m(A100002C): STR R1, R0, 2CH
0753n(80E00024): LDR R0, SP, 24H
0754n(D1343A4C): BLEQ MT [trap=4, pos=13370]
0755o(81E00020): LDR R1, SP, 20H
0756o(D134454C): BLEQ MT [trap=4, pos=13381]
0757p(81100020): LDR R1, R1, 20H
0758p(A1000034): STR R1, R0, 34H
0759q(80E00020): LDR R0, SP, 20H
075Aq(D1344E4C): BLEQ MT [trap=4, pos=13390]
075Br(81E00024): LDR R1, SP, 24H
075Cr(A1000020): STR R1, R0, 20H
075Ds(40E80030): ADD R0, SP, 30H
075Es .FIXUP D
075Es(8D100015): LDR SB, MT, MOD1 [Files]
075Fs(41D80001): ADD R1, SB, VAR1
0760t(42E80048): ADD R2, SP, 48H
0761t .FIXUP D
0761t(8D000003): LDR SB, MT, MOD0 [Graphics]
0762t(43D800E0): ADD R3, SB, E0H [data]
0763u(44E80028): ADD R4, SP, 28H
ENDv ;
0764v(F7FFFE01): BL -511 [0566H]
0765v(E7FFFFC8): B -56 [072EH]
ELSE Lw := NIL
0766w(E7000002): B 2 [0769H]
ENDx
0767x(40000000): MOV R0, R0, 0H
0768x(A0E00020): STR R0, SP, 20H
ELSE Ly := NIL
0769y(E7000002): B 2 [076CH]
ENDz
076Az(40000000): MOV R0, R0, 0H
076Bz(A0E00020): STR R0, SP, 20H
END ;
Lib := L
ENDa GetLib;
076Ca(80E00020): LDR R0, SP, 20H
076Da(81E00010): LDR R1, SP, 10H
076Ea(A0100000): STR R0, R1, 0H
076Fa(8FE00000): LDR LNK, SP, 0H
0770a(4EE800E4): ADD SP, SP, E4H
0771a(C700000F): B LNK
PROCEDURE NewLib*(Lname: ARRAY OF CHAR): Library;
VAR L: Library;
BEGINb NEW(L);c L.named := Lname;e L.firstf := NIL;g
0772b .PROC 45
0772b(4EE90010): SUB SP, SP, 10H
0773b(AFE00000): STR LNK, SP, 0H
0774b(A0E00004): STR R0, SP, 4H
0775b(A1E00008): STR R1, SP, 8H
0776c(40E8000C): ADD R0, SP, CH
0777c .FIXUP D
0777c(8D000016): LDR SB, MT, MOD0 [Graphics]
0778c(41D800B0): ADD R1, SB, B0H [data]
0779c(D735380C): BL MT [trap=0, pos=13624]
077Ad(80E0000C): LDR R0, SP, CH
077Bd(D1353F4C): BLEQ MT [trap=4, pos=13631]
077Ce(81E00004): LDR R1, SP, 4H
077De(82E00008): LDR R2, SP, 8H
077Ee(E100000B): BEQ 11 [078AH]
077Fe(42280003): ADD R2, R2, 3H
0780e(42220002): ASR R2, R2, 2H
0781e(43000008): MOV R3, R0, 8H
0782e(03290003): SUB R3, R2, R3
0783e(DE35493C): BLGT MT [trap=3, pos=13641]
0784e(83100000): LDR R3, R1, 0H
0785e(41180004): ADD R1, R1, 4H
0786e(A3000000): STR R3, R0, 0H
0787e(40080004): ADD R0, R0, 4H
0788e(42290001): SUB R2, R2, 1H
0789e(E9FFFFFA): BNE -6 [0784H]
078Af(80E0000C): LDR R0, SP, CH
078Bf(D135514C): BLEQ MT [trap=4, pos=13649]
078Cg(41000000): MOV R1, R0, 0H
078Dg(A1000020): STR R1, R0, 20H
L.nexth := FirstLib;i FirstLib := L;j RETURN L
078Eh(80E0000C): LDR R0, SP, CH
078Fh(D135644C): BLEQ MT [trap=4, pos=13668]
0790i .FIXUP D
0790i(8D000019): LDR SB, MT, MOD0 [Graphics]
0791i(81D001B8): LDR R1, SB, 1B8H [data]
0792i(A1000024): STR R1, R0, 24H
0793j(80E0000C): LDR R0, SP, CH
0794j(A0D001B8): STR R0, SB, 1B8H
ENDk NewLib;
0795k(80E0000C): LDR R0, SP, CH
0796k(8FE00000): LDR LNK, SP, 0H
0797k(4EE80010): ADD SP, SP, 10H
0798k(C700000F): B LNK
PROCEDURE StoreLib*(L: Library; Fname: ARRAY OF CHAR);
VAR i: INTEGER;
mh: MacHead;
F: Files.File; W: Files.Rider;
C: Context;
Gname: ARRAY 32 OF CHAR;
BEGINl L := FirstLib;m
0799l .PROC 46
0799l(4EE900B0): SUB SP, SP, B0H
079Al(AFE00000): STR LNK, SP, 0H
079Bl(A0E00004): STR R0, SP, 4H
079Cl(A1E00008): STR R1, SP, 8H
079Dl(A2E0000C): STR R2, SP, CH
079Em .FIXUP D
079Em(8D00000E): LDR SB, MT, MOD0 [Graphics]
079Fm(80D001B8): LDR R0, SB, 1B8H [data]
07A0m(A0E00004): STR R0, SP, 4H
WHILE (L # NIL)n & (oL.namep # Fname)q DOr L := L.nexts ENDt ;
07A1n(80E00004): LDR R0, SP, 4H
07A2o(E1000011): BEQ 17 [07B4H]
07A3p(80E00004): LDR R0, SP, 4H
07A4p(D136834C): BLEQ MT [trap=4, pos=13955]
07A5q(81E00008): LDR R1, SP, 8H
07A6q(92000000): LDR R2, R0, 0H
07A7q(40080001): ADD R0, R0, 1H
07A8q(93100000): LDR R3, R1, 0H
07A9q(41180001): ADD R1, R1, 1H
07AAq(04290003): SUB R4, R2, R3
07ABq(E9000002): BNE 2 [07AEH]
07ACq(44290000): SUB R4, R2, 0H
07ADq(E9FFFFF8): BNE -8 [07A6H]
07AEr(E1000005): BEQ 5 [07B4H]
07AFs(80E00004): LDR R0, SP, 4H
07B0s(D1369B4C): BLEQ MT [trap=4, pos=13979]
07B1t(80000024): LDR R0, R0, 24H
07B2t(A0E00004): STR R0, SP, 4H
07B3t(E7FFFFED): B -19 [07A1H]
IF L # NIL THENu i := 0;v
07B4u(80E00004): LDR R0, SP, 4H
07B5u(E1000080): BEQ 128 [0836H]
07B6v(40000000): MOV R0, R0, 0H
07B7v(A0E00010): STR R0, SP, 10H
WHILE Fname[i]w > 0X DOx Gname[i]y := Fname[i]z;a INC(i) ENDb ;
07B8w(80E00010): LDR R0, SP, 10H
07B9w(81E0000C): LDR R1, SP, CH
07BAw(01090001): SUB R1, R0, R1
07BBw(DA36D21C): BLCC MT [trap=1, pos=14034]
07BCw(81E00008): LDR R1, SP, 8H
07BDw(00180000): ADD R0, R1, R0
07BEx(90000000): LDR R0, R0, 0H
07BFx(40090000): SUB R0, R0, 0H
07C0x(E6000010): BLE 16 [07D1H]
07C1y(80E00010): LDR R0, SP, 10H
07C2y(41090020): SUB R1, R0, 20H
07C3y(DA36E31C): BLCC MT [trap=1, pos=14051]
07C4y(00E80000): ADD R0, SP, R0
07C5z(81E00010): LDR R1, SP, 10H
07C6z(82E0000C): LDR R2, SP, CH
07C7z(02190002): SUB R2, R1, R2
07C8z(DA36EF1C): BLCC MT [trap=1, pos=14063]
07C9z(82E00008): LDR R2, SP, 8H
07CAz(01280001): ADD R1, R2, R1
07CBa(91100000): LDR R1, R1, 0H
07CCa(B1000090): STR R1, R0, 90H
07CDb(80E00010): LDR R0, SP, 10H
07CEb(40080001): ADD R0, R0, 1H
07CFb(A0E00010): STR R0, SP, 10H
07D0b(E7FFFFE7): B -25 [07B8H]
Gname[i]c := ".";d Gname[i+1]e := "L";f Gname[i+2]g := "i";h Gname[i+3]i := "b";j Gname[i+4]k := 0X;l
07D1c(80E00010): LDR R0, SP, 10H
07D2c(41090020): SUB R1, R0, 20H
07D3c(DA370C1C): BLCC MT [trap=1, pos=14092]
07D4c(00E80000): ADD R0, SP, R0
07D5d(4100002E): MOV R1, R0, 2EH
07D6d(B1000090): STR R1, R0, 90H
07D7e(80E00010): LDR R0, SP, 10H
07D8e(40080001): ADD R0, R0, 1H
07D9e(41090020): SUB R1, R0, 20H
07DAe(DA371F1C): BLCC MT [trap=1, pos=14111]
07DBe(00E80000): ADD R0, SP, R0
07DCf(4100004C): MOV R1, R0, 4CH
07DDf(B1000090): STR R1, R0, 90H
07DEg(80E00010): LDR R0, SP, 10H
07DFg(40080002): ADD R0, R0, 2H
07E0g(41090020): SUB R1, R0, 20H
07E1g(DA37321C): BLCC MT [trap=1, pos=14130]
07E2g(00E80000): ADD R0, SP, R0
07E3h(41000069): MOV R1, R0, 69H
07E4h(B1000090): STR R1, R0, 90H
07E5i(80E00010): LDR R0, SP, 10H
07E6i(40080003): ADD R0, R0, 3H
07E7i(41090020): SUB R1, R0, 20H
07E8i(DA37451C): BLCC MT [trap=1, pos=14149]
07E9i(00E80000): ADD R0, SP, R0
07EAj(41000062): MOV R1, R0, 62H
07EBj(B1000090): STR R1, R0, 90H
07ECk(80E00010): LDR R0, SP, 10H
07EDk(40080004): ADD R0, R0, 4H
07EEk(41090020): SUB R1, R0, 20H
07EFk(DA37581C): BLCC MT [trap=1, pos=14168]
07F0k(00E80000): ADD R0, SP, R0
07F1l(41000000): MOV R1, R0, 0H
07F2l(B1000090): STR R1, R0, 90H
F := Files.New(Gname)m;n Files.Set(W,o F,p 0)q;r Files.Write(W,s LibFileId)t;u
07F3m(40E80090): ADD R0, SP, 90H
07F4m(41000020): MOV R1, R0, 20H
07F5n .FIXUP P
07F5n(F71030A7): BL MOD1 [Files] PROC3
07F6n(A0E00018): STR R0, SP, 18H
07F7o(40E8001C): ADD R0, SP, 1CH
07F8o .FIXUP D
07F8o(8D10005A): LDR SB, MT, MOD1 [Files]
07F9o(41D80001): ADD R1, SB, VAR1
07FAp(82E00018): LDR R2, SP, 18H
07FBq(43000000): MOV R3, R0, 0H
07FCr .FIXUP P
07FCr(F710B007): BL MOD1 [Files] PROC11
07FDs(40E8001C): ADD R0, SP, 1CH
07FEs .FIXUP D
07FEs(8D100006): LDR SB, MT, MOD1 [Files]
07FFs(41D80001): ADD R1, SB, VAR1
0800t(420000FB): MOV R2, R0, FBH
0801u .FIXUP P
0801u(F7118005): BL MOD1 [Files] PROC24
InitContext(C)v;w mh := L.firstx;y
0802v(40E80034): ADD R0, SP, 34H
0803v .FIXUP D
0803v(8D000005): LDR SB, MT, MOD0 [Graphics]
0804v(41D800E0): ADD R1, SB, E0H [data]
0805w(F7FFFB98): BL -1128 [039EH]
0806x(80E00004): LDR R0, SP, 4H
0807x(D137CF4C): BLEQ MT [trap=4, pos=14287]
0808y(80000020): LDR R0, R0, 20H
0809y(A0E00014): STR R0, SP, 14H
WHILE mh # NIL DOz
080Az(80E00014): LDR R0, SP, 14H
080Bz(E1000022): BEQ 34 [082EH]
StoreElems(W,a C,b mh.firstc)d;e Files.WriteInt(W,f mh.hg * 10000H +h mh.wi)j;k
080Ca(40E8001C): ADD R0, SP, 1CH
080Da .FIXUP D
080Da(8D10000A): LDR SB, MT, MOD1 [Files]
080Ea(41D80001): ADD R1, SB, VAR1
080Fb(42E80034): ADD R2, SP, 34H
0810b .FIXUP D
0810b(8D000003): LDR SB, MT, MOD0 [Graphics]
0811b(43D800E0): ADD R3, SB, E0H [data]
0812c(84E00014): LDR R4, SP, 14H
0813c(D1380A4C): BLEQ MT [trap=4, pos=14346]
0814d(84400030): LDR R4, R4, 30H
0815e(F7FFFBEB): BL -1045 [0401H]
0816f(40E8001C): ADD R0, SP, 1CH
0817f .FIXUP D
0817f(8D100007): LDR SB, MT, MOD1 [Files]
0818f(41D80001): ADD R1, SB, VAR1
0819g(82E00014): LDR R2, SP, 14H
081Ag(D138234C): BLEQ MT [trap=4, pos=14371]
081Bh(82200024): LDR R2, R2, 24H
081Ch(42210010): LSL R2, R2, 10H
081Di(83E00014): LDR R3, SP, 14H
081Ei(D138334C): BLEQ MT [trap=4, pos=14387]
081Fj(83300020): LDR R3, R3, 20H
0820j(02280003): ADD R2, R2, R3
0821k .FIXUP P
0821k(F7119020): BL MOD1 [Files] PROC25
Files.WriteString(W,l mh.namem)n;o mh := mh.nextp
0822l(40E8001C): ADD R0, SP, 1CH
0823l .FIXUP D
0823l(8D10000C): LDR SB, MT, MOD1 [Files]
0824l(41D80001): ADD R1, SB, VAR1
0825m(82E00014): LDR R2, SP, 14H
0826m(D1385A4C): BLEQ MT [trap=4, pos=14426]
0827n(43000020): MOV R3, R0, 20H
0828o .FIXUP P
0828o(F711C007): BL MOD1 [Files] PROC28
0829p(80E00014): LDR R0, SP, 14H
082Ap(D1386A4C): BLEQ MT [trap=4, pos=14442]
ENDq ;
082Bq(80000034): LDR R0, R0, 34H
082Cq(A0E00014): STR R0, SP, 14H
082Dq(E7FFFFDC): B -36 [080AH]
Files.WriteByte(W,r 255)s;t Files.Register(F)u
082Er(40E8001C): ADD R0, SP, 1CH
082Fr .FIXUP D
082Fr(8D10000C): LDR SB, MT, MOD1 [Files]
0830r(41D80001): ADD R1, SB, VAR1
0831s(420000FF): MOV R2, R0, FFH
0832t .FIXUP P
0832t(F711600A): BL MOD1 [Files] PROC22
0833u(80E00018): LDR R0, SP, 18H
ELSEv Textsw.WriteString(TW,x Fname)y;z Texts.WriteString(TW,a " not found")b;c
0834v .FIXUP P
0834v(F7104002): BL MOD1 [Files] PROC4
0835w(E7000019): B 25 [084FH]
0836x .FIXUP D
0836x(8D000007): LDR SB, MT, MOD0 [Graphics]
0837x(40D801E4): ADD R0, SB, 1E4H [data]
0838x .FIXUP D
0838x(8D400002): LDR SB, MT, MOD4 [Texts]
0839x(41D80005): ADD R1, SB, VAR5
083Ay(82E00008): LDR R2, SP, 8H
083By(83E0000C): LDR R3, SP, CH
083Cz .FIXUP P
083Cz(F741D008): BL MOD4 [Texts] PROC29
083Da .FIXUP D
083Da(8D000005): LDR SB, MT, MOD0 [Graphics]
083Ea(40D801E4): ADD R0, SB, 1E4H [data]
083Fa .FIXUP D
083Fa(8D400002): LDR SB, MT, MOD4 [Texts]
0840a(41D80005): ADD R1, SB, VAR5
0841b .FIXUP D
0841b(8D000002): LDR SB, MT, MOD0 [Graphics]
0842b(42D8025C): ADD R2, SB, 25CH [" not found"]
0843b(4300000B): MOV R3, R0, BH
0844c .FIXUP P
0844c(F741D008): BL MOD4 [Texts] PROC29
Texts.WriteLn(TW)d;e Texts.Append(Oberon.Log,f TW.buf)g
0845d .FIXUP D
0845d(8D000004): LDR SB, MT, MOD0 [Graphics]
0846d(40D801E4): ADD R0, SB, 1E4H [data]
0847d .FIXUP D
0847d(8D400002): LDR SB, MT, MOD4 [Texts]
0848d(41D80005): ADD R1, SB, VAR5
0849e .FIXUP P
0849e(F741C005): BL MOD4 [Texts] PROC28
084Af .FIXUP D
084Af(8D500003): LDR SB, MT, MOD5 [Oberon]
084Bf(80D0000D): LDR R0, SB, VAR13
084Cg .FIXUP D
084Cg(8D000002): LDR SB, MT, MOD0 [Graphics]
084Dg(81D001E4): LDR R1, SB, 1E4H [data]
ENDh
084Eh .FIXUP P
084Eh(F740E005): BL MOD4 [Texts] PROC14
ENDi StoreLib;
084Fi(8FE00000): LDR LNK, SP, 0H
0850i(4EE800B0): ADD SP, SP, B0H
0851i(C700000F): B LNK
PROCEDURE RemoveLibraries*;
BEGINj FirstLib := NIL
0852j .PROC 47
0852j .COMMAND RemoveLibraries
0852j(4EE90004): SUB SP, SP, 4H
0853j(AFE00000): STR LNK, SP, 0H
ENDk RemoveLibraries;
0854k(40000000): MOV R0, R0, 0H
0855k .FIXUP D
0855k(8D000009): LDR SB, MT, MOD0 [Graphics]
0856k(A0D001B8): STR R0, SB, 1B8H [data]
0857k(8FE00000): LDR LNK, SP, 0H
0858k(4EE80004): ADD SP, SP, 4H
0859k(C700000F): B LNK
PROCEDURE ThisMac*(L: Library; Mname: ARRAY OF CHAR): MacHead;
VAR mh: MacHead;
BEGINl mh := L.firstm;n
085Al .PROC 48
085Al(4EE90014): SUB SP, SP, 14H
085Bl(AFE00000): STR LNK, SP, 0H
085Cl(A0E00004): STR R0, SP, 4H
085Dl(A1E00008): STR R1, SP, 8H
085El(A2E0000C): STR R2, SP, CH
085Fm(80E00004): LDR R0, SP, 4H
0860m(D13A004C): BLEQ MT [trap=4, pos=14848]
0861n(80000020): LDR R0, R0, 20H
0862n(A0E00010): STR R0, SP, 10H
WHILE (mh # NIL)o & (pmh.nameq # Mname)r DOs mh := mh.nextt ENDu ;
0863o(80E00010): LDR R0, SP, 10H
0864p(E1000011): BEQ 17 [0876H]
0865q(80E00010): LDR R0, SP, 10H
0866q(D13A214C): BLEQ MT [trap=4, pos=14881]
0867r(81E00008): LDR R1, SP, 8H
0868r(92000000): LDR R2, R0, 0H
0869r(40080001): ADD R0, R0, 1H
086Ar(93100000): LDR R3, R1, 0H
086Br(41180001): ADD R1, R1, 1H
086Cr(04290003): SUB R4, R2, R3
086Dr(E9000002): BNE 2 [0870H]
086Er(44290000): SUB R4, R2, 0H
086Fr(E9FFFFF8): BNE -8 [0868H]
0870s(E1000005): BEQ 5 [0876H]
0871t(80E00010): LDR R0, SP, 10H
0872t(D13A3B4C): BLEQ MT [trap=4, pos=14907]
0873u(80000034): LDR R0, R0, 34H
0874u(A0E00010): STR R0, SP, 10H
0875u(E7FFFFED): B -19 [0863H]
RETURN mh
ENDv ThisMac;
0876v(80E00010): LDR R0, SP, 10H
0877v(8FE00000): LDR LNK, SP, 0H
0878v(4EE80014): ADD SP, SP, 14H
0879v(C700000F): B LNK
PROCEDURE DrawMac*(mh: MacHead; VAR M: Msg);
VAR elem: Object;
BEGINw elem := mh.firstx;y
087Aw .PROC 49
087Aw(4EE90014): SUB SP, SP, 14H
087Bw(AFE00000): STR LNK, SP, 0H
087Cw(A0E00004): STR R0, SP, 4H
087Dw(A1E00008): STR R1, SP, 8H
087Ew(A2E0000C): STR R2, SP, CH
087Fx(80E00004): LDR R0, SP, 4H
0880x(D13ABD4C): BLEQ MT [trap=4, pos=15037]
0881y(80000030): LDR R0, R0, 30H
0882y(A0E00010): STR R0, SP, 10H
WHILE elem # NIL DOz elem.doa.drawb(elemc,d M)e;f elem := elem.nextg ENDh
0883z(80E00010): LDR R0, SP, 10H
0884z(E1000013): BEQ 19 [0898H]
0885a(80E00010): LDR R0, SP, 10H
0886a(D13ADE4C): BLEQ MT [trap=4, pos=15070]
0887b(80000014): LDR R0, R0, 14H
0888b(D13AE34C): BLEQ MT [trap=4, pos=15075]
0889c(80000048): LDR R0, R0, 48H
088Ac(4EE90004): SUB SP, SP, 4H
088Bc(A0E00000): STR R0, SP, 0H
088Cd(80E00014): LDR R0, SP, 14H
088De(81E0000C): LDR R1, SP, CH
088Ee(82E00010): LDR R2, SP, 10H
088Ff(83E00000): LDR R3, SP, 0H
0890f(4EE80004): ADD SP, SP, 4H
0891f(D13AED5C): BLEQ MT [trap=5, pos=15085]
0892f(D7000003): BL R3
0893g(80E00010): LDR R0, SP, 10H
0894g(D13AFF4C): BLEQ MT [trap=4, pos=15103]
0895h(80000018): LDR R0, R0, 18H
0896h(A0E00010): STR R0, SP, 10H
0897h(E7FFFFEB): B -21 [0883H]
ENDi DrawMac;
0898i(8FE00000): LDR LNK, SP, 0H
0899i(4EE80014): ADD SP, SP, 14H
089Ai(C700000F): B LNK
(* -------------------- Procedures for designing macros---------------------*)
PROCEDURE OpenMac*(mh: MacHead; G: Graph; x, y: INTEGER);
VAR obj: Object;
BEGINj obj := mh.firstk;l
089Bj .PROC 50
089Bj(4EE90018): SUB SP, SP, 18H
089Cj(AFE00000): STR LNK, SP, 0H
089Dj(A0E00004): STR R0, SP, 4H
089Ej(A1E00008): STR R1, SP, 8H
089Fj(A2E0000C): STR R2, SP, CH
08A0j(A3E00010): STR R3, SP, 10H
08A1k(80E00004): LDR R0, SP, 4H
08A2k(D13BCE4C): BLEQ MT [trap=4, pos=15310]
08A3l(80000030): LDR R0, R0, 30H
08A4l(A0E00014): STR R0, SP, 14H
WHILE obj # NIL DOm
08A5m(80E00014): LDR R0, SP, 14H
08A6m(E1000033): BEQ 51 [08DAH]
obj.don.newo;p obj.doq.copyr(objs,t new)u;v INC(new.xw, x);x INC(new.yy, y);z new.selecteda := TRUE;b
08A7n(80E00014): LDR R0, SP, 14H
08A8n(D13BF34C): BLEQ MT [trap=4, pos=15347]
08A9o(80000014): LDR R0, R0, 14H
08AAo(D13BF74C): BLEQ MT [trap=4, pos=15351]
08ABp(80000040): LDR R0, R0, 40H
08ACp(4EE90004): SUB SP, SP, 4H
08ADp(A0E00000): STR R0, SP, 0H
08AEp(80E00000): LDR R0, SP, 0H
08AFp(4EE80004): ADD SP, SP, 4H
08B0p(D13BF85C): BLEQ MT [trap=5, pos=15352]
08B1p(D7000000): BL R0
08B2q(80E00014): LDR R0, SP, 14H
08B3q(D13BFF4C): BLEQ MT [trap=4, pos=15359]
08B4r(80000014): LDR R0, R0, 14H
08B5r(D13C044C): BLEQ MT [trap=4, pos=15364]
08B6s(80000044): LDR R0, R0, 44H
08B7s(4EE90004): SUB SP, SP, 4H
08B8s(A0E00000): STR R0, SP, 0H
08B9t(80E00018): LDR R0, SP, 18H
08BAu .FIXUP D
08BAu(8D000065): LDR SB, MT, MOD0 [Graphics]
08BBu(81D001A0): LDR R1, SB, 1A0H [data]
08BCv(82E00000): LDR R2, SP, 0H
08BDv(4EE80004): ADD SP, SP, 4H
08BEv(D13C0F5C): BLEQ MT [trap=5, pos=15375]
08BFv(D7000002): BL R2
08C0w .FIXUP D
08C0w(8D000006): LDR SB, MT, MOD0 [Graphics]
08C1w(80D001A0): LDR R0, SB, 1A0H [data]
08C2w(D13C194C): BLEQ MT [trap=4, pos=15385]
08C3x(81000000): LDR R1, R0, 0H
08C4x(82E0000C): LDR R2, SP, CH
08C5x(01180002): ADD R1, R1, R2
08C6x(A1000000): STR R1, R0, 0H
08C7y(80D001A0): LDR R0, SB, 1A0H
08C8y(D13C284C): BLEQ MT [trap=4, pos=15400]
08C9z(40080004): ADD R0, R0, 4H
08CAz(81000000): LDR R1, R0, 0H
08CBz(82E00010): LDR R2, SP, 10H
08CCz(01180002): ADD R1, R1, R2
08CDz(A1000000): STR R1, R0, 0H
08CEa(80D001A0): LDR R0, SB, 1A0H
08CFa(D13C3A4C): BLEQ MT [trap=4, pos=15418]
08D0b(41000001): MOV R1, R0, 1H
08D1b(B1000011): STR R1, R0, 11H
Add(G,c new)d;e obj := obj.nextf
08D2c(80E00008): LDR R0, SP, 8H
08D3d(81D001A0): LDR R1, SB, 1A0H
08D4e(F7FFF734): BL -2252 [0009H]
08D5f(80E00014): LDR R0, SP, 14H
08D6f(D13C664C): BLEQ MT [trap=4, pos=15462]
ENDg ;
08D7g(80000018): LDR R0, R0, 18H
08D8g(A0E00014): STR R0, SP, 14H
08D9g(E7FFFFCB): B -53 [08A5H]
new := NIL
ENDh OpenMac;
08DAh(40000000): MOV R0, R0, 0H
08DBh .FIXUP D
08DBh(8D00001B): LDR SB, MT, MOD0 [Graphics]
08DCh(A0D001A0): STR R0, SB, 1A0H [data]
08DDh(8FE00000): LDR LNK, SP, 0H
08DEh(4EE80018): ADD SP, SP, 18H
08DFh(C700000F): B LNK
PROCEDURE MakeMac*(G: Graph; VAR head: MacHead);
VAR x0, y0, x1, y1: INTEGER;
obj, last: Object;
mh: MacHead;
BEGINi obj := G.firstj;k last := NIL;l x0 := 1024;m x1 := 0;n y0 := 1024;o y1 := 0;p
08E0i .PROC 51
08E0i(4EE90028): SUB SP, SP, 28H
08E1i(AFE00000): STR LNK, SP, 0H
08E2i(A0E00004): STR R0, SP, 4H
08E3i(A1E00008): STR R1, SP, 8H
08E4j(80E00004): LDR R0, SP, 4H
08E5j(D13D264C): BLEQ MT [trap=4, pos=15654]
08E6k(80000008): LDR R0, R0, 8H
08E7k(A0E0001C): STR R0, SP, 1CH
08E8l(40000000): MOV R0, R0, 0H
08E9l(A0E00020): STR R0, SP, 20H
08EAm(40000400): MOV R0, R0, 400H
08EBm(A0E0000C): STR R0, SP, CH
08ECn(40000000): MOV R0, R0, 0H
08EDn(A0E00014): STR R0, SP, 14H
08EEo(40000400): MOV R0, R0, 400H
08EFo(A0E00010): STR R0, SP, 10H
08F0p(40000000): MOV R0, R0, 0H
08F1p(A0E00018): STR R0, SP, 18H
WHILE obj # NIL DOq
08F2q(80E0001C): LDR R0, SP, 1CH
08F3q(E1000065): BEQ 101 [0959H]
IF obj.selectedr THENs
08F4r(80E0001C): LDR R0, SP, 1CH
08F5r(D13D8F4C): BLEQ MT [trap=4, pos=15759]
08F6s(90000011): LDR R0, R0, 11H
08F7s(E100005C): BEQ 92 [0954H]
obj.dot.newu;v obj.dow.copyx(objy,z new)a;b new.nextc := last;d new.selectede := FALSE;f last := new;g
08F8t(80E0001C): LDR R0, SP, 1CH
08F9t(D13DA54C): BLEQ MT [trap=4, pos=15781]
08FAu(80000014): LDR R0, R0, 14H
08FBu(D13DA94C): BLEQ MT [trap=4, pos=15785]
08FCv(80000040): LDR R0, R0, 40H
08FDv(4EE90004): SUB SP, SP, 4H
08FEv(A0E00000): STR R0, SP, 0H
08FFv(80E00000): LDR R0, SP, 0H
0900v(4EE80004): ADD SP, SP, 4H
0901v(D13DAA5C): BLEQ MT [trap=5, pos=15786]
0902v(D7000000): BL R0
0903w(80E0001C): LDR R0, SP, 1CH
0904w(D13DB14C): BLEQ MT [trap=4, pos=15793]
0905x(80000014): LDR R0, R0, 14H
0906x(D13DB64C): BLEQ MT [trap=4, pos=15798]
0907y(80000044): LDR R0, R0, 44H
0908y(4EE90004): SUB SP, SP, 4H
0909y(A0E00000): STR R0, SP, 0H
090Az(80E00020): LDR R0, SP, 20H
090Ba .FIXUP D
090Ba(8D000030): LDR SB, MT, MOD0 [Graphics]
090Ca(81D001A0): LDR R1, SB, 1A0H [data]
090Db(82E00000): LDR R2, SP, 0H
090Eb(4EE80004): ADD SP, SP, 4H
090Fb(D13DC15C): BLEQ MT [trap=5, pos=15809]
0910b(D7000002): BL R2
0911c .FIXUP D
0911c(8D000006): LDR SB, MT, MOD0 [Graphics]
0912c(80D001A0): LDR R0, SB, 1A0H [data]
0913c(D13DCA4C): BLEQ MT [trap=4, pos=15818]
0914d(81E00020): LDR R1, SP, 20H
0915d(A1000018): STR R1, R0, 18H
0916e(80D001A0): LDR R0, SB, 1A0H
0917e(D13DE04C): BLEQ MT [trap=4, pos=15840]
0918f(41000000): MOV R1, R0, 0H
0919f(B1000011): STR R1, R0, 11H
091Ag(80D001A0): LDR R0, SB, 1A0H
091Bg(A0E00020): STR R0, SP, 20H
IF obj.xh < x0 THENi x0 := obj.xj ENDk ;
091Ch(80E0001C): LDR R0, SP, 1CH
091Dh(D13E0A4C): BLEQ MT [trap=4, pos=15882]
091Ei(80000000): LDR R0, R0, 0H
091Fi(81E0000C): LDR R1, SP, CH
0920i(00090001): SUB R0, R0, R1
0921i(ED000004): BGE 4 [0926H]
0922j(80E0001C): LDR R0, SP, 1CH
0923j(D13E204C): BLEQ MT [trap=4, pos=15904]
0924k(80000000): LDR R0, R0, 0H
0925k(A0E0000C): STR R0, SP, CH
IF obj.xl + obj.wm >n x1 THENo x1 := obj.xp + obj.wq ENDr ;
0926l(80E0001C): LDR R0, SP, 1CH
0927l(D13E394C): BLEQ MT [trap=4, pos=15929]
0928m(81E0001C): LDR R1, SP, 1CH
0929m(D13E414C): BLEQ MT [trap=4, pos=15937]
092An(80000000): LDR R0, R0, 0H
092Bn(81100008): LDR R1, R1, 8H
092Cn(00080001): ADD R0, R0, R1
092Do(81E00014): LDR R1, SP, 14H
092Eo(00090001): SUB R0, R0, R1
092Fo(E6000008): BLE 8 [0938H]
0930p(80E0001C): LDR R0, SP, 1CH
0931p(D13E574C): BLEQ MT [trap=4, pos=15959]
0932q(81E0001C): LDR R1, SP, 1CH
0933q(D13E5F4C): BLEQ MT [trap=4, pos=15967]
0934r(80000000): LDR R0, R0, 0H
0935r(81100008): LDR R1, R1, 8H
0936r(00080001): ADD R0, R0, R1
0937r(A0E00014): STR R0, SP, 14H
IF obj.ys < y0 THENt y0 := obj.yu ENDv ;
0938s(80E0001C): LDR R0, SP, 1CH
0939s(D13E784C): BLEQ MT [trap=4, pos=15992]
093At(80000004): LDR R0, R0, 4H
093Bt(81E00010): LDR R1, SP, 10H
093Ct(00090001): SUB R0, R0, R1
093Dt(ED000004): BGE 4 [0942H]
093Eu(80E0001C): LDR R0, SP, 1CH
093Fu(D13E8E4C): BLEQ MT [trap=4, pos=16014]
0940v(80000004): LDR R0, R0, 4H
0941v(A0E00010): STR R0, SP, 10H
IF obj.yw + obj.hx >y y1 THENz y1 := obj.ya + obj.hb ENDc
0942w(80E0001C): LDR R0, SP, 1CH
0943w(D13EA74C): BLEQ MT [trap=4, pos=16039]
0944x(81E0001C): LDR R1, SP, 1CH
0945x(D13EAF4C): BLEQ MT [trap=4, pos=16047]
0946y(80000004): LDR R0, R0, 4H
0947y(8110000C): LDR R1, R1, CH
0948y(00080001): ADD R0, R0, R1
0949z(81E00018): LDR R1, SP, 18H
094Az(00090001): SUB R0, R0, R1
094Bz(E6000008): BLE 8 [0954H]
094Ca(80E0001C): LDR R0, SP, 1CH
094Da(D13EC54C): BLEQ MT [trap=4, pos=16069]
094Eb(81E0001C): LDR R1, SP, 1CH
094Fb(D13ECD4C): BLEQ MT [trap=4, pos=16077]
0950c(80000004): LDR R0, R0, 4H
0951c(8110000C): LDR R1, R1, CH
0952c(00080001): ADD R0, R0, R1
0953c(A0E00018): STR R0, SP, 18H
END ;
obj := obj.nextd
0954d(80E0001C): LDR R0, SP, 1CH
0955d(D13EF74C): BLEQ MT [trap=4, pos=16119]
ENDe ;
0956e(80000018): LDR R0, R0, 18H
0957e(A0E0001C): STR R0, SP, 1CH
0958e(E7FFFF99): B -103 [08F2H]
obj := last;f
0959f(80E00020): LDR R0, SP, 20H
095Af(A0E0001C): STR R0, SP, 1CH
WHILE obj # NIL DOg
095Bg(80E0001C): LDR R0, SP, 1CH
095Cg(E1000015): BEQ 21 [0972H]
obj.xh := obj.xi - x0;j obj.yk := obj.yl - y0;m obj := obj.nextn
095Dh(80E0001C): LDR R0, SP, 1CH
095Eh(D13F3D4C): BLEQ MT [trap=4, pos=16189]
095Fi(81E0001C): LDR R1, SP, 1CH
0960i(D13F464C): BLEQ MT [trap=4, pos=16198]
0961j(81100000): LDR R1, R1, 0H
0962j(82E0000C): LDR R2, SP, CH
0963j(01190002): SUB R1, R1, R2
0964j(A1000000): STR R1, R0, 0H
0965k(80E0001C): LDR R0, SP, 1CH
0966k(D13F524C): BLEQ MT [trap=4, pos=16210]
0967l(81E0001C): LDR R1, SP, 1CH
0968l(D13F5B4C): BLEQ MT [trap=4, pos=16219]
0969m(81100004): LDR R1, R1, 4H
096Am(82E00010): LDR R2, SP, 10H
096Bm(01190002): SUB R1, R1, R2
096Cm(A1000004): STR R1, R0, 4H
096Dn(80E0001C): LDR R0, SP, 1CH
096En(D13F714C): BLEQ MT [trap=4, pos=16241]
ENDo ;
096Fo(80000018): LDR R0, R0, 18H
0970o(A0E0001C): STR R0, SP, 1CH
0971o(E7FFFFE9): B -23 [095BH]
NEW(mh);p mh.wq := x1 - x0;r mh.hs := y1 - y0;t mh.firstu := last;v mh.extw := NIL;x
0972p(40E80024): ADD R0, SP, 24H
0973p .FIXUP D
0973p(8D000062): LDR SB, MT, MOD0 [Graphics]
0974p(41D8008C): ADD R1, SB, 8CH [data]
0975p(D73F8C0C): BL MT [trap=0, pos=16268]
0976q(80E00024): LDR R0, SP, 24H
0977q(D13F914C): BLEQ MT [trap=4, pos=16273]
0978r(81E00014): LDR R1, SP, 14H
0979r(82E0000C): LDR R2, SP, CH
097Ar(01190002): SUB R1, R1, R2
097Br(A1000020): STR R1, R0, 20H
097Cs(80E00024): LDR R0, SP, 24H
097Ds(D13FA24C): BLEQ MT [trap=4, pos=16290]
097Et(81E00018): LDR R1, SP, 18H
097Ft(82E00010): LDR R2, SP, 10H
0980t(01190002): SUB R1, R1, R2
0981t(A1000024): STR R1, R0, 24H
0982u(80E00024): LDR R0, SP, 24H
0983u(D13FB74C): BLEQ MT [trap=4, pos=16311]
0984v(81E00020): LDR R1, SP, 20H
0985v(A1000030): STR R1, R0, 30H
0986w(80E00024): LDR R0, SP, 24H
0987w(D13FC74C): BLEQ MT [trap=4, pos=16327]
0988x(41000000): MOV R1, R0, 0H
0989x(A1000028): STR R1, R0, 28H
new := NIL;y head := mh
098Ay(40000000): MOV R0, R0, 0H
098By .FIXUP D
098By(8D000018): LDR SB, MT, MOD0 [Graphics]
098Cy(A0D001A0): STR R0, SB, 1A0H [data]
ENDz MakeMac;
098Dz(80E00024): LDR R0, SP, 24H
098Ez(81E00008): LDR R1, SP, 8H
098Fz(A0100000): STR R0, R1, 0H
0990z(8FE00000): LDR LNK, SP, 0H
0991z(4EE80028): ADD SP, SP, 28H
0992z(C700000F): B LNK
PROCEDURE InsertMac*(mh: MacHead; L: Library; VAR new: BOOLEAN);
VAR mh1: MacHead;
BEGINa mh.libb := L;c mh1 := L.firstd;e
0993a .PROC 52
0993a(4EE90014): SUB SP, SP, 14H
0994a(AFE00000): STR LNK, SP, 0H
0995a(A0E00004): STR R0, SP, 4H
0996a(A1E00008): STR R1, SP, 8H
0997a(A2E0000C): STR R2, SP, CH
0998b(80E00004): LDR R0, SP, 4H
0999b(D140644C): BLEQ MT [trap=4, pos=16484]
099Ac(81E00008): LDR R1, SP, 8H
099Bc(A100002C): STR R1, R0, 2CH
099Cd(80E00008): LDR R0, SP, 8H
099Dd(D140794C): BLEQ MT [trap=4, pos=16505]
099Ee(80000020): LDR R0, R0, 20H
099Fe(A0E00010): STR R0, SP, 10H
WHILE (mh1 # NIL)f & (gmh1.nameh # mh.namei)j DOk mh1 := mh1.nextl ENDm ;
09A0f(80E00010): LDR R0, SP, 10H
09A1g(E1000012): BEQ 18 [09B4H]
09A2h(80E00010): LDR R0, SP, 10H
09A3h(D1409C4C): BLEQ MT [trap=4, pos=16540]
09A4i(81E00004): LDR R1, SP, 4H
09A5i(D140A64C): BLEQ MT [trap=4, pos=16550]
09A6j(92000000): LDR R2, R0, 0H
09A7j(40080001): ADD R0, R0, 1H
09A8j(93100000): LDR R3, R1, 0H
09A9j(41180001): ADD R1, R1, 1H
09AAj(04290003): SUB R4, R2, R3
09ABj(E9000002): BNE 2 [09AEH]
09ACj(44290000): SUB R4, R2, 0H
09ADj(E9FFFFF8): BNE -8 [09A6H]
09AEk(E1000005): BEQ 5 [09B4H]
09AFl(80E00010): LDR R0, SP, 10H
09B0l(D140BA4C): BLEQ MT [trap=4, pos=16570]
09B1m(80000034): LDR R0, R0, 34H
09B2m(A0E00010): STR R0, SP, 10H
09B3m(E7FFFFEC): B -20 [09A0H]
IF mh1 = NIL THENn
09B4n(80E00010): LDR R0, SP, 10H
09B5n(E900000E): BNE 14 [09C4H]
new := TRUE;o mh.nextp := L.firstq;r L.firsts := mh
09B6o(40000001): MOV R0, R0, 1H
09B7o(81E0000C): LDR R1, SP, CH
09B8o(B0100000): STR R0, R1, 0H
09B9p(80E00004): LDR R0, SP, 4H
09BAp(D140F14C): BLEQ MT [trap=4, pos=16625]
09BBq(81E00008): LDR R1, SP, 8H
09BCq(D140FC4C): BLEQ MT [trap=4, pos=16636]
09BDr(81100020): LDR R1, R1, 20H
09BEr(A1000034): STR R1, R0, 34H
09BFs(80E00008): LDR R0, SP, 8H
09C0s(D141054C): BLEQ MT [trap=4, pos=16645]
ELSEt
09C1t(81E00004): LDR R1, SP, 4H
09C2t(A1000020): STR R1, R0, 20H
newu := FALSE;v mh1.ww := mh.wx;y mh1.hz := mh.ha;b mh1.firstc := mh.firstd
09C3u(E7000015): B 21 [09D9H]
09C4v(40000000): MOV R0, R0, 0H
09C5v(81E0000C): LDR R1, SP, CH
09C6v(B0100000): STR R0, R1, 0H
09C7w(80E00010): LDR R0, SP, 10H
09C8w(D1412E4C): BLEQ MT [trap=4, pos=16686]
09C9x(81E00004): LDR R1, SP, 4H
09CAx(D141364C): BLEQ MT [trap=4, pos=16694]
09CBy(81100020): LDR R1, R1, 20H
09CCy(A1000020): STR R1, R0, 20H
09CDz(80E00010): LDR R0, SP, 10H
09CEz(D1413D4C): BLEQ MT [trap=4, pos=16701]
09CFa(81E00004): LDR R1, SP, 4H
09D0a(D141454C): BLEQ MT [trap=4, pos=16709]
09D1b(81100024): LDR R1, R1, 24H
09D2b(A1000024): STR R1, R0, 24H
09D3c(80E00010): LDR R0, SP, 10H
09D4c(D141504C): BLEQ MT [trap=4, pos=16720]
09D5d(81E00004): LDR R1, SP, 4H
09D6d(D1415C4C): BLEQ MT [trap=4, pos=16732]
ENDe
09D7e(81100030): LDR R1, R1, 30H
09D8e(A1000030): STR R1, R0, 30H
ENDf InsertMac;
09D9f(8FE00000): LDR LNK, SP, 0H
09DAf(4EE80014): ADD SP, SP, 14H
09DBf(C700000F): B LNK
(* ---------------------------- Line Methods -----------------------------*)
PROCEDURE NewLine;
VAR line: Line;
BEGINg NEW(line);h new := line;i line.doj := LineMethod
09DCg(4EE90008): SUB SP, SP, 8H
09DDg(AFE00000): STR LNK, SP, 0H
09DEh(40E80004): ADD R0, SP, 4H
09DFh .FIXUP D
09DFh(8D000054): LDR SB, MT, MOD0 [Graphics]
09E0h(41D80140): ADD R1, SB, 140H [data]
09E1h(D742020C): BL MT [trap=0, pos=16898]
09E2i(80E00004): LDR R0, SP, 4H
09E3i .FIXUP D
09E3i(8D000004): LDR SB, MT, MOD0 [Graphics]
09E4i(A0D001A0): STR R0, SB, 1A0H [data]
09E5j(80E00004): LDR R0, SP, 4H
09E6j(D142174C): BLEQ MT [trap=4, pos=16919]
ENDk NewLine;
09E7k(81D001A8): LDR R1, SB, 1A8H
09E8k(A1000014): STR R1, R0, 14H
09E9k(8FE00000): LDR LNK, SP, 0H
09EAk(4EE80008): ADD SP, SP, 8H
09EBk(C700000F): B LNK
PROCEDURE CopyLine(src, dst: Object);
BEGINl dst.xm := src.xn;o dst.yp := src.yq;r dst.ws := src.wt;u dst.hv := src.hw;x dst.coly := src.colz
09ECl(4EE9000C): SUB SP, SP, CH
09EDl(AFE00000): STR LNK, SP, 0H
09EEl(A0E00004): STR R0, SP, 4H
09EFl(A1E00008): STR R1, SP, 8H
09F0m(80E00008): LDR R0, SP, 8H
09F1m(D1426B4C): BLEQ MT [trap=4, pos=17003]
09F2n(81E00004): LDR R1, SP, 4H
09F3n(D142744C): BLEQ MT [trap=4, pos=17012]
09F4o(81100000): LDR R1, R1, 0H
09F5o(A1000000): STR R1, R0, 0H
09F6p(80E00008): LDR R0, SP, 8H
09F7p(D1427B4C): BLEQ MT [trap=4, pos=17019]
09F8q(81E00004): LDR R1, SP, 4H
09F9q(D142844C): BLEQ MT [trap=4, pos=17028]
09FAr(81100004): LDR R1, R1, 4H
09FBr(A1000004): STR R1, R0, 4H
09FCs(80E00008): LDR R0, SP, 8H
09FDs(D1428B4C): BLEQ MT [trap=4, pos=17035]
09FEt(81E00004): LDR R1, SP, 4H
09FFt(D142944C): BLEQ MT [trap=4, pos=17044]
0A00u(81100008): LDR R1, R1, 8H
0A01u(A1000008): STR R1, R0, 8H
0A02v(80E00008): LDR R0, SP, 8H
0A03v(D1429B4C): BLEQ MT [trap=4, pos=17051]
0A04w(81E00004): LDR R1, SP, 4H
0A05w(D142A44C): BLEQ MT [trap=4, pos=17060]
0A06x(8110000C): LDR R1, R1, CH
0A07x(A100000C): STR R1, R0, CH
0A08y(80E00008): LDR R0, SP, 8H
0A09y(D142AD4C): BLEQ MT [trap=4, pos=17069]
0A0Az(81E00004): LDR R1, SP, 4H
0A0Bz(D142B84C): BLEQ MT [trap=4, pos=17080]
ENDa CopyLine;
0A0Ca(91100010): LDR R1, R1, 10H
0A0Da(B1000010): STR R1, R0, 10H
0A0Ea(8FE00000): LDR LNK, SP, 0H
0A0Fa(4EE8000C): ADD SP, SP, CH
0A10a(C700000F): B LNK
PROCEDURE ChangeLine(obj: Object; VAR M: Msg);
BEGINb
0A11b(4EE90010): SUB SP, SP, 10H
0A12b(AFE00000): STR LNK, SP, 0H
0A13b(A0E00004): STR R0, SP, 4H
0A14b(A1E00008): STR R1, SP, 8H
0A15b(A2E0000C): STR R2, SP, CH
CASE M OF
WidMsg:c
0A16c(80E0000C): LDR R0, SP, CH
0A17c(80000004): LDR R0, R0, 4H
0A18c .FIXUP D
0A18c(8D000035): LDR SB, MT, MOD0 [Graphics]
0A19c(41D80030): ADD R1, SB, 30H [data]
0A1Ac(01190000): SUB R1, R1, R0
0A1Bc(E900001E): BNE 30 [0A3AH]
IF obj.wd < obj.he THENf
0A1Cd(80E00004): LDR R0, SP, 4H
0A1Dd(D1432B4C): BLEQ MT [trap=4, pos=17195]
0A1Ee(81E00004): LDR R1, SP, 4H
0A1Fe(D143334C): BLEQ MT [trap=4, pos=17203]
0A20f(80000008): LDR R0, R0, 8H
0A21f(8110000C): LDR R1, R1, CH
0A22f(00090001): SUB R0, R0, R1
0A23f(ED00000B): BGE 11 [0A2FH]
IF obj.wg <= 7 THENh obj.wi := M.w ENDj
0A24g(80E00004): LDR R0, SP, 4H
0A25g(D143494C): BLEQ MT [trap=4, pos=17225]
0A26h(80000008): LDR R0, R0, 8H
0A27h(40090007): SUB R0, R0, 7H
0A28h(EE000005): BGT 5 [0A2EH]
0A29i(80E00004): LDR R0, SP, 4H
0A2Ai(D143594C): BLEQ MT [trap=4, pos=17241]
0A2Bj(81E00008): LDR R1, SP, 8H
0A2Cj(81100000): LDR R1, R1, 0H
0A2Dj(A1000008): STR R1, R0, 8H
ELSIF objk.hl <= 7 THENm obj.hn := M.w
0A2Ek(E700000A): B 10 [0A39H]
0A2Fl(80E00004): LDR R0, SP, 4H
0A30l(D143764C): BLEQ MT [trap=4, pos=17270]
0A31m(8000000C): LDR R0, R0, CH
0A32m(40090007): SUB R0, R0, 7H
0A33m(EE000005): BGT 5 [0A39H]
0A34n(80E00004): LDR R0, SP, 4H
0A35n(D143864C): BLEQ MT [trap=4, pos=17286]
ENDo |
0A36o(81E00008): LDR R1, SP, 8H
0A37o(81100000): LDR R1, R1, 0H
0A38o(A100000C): STR R1, R0, CH
ColorMsgp:q obj.colr := M.col
0A39p(E700000B): B 11 [0A45H]
0A3Aq(80E0000C): LDR R0, SP, CH
0A3Bq(80000004): LDR R0, R0, 4H
0A3Cq .FIXUP D
0A3Cq(8D000024): LDR SB, MT, MOD0 [Graphics]
0A3Dq(41D80044): ADD R1, SB, 44H [data]
0A3Eq(01190000): SUB R1, R1, R0
0A3Fq(E9000005): BNE 5 [0A45H]
0A40r(80E00004): LDR R0, SP, 4H
0A41r(D143AF4C): BLEQ MT [trap=4, pos=17327]
ENDs
0A42s(81E00008): LDR R1, SP, 8H
0A43s(81100000): LDR R1, R1, 0H
0A44s(B1000010): STR R1, R0, 10H
ENDt ChangeLine;
0A45t(8FE00000): LDR LNK, SP, 0H
0A46t(4EE80010): ADD SP, SP, 10H
0A47t(C700000F): B LNK
PROCEDURE LineSelectable(obj: Object; x, y: INTEGER): BOOLEAN;
BEGINu
0A48u(4EE90010): SUB SP, SP, 10H
0A49u(AFE00000): STR LNK, SP, 0H
0A4Au(A0E00004): STR R0, SP, 4H
0A4Bu(A1E00008): STR R1, SP, 8H
0A4Cu(A2E0000C): STR R2, SP, CH
RETURN (obj.xv <= x)w & (xx < obj.xy + obj.wz)a & (bobj.yc <= y)d & (ey < obj.yf + obj.hg)h
0A4Dv(80E00004): LDR R0, SP, 4H
0A4Ev(D1442E4C): BLEQ MT [trap=4, pos=17454]
0A4Fw(80000000): LDR R0, R0, 0H
0A50w(81E00008): LDR R1, SP, 8H
0A51w(00090001): SUB R0, R0, R1
0A52x(EE00001C): BGT 28 [0A6FH]
0A53y(80E00004): LDR R0, SP, 4H
0A54y(D144414C): BLEQ MT [trap=4, pos=17473]
0A55z(81E00004): LDR R1, SP, 4H
0A56z(D144494C): BLEQ MT [trap=4, pos=17481]
0A57a(80000000): LDR R0, R0, 0H
0A58a(81100008): LDR R1, R1, 8H
0A59a(00080001): ADD R0, R0, R1
0A5Aa(81E00008): LDR R1, SP, 8H
0A5Ba(01190000): SUB R1, R1, R0
0A5Cb(ED000012): BGE 18 [0A6FH]
0A5Dc(80E00004): LDR R0, SP, 4H
0A5Ec(D144534C): BLEQ MT [trap=4, pos=17491]
0A5Fd(80000004): LDR R0, R0, 4H
0A60d(81E0000C): LDR R1, SP, CH
0A61d(00090001): SUB R0, R0, R1
0A62e(EE00000C): BGT 12 [0A6FH]
0A63f(80E00004): LDR R0, SP, 4H
0A64f(D144664C): BLEQ MT [trap=4, pos=17510]
0A65g(81E00004): LDR R1, SP, 4H
0A66g(D1446E4C): BLEQ MT [trap=4, pos=17518]
0A67h(80000004): LDR R0, R0, 4H
0A68h(8110000C): LDR R1, R1, CH
0A69h(00080001): ADD R0, R0, R1
0A6Ah(81E0000C): LDR R1, SP, CH
0A6Bh(01190000): SUB R1, R1, R0
ENDi LineSelectable;
0A6Ci(ED000002): BGE 2 [0A6FH]
0A6Di(40000001): MOV R0, R0, 1H
0A6Ei(E7000001): B 1 [0A70H]
0A6Fi(40000000): MOV R0, R0, 0H
0A70i(8FE00000): LDR LNK, SP, 0H
0A71i(4EE80010): ADD SP, SP, 10H
0A72i(C700000F): B LNK
PROCEDURE ReadLine(obj: Object; VAR R: Files.Rider; VAR C: Context);
BEGINj
0A73j(4EE90018): SUB SP, SP, 18H
0A74j(AFE00000): STR LNK, SP, 0H
0A75j(A0E00004): STR R0, SP, 4H
0A76j(A1E00008): STR R1, SP, 8H
0A77j(A2E0000C): STR R2, SP, CH
0A78j(A3E00010): STR R3, SP, 10H
0A79j(A4E00014): STR R4, SP, 14H
ENDk ReadLine;
0A7Ak(8FE00000): LDR LNK, SP, 0H
0A7Bk(4EE80018): ADD SP, SP, 18H
0A7Ck(C700000F): B LNK
PROCEDURE WriteLine(obj: Object; cno: INTEGER; VAR W: Files.Rider; VAR C: Context);
BEGINl WriteObj(W,m cno,n obj)o
0A7Dl(4EE9001C): SUB SP, SP, 1CH
0A7El(AFE00000): STR LNK, SP, 0H
0A7Fl(A0E00004): STR R0, SP, 4H
0A80l(A1E00008): STR R1, SP, 8H
0A81l(A2E0000C): STR R2, SP, CH
0A82l(A3E00010): STR R3, SP, 10H
0A83l(A4E00014): STR R4, SP, 14H
0A84l(A5E00018): STR R5, SP, 18H
0A85m(80E0000C): LDR R0, SP, CH
0A86m(81E00010): LDR R1, SP, 10H
0A87n(82E00008): LDR R2, SP, 8H
0A88o(83E00004): LDR R3, SP, 4H
ENDp WriteLine;
0A89p(F7FFFA02): BL -1534 [048CH]
0A8Ap(8FE00000): LDR LNK, SP, 0H
0A8Bp(4EE8001C): ADD SP, SP, 1CH
0A8Cp(C700000F): B LNK
(*PROCEDURE PrintLine(obj: Object; x, y: INTEGER);
VAR w, h: INTEGER;
BEGIN w := obj.w * 2; h := obj.h * 2;
IF w < h THEN h := 2*h ELSE w := 2*w END ;
Printer.ReplConst(obj.x * 4 + x, obj.y *4 + y, w, h)
END PrintLine; *)
(* ---------------------- Caption Methods ------------------------ *)
PROCEDURE NewCaption;
VAR cap: Caption;
BEGINq NEW(cap);r new := cap;s cap.dot := CapMethod
0A8Dq(4EE90008): SUB SP, SP, 8H
0A8Eq(AFE00000): STR LNK, SP, 0H
0A8Fr(40E80004): ADD R0, SP, 4H
0A90r .FIXUP D
0A90r(8D000054): LDR SB, MT, MOD0 [Graphics]
0A91r(41D8015C): ADD R1, SB, 15CH [data]
0A92r(D746E40C): BL MT [trap=0, pos=18148]
0A93s(80E00004): LDR R0, SP, 4H
0A94s .FIXUP D
0A94s(8D000004): LDR SB, MT, MOD0 [Graphics]
0A95s(A0D001A0): STR R0, SB, 1A0H [data]
0A96t(80E00004): LDR R0, SP, 4H
0A97t(D146F74C): BLEQ MT [trap=4, pos=18167]
ENDu NewCaption;
0A98u(81D001AC): LDR R1, SB, 1ACH
0A99u(A1000014): STR R1, R0, 14H
0A9Au(8FE00000): LDR LNK, SP, 0H
0A9Bu(4EE80008): ADD SP, SP, 8H
0A9Cu(C700000F): B LNK
PROCEDURE CopyCaption(src, dst: Object);
VAR ch: CHAR; R: Texts.Reader;
BEGINv
0A9Dv(4EE90044): SUB SP, SP, 44H
0A9Ev(AFE00000): STR LNK, SP, 0H
0A9Fv(A0E00004): STR R0, SP, 4H
0AA0v(A1E00008): STR R1, SP, 8H
dst.xw := src.xx;y dst.yz := src.ya;b dst.wc := src.wd;e dst.hf := src.hg;h dst.coli := src.colj;k
0AA1w(80E00008): LDR R0, SP, 8H
0AA2w(D147774C): BLEQ MT [trap=4, pos=18295]
0AA3x(81E00004): LDR R1, SP, 4H
0AA4x(D147804C): BLEQ MT [trap=4, pos=18304]
0AA5y(81100000): LDR R1, R1, 0H
0AA6y(A1000000): STR R1, R0, 0H
0AA7z(80E00008): LDR R0, SP, 8H
0AA8z(D147874C): BLEQ MT [trap=4, pos=18311]
0AA9a(81E00004): LDR R1, SP, 4H
0AAAa(D147904C): BLEQ MT [trap=4, pos=18320]
0AABb(81100004): LDR R1, R1, 4H
0AACb(A1000004): STR R1, R0, 4H
0AADc(80E00008): LDR R0, SP, 8H
0AAEc(D147974C): BLEQ MT [trap=4, pos=18327]
0AAFd(81E00004): LDR R1, SP, 4H
0AB0d(D147A04C): BLEQ MT [trap=4, pos=18336]
0AB1e(81100008): LDR R1, R1, 8H
0AB2e(A1000008): STR R1, R0, 8H
0AB3f(80E00008): LDR R0, SP, 8H
0AB4f(D147A74C): BLEQ MT [trap=4, pos=18343]
0AB5g(81E00004): LDR R1, SP, 4H
0AB6g(D147B04C): BLEQ MT [trap=4, pos=18352]
0AB7h(8110000C): LDR R1, R1, CH
0AB8h(A100000C): STR R1, R0, CH
0AB9i(80E00008): LDR R0, SP, 8H
0ABAi(D147B94C): BLEQ MT [trap=4, pos=18361]
0ABBj(81E00004): LDR R1, SP, 4H
0ABCj(D147C44C): BLEQ MT [trap=4, pos=18372]
0ABDk(91100010): LDR R1, R1, 10H
0ABEk(B1000010): STR R1, R0, 10H
dst(Caption)l.pos := T.lenm + 1;n dst(Caption)o.len := src(Caption)p.len;q
0ABFl(80E00008): LDR R0, SP, 8H
0AC0l(E1000005): BEQ 5 [0AC6H]
0AC1l(810FFFF8): LDR R1, R0, FFFFFFF8H
0AC2l(81100004): LDR R1, R1, 4H
0AC3l .FIXUP D
0AC3l(8D00002F): LDR SB, MT, MOD0 [Graphics]
0AC4l(42D8015C): ADD R2, SB, 15CH [data]
0AC5l(02290001): SUB R2, R2, R1
0AC6l(D947D62C): BLNE MT [trap=2, pos=18390]
0AC7m(81D001A4): LDR R1, SB, 1A4H
0AC8m(D147E34C): BLEQ MT [trap=4, pos=18403]
0AC9n(81100000): LDR R1, R1, 0H
0ACAn(41180001): ADD R1, R1, 1H
0ACBn(A100001C): STR R1, R0, 1CH
0ACCo(80E00008): LDR R0, SP, 8H
0ACDo(E1000004): BEQ 4 [0AD2H]
0ACEo(810FFFF8): LDR R1, R0, FFFFFFF8H
0ACFo(81100004): LDR R1, R1, 4H
0AD0o(42D8015C): ADD R2, SB, 15CH
0AD1o(02290001): SUB R2, R2, R1
0AD2o(D947F52C): BLNE MT [trap=2, pos=18421]
0AD3p(81E00004): LDR R1, SP, 4H
0AD4p(E1000004): BEQ 4 [0AD9H]
0AD5p(821FFFF8): LDR R2, R1, FFFFFFF8H
0AD6p(82200004): LDR R2, R2, 4H
0AD7p(43D8015C): ADD R3, SB, 15CH
0AD8p(03390002): SUB R3, R3, R2
0AD9p(D948092C): BLNE MT [trap=2, pos=18441]
0ADAq(81100020): LDR R1, R1, 20H
0ADBq(A1000020): STR R1, R0, 20H
Texts.Write(TW,r 0DX)s;t Texts.OpenReader(R,u T,v src(Caption)w.pos)x;y
0ADCr(40D801E4): ADD R0, SB, 1E4H
0ADDr .FIXUP D
0ADDr(8D40001A): LDR SB, MT, MOD4 [Texts]
0ADEr(41D80005): ADD R1, SB, VAR5
0ADFs(4200000D): MOV R2, R0, DH
0AE0t .FIXUP P
0AE0t(F741B292): BL MOD4 [Texts] PROC27
0AE1u(40E80010): ADD R0, SP, 10H
0AE2u .FIXUP D
0AE2u(8D400005): LDR SB, MT, MOD4 [Texts]
0AE3u(41D80002): ADD R1, SB, VAR2
0AE4v .FIXUP D
0AE4v(8D000002): LDR SB, MT, MOD0 [Graphics]
0AE5v(82D001A4): LDR R2, SB, 1A4H [data]
0AE6w(83E00004): LDR R3, SP, 4H
0AE7w(E1000004): BEQ 4 [0AECH]
0AE8w(843FFFF8): LDR R4, R3, FFFFFFF8H
0AE9w(84400004): LDR R4, R4, 4H
0AEAw(45D8015C): ADD R5, SB, 15CH
0AEBw(05590004): SUB R5, R5, R4
0AECw(D9484C2C): BLNE MT [trap=2, pos=18508]
0AEDx(8330001C): LDR R3, R3, 1CH
0AEEy .FIXUP P
0AEEy(F741200E): BL MOD4 [Texts] PROC18
Texts.Read(R,z ch)a;b TW.fnt := R.fnt;c
0AEFz(40E80010): ADD R0, SP, 10H
0AF0z .FIXUP D
0AF0z(8D40000C): LDR SB, MT, MOD4 [Texts]
0AF1z(41D80002): ADD R1, SB, VAR2
0AF2a(42E8000C): ADD R2, SP, CH
0AF3b .FIXUP P
0AF3b(F7413005): BL MOD4 [Texts] PROC19
0AF4c(80E00014): LDR R0, SP, 14H
0AF5c .FIXUP D
0AF5c(8D000005): LDR SB, MT, MOD0 [Graphics]
0AF6c(A0D001E8): STR R0, SB, 1E8H [data]
WHILE ch > 0DX DOd Texts.Write(TW,e ch)f;g Texts.Read(R,h ch)i ENDj ;
0AF7d(90E0000C): LDR R0, SP, CH
0AF8d(4009000D): SUB R0, R0, DH
0AF9d(E600000C): BLE 12 [0B06H]
0AFAe .FIXUP D
0AFAe(8D000005): LDR SB, MT, MOD0 [Graphics]
0AFBe(40D801E4): ADD R0, SB, 1E4H [data]
0AFCe .FIXUP D
0AFCe(8D400002): LDR SB, MT, MOD4 [Texts]
0AFDe(41D80005): ADD R1, SB, VAR5
0AFEf(92E0000C): LDR R2, SP, CH
0AFFg .FIXUP P
0AFFg(F741B00C): BL MOD4 [Texts] PROC27
0B00h(40E80010): ADD R0, SP, 10H
0B01h .FIXUP D
0B01h(8D400005): LDR SB, MT, MOD4 [Texts]
0B02h(41D80002): ADD R1, SB, VAR2
0B03i(42E8000C): ADD R2, SP, CH
0B04j .FIXUP P
0B04j(F7413005): BL MOD4 [Texts] PROC19
0B05j(E7FFFFF1): B -15 [0AF7H]
Texts.Append(T,k TW.buf)l
0B06k .FIXUP D
0B06k(8D000005): LDR SB, MT, MOD0 [Graphics]
0B07k(80D001A4): LDR R0, SB, 1A4H [data]
0B08l(81D001E4): LDR R1, SB, 1E4H
ENDm CopyCaption;
0B09m .FIXUP P
0B09m(F740E005): BL MOD4 [Texts] PROC14
0B0Am(8FE00000): LDR LNK, SP, 0H
0B0Bm(4EE80044): ADD SP, SP, 44H
0B0Cm(C700000F): B LNK
PROCEDURE ChangeCaption(obj: Object; VAR M: Msg);
VAR dx, x1, dy, y1, w, w1, h1, len: INTEGER;
pos: LONGINT;
ch: CHAR; patadr: INTEGER; fnt: Fonts.Font;
R: Texts.Reader;
BEGINn
0B0Dn(4EE90074): SUB SP, SP, 74H
0B0En(AFE00000): STR LNK, SP, 0H
0B0Fn(A0E00004): STR R0, SP, 4H
0B10n(A1E00008): STR R1, SP, 8H
0B11n(A2E0000C): STR R2, SP, CH
CASE M OF
FontMsg:o fnt := M(FontMsg).fnt;p w := 0;q len := 0;r pos := obj(Caption)s.pos;t
0B12o(80E0000C): LDR R0, SP, CH
0B13o(80000004): LDR R0, R0, 4H
0B14o .FIXUP D
0B14o(8D00000E): LDR SB, MT, MOD0 [Graphics]
0B15o(41D80058): ADD R1, SB, 58H [data]
0B16o(01190000): SUB R1, R1, R0
0B17o(E900005B): BNE 91 [0B73H]
0B18p(80E00008): LDR R0, SP, 8H
0B19p(80000000): LDR R0, R0, 0H
0B1Ap(A0E0003C): STR R0, SP, 3CH
0B1Bq(40000000): MOV R0, R0, 0H
0B1Cq(A0E00020): STR R0, SP, 20H
0B1Dr(40000000): MOV R0, R0, 0H
0B1Er(A0E0002C): STR R0, SP, 2CH
0B1Fs(80E00004): LDR R0, SP, 4H
0B20s(E1000005): BEQ 5 [0B26H]
0B21s(810FFFF8): LDR R1, R0, FFFFFFF8H
0B22s(81100004): LDR R1, R1, 4H
0B23s .FIXUP D
0B23s(8D00000F): LDR SB, MT, MOD0 [Graphics]
0B24s(42D8015C): ADD R2, SB, 15CH [data]
0B25s(02290001): SUB R2, R2, R1
0B26s(D94A102C): BLNE MT [trap=2, pos=18960]
0B27t(8000001C): LDR R0, R0, 1CH
0B28t(A0E00030): STR R0, SP, 30H
Texts.OpenReader(R,u T,v pos)w;x Texts.Read(R,y ch)z;a dy := R.fnt.minYb;c
0B29u(40E80040): ADD R0, SP, 40H
0B2Au .FIXUP D
0B2Au(8D400007): LDR SB, MT, MOD4 [Texts]
0B2Bu(41D80002): ADD R1, SB, VAR2
0B2Cv .FIXUP D
0B2Cv(8D000002): LDR SB, MT, MOD0 [Graphics]
0B2Dv(82D001A4): LDR R2, SB, 1A4H [data]
0B2Ew(83E00030): LDR R3, SP, 30H
0B2Fx .FIXUP P
0B2Fx(F7412026): BL MOD4 [Texts] PROC18
0B30y(40E80040): ADD R0, SP, 40H
0B31y .FIXUP D
0B31y(8D400005): LDR SB, MT, MOD4 [Texts]
0B32y(41D80002): ADD R1, SB, VAR2
0B33z(42E80034): ADD R2, SP, 34H
0B34a .FIXUP P
0B34a(F7413005): BL MOD4 [Texts] PROC19
0B35b(80E00044): LDR R0, SP, 44H
0B36b(D14A5C4C): BLEQ MT [trap=4, pos=19036]
0B37c(8000002C): LDR R0, R0, 2CH
0B38c(A0E00018): STR R0, SP, 18H
WHILE ch > 0DX DOd
0B39d(90E00034): LDR R0, SP, 34H
0B3Ad(4009000D): SUB R0, R0, DH
0B3Bd(E6000016): BLE 22 [0B52H]
Fonts.GetPat(fnt,e ch,f dx,g x1,h y1,i w1,j h1,k patadr)l;m
0B3Ce(80E0003C): LDR R0, SP, 3CH
0B3Df(91E00034): LDR R1, SP, 34H
0B3Eg(42E80010): ADD R2, SP, 10H
0B3Fh(43E80014): ADD R3, SP, 14H
0B40i(44E8001C): ADD R4, SP, 1CH
0B41j(45E80024): ADD R5, SP, 24H
0B42k(46E80028): ADD R6, SP, 28H
0B43l(47E80038): ADD R7, SP, 38H
0B44m .FIXUP P
0B44m(F7304010): BL MOD3 [Fonts] PROC4
INC(w, dx);n INC(len);o Texts.Read(R,p ch)q
0B45n(80E00020): LDR R0, SP, 20H
0B46n(81E00010): LDR R1, SP, 10H
0B47n(00080001): ADD R0, R0, R1
0B48n(A0E00020): STR R0, SP, 20H
0B49o(80E0002C): LDR R0, SP, 2CH
0B4Ao(40080001): ADD R0, R0, 1H
0B4Bo(A0E0002C): STR R0, SP, 2CH
0B4Cp(40E80040): ADD R0, SP, 40H
0B4Dp .FIXUP D
0B4Dp(8D40001C): LDR SB, MT, MOD4 [Texts]
0B4Ep(41D80002): ADD R1, SB, VAR2
0B4Fq(42E80034): ADD R2, SP, 34H
ENDr ;
0B50r .FIXUP P
0B50r(F741300C): BL MOD4 [Texts] PROC19
0B51r(E7FFFFE7): B -25 [0B39H]
INC(obj.ys, fnt.minYt-dy)u;v obj.ww := w;x obj.hy := fnt.heightz;a
0B52s(80E00004): LDR R0, SP, 4H
0B53s(D14AFC4C): BLEQ MT [trap=4, pos=19196]
0B54t(81E0003C): LDR R1, SP, 3CH
0B55t(D14B064C): BLEQ MT [trap=4, pos=19206]
0B56u(8110002C): LDR R1, R1, 2CH
0B57u(82E00018): LDR R2, SP, 18H
0B58u(01190002): SUB R1, R1, R2
0B59v(40080004): ADD R0, R0, 4H
0B5Av(82000000): LDR R2, R0, 0H
0B5Bv(02280001): ADD R2, R2, R1
0B5Cv(A2000000): STR R2, R0, 0H
0B5Dw(80E00004): LDR R0, SP, 4H
0B5Ew(D14B114C): BLEQ MT [trap=4, pos=19217]
0B5Fx(81E00020): LDR R1, SP, 20H
0B60x(A1000008): STR R1, R0, 8H
0B61y(80E00004): LDR R0, SP, 4H
0B62y(D14B1D4C): BLEQ MT [trap=4, pos=19229]
0B63z(81E0003C): LDR R1, SP, 3CH
0B64z(D14B2B4C): BLEQ MT [trap=4, pos=19243]
0B65a(81100020): LDR R1, R1, 20H
0B66a(A100000C): STR R1, R0, CH
Texts.ChangeLooks(T,b pos,c pos+len,d {0},e fnt,f 0 ,g 0)h |i
0B67b .FIXUP D
0B67b(8D00001A): LDR SB, MT, MOD0 [Graphics]
0B68b(80D001A4): LDR R0, SB, 1A4H [data]
0B69c(81E00030): LDR R1, SP, 30H
0B6Ad(82E00030): LDR R2, SP, 30H
0B6Bd(83E0002C): LDR R3, SP, 2CH
0B6Cd(02280003): ADD R2, R2, R3
0B6De(43000001): MOV R3, R0, 1H
0B6Ef(84E0003C): LDR R4, SP, 3CH
0B6Fg(45000000): MOV R5, R0, 0H
0B70h(46000000): MOV R6, R0, 0H
0B71i .FIXUP P
0B71i(F7410021): BL MOD4 [Texts] PROC16
ColorMsgj:k obj.coll := M(ColorMsg).col
0B72j(E700000B): B 11 [0B7EH]
0B73k(80E0000C): LDR R0, SP, CH
0B74k(80000004): LDR R0, R0, 4H
0B75k .FIXUP D
0B75k(8D00000E): LDR SB, MT, MOD0 [Graphics]
0B76k(41D80044): ADD R1, SB, 44H [data]
0B77k(01190000): SUB R1, R1, R0
0B78k(E9000005): BNE 5 [0B7EH]
0B79l(80E00004): LDR R0, SP, 4H
0B7Al(D14B7E4C): BLEQ MT [trap=4, pos=19326]
ENDm
0B7Bm(81E00008): LDR R1, SP, 8H
0B7Cm(81100000): LDR R1, R1, 0H
0B7Dm(B1000010): STR R1, R0, 10H
ENDn ChangeCaption;
0B7En(8FE00000): LDR LNK, SP, 0H
0B7Fn(4EE80074): ADD SP, SP, 74H
0B80n(C700000F): B LNK
PROCEDURE CaptionSelectable(obj: Object; x, y: INTEGER): BOOLEAN;
BEGINo
0B81o(4EE90010): SUB SP, SP, 10H
0B82o(AFE00000): STR LNK, SP, 0H
0B83o(A0E00004): STR R0, SP, 4H
0B84o(A1E00008): STR R1, SP, 8H
0B85o(A2E0000C): STR R2, SP, CH
RETURN (obj.xp <= x)q & (rx < obj.xs + obj.wt)u & (vobj.yw <= y)x & (yy < obj.yz + obj.ha)b
0B86p(80E00004): LDR R0, SP, 4H
0B87p(D14C0D4C): BLEQ MT [trap=4, pos=19469]
0B88q(80000000): LDR R0, R0, 0H
0B89q(81E00008): LDR R1, SP, 8H
0B8Aq(00090001): SUB R0, R0, R1
0B8Br(EE00001C): BGT 28 [0BA8H]
0B8Cs(80E00004): LDR R0, SP, 4H
0B8Ds(D14C204C): BLEQ MT [trap=4, pos=19488]
0B8Et(81E00004): LDR R1, SP, 4H
0B8Ft(D14C284C): BLEQ MT [trap=4, pos=19496]
0B90u(80000000): LDR R0, R0, 0H
0B91u(81100008): LDR R1, R1, 8H
0B92u(00080001): ADD R0, R0, R1
0B93u(81E00008): LDR R1, SP, 8H
0B94u(01190000): SUB R1, R1, R0
0B95v(ED000012): BGE 18 [0BA8H]
0B96w(80E00004): LDR R0, SP, 4H
0B97w(D14C324C): BLEQ MT [trap=4, pos=19506]
0B98x(80000004): LDR R0, R0, 4H
0B99x(81E0000C): LDR R1, SP, CH
0B9Ax(00090001): SUB R0, R0, R1
0B9By(EE00000C): BGT 12 [0BA8H]
0B9Cz(80E00004): LDR R0, SP, 4H
0B9Dz(D14C454C): BLEQ MT [trap=4, pos=19525]
0B9Ea(81E00004): LDR R1, SP, 4H
0B9Fa(D14C4D4C): BLEQ MT [trap=4, pos=19533]
0BA0b(80000004): LDR R0, R0, 4H
0BA1b(8110000C): LDR R1, R1, CH
0BA2b(00080001): ADD R0, R0, R1
0BA3b(81E0000C): LDR R1, SP, CH
0BA4b(01190000): SUB R1, R1, R0
ENDc CaptionSelectable;
0BA5c(ED000002): BGE 2 [0BA8H]
0BA6c(40000001): MOV R0, R0, 1H
0BA7c(E7000001): B 1 [0BA9H]
0BA8c(40000000): MOV R0, R0, 0H
0BA9c(8FE00000): LDR LNK, SP, 0H
0BAAc(4EE80010): ADD SP, SP, 10H
0BABc(C700000F): B LNK
PROCEDURE ReadCaption(obj: Object; VAR R: Files.Rider; VAR C: Context);
VAR ch: CHAR; fno: BYTE; len: INTEGER;
BEGINd obj(Caption)e.pos := T.lenf + 1;g Texts.Write(TW,h 0DX)i;j
0BACd(4EE90020): SUB SP, SP, 20H
0BADd(AFE00000): STR LNK, SP, 0H
0BAEd(A0E00004): STR R0, SP, 4H
0BAFd(A1E00008): STR R1, SP, 8H
0BB0d(A2E0000C): STR R2, SP, CH
0BB1d(A3E00010): STR R3, SP, 10H
0BB2d(A4E00014): STR R4, SP, 14H
0BB3e(80E00004): LDR R0, SP, 4H
0BB4e(E1000005): BEQ 5 [0BBAH]
0BB5e(810FFFF8): LDR R1, R0, FFFFFFF8H
0BB6e(81100004): LDR R1, R1, 4H
0BB7e .FIXUP D
0BB7e(8D000042): LDR SB, MT, MOD0 [Graphics]
0BB8e(42D8015C): ADD R2, SB, 15CH [data]
0BB9e(02290001): SUB R2, R2, R1
0BBAe(D94CF22C): BLNE MT [trap=2, pos=19698]
0BBBf(81D001A4): LDR R1, SB, 1A4H
0BBCf(D14CFF4C): BLEQ MT [trap=4, pos=19711]
0BBDg(81100000): LDR R1, R1, 0H
0BBEg(41180001): ADD R1, R1, 1H
0BBFg(A100001C): STR R1, R0, 1CH
0BC0h(40D801E4): ADD R0, SB, 1E4H
0BC1h .FIXUP D
0BC1h(8D40000A): LDR SB, MT, MOD4 [Texts]
0BC2h(41D80005): ADD R1, SB, VAR5
0BC3i(4200000D): MOV R2, R0, DH
0BC4j .FIXUP P
0BC4j(F741B053): BL MOD4 [Texts] PROC27
Files.ReadByte(R,k fno)l;m TW.fnt := C.font[fno]n;o len := 0;p Files.Read(R,q ch)r;s
0BC5k(80E00008): LDR R0, SP, 8H
0BC6k(81E0000C): LDR R1, SP, CH
0BC7l(42E80019): ADD R2, SP, 19H
0BC8m .FIXUP P
0BC8m(F710E004): BL MOD1 [Files] PROC14
0BC9n(90E00019): LDR R0, SP, 19H
0BCAn(4109000A): SUB R1, R0, AH
0BCBn(DA4D4C1C): BLCC MT [trap=1, pos=19788]
0BCCn(40010002): LSL R0, R0, 2H
0BCDn(81E00010): LDR R1, SP, 10H
0BCEn(00180000): ADD R0, R1, R0
0BCFo(8000000C): LDR R0, R0, CH
0BD0o .FIXUP D
0BD0o(8D00000F): LDR SB, MT, MOD0 [Graphics]
0BD1o(A0D001E8): STR R0, SB, 1E8H [data]
0BD2p(40000000): MOV R0, R0, 0H
0BD3p(A0E0001C): STR R0, SP, 1CH
0BD4q(80E00008): LDR R0, SP, 8H
0BD5q(81E0000C): LDR R1, SP, CH
0BD6r(42E80018): ADD R2, SP, 18H
0BD7s .FIXUP P
0BD7s(F711000F): BL MOD1 [Files] PROC16
WHILE ch > 0DX DOt Texts.Write(TW,u ch)v;w INC(len);x Files.Read(R,y ch)z ENDa ;
0BD8t(90E00018): LDR R0, SP, 18H
0BD9t(4009000D): SUB R0, R0, DH
0BDAt(E600000E): BLE 14 [0BE9H]
0BDBu .FIXUP D
0BDBu(8D00000B): LDR SB, MT, MOD0 [Graphics]
0BDCu(40D801E4): ADD R0, SB, 1E4H [data]
0BDDu .FIXUP D
0BDDu(8D400002): LDR SB, MT, MOD4 [Texts]
0BDEu(41D80005): ADD R1, SB, VAR5
0BDFv(92E00018): LDR R2, SP, 18H
0BE0w .FIXUP P
0BE0w(F741B009): BL MOD4 [Texts] PROC27
0BE1x(80E0001C): LDR R0, SP, 1CH
0BE2x(40080001): ADD R0, R0, 1H
0BE3x(A0E0001C): STR R0, SP, 1CH
0BE4y(80E00008): LDR R0, SP, 8H
0BE5y(81E0000C): LDR R1, SP, CH
0BE6z(42E80018): ADD R2, SP, 18H
0BE7a .FIXUP P
0BE7a(F7110007): BL MOD1 [Files] PROC16
0BE8a(E7FFFFEF): B -17 [0BD8H]
obj(Caption)b.len := len;c Texts.Append(T,d TW.buf)e
0BE9b(80E00004): LDR R0, SP, 4H
0BEAb(E1000005): BEQ 5 [0BF0H]
0BEBb(810FFFF8): LDR R1, R0, FFFFFFF8H
0BECb(81100004): LDR R1, R1, 4H
0BEDb .FIXUP D
0BEDb(8D000010): LDR SB, MT, MOD0 [Graphics]
0BEEb(42D8015C): ADD R2, SB, 15CH [data]
0BEFb(02290001): SUB R2, R2, R1
0BF0b(D94DC82C): BLNE MT [trap=2, pos=19912]
0BF1c(81E0001C): LDR R1, SP, 1CH
0BF2c(A1000020): STR R1, R0, 20H
0BF3d(80D001A4): LDR R0, SB, 1A4H
0BF4e(81D001E4): LDR R1, SB, 1E4H
ENDf ReadCaption;
0BF5f .FIXUP P
0BF5f(F740E00E): BL MOD4 [Texts] PROC14
0BF6f(8FE00000): LDR LNK, SP, 0H
0BF7f(4EE80020): ADD SP, SP, 20H
0BF8f(C700000F): B LNK
PROCEDURE WriteCaption(obj: Object; cno: INTEGER; VAR W: Files.Rider; VAR C: Context);
VAR ch: CHAR; fno: BYTE;
TR: Texts.Reader;
BEGINg
0BF9g(4EE90054): SUB SP, SP, 54H
0BFAg(AFE00000): STR LNK, SP, 0H
0BFBg(A0E00004): STR R0, SP, 4H
0BFCg(A1E00008): STR R1, SP, 8H
0BFDg(A2E0000C): STR R2, SP, CH
0BFEg(A3E00010): STR R3, SP, 10H
0BFFg(A4E00014): STR R4, SP, 14H
0C00g(A5E00018): STR R5, SP, 18H
IF obj(Caption)h.len > 0 THENi
0C01h(80E00004): LDR R0, SP, 4H
0C02h(E1000005): BEQ 5 [0C08H]
0C03h(810FFFF8): LDR R1, R0, FFFFFFF8H
0C04h(81100004): LDR R1, R1, 4H
0C05h .FIXUP D
0C05h(8D000018): LDR SB, MT, MOD0 [Graphics]
0C06h(42D8015C): ADD R2, SB, 15CH [data]
0C07h(02290001): SUB R2, R2, R1
0C08h(D94EAA2C): BLNE MT [trap=2, pos=20138]
0C09i(80000020): LDR R0, R0, 20H
0C0Ai(40090000): SUB R0, R0, 0H
0C0Bi(E6000034): BLE 52 [0C40H]
Texts.OpenReader(TR,j T,k obj(Caption)l.pos)m;n Texts.Read(TR,o ch)p;q
0C0Cj(40E80020): ADD R0, SP, 20H
0C0Dj .FIXUP D
0C0Dj(8D400008): LDR SB, MT, MOD4 [Texts]
0C0Ej(41D80002): ADD R1, SB, VAR2
0C0Fk .FIXUP D
0C0Fk(8D000002): LDR SB, MT, MOD0 [Graphics]
0C10k(82D001A4): LDR R2, SB, 1A4H [data]
0C11l(83E00004): LDR R3, SP, 4H
0C12l(E1000004): BEQ 4 [0C17H]
0C13l(843FFFF8): LDR R4, R3, FFFFFFF8H
0C14l(84400004): LDR R4, R4, 4H
0C15l(45D8015C): ADD R5, SB, 15CH
0C16l(05590004): SUB R5, R5, R4
0C17l(D94EE22C): BLNE MT [trap=2, pos=20194]
0C18m(8330001C): LDR R3, R3, 1CH
0C19n .FIXUP P
0C19n(F7412024): BL MOD4 [Texts] PROC18
0C1Ao(40E80020): ADD R0, SP, 20H
0C1Bo .FIXUP D
0C1Bo(8D40000C): LDR SB, MT, MOD4 [Texts]
0C1Co(41D80002): ADD R1, SB, VAR2
0C1Dp(42E8001C): ADD R2, SP, 1CH
0C1Eq .FIXUP P
0C1Eq(F7413005): BL MOD4 [Texts] PROC19
fno := FontNo(W,r C,s TR.fnt)t;u
0C1Fr(80E0000C): LDR R0, SP, CH
0C20r(81E00010): LDR R1, SP, 10H
0C21s(82E00014): LDR R2, SP, 14H
0C22s(83E00018): LDR R3, SP, 18H
0C23t(84E00024): LDR R4, SP, 24H
0C24u(F7FFF799): BL -2151 [03BEH]
0C25u(B0E0001D): STR R0, SP, 1DH
WriteObj(W,v cno,w obj)x;y Files.WriteByte(W,z fno)a;b
0C26v(80E0000C): LDR R0, SP, CH
0C27v(81E00010): LDR R1, SP, 10H
0C28w(82E00008): LDR R2, SP, 8H
0C29x(83E00004): LDR R3, SP, 4H
0C2Ay(F7FFF861): BL -1951 [048CH]
0C2Bz(80E0000C): LDR R0, SP, CH
0C2Cz(81E00010): LDR R1, SP, 10H
0C2Da(92E0001D): LDR R2, SP, 1DH
0C2Eb .FIXUP P
0C2Eb(F7116010): BL MOD1 [Files] PROC22
WHILE ch > 0DX DOc Files.Write(W,d ch)e;f Texts.Read(TR,g ch)h ENDi ;
0C2Fc(90E0001C): LDR R0, SP, 1CH
0C30c(4009000D): SUB R0, R0, DH
0C31c(E600000A): BLE 10 [0C3CH]
0C32d(80E0000C): LDR R0, SP, CH
0C33d(81E00010): LDR R1, SP, 10H
0C34e(92E0001C): LDR R2, SP, 1CH
0C35f .FIXUP P
0C35f(F7118007): BL MOD1 [Files] PROC24
0C36g(40E80020): ADD R0, SP, 20H
0C37g .FIXUP D
0C37g(8D40001C): LDR SB, MT, MOD4 [Texts]
0C38g(41D80002): ADD R1, SB, VAR2
0C39h(42E8001C): ADD R2, SP, 1CH
0C3Ai .FIXUP P
0C3Ai(F7413005): BL MOD4 [Texts] PROC19
0C3Bi(E7FFFFF3): B -13 [0C2FH]
Files.Write(W,j 0X)k
0C3Cj(80E0000C): LDR R0, SP, CH
0C3Dj(81E00010): LDR R1, SP, 10H
0C3Ek(42000000): MOV R2, R0, 0H
ENDl
0C3Fl .FIXUP P
0C3Fl(F7118005): BL MOD1 [Files] PROC24
ENDm WriteCaption;
0C40m(8FE00000): LDR LNK, SP, 0H
0C41m(4EE80054): ADD SP, SP, 54H
0C42m(C700000F): B LNK
(* PROCEDURE PrintCaption(obj: Object; x, y: INTEGER);
VAR fnt: Fonts.Font;
i: INTEGER; ch: CHAR;
R: Texts.Reader;
s: ARRAY 128 OF CHAR;
BEGIN
IF obj(Caption).len > 0 THEN
Texts.OpenReader(R, T, obj(Caption).pos); Texts.Read(R, ch);
fnt := R.fnt; DEC(y, fnt.minY*4); i := 0;
WHILE ch >= " " DO s[i] := ch; INC(i); Texts.Read(R, ch) END ;
s[i] := 0X;
IF i > 0 THEN Printer.String(obj.x*4 + x, obj.y*4 + y, s, fnt.name) END
END
END PrintCaption; *)
(* ---------------------- Macro Methods ------------------------ *)
PROCEDURE NewMacro;
VAR mac: Macro;
BEGINn NEW(mac);o new := mac;p mac.doq := MacMethod
0C43n(4EE90008): SUB SP, SP, 8H
0C44n(AFE00000): STR LNK, SP, 0H
0C45o(40E80004): ADD R0, SP, 4H
0C46o .FIXUP D
0C46o(8D00000F): LDR SB, MT, MOD0 [Graphics]
0C47o(41D80178): ADD R1, SB, 178H [data]
0C48o(D752550C): BL MT [trap=0, pos=21077]
0C49p(80E00004): LDR R0, SP, 4H
0C4Ap .FIXUP D
0C4Ap(8D000004): LDR SB, MT, MOD0 [Graphics]
0C4Bp(A0D001A0): STR R0, SB, 1A0H [data]
0C4Cq(80E00004): LDR R0, SP, 4H
0C4Dq(D152684C): BLEQ MT [trap=4, pos=21096]
ENDr NewMacro;
0C4Er(81D001B0): LDR R1, SB, 1B0H
0C4Fr(A1000014): STR R1, R0, 14H
0C50r(8FE00000): LDR LNK, SP, 0H
0C51r(4EE80008): ADD SP, SP, 8H
0C52r(C700000F): B LNK
PROCEDURE CopyMacro(src, dst: Object);
BEGINs dst.xt := src.xu;v dst.yw := src.yx;y dst.wz := src.wa;b dst.hc := src.hd;e
0C53s(4EE9000C): SUB SP, SP, CH
0C54s(AFE00000): STR LNK, SP, 0H
0C55s(A0E00004): STR R0, SP, 4H
0C56s(A1E00008): STR R1, SP, 8H
0C57t(80E00008): LDR R0, SP, 8H
0C58t(D152BD4C): BLEQ MT [trap=4, pos=21181]
0C59u(81E00004): LDR R1, SP, 4H
0C5Au(D152C64C): BLEQ MT [trap=4, pos=21190]
0C5Bv(81100000): LDR R1, R1, 0H
0C5Cv(A1000000): STR R1, R0, 0H
0C5Dw(80E00008): LDR R0, SP, 8H
0C5Ew(D152CD4C): BLEQ MT [trap=4, pos=21197]
0C5Fx(81E00004): LDR R1, SP, 4H
0C60x(D152D64C): BLEQ MT [trap=4, pos=21206]
0C61y(81100004): LDR R1, R1, 4H
0C62y(A1000004): STR R1, R0, 4H
0C63z(80E00008): LDR R0, SP, 8H
0C64z(D152DD4C): BLEQ MT [trap=4, pos=21213]
0C65a(81E00004): LDR R1, SP, 4H
0C66a(D152E64C): BLEQ MT [trap=4, pos=21222]
0C67b(81100008): LDR R1, R1, 8H
0C68b(A1000008): STR R1, R0, 8H
0C69c(80E00008): LDR R0, SP, 8H
0C6Ac(D152ED4C): BLEQ MT [trap=4, pos=21229]
0C6Bd(81E00004): LDR R1, SP, 4H
0C6Cd(D152F64C): BLEQ MT [trap=4, pos=21238]
0C6De(8110000C): LDR R1, R1, CH
0C6Ee(A100000C): STR R1, R0, CH
dst.colf := src.colg;h dst(Macro)i.mac := src(Macro)j.mac
0C6Ff(80E00008): LDR R0, SP, 8H
0C70f(D153034C): BLEQ MT [trap=4, pos=21251]
0C71g(81E00004): LDR R1, SP, 4H
0C72g(D1530E4C): BLEQ MT [trap=4, pos=21262]
0C73h(91100010): LDR R1, R1, 10H
0C74h(B1000010): STR R1, R0, 10H
0C75i(80E00008): LDR R0, SP, 8H
0C76i(E1000005): BEQ 5 [0C7CH]
0C77i(810FFFF8): LDR R1, R0, FFFFFFF8H
0C78i(81100004): LDR R1, R1, 4H
0C79i .FIXUP D
0C79i(8D00002F): LDR SB, MT, MOD0 [Graphics]
0C7Ai(42D80178): ADD R2, SB, 178H [data]
0C7Bi(02290001): SUB R2, R2, R1
0C7Ci(D9531A2C): BLNE MT [trap=2, pos=21274]
0C7Dj(81E00004): LDR R1, SP, 4H
0C7Ej(E1000004): BEQ 4 [0C83H]
0C7Fj(821FFFF8): LDR R2, R1, FFFFFFF8H
0C80j(82200004): LDR R2, R2, 4H
0C81j(43D80178): ADD R3, SB, 178H
0C82j(03390002): SUB R3, R3, R2
0C83j(D9532C2C): BLNE MT [trap=2, pos=21292]
ENDk CopyMacro;
0C84k(8110001C): LDR R1, R1, 1CH
0C85k(A100001C): STR R1, R0, 1CH
0C86k(8FE00000): LDR LNK, SP, 0H
0C87k(4EE8000C): ADD SP, SP, CH
0C88k(C700000F): B LNK
PROCEDURE ChangeMacro(obj: Object; VAR M: Msg);
BEGINl
0C89l(4EE90010): SUB SP, SP, 10H
0C8Al(AFE00000): STR LNK, SP, 0H
0C8Bl(A0E00004): STR R0, SP, 4H
0C8Cl(A1E00008): STR R1, SP, 8H
0C8Dl(A2E0000C): STR R2, SP, CH
CASE M OF ColorMsg:m obj.coln := M.col ENDo
0C8Em(80E0000C): LDR R0, SP, CH
0C8Fm(80000004): LDR R0, R0, 4H
0C90m .FIXUP D
0C90m(8D000017): LDR SB, MT, MOD0 [Graphics]
0C91m(41D80044): ADD R1, SB, 44H [data]
0C92m(01190000): SUB R1, R1, R0
0C93m(E9000005): BNE 5 [0C99H]
0C94n(80E00004): LDR R0, SP, 4H
0C95n(D1539C4C): BLEQ MT [trap=4, pos=21404]
0C96o(81E00008): LDR R1, SP, 8H
0C97o(81100000): LDR R1, R1, 0H
0C98o(B1000010): STR R1, R0, 10H
ENDp ChangeMacro;
0C99p(8FE00000): LDR LNK, SP, 0H
0C9Ap(4EE80010): ADD SP, SP, 10H
0C9Bp(C700000F): B LNK
PROCEDURE MacroSelectable(obj: Object; x, y: INTEGER): BOOLEAN;
BEGINq
0C9Cq(4EE90010): SUB SP, SP, 10H
0C9Dq(AFE00000): STR LNK, SP, 0H
0C9Eq(A0E00004): STR R0, SP, 4H
0C9Fq(A1E00008): STR R1, SP, 8H
0CA0q(A2E0000C): STR R2, SP, CH
RETURN (obj.xr <= x)s & (tx <= obj.xu + 8)v & (wobj.yx <= y)y & (zy <= obj.ya + 8)b
0CA1r(80E00004): LDR R0, SP, 4H
0CA2r(D154194C): BLEQ MT [trap=4, pos=21529]
0CA3s(80000000): LDR R0, R0, 0H
0CA4s(81E00008): LDR R1, SP, 8H
0CA5s(00090001): SUB R0, R0, R1
0CA6t(EE000016): BGT 22 [0CBDH]
0CA7u(80E00004): LDR R0, SP, 4H
0CA8u(D1542D4C): BLEQ MT [trap=4, pos=21549]
0CA9v(80000000): LDR R0, R0, 0H
0CAAv(40080008): ADD R0, R0, 8H
0CABv(81E00008): LDR R1, SP, 8H
0CACv(01190000): SUB R1, R1, R0
0CADw(EE00000F): BGT 15 [0CBDH]
0CAEx(80E00004): LDR R0, SP, 4H
0CAFx(D1543B4C): BLEQ MT [trap=4, pos=21563]
0CB0y(80000004): LDR R0, R0, 4H
0CB1y(81E0000C): LDR R1, SP, CH
0CB2y(00090001): SUB R0, R0, R1
0CB3z(EE000009): BGT 9 [0CBDH]
0CB4a(80E00004): LDR R0, SP, 4H
0CB5a(D1544F4C): BLEQ MT [trap=4, pos=21583]
0CB6b(80000004): LDR R0, R0, 4H
0CB7b(40080008): ADD R0, R0, 8H
0CB8b(81E0000C): LDR R1, SP, CH
0CB9b(01190000): SUB R1, R1, R0
ENDc MacroSelectable;
0CBAc(EE000002): BGT 2 [0CBDH]
0CBBc(40000001): MOV R0, R0, 1H
0CBCc(E7000001): B 1 [0CBEH]
0CBDc(40000000): MOV R0, R0, 0H
0CBEc(8FE00000): LDR LNK, SP, 0H
0CBFc(4EE80010): ADD SP, SP, 10H
0CC0c(C700000F): B LNK
PROCEDURE ReadMacro(obj: Object; VAR R: Files.Rider; VAR C: Context);
VAR lno: BYTE; name: ARRAY 32 OF CHAR;
BEGINd Files.ReadByte(R,e lno)f;g
0CC1d(4EE9003C): SUB SP, SP, 3CH
0CC2d(AFE00000): STR LNK, SP, 0H
0CC3d(A0E00004): STR R0, SP, 4H
0CC4d(A1E00008): STR R1, SP, 8H
0CC5d(A2E0000C): STR R2, SP, CH
0CC6d(A3E00010): STR R3, SP, 10H
0CC7d(A4E00014): STR R4, SP, 14H
0CC8e(80E00008): LDR R0, SP, 8H
0CC9e(81E0000C): LDR R1, SP, CH
0CCAf(42E80018): ADD R2, SP, 18H
0CCBg .FIXUP P
0CCBg(F710E08C): BL MOD1 [Files] PROC14
Files.ReadString(R,h name)i;j obj(Macro)k.mac := ThisMac(Cl.lib[lno]m,n name)o
0CCCh(80E00008): LDR R0, SP, 8H
0CCDh(81E0000C): LDR R1, SP, CH
0CCEi(42E8001C): ADD R2, SP, 1CH
0CCFi(43000020): MOV R3, R0, 20H
0CD0j .FIXUP P
0CD0j(F7114005): BL MOD1 [Files] PROC20
0CD1k(80E00004): LDR R0, SP, 4H
0CD2k(E1000005): BEQ 5 [0CD8H]
0CD3k(810FFFF8): LDR R1, R0, FFFFFFF8H
0CD4k(81100004): LDR R1, R1, 4H
0CD5k .FIXUP D
0CD5k(8D000045): LDR SB, MT, MOD0 [Graphics]
0CD6k(42D80178): ADD R2, SB, 178H [data]
0CD7k(02290001): SUB R2, R2, R1
0CD8k(D955292C): BLNE MT [trap=2, pos=21801]
0CD9l(4EE90004): SUB SP, SP, 4H
0CDAl(A0E00000): STR R0, SP, 0H
0CDBm(90E0001C): LDR R0, SP, 1CH
0CDCm(41090004): SUB R1, R0, 4H
0CDDm(DA55431C): BLCC MT [trap=1, pos=21827]
0CDEm(40010002): LSL R0, R0, 2H
0CDFm(81E00014): LDR R1, SP, 14H
0CE0m(00180000): ADD R0, R1, R0
0CE1n(80000034): LDR R0, R0, 34H
0CE2o(41E80020): ADD R1, SP, 20H
0CE3o(42000020): MOV R2, R0, 20H
ENDp ReadMacro;
0CE4p(F7FFFB75): BL -1163 [085AH]
0CE5p(01000000): MOV R1, R0, R0
0CE6p(80E00000): LDR R0, SP, 0H
0CE7p(4EE80004): ADD SP, SP, 4H
0CE8p(A100001C): STR R1, R0, 1CH
0CE9p(8FE00000): LDR LNK, SP, 0H
0CEAp(4EE8003C): ADD SP, SP, 3CH
0CEBp(C700000F): B LNK
PROCEDURE WriteMacro(obj: Object; cno: INTEGER; VAR W1: Files.Rider; VAR C: Context);
VAR lno: INTEGER;
BEGINq lno := 0;r
0CECq(4EE90020): SUB SP, SP, 20H
0CEDq(AFE00000): STR LNK, SP, 0H
0CEEq(A0E00004): STR R0, SP, 4H
0CEFq(A1E00008): STR R1, SP, 8H
0CF0q(A2E0000C): STR R2, SP, CH
0CF1q(A3E00010): STR R3, SP, 10H
0CF2q(A4E00014): STR R4, SP, 14H
0CF3q(A5E00018): STR R5, SP, 18H
0CF4r(40000000): MOV R0, R0, 0H
0CF5r(A0E0001C): STR R0, SP, 1CH
WHILE (lno < C.noflibs)s & (tobj(Macro)u.mac.libv # C.lib[lno]w)x DOy INC(lno) ENDz ;
0CF6s(80E0001C): LDR R0, SP, 1CH
0CF7s(81E00014): LDR R1, SP, 14H
0CF8s(81100004): LDR R1, R1, 4H
0CF9s(00090001): SUB R0, R0, R1
0CFAt(ED000018): BGE 24 [0D13H]
0CFBu(80E00004): LDR R0, SP, 4H
0CFCu(E1000005): BEQ 5 [0D02H]
0CFDu(810FFFF8): LDR R1, R0, FFFFFFF8H
0CFEu(81100004): LDR R1, R1, 4H
0CFFu .FIXUP D
0CFFu(8D00002A): LDR SB, MT, MOD0 [Graphics]
0D00u(42D80178): ADD R2, SB, 178H [data]
0D01u(02290001): SUB R2, R2, R1
0D02u(D956062C): BLNE MT [trap=2, pos=22022]
0D03v(8000001C): LDR R0, R0, 1CH
0D04v(D1560E4C): BLEQ MT [trap=4, pos=22030]
0D05w(81E0001C): LDR R1, SP, 1CH
0D06w(42190004): SUB R2, R1, 4H
0D07w(DA561B1C): BLCC MT [trap=1, pos=22043]
0D08w(41110002): LSL R1, R1, 2H
0D09w(82E00014): LDR R2, SP, 14H
0D0Aw(01280001): ADD R1, R2, R1
0D0Bx(8000002C): LDR R0, R0, 2CH
0D0Cx(81100034): LDR R1, R1, 34H
0D0Dx(00090001): SUB R0, R0, R1
0D0Ey(E1000004): BEQ 4 [0D13H]
0D0Fz(80E0001C): LDR R0, SP, 1CH
0D10z(40080001): ADD R0, R0, 1H
0D11z(A0E0001C): STR R0, SP, 1CH
0D12z(E7FFFFE3): B -29 [0CF6H]
IF lno = C.noflibs THENa
0D13a(80E0001C): LDR R0, SP, 1CH
0D14a(81E00014): LDR R1, SP, 14H
0D15a(81100004): LDR R1, R1, 4H
0D16a(00090001): SUB R0, R0, R1
0D17a(E9000033): BNE 51 [0D4BH]
Files.WriteByte(W1,b 0)c;d Files.WriteByte(W1,e 1)f;g Files.WriteByte(W1,h lno)i;j
0D18b(80E0000C): LDR R0, SP, CH
0D19b(81E00010): LDR R1, SP, 10H
0D1Ac(42000000): MOV R2, R0, 0H
0D1Bd .FIXUP P
0D1Bd(F711604B): BL MOD1 [Files] PROC22
0D1Ce(80E0000C): LDR R0, SP, CH
0D1De(81E00010): LDR R1, SP, 10H
0D1Ef(42000001): MOV R2, R0, 1H
0D1Fg .FIXUP P
0D1Fg(F7116004): BL MOD1 [Files] PROC22
0D20h(80E0000C): LDR R0, SP, CH
0D21h(81E00010): LDR R1, SP, 10H
0D22i(82E0001C): LDR R2, SP, 1CH
0D23j .FIXUP P
0D23j(F7116004): BL MOD1 [Files] PROC22
Files.WriteString(W1,k obj(Macro)l.mac.libm.namen)o;p C.lib[lno]q := obj(Macro)r.mac.libs;t INC(C.noflibs)
0D24k(80E0000C): LDR R0, SP, CH
0D25k(81E00010): LDR R1, SP, 10H
0D26l(82E00004): LDR R2, SP, 4H
0D27l(E1000005): BEQ 5 [0D2DH]
0D28l(832FFFF8): LDR R3, R2, FFFFFFF8H
0D29l(83300004): LDR R3, R3, 4H
0D2Al .FIXUP D
0D2Al(8D00002B): LDR SB, MT, MOD0 [Graphics]
0D2Bl(44D80178): ADD R4, SB, 178H [data]
0D2Cl(04490003): SUB R4, R4, R3
0D2Dl(D956C12C): BLNE MT [trap=2, pos=22209]
0D2Em(8220001C): LDR R2, R2, 1CH
0D2Fm(D156C94C): BLEQ MT [trap=4, pos=22217]
0D30n(8220002C): LDR R2, R2, 2CH
0D31n(D156CE4C): BLEQ MT [trap=4, pos=22222]
0D32o(43000020): MOV R3, R0, 20H
0D33p .FIXUP P
0D33p(F711C010): BL MOD1 [Files] PROC28
0D34q(80E0001C): LDR R0, SP, 1CH
0D35q(41090004): SUB R1, R0, 4H
0D36q(DA56DB1C): BLCC MT [trap=1, pos=22235]
0D37q(40010002): LSL R0, R0, 2H
0D38q(81E00014): LDR R1, SP, 14H
0D39q(00180000): ADD R0, R1, R0
0D3Ar(81E00004): LDR R1, SP, 4H
0D3Br(E1000005): BEQ 5 [0D41H]
0D3Cr(821FFFF8): LDR R2, R1, FFFFFFF8H
0D3Dr(82200004): LDR R2, R2, 4H
0D3Er .FIXUP D
0D3Er(8D000014): LDR SB, MT, MOD0 [Graphics]
0D3Fr(43D80178): ADD R3, SB, 178H [data]
0D40r(03390002): SUB R3, R3, R2
0D41r(D956E92C): BLNE MT [trap=2, pos=22249]
0D42s(8110001C): LDR R1, R1, 1CH
0D43s(D156F14C): BLEQ MT [trap=4, pos=22257]
0D44t(8110002C): LDR R1, R1, 2CH
0D45t(A1000034): STR R1, R0, 34H
ENDu ;
0D46u(80E00014): LDR R0, SP, 14H
0D47u(40080004): ADD R0, R0, 4H
0D48u(81000000): LDR R1, R0, 0H
0D49u(41180001): ADD R1, R1, 1H
0D4Au(A1000000): STR R1, R0, 0H
WriteObj(W1,v cno,w obj)x;y Files.WriteByte(W1,z lno)a;b Files.WriteString(W1,c obj(Macro)d.mac.namee)f
0D4Bv(80E0000C): LDR R0, SP, CH
0D4Cv(81E00010): LDR R1, SP, 10H
0D4Dw(82E00008): LDR R2, SP, 8H
0D4Ex(83E00004): LDR R3, SP, 4H
0D4Fy(F7FFF73C): BL -2244 [048CH]
0D50z(80E0000C): LDR R0, SP, CH
0D51z(81E00010): LDR R1, SP, 10H
0D52a(82E0001C): LDR R2, SP, 1CH
0D53b .FIXUP P
0D53b(F7116020): BL MOD1 [Files] PROC22
0D54c(80E0000C): LDR R0, SP, CH
0D55c(81E00010): LDR R1, SP, 10H
0D56d(82E00004): LDR R2, SP, 4H
0D57d(E1000005): BEQ 5 [0D5DH]
0D58d(832FFFF8): LDR R3, R2, FFFFFFF8H
0D59d(83300004): LDR R3, R3, 4H
0D5Ad .FIXUP D
0D5Ad(8D00001C): LDR SB, MT, MOD0 [Graphics]
0D5Bd(44D80178): ADD R4, SB, 178H [data]
0D5Cd(04490003): SUB R4, R4, R3
0D5Dd(D957622C): BLNE MT [trap=2, pos=22370]
0D5Ee(8220001C): LDR R2, R2, 1CH
0D5Fe(D1576B4C): BLEQ MT [trap=4, pos=22379]
0D60f(43000020): MOV R3, R0, 20H
ENDg WriteMacro;
0D61g .FIXUP P
0D61g(F711C00E): BL MOD1 [Files] PROC28
0D62g(8FE00000): LDR LNK, SP, 0H
0D63g(4EE80020): ADD SP, SP, 20H
0D64g(C700000F): B LNK
(* PROCEDURE PrintMacro(obj: Object; x, y: INTEGER);
VAR elem: Object; mh: MacHead;
BEGIN mh := obj(Macro).mac;
IF mh # NIL THEN elem := mh.first;
WHILE elem # NIL DO elem.do.print(elem, obj.x*4 + x, obj.y*4 + y); elem := elem.next END
END
END PrintMacro; *)
PROCEDURE Notify(T: Texts.Text; op: INTEGER; beg, end: LONGINT);
BEGINh
0D65h(4EE90014): SUB SP, SP, 14H
0D66h(AFE00000): STR LNK, SP, 0H
0D67h(A0E00004): STR R0, SP, 4H
0D68h(A1E00008): STR R1, SP, 8H
0D69h(A2E0000C): STR R2, SP, CH
0D6Ah(A3E00010): STR R3, SP, 10H
ENDi Notify;
0D6Bi(8FE00000): LDR LNK, SP, 0H
0D6Ci(4EE80014): ADD SP, SP, 14H
0D6Di(C700000F): B LNK
PROCEDURE InstallDrawMethods*(drawLine, drawCaption, drawMacro: PROCEDURE (obj: Object; VAR msg: Msg));
BEGINj LineMethod.drawk := drawLine;l CapMethod.drawm := drawCaption;n MacMethod.drawo := drawMacro
0D6Ej .PROC 53
0D6Ej(4EE90010): SUB SP, SP, 10H
0D6Fj(AFE00000): STR LNK, SP, 0H
0D70j(A0E00004): STR R0, SP, 4H
0D71j(A1E00008): STR R1, SP, 8H
0D72j(A2E0000C): STR R2, SP, CH
0D73k .FIXUP D
0D73k(8D000019): LDR SB, MT, MOD0 [Graphics]
0D74k(80D001A8): LDR R0, SB, 1A8H [data]
0D75k(D159764C): BLEQ MT [trap=4, pos=22902]
0D76l(81E00004): LDR R1, SP, 4H
0D77l(A1000048): STR R1, R0, 48H
0D78m(80D001AC): LDR R0, SB, 1ACH
0D79m(D159924C): BLEQ MT [trap=4, pos=22930]
0D7An(81E00008): LDR R1, SP, 8H
0D7Bn(A1000048): STR R1, R0, 48H
0D7Co(80D001B0): LDR R0, SB, 1B0H
0D7Do(D159B14C): BLEQ MT [trap=4, pos=22961]
ENDp InstallDrawMethods;
0D7Ep(81E0000C): LDR R1, SP, CH
0D7Fp(A1000048): STR R1, R0, 48H
0D80p(8FE00000): LDR LNK, SP, 0H
0D81p(4EE80010): ADD SP, SP, 10H
0D82p(C700000F): B LNK
BEGINq Texts.OpenWriter(W)r;s Texts.OpenWriter(TW)t;u Texts.OpenWriter(XW)v;w
0D83q .PROC 0
0D83q .ENTRYPOINT
0D83q(4EE90004): SUB SP, SP, 4H
0D84q(AFE00000): STR LNK, SP, 0H
0D85r .FIXUP D
0D85r(8D000012): LDR SB, MT, MOD0 [Graphics]
0D86r(40D801BC): ADD R0, SB, 1BCH [data]
0D87r .FIXUP D
0D87r(8D400002): LDR SB, MT, MOD4 [Texts]
0D88r(41D80005): ADD R1, SB, VAR5
0D89s .FIXUP P
0D89s(F7417028): BL MOD4 [Texts] PROC23
0D8At .FIXUP D
0D8At(8D000003): LDR SB, MT, MOD0 [Graphics]
0D8Bt(40D801E4): ADD R0, SB, 1E4H [data]
0D8Ct .FIXUP D
0D8Ct(8D400002): LDR SB, MT, MOD4 [Texts]
0D8Dt(41D80005): ADD R1, SB, VAR5
0D8Eu .FIXUP P
0D8Eu(F7417005): BL MOD4 [Texts] PROC23
0D8Fv .FIXUP D
0D8Fv(8D000003): LDR SB, MT, MOD0 [Graphics]
0D90v(40D8020C): ADD R0, SB, 20CH [data]
0D91v .FIXUP D
0D91v(8D400002): LDR SB, MT, MOD4 [Texts]
0D92v(41D80005): ADD R1, SB, VAR5
0D93w .FIXUP P
0D93w(F7417005): BL MOD4 [Texts] PROC23
width := 1;x GetLib0 := GetLib;y
0D94x(40000001): MOV R0, R0, 1H
0D95x .FIXUP D
0D95x(8D000004): LDR SB, MT, MOD0 [Graphics]
0D96x(A0D00198): STR R0, SB, 198H [data]
0D97y(F7000000): BL 0 [0D98H]
0D98y(40F91C38): SUB R0, LNK, 1C38H
0D99y(A0D001B4): STR R0, SB, 1B4H
NEW(T);z Texts.Open(T,a "")b;c T.notifyd := Notify;e
0D9Az(40D801A4): ADD R0, SB, 1A4H
0D9Bz .FIXUP D
0D9Bz(8D400006): LDR SB, MT, MOD4 [Texts]
0D9Cz(41D80001): ADD R1, SB, VAR1
0D9Dz(D75A4C0C): BL MT [trap=0, pos=23116]
0D9Ea .FIXUP D
0D9Ea(8D000003): LDR SB, MT, MOD0 [Graphics]
0D9Fa(80D001A4): LDR R0, SB, 1A4H [data]
0DA0b(41D80268): ADD R1, SB, 268H
0DA1b(42000001): MOV R2, R0, 1H
0DA2c .FIXUP P
0DA2c(F740700F): BL MOD4 [Texts] PROC7
0DA3d .FIXUP D
0DA3d(8D000005): LDR SB, MT, MOD0 [Graphics]
0DA4d(80D001A4): LDR R0, SB, 1A4H [data]
0DA5d(D15A684C): BLEQ MT [trap=4, pos=23144]
0DA6e(F7000000): BL 0 [0DA7H]
0DA7e(41F90108): SUB R1, LNK, 108H
0DA8e(A1000008): STR R1, R0, 8H
NEW(LineMethod);f LineMethod.newg := NewLine;h LineMethod.copyi := CopyLine;j
0DA9f(40D801A8): ADD R0, SB, 1A8H
0DAAf(41D8012C): ADD R1, SB, 12CH
0DABf(D75A860C): BL MT [trap=0, pos=23174]
0DACg .FIXUP D
0DACg(8D000009): LDR SB, MT, MOD0 [Graphics]
0DADg(80D001A8): LDR R0, SB, 1A8H [data]
0DAEg(D15A954C): BLEQ MT [trap=4, pos=23189]
0DAFh(F7000000): BL 0 [0DB0H]
0DB0h(41F90F50): SUB R1, LNK, F50H
0DB1h(A1000040): STR R1, R0, 40H
0DB2i(80D001A8): LDR R0, SB, 1A8H
0DB3i(D15AB14C): BLEQ MT [trap=4, pos=23217]
0DB4j(F7000000): BL 0 [0DB5H]
0DB5j(41F90F24): SUB R1, LNK, F24H
0DB6j(A1000044): STR R1, R0, 44H
LineMethod.selectablek := LineSelectable;l LineMethod.changem := ChangeLine;n
0DB7k(80D001A8): LDR R0, SB, 1A8H
0DB8k(D15AD64C): BLEQ MT [trap=4, pos=23254]
0DB9l(F7000000): BL 0 [0DBAH]
0DBAl(41F90DC8): SUB R1, LNK, DC8H
0DBBl(A1000050): STR R1, R0, 50H
0DBCm(80D001A8): LDR R0, SB, 1A8H
0DBDm(D15AFB4C): BLEQ MT [trap=4, pos=23291]
0DBEn(F7000000): BL 0 [0DBFH]
0DBFn(41F90EB8): SUB R1, LNK, EB8H
0DC0n(A100004C): STR R1, R0, 4CH
LineMethod.reado := ReadLine;p LineMethod.writeq := WriteLine;r (*LineMethod.print := PrintLine;*)
0DC1o(80D001A8): LDR R0, SB, 1A8H
0DC2o(D15B1C4C): BLEQ MT [trap=4, pos=23324]
0DC3p(F7000000): BL 0 [0DC4H]
0DC4p(41F90D44): SUB R1, LNK, D44H
0DC5p(A1000054): STR R1, R0, 54H
0DC6q(80D001A8): LDR R0, SB, 1A8H
0DC7q(D15B3A4C): BLEQ MT [trap=4, pos=23354]
0DC8r(F7000000): BL 0 [0DC9H]
0DC9r(41F90D30): SUB R1, LNK, D30H
0DCAr(A1000058): STR R1, R0, 58H
NEW(CapMethod);s CapMethod.newt := NewCaption;u CapMethod.copyv := CopyCaption;w
0DCBs(40D801AC): ADD R0, SB, 1ACH
0DCCs(41D8012C): ADD R1, SB, 12CH
0DCDs(D75B7D0C): BL MT [trap=0, pos=23421]
0DCEt .FIXUP D
0DCEt(8D000022): LDR SB, MT, MOD0 [Graphics]
0DCFt(80D001AC): LDR R0, SB, 1ACH [data]
0DD0t(D15B8B4C): BLEQ MT [trap=4, pos=23435]
0DD1u(F7000000): BL 0 [0DD2H]
0DD2u(41F90D14): SUB R1, LNK, D14H
0DD3u(A1000040): STR R1, R0, 40H
0DD4v(80D001AC): LDR R0, SB, 1ACH
0DD5v(D15BA94C): BLEQ MT [trap=4, pos=23465]
0DD6w(F7000000): BL 0 [0DD7H]
0DD7w(41F90CE8): SUB R1, LNK, CE8H
0DD8w(A1000044): STR R1, R0, 44H
CapMethod.selectablex := CaptionSelectable;y CapMethod.changez := ChangeCaption;a
0DD9x(80D001AC): LDR R0, SB, 1ACH
0DDAx(D15BD04C): BLEQ MT [trap=4, pos=23504]
0DDBy(F7000000): BL 0 [0DDCH]
0DDCy(41F9096C): SUB R1, LNK, 96CH
0DDDy(A1000050): STR R1, R0, 50H
0DDEz(80D001AC): LDR R0, SB, 1ACH
0DDFz(D15BF74C): BLEQ MT [trap=4, pos=23543]
0DE0a(F7000000): BL 0 [0DE1H]
0DE1a(41F90B50): SUB R1, LNK, B50H
0DE2a(A100004C): STR R1, R0, 4CH
CapMethod.readb := ReadCaption;c CapMethod.writed := WriteCaption;e (*CapMethod.print := PrintCaption;*)
0DE3b(80D001AC): LDR R0, SB, 1ACH
0DE4b(D15C1A4C): BLEQ MT [trap=4, pos=23578]
0DE5c(F7000000): BL 0 [0DE6H]
0DE6c(41F908E8): SUB R1, LNK, 8E8H
0DE7c(A1000054): STR R1, R0, 54H
0DE8d(80D001AC): LDR R0, SB, 1ACH
0DE9d(D15C3A4C): BLEQ MT [trap=4, pos=23610]
0DEAe(F7000000): BL 0 [0DEBH]
0DEBe(41F907C8): SUB R1, LNK, 7C8H
0DECe(A1000058): STR R1, R0, 58H
NEW(MacMethod);f MacMethod.newg := NewMacro;h MacMethod.copyi := CopyMacro;j
0DEDf(40D801B0): ADD R0, SB, 1B0H
0DEEf(41D8012C): ADD R1, SB, 12CH
0DEFf(D75C820C): BL MT [trap=0, pos=23682]
0DF0g .FIXUP D
0DF0g(8D000022): LDR SB, MT, MOD0 [Graphics]
0DF1g(80D001B0): LDR R0, SB, 1B0H [data]
0DF2g(D15C904C): BLEQ MT [trap=4, pos=23696]
0DF3h(F7000000): BL 0 [0DF4H]
0DF4h(41F906C4): SUB R1, LNK, 6C4H
0DF5h(A1000040): STR R1, R0, 40H
0DF6i(80D001B0): LDR R0, SB, 1B0H
0DF7i(D15CAC4C): BLEQ MT [trap=4, pos=23724]
0DF8j(F7000000): BL 0 [0DF9H]
0DF9j(41F90698): SUB R1, LNK, 698H
0DFAj(A1000044): STR R1, R0, 44H
MacMethod.selectablek := MacroSelectable;l MacMethod.changem := ChangeMacro;n
0DFBk(80D001B0): LDR R0, SB, 1B0H
0DFCk(D15CD14C): BLEQ MT [trap=4, pos=23761]
0DFDl(F7000000): BL 0 [0DFEH]
0DFEl(41F90588): SUB R1, LNK, 588H
0DFFl(A1000050): STR R1, R0, 50H
0E00m(80D001B0): LDR R0, SB, 1B0H
0E01m(D15CF64C): BLEQ MT [trap=4, pos=23798]
0E02n(F7000000): BL 0 [0E03H]
0E03n(41F905E8): SUB R1, LNK, 5E8H
0E04n(A100004C): STR R1, R0, 4CH
MacMethod.reado := ReadMacro;p MacMethod.writeq := WriteMacro;r (*MacMethod.print := PrintMacro*)
0E05o(80D001B0): LDR R0, SB, 1B0H
0E06o(D15D174C): BLEQ MT [trap=4, pos=23831]
0E07p(F7000000): BL 0 [0E08H]
0E08p(41F9051C): SUB R1, LNK, 51CH
0E09p(A1000054): STR R1, R0, 54H
0E0Aq(80D001B0): LDR R0, SB, 1B0H
0E0Bq(D15D354C): BLEQ MT [trap=4, pos=23861]
0E0Cr(F7000000): BL 0 [0E0DH]
0E0Dr(41F90484): SUB R1, LNK, 484H
0E0Er(A1000058): STR R1, R0, 58H
END Graphics.s
0E0Fs(8FE00000): LDR LNK, SP, 0H
0E10s(4EE80004): ADD SP, SP, 4H
0E11s(C700000F): B LNK