MacroTool

Used Exports

BUILTINS: BOOLEAN CHAR INTEGER
GraphicFrames: Deselect Draw Focus Frame FrameDesc.graph FrameDesc.mark FrameDesc.x FrameDesc.y LocDesc.x LocDesc.y Selected
Graphics: GetLib GraphDesc.sel InsertMac Library MacHead MacHeadDesc.name Macro MacroDesc.mac MakeMac NewLib Object OpenMac StoreLib
Oberon: Log Par Par.pos Par.text
Texts: Append Name OpenScanner OpenWriter Scan Scanner Scanner.class Scanner.len Scanner.s String WriteLn WriteString Writer Writer.buf

MODULE MacroTool; (*NW 6.8.2013*)
.MODULE MacroTool (KEY 4E7C8F86, VERSION 1, SIZE 0000071C)
.IMPORT Texts (KEY 0B9E9984)
.IMPORT Fonts (KEY F4C9F557)
.IMPORT Files (KEY 73F5D686)
.IMPORT Oberon (KEY A89CCEE2)
.IMPORT Display (KEY 4C08D3EA)
.IMPORT Viewers (KEY 25ABF199)
.IMPORT Graphics (KEY F7357DD9)
.IMPORT Modules (KEY 41C6A19A)
.IMPORT GraphicFrames (KEY 84ABBF86)
.DATA 28H
.STRING 28H "new library "
.STRING 38H " inserted in "
.STRING 48H " replaced in "
.STRING 58H " empty macro"
.STRING 68H " loaded"
.STRING 70H " not found"
.STRING 7CH " stored"
.STRING 84H " not found"
.STRING 90H "MacroTool - NW 6.8.2013"
.POINTER_REFERENCES 0H 4H 24H 18H
.FIXUP T 0H
IMPORT Texts, Oberon, Graphics, GraphicFrames;
VAR W: Texts.Writer;
PROCEDURE OpenMacro*;
VAR F: GraphicFrames.Frame; sel: Graphics.Object;
BEGINa (*expand selected macro to caret position*)
0000a .PROC 1
0000a .COMMAND OpenMacro
0000a(4EE9000C): SUB SP, SP, CH
0001a(AFE00000): STR LNK, SP, 0H
F := GraphicFrames.Selected();b
0002b .FIXUP P
0002b(F790A002): BL MOD9 [GraphicFrames] PROC10
0003b(A0E00004): STR R0, SP, 4H
IF F # NIL THENc
0004c(80E00004): LDR R0, SP, 4H
0005c(E100002F): BEQ 47 [0035H]
sel := F.graphd.sele;f
0006d(80E00004): LDR R0, SP, 4H
0007d(D1013A4C): BLEQ MT [trap=4, pos=314]
0008e(8000001C): LDR R0, R0, 1CH
0009e(D1013E4C): BLEQ MT [trap=4, pos=318]
000Af(80000004): LDR R0, R0, 4H
000Bf(A0E00008): STR R0, SP, 8H
IF (sel # NIL)g & (hsel IS Graphics.Macro)i THENj
000Cg(80E00008): LDR R0, SP, 8H
000Dh(E1000027): BEQ 39 [0035H]
000Ei(80E00008): LDR R0, SP, 8H
000Fi(E1000005): BEQ 5 [0015H]
0010i(810FFFF8): LDR R1, R0, FFFFFFF8H
0011i(81100004): LDR R1, R1, 4H
0012i .FIXUP D
0012i(8D700012): LDR SB, MT, MOD7 [Graphics]
0013i(42D8000E): ADD R2, SB, VAR14
0014i(02290001): SUB R2, R2, R1
0015j(E900001F): BNE 31 [0035H]
GraphicFrames.Deselect(F)k;l
0016k(80E00004): LDR R0, SP, 4H
0017l .FIXUP P
0017l(F7912015): BL MOD9 [GraphicFrames] PROC18
Graphics.OpenMac(sel(Graphics.Macro)m.mac,n F.grapho,p F.markq.x - F.xr,s F.markt.y - F.yu)v;w
0018m(80E00008): LDR R0, SP, 8H
0019m(E1000005): BEQ 5 [001FH]
001Am(810FFFF8): LDR R1, R0, FFFFFFF8H
001Bm(81100004): LDR R1, R1, 4H
001Cm .FIXUP D
001Cm(8D70000A): LDR SB, MT, MOD7 [Graphics]
001Dm(42D8000E): ADD R2, SB, VAR14
001Em(02290001): SUB R2, R2, R1
001Fm(D901C32C): BLNE MT [trap=2, pos=451]
0020n(8000001C): LDR R0, R0, 1CH
0021o(81E00004): LDR R1, SP, 4H
0022o(D101D04C): BLEQ MT [trap=4, pos=464]
0023p(8110001C): LDR R1, R1, 1CH
0024q(82E00004): LDR R2, SP, 4H
0025q(D101D84C): BLEQ MT [trap=4, pos=472]
0026r(83E00004): LDR R3, SP, 4H
0027r(D101E04C): BLEQ MT [trap=4, pos=480]
0028s(82200040): LDR R2, R2, 40H
0029s(83300030): LDR R3, R3, 30H
002As(02290003): SUB R2, R2, R3
002Bt(83E00004): LDR R3, SP, 4H
002Ct(D101E84C): BLEQ MT [trap=4, pos=488]
002Du(84E00004): LDR R4, SP, 4H
002Eu(D101F04C): BLEQ MT [trap=4, pos=496]
002Fv(83300044): LDR R3, R3, 44H
0030v(84400034): LDR R4, R4, 34H
0031v(03390004): SUB R3, R3, R4
0032w .FIXUP P
0032w(F773201B): BL MOD7 [Graphics] PROC50
GraphicFrames.Draw(F)x
0033x(80E00004): LDR R0, SP, 4H
ENDy
0034y .FIXUP P
0034y(F790C002): BL MOD9 [GraphicFrames] PROC12
END
ENDz OpenMacro;
0035z(8FE00000): LDR LNK, SP, 0H
0036z(4EE8000C): ADD SP, SP, CH
0037z(C700000F): B LNK
PROCEDURE MakeMacro*; (*lib mac*)
(*compose macro from selected elements into caret area*)
VAR newMac: BOOLEAN;
machead: Graphics.MacHead;
F: GraphicFrames.Frame;
L: Graphics.Library;
S: Texts.Scanner;
Lname, Mname: ARRAY 32 OF CHAR;
BEGINa Texts.OpenScanner(S,b Oberon.Par.text,c Oberon.Par.pos)d;e Texts.Scan(S)f;g
0038a .PROC 2
0038a .COMMAND MakeMacro
0038a(4EE900C8): SUB SP, SP, C8H
0039a(AFE00000): STR LNK, SP, 0H
003Ab(40E80014): ADD R0, SP, 14H
003Bb .FIXUP D
003Bb(8D10001F): LDR SB, MT, MOD1 [Texts]
003Cb(41D80003): ADD R1, SB, VAR3
003Dc .FIXUP D
003Dc(8D400002): LDR SB, MT, MOD4 [Oberon]
003Ec(42D8000E): ADD R2, SB, VAR14
003Fc(82200008): LDR R2, R2, 8H
0040d .FIXUP D
0040d(8D400003): LDR SB, MT, MOD4 [Oberon]
0041d(43D8000E): ADD R3, SB, VAR14
0042d(8330000C): LDR R3, R3, CH
0043e .FIXUP P
0043e(F711500F): BL MOD1 [Texts] PROC21
0044f(40E80014): ADD R0, SP, 14H
0045f .FIXUP D
0045f(8D100005): LDR SB, MT, MOD1 [Texts]
0046f(41D80003): ADD R1, SB, VAR3
0047g .FIXUP P
0047g(F7116004): BL MOD1 [Texts] PROC22
IF S.class = Texts.Name THENh
0048h(80E00050): LDR R0, SP, 50H
0049h(40090001): SUB R0, R0, 1H
004Ah(E9000091): BNE 145 [00DCH]
Lname := S.s;i Texts.Scan(S)j;k
004Bi(40E80088): ADD R0, SP, 88H
004Ci(41E80068): ADD R1, SP, 68H
004Di(42000008): MOV R2, R0, 8H
004Ei(83100000): LDR R3, R1, 0H
004Fi(41180004): ADD R1, R1, 4H
0050i(A3000000): STR R3, R0, 0H
0051i(40080004): ADD R0, R0, 4H
0052i(42290001): SUB R2, R2, 1H
0053i(E9FFFFFA): BNE -6 [004EH]
0054j(40E80014): ADD R0, SP, 14H
0055j .FIXUP D
0055j(8D100010): LDR SB, MT, MOD1 [Texts]
0056j(41D80003): ADD R1, SB, VAR3
0057k .FIXUP P
0057k(F7116010): BL MOD1 [Texts] PROC22
IF (S.class = Texts.Name)l OR (mS.class = Texts.String)n & (oS.len <= 8)p THENq
0058l(80E00050): LDR R0, SP, 50H
0059l(40090001): SUB R0, R0, 1H
005Am(E1000006): BEQ 6 [0061H]
005Bn(80E00050): LDR R0, SP, 50H
005Cn(40090002): SUB R0, R0, 2H
005Do(E900007E): BNE 126 [00DCH]
005Ep(80E00064): LDR R0, SP, 64H
005Fp(40090008): SUB R0, R0, 8H
0060q(EE00007B): BGT 123 [00DCH]
F := GraphicFrames.Focus();r Mname := S.s;s
0061r .FIXUP P
0061r(F790900A): BL MOD9 [GraphicFrames] PROC9
0062r(A0E0000C): STR R0, SP, CH
0063s(40E800A8): ADD R0, SP, A8H
0064s(41E80068): ADD R1, SP, 68H
0065s(42000008): MOV R2, R0, 8H
0066s(83100000): LDR R3, R1, 0H
0067s(41180004): ADD R1, R1, 4H
0068s(A3000000): STR R3, R0, 0H
0069s(40080004): ADD R0, R0, 4H
006As(42290001): SUB R2, R2, 1H
006Bs(E9FFFFFA): BNE -6 [0066H]
IF (F # NIL)t & (uF.graphv.selw # NIL)x THENy
006Ct(80E0000C): LDR R0, SP, CH
006Du(E100006E): BEQ 110 [00DCH]
006Ev(80E0000C): LDR R0, SP, CH
006Fv(D1047C4C): BLEQ MT [trap=4, pos=1148]
0070w(8000001C): LDR R0, R0, 1CH
0071w(D104804C): BLEQ MT [trap=4, pos=1152]
0072x(80000004): LDR R0, R0, 4H
0073y(E1000068): BEQ 104 [00DCH]
Graphics.GetLib(Lname,z FALSE,a L)b;c
0074z(40E80088): ADD R0, SP, 88H
0075z(41000020): MOV R1, R0, 20H
0076a(42000000): MOV R2, R0, 0H
0077b(43E80010): ADD R3, SP, 10H
0078c .FIXUP P
0078c(F772C017): BL MOD7 [Graphics] PROC44
IF L = NIL THENd
0079d(80E00010): LDR R0, SP, 10H
007Ad(E9000018): BNE 24 [0093H]
Texts.WriteString(W,e "new library ")f;g Texts.WriteString(W,h Lname)i;j Texts.WriteLn(W)k;l
007Be .FIXUP D
007Be(8D000026): LDR SB, MT, MOD0 [MacroTool]
007Ce(40D80000): ADD R0, SB, 0H [data]
007De .FIXUP D
007De(8D100002): LDR SB, MT, MOD1 [Texts]
007Ee(41D80005): ADD R1, SB, VAR5
007Ff .FIXUP D
007Ff(8D000002): LDR SB, MT, MOD0 [MacroTool]
0080f(42D80028): ADD R2, SB, 28H ["new library "]
0081f(4300000D): MOV R3, R0, DH
0082g .FIXUP P
0082g(F711D00A): BL MOD1 [Texts] PROC29
0083h .FIXUP D
0083h(8D000004): LDR SB, MT, MOD0 [MacroTool]
0084h(40D80000): ADD R0, SB, 0H [data]
0085h .FIXUP D
0085h(8D100002): LDR SB, MT, MOD1 [Texts]
0086h(41D80005): ADD R1, SB, VAR5
0087i(42E80088): ADD R2, SP, 88H
0088i(43000020): MOV R3, R0, 20H
0089j .FIXUP P
0089j(F711D007): BL MOD1 [Texts] PROC29
008Ak .FIXUP D
008Ak(8D000005): LDR SB, MT, MOD0 [MacroTool]
008Bk(40D80000): ADD R0, SB, 0H [data]
008Ck .FIXUP D
008Ck(8D100002): LDR SB, MT, MOD1 [Texts]
008Dk(41D80005): ADD R1, SB, VAR5
008El .FIXUP P
008El(F711C005): BL MOD1 [Texts] PROC28
L := Graphics.NewLib(Lname)m
008Fm(40E80088): ADD R0, SP, 88H
0090m(41000020): MOV R1, R0, 20H
ENDn ;
0091n .FIXUP P
0091n(F772D003): BL MOD7 [Graphics] PROC45
0092n(A0E00010): STR R0, SP, 10H
Graphics.MakeMac(F.grapho,p machead)q;r
0093o(80E0000C): LDR R0, SP, CH
0094o(D1058E4C): BLEQ MT [trap=4, pos=1422]
0095p(8000001C): LDR R0, R0, 1CH
0096q(41E80008): ADD R1, SP, 8H
0097r .FIXUP P
0097r(F7733006): BL MOD7 [Graphics] PROC51
IF machead # NIL THENs
0098s(80E00008): LDR R0, SP, 8H
0099s(E1000030): BEQ 48 [00CAH]
machead.namet := Mname;u Graphics.InsertMac(machead,v L,w newMac)x;y Texts.WriteString(W,z Mname)a;b
009At(80E00008): LDR R0, SP, 8H
009Bt(D105D24C): BLEQ MT [trap=4, pos=1490]
009Cu(41E800A8): ADD R1, SP, A8H
009Du(42000008): MOV R2, R0, 8H
009Eu(83100000): LDR R3, R1, 0H
009Fu(41180004): ADD R1, R1, 4H
00A0u(A3000000): STR R3, R0, 0H
00A1u(40080004): ADD R0, R0, 4H
00A2u(42290001): SUB R2, R2, 1H
00A3u(E9FFFFFA): BNE -6 [009EH]
00A4v(80E00008): LDR R0, SP, 8H
00A5w(81E00010): LDR R1, SP, 10H
00A6x(42E80004): ADD R2, SP, 4H
00A7y .FIXUP P
00A7y(F7734010): BL MOD7 [Graphics] PROC52
00A8z .FIXUP D
00A8z(8D00001C): LDR SB, MT, MOD0 [MacroTool]
00A9z(40D80000): ADD R0, SB, 0H [data]
00AAz .FIXUP D
00AAz(8D100002): LDR SB, MT, MOD1 [Texts]
00ABz(41D80005): ADD R1, SB, VAR5
00ACa(42E800A8): ADD R2, SP, A8H
00ADa(43000020): MOV R3, R0, 20H
00AEb .FIXUP P
00AEb(F711D007): BL MOD1 [Texts] PROC29
IF newMac THENc Texts.WriteString(W,d " inserted in ")e ELSEf Textsg.WriteString(W,h " replaced in ")i ENDj ;
00AFc(90E00004): LDR R0, SP, 4H
00B0c(E1000009): BEQ 9 [00BAH]
00B1d .FIXUP D
00B1d(8D000007): LDR SB, MT, MOD0 [MacroTool]
00B2d(40D80000): ADD R0, SB, 0H [data]
00B3d .FIXUP D
00B3d(8D100002): LDR SB, MT, MOD1 [Texts]
00B4d(41D80005): ADD R1, SB, VAR5
00B5e .FIXUP D
00B5e(8D000002): LDR SB, MT, MOD0 [MacroTool]
00B6e(42D80038): ADD R2, SB, 38H [" inserted in "]
00B7e(4300000E): MOV R3, R0, EH
00B8f .FIXUP P
00B8f(F711D00A): BL MOD1 [Texts] PROC29
00B9g(E7000008): B 8 [00C2H]
00BAh .FIXUP D
00BAh(8D000005): LDR SB, MT, MOD0 [MacroTool]
00BBh(40D80000): ADD R0, SB, 0H [data]
00BCh .FIXUP D
00BCh(8D100002): LDR SB, MT, MOD1 [Texts]
00BDh(41D80005): ADD R1, SB, VAR5
00BEi .FIXUP D
00BEi(8D000002): LDR SB, MT, MOD0 [MacroTool]
00BFi(42D80048): ADD R2, SB, 48H [" replaced in "]
00C0i(4300000E): MOV R3, R0, EH
00C1j .FIXUP P
00C1j(F711D009): BL MOD1 [Texts] PROC29
Texts.WriteString(W,k Lname)l
00C2k .FIXUP D
00C2k(8D000004): LDR SB, MT, MOD0 [MacroTool]
00C3k(40D80000): ADD R0, SB, 0H [data]
00C4k .FIXUP D
00C4k(8D100002): LDR SB, MT, MOD1 [Texts]
00C5k(41D80005): ADD R1, SB, VAR5
00C6l(42E80088): ADD R2, SP, 88H
00C7l(43000020): MOV R3, R0, 20H
ELSEm Textsn.WriteString(W,o " empty macro")p
00C8m .FIXUP P
00C8m(F711D007): BL MOD1 [Texts] PROC29
00C9n(E7000008): B 8 [00D2H]
00CAo .FIXUP D
00CAo(8D000006): LDR SB, MT, MOD0 [MacroTool]
00CBo(40D80000): ADD R0, SB, 0H [data]
00CCo .FIXUP D
00CCo(8D100002): LDR SB, MT, MOD1 [Texts]
00CDo(41D80005): ADD R1, SB, VAR5
00CEp .FIXUP D
00CEp(8D000002): LDR SB, MT, MOD0 [MacroTool]
00CFp(42D80058): ADD R2, SB, 58H [" empty macro"]
00D0p(4300000D): MOV R3, R0, DH
ENDq ;
00D1q .FIXUP P
00D1q(F711D009): BL MOD1 [Texts] PROC29
Texts.WriteLn(W)r;s Texts.Append(Oberon.Log,t W.buf)u
00D2r .FIXUP D
00D2r(8D000004): LDR SB, MT, MOD0 [MacroTool]
00D3r(40D80000): ADD R0, SB, 0H [data]
00D4r .FIXUP D
00D4r(8D100002): LDR SB, MT, MOD1 [Texts]
00D5r(41D80005): ADD R1, SB, VAR5
00D6s .FIXUP P
00D6s(F711C005): BL MOD1 [Texts] PROC28
00D7t .FIXUP D
00D7t(8D400003): LDR SB, MT, MOD4 [Oberon]
00D8t(80D0000D): LDR R0, SB, VAR13
00D9u .FIXUP D
00D9u(8D000002): LDR SB, MT, MOD0 [MacroTool]
00DAu(81D00000): LDR R1, SB, 0H [data]
ENDv
00DBv .FIXUP P
00DBv(F710E005): BL MOD1 [Texts] PROC14
END
END
ENDw MakeMacro;
00DCw(8FE00000): LDR LNK, SP, 0H
00DDw(4EE800C8): ADD SP, SP, C8H
00DEw(C700000F): B LNK
PROCEDURE LoadLibrary*; (*lib file name*)
VAR S: Texts.Scanner; L: Graphics.Library;
BEGINx Texts.OpenScanner(S,y Oberon.Par.text,z Oberon.Par.pos)a;b Texts.Scan(S)c;d
00DFx .PROC 3
00DFx .COMMAND LoadLibrary
00DFx(4EE9007C): SUB SP, SP, 7CH
00E0x(AFE00000): STR LNK, SP, 0H
00E1y(40E80004): ADD R0, SP, 4H
00E2y .FIXUP D
00E2y(8D100009): LDR SB, MT, MOD1 [Texts]
00E3y(41D80003): ADD R1, SB, VAR3
00E4z .FIXUP D
00E4z(8D400002): LDR SB, MT, MOD4 [Oberon]
00E5z(42D8000E): ADD R2, SB, VAR14
00E6z(82200008): LDR R2, R2, 8H
00E7a .FIXUP D
00E7a(8D400003): LDR SB, MT, MOD4 [Oberon]
00E8a(43D8000E): ADD R3, SB, VAR14
00E9a(8330000C): LDR R3, R3, CH
00EAb .FIXUP P
00EAb(F711500F): BL MOD1 [Texts] PROC21
00EBc(40E80004): ADD R0, SP, 4H
00ECc .FIXUP D
00ECc(8D100005): LDR SB, MT, MOD1 [Texts]
00EDc(41D80003): ADD R1, SB, VAR3
00EEd .FIXUP P
00EEd(F7116004): BL MOD1 [Texts] PROC22
IF S.class = Texts.Name THENe
00EFe(80E00040): LDR R0, SP, 40H
00F0e(40090001): SUB R0, R0, 1H
00F1e(E9000029): BNE 41 [011BH]
Texts.WriteString(W,f S.s)g;h Graphics.GetLib(S.s,i FALSE,j L)k;l
00F2f .FIXUP D
00F2f(8D000006): LDR SB, MT, MOD0 [MacroTool]
00F3f(40D80000): ADD R0, SB, 0H [data]
00F4f .FIXUP D
00F4f(8D100002): LDR SB, MT, MOD1 [Texts]
00F5f(41D80005): ADD R1, SB, VAR5
00F6g(42E80058): ADD R2, SP, 58H
00F7g(43000020): MOV R3, R0, 20H
00F8h .FIXUP P
00F8h(F711D00A): BL MOD1 [Texts] PROC29
00F9i(40E80058): ADD R0, SP, 58H
00FAi(41000020): MOV R1, R0, 20H
00FBj(42000000): MOV R2, R0, 0H
00FCk(43E80078): ADD R3, SP, 78H
00FDl .FIXUP P
00FDl(F772C005): BL MOD7 [Graphics] PROC44
IF L # NIL THENm Texts.WriteString(W,n " loaded")o ELSEp Textsq.WriteString(W,r " not found")s ENDt ;
00FEm(80E00078): LDR R0, SP, 78H
00FFm(E1000009): BEQ 9 [0109H]
0100n .FIXUP D
0100n(8D00000C): LDR SB, MT, MOD0 [MacroTool]
0101n(40D80000): ADD R0, SB, 0H [data]
0102n .FIXUP D
0102n(8D100002): LDR SB, MT, MOD1 [Texts]
0103n(41D80005): ADD R1, SB, VAR5
0104o .FIXUP D
0104o(8D000002): LDR SB, MT, MOD0 [MacroTool]
0105o(42D80068): ADD R2, SB, 68H [" loaded"]
0106o(43000008): MOV R3, R0, 8H
0107p .FIXUP P
0107p(F711D00A): BL MOD1 [Texts] PROC29
0108q(E7000008): B 8 [0111H]
0109r .FIXUP D
0109r(8D000005): LDR SB, MT, MOD0 [MacroTool]
010Ar(40D80000): ADD R0, SB, 0H [data]
010Br .FIXUP D
010Br(8D100002): LDR SB, MT, MOD1 [Texts]
010Cr(41D80005): ADD R1, SB, VAR5
010Ds .FIXUP D
010Ds(8D000002): LDR SB, MT, MOD0 [MacroTool]
010Es(42D80070): ADD R2, SB, 70H [" not found"]
010Fs(4300000B): MOV R3, R0, BH
0110t .FIXUP P
0110t(F711D009): BL MOD1 [Texts] PROC29
Texts.WriteLn(W)u;v Texts.Append(Oberon.Log,w W.buf)x
0111u .FIXUP D
0111u(8D000004): LDR SB, MT, MOD0 [MacroTool]
0112u(40D80000): ADD R0, SB, 0H [data]
0113u .FIXUP D
0113u(8D100002): LDR SB, MT, MOD1 [Texts]
0114u(41D80005): ADD R1, SB, VAR5
0115v .FIXUP P
0115v(F711C005): BL MOD1 [Texts] PROC28
0116w .FIXUP D
0116w(8D400003): LDR SB, MT, MOD4 [Oberon]
0117w(80D0000D): LDR R0, SB, VAR13
0118x .FIXUP D
0118x(8D000002): LDR SB, MT, MOD0 [MacroTool]
0119x(81D00000): LDR R1, SB, 0H [data]
ENDy
011Ay .FIXUP P
011Ay(F710E005): BL MOD1 [Texts] PROC14
ENDz LoadLibrary;
011Bz(8FE00000): LDR LNK, SP, 0H
011Cz(4EE8007C): ADD SP, SP, 7CH
011Dz(C700000F): B LNK
PROCEDURE StoreLibrary*; (*lib file name*)
VAR i: INTEGER; S: Texts.Scanner; L: Graphics.Library;
BEGINa Texts.OpenScanner(S,b Oberon.Par.text,c Oberon.Par.pos)d;e Texts.Scan(S)f;g
011Ea .PROC 4
011Ea .COMMAND StoreLibrary
011Ea(4EE90080): SUB SP, SP, 80H
011Fa(AFE00000): STR LNK, SP, 0H
0120b(40E80008): ADD R0, SP, 8H
0121b .FIXUP D
0121b(8D100009): LDR SB, MT, MOD1 [Texts]
0122b(41D80003): ADD R1, SB, VAR3
0123c .FIXUP D
0123c(8D400002): LDR SB, MT, MOD4 [Oberon]
0124c(42D8000E): ADD R2, SB, VAR14
0125c(82200008): LDR R2, R2, 8H
0126d .FIXUP D
0126d(8D400003): LDR SB, MT, MOD4 [Oberon]
0127d(43D8000E): ADD R3, SB, VAR14
0128d(8330000C): LDR R3, R3, CH
0129e .FIXUP P
0129e(F711500F): BL MOD1 [Texts] PROC21
012Af(40E80008): ADD R0, SP, 8H
012Bf .FIXUP D
012Bf(8D100005): LDR SB, MT, MOD1 [Texts]
012Cf(41D80003): ADD R1, SB, VAR3
012Dg .FIXUP P
012Dg(F7116004): BL MOD1 [Texts] PROC22
IF S.class = Texts.Name THENh
012Eh(80E00044): LDR R0, SP, 44H
012Fh(40090001): SUB R0, R0, 1H
0130h(E9000028): BNE 40 [0159H]
Graphics.StoreLib(L,i S.s)j;k Texts.WriteString(W,l S.s)m;n
0131i(80E0007C): LDR R0, SP, 7CH
0132j(41E8005C): ADD R1, SP, 5CH
0133j(42000020): MOV R2, R0, 20H
0134k .FIXUP P
0134k(F772E007): BL MOD7 [Graphics] PROC46
0135l .FIXUP D
0135l(8D00000A): LDR SB, MT, MOD0 [MacroTool]
0136l(40D80000): ADD R0, SB, 0H [data]
0137l .FIXUP D
0137l(8D100002): LDR SB, MT, MOD1 [Texts]
0138l(41D80005): ADD R1, SB, VAR5
0139m(42E8005C): ADD R2, SP, 5CH
013Am(43000020): MOV R3, R0, 20H
013Bn .FIXUP P
013Bn(F711D007): BL MOD1 [Texts] PROC29
IF L # NIL THENo Texts.WriteString(W,p " stored")q ELSEr Textss.WriteString(W,t " not found")u ENDv ;
013Co(80E0007C): LDR R0, SP, 7CH
013Do(E1000009): BEQ 9 [0147H]
013Ep .FIXUP D
013Ep(8D000007): LDR SB, MT, MOD0 [MacroTool]
013Fp(40D80000): ADD R0, SB, 0H [data]
0140p .FIXUP D
0140p(8D100002): LDR SB, MT, MOD1 [Texts]
0141p(41D80005): ADD R1, SB, VAR5
0142q .FIXUP D
0142q(8D000002): LDR SB, MT, MOD0 [MacroTool]
0143q(42D8007C): ADD R2, SB, 7CH [" stored"]
0144q(43000008): MOV R3, R0, 8H
0145r .FIXUP P
0145r(F711D00A): BL MOD1 [Texts] PROC29
0146s(E7000008): B 8 [014FH]
0147t .FIXUP D
0147t(8D000005): LDR SB, MT, MOD0 [MacroTool]
0148t(40D80000): ADD R0, SB, 0H [data]
0149t .FIXUP D
0149t(8D100002): LDR SB, MT, MOD1 [Texts]
014At(41D80005): ADD R1, SB, VAR5
014Bu .FIXUP D
014Bu(8D000002): LDR SB, MT, MOD0 [MacroTool]
014Cu(42D80084): ADD R2, SB, 84H [" not found"]
014Du(4300000B): MOV R3, R0, BH
014Ev .FIXUP P
014Ev(F711D009): BL MOD1 [Texts] PROC29
Texts.WriteLn(W)w;x Texts.Append(Oberon.Log,y W.buf)z
014Fw .FIXUP D
014Fw(8D000004): LDR SB, MT, MOD0 [MacroTool]
0150w(40D80000): ADD R0, SB, 0H [data]
0151w .FIXUP D
0151w(8D100002): LDR SB, MT, MOD1 [Texts]
0152w(41D80005): ADD R1, SB, VAR5
0153x .FIXUP P
0153x(F711C005): BL MOD1 [Texts] PROC28
0154y .FIXUP D
0154y(8D400003): LDR SB, MT, MOD4 [Oberon]
0155y(80D0000D): LDR R0, SB, VAR13
0156z .FIXUP D
0156z(8D000002): LDR SB, MT, MOD0 [MacroTool]
0157z(81D00000): LDR R1, SB, 0H [data]
ENDa
0158a .FIXUP P
0158a(F710E005): BL MOD1 [Texts] PROC14
ENDb StoreLibrary;
0159b(8FE00000): LDR LNK, SP, 0H
015Ab(4EE80080): ADD SP, SP, 80H
015Bb(C700000F): B LNK
BEGINc Texts.OpenWriter(W)d;e Texts.WriteString(W,f "MacroTool - NW 6.8.2013")g;h
015Cc .PROC 0
015Cc .ENTRYPOINT
015Cc(4EE90004): SUB SP, SP, 4H
015Dc(AFE00000): STR LNK, SP, 0H
015Ed .FIXUP D
015Ed(8D000008): LDR SB, MT, MOD0 [MacroTool]
015Fd(40D80000): ADD R0, SB, 0H [data]
0160d .FIXUP D
0160d(8D100002): LDR SB, MT, MOD1 [Texts]
0161d(41D80005): ADD R1, SB, VAR5
0162e .FIXUP P
0162e(F711700A): BL MOD1 [Texts] PROC23
0163f .FIXUP D
0163f(8D000003): LDR SB, MT, MOD0 [MacroTool]
0164f(40D80000): ADD R0, SB, 0H [data]
0165f .FIXUP D
0165f(8D100002): LDR SB, MT, MOD1 [Texts]
0166f(41D80005): ADD R1, SB, VAR5
0167g .FIXUP D
0167g(8D000002): LDR SB, MT, MOD0 [MacroTool]
0168g(42D80090): ADD R2, SB, 90H ["MacroTool - NW 6.8.2013"]
0169g(43000018): MOV R3, R0, 18H
016Ah .FIXUP P
016Ah(F711D008): BL MOD1 [Texts] PROC29
Texts.WriteLn(W)i;j Texts.Append(Oberon.Log,k W.buf)l
016Bi .FIXUP D
016Bi(8D000004): LDR SB, MT, MOD0 [MacroTool]
016Ci(40D80000): ADD R0, SB, 0H [data]
016Di .FIXUP D
016Di(8D100002): LDR SB, MT, MOD1 [Texts]
016Ei(41D80005): ADD R1, SB, VAR5
016Fj .FIXUP P
016Fj(F711C005): BL MOD1 [Texts] PROC28
0170k .FIXUP D
0170k(8D400003): LDR SB, MT, MOD4 [Oberon]
0171k(80D0000D): LDR R0, SB, VAR13
0172l .FIXUP D
0172l(8D000002): LDR SB, MT, MOD0 [MacroTool]
0173l(81D00000): LDR R1, SB, 0H [data]
ENDm MacroTool.n
0174m .FIXUP P
0174m(F710E005): BL MOD1 [Texts] PROC14
0175n(8FE00000): LDR LNK, SP, 0H
0176n(4EE80004): ADD SP, SP, 4H
0177n(C700000F): B LNK