| 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*) |
0000 | a .PROC 1 |
0000 | a .COMMAND OpenMacro |
0000 | a(4EE9000C): SUB SP, SP, CH |
0001 | a(AFE00000): STR LNK, SP, 0H |
| F := GraphicFrames.Selected();b |
0002 | b .FIXUP P |
0002 | b(F790A002): BL MOD9 [GraphicFrames] PROC10 |
0003 | b(A0E00004): STR R0, SP, 4H |
| IF F # NIL THENc |
0004 | c(80E00004): LDR R0, SP, 4H |
0005 | c(E100002F): BEQ 47 [0035H] |
| sel := F.graphd.sele;f |
0006 | d(80E00004): LDR R0, SP, 4H |
0007 | d(D1013A4C): BLEQ MT [trap=4, pos=314] |
0008 | e(8000001C): LDR R0, R0, 1CH |
0009 | e(D1013E4C): BLEQ MT [trap=4, pos=318] |
000A | f(80000004): LDR R0, R0, 4H |
000B | f(A0E00008): STR R0, SP, 8H |
| IF (sel # NIL)g & (hsel IS Graphics.Macro)i THENj |
000C | g(80E00008): LDR R0, SP, 8H |
000D | h(E1000027): BEQ 39 [0035H] |
000E | i(80E00008): LDR R0, SP, 8H |
000F | i(E1000005): BEQ 5 [0015H] |
0010 | i(810FFFF8): LDR R1, R0, FFFFFFF8H |
0011 | i(81100004): LDR R1, R1, 4H |
0012 | i .FIXUP D |
0012 | i(8D700012): LDR SB, MT, MOD7 [Graphics] |
0013 | i(42D8000E): ADD R2, SB, VAR14 |
0014 | i(02290001): SUB R2, R2, R1 |
0015 | j(E900001F): BNE 31 [0035H] |
| GraphicFrames.Deselect(F)k;l |
0016 | k(80E00004): LDR R0, SP, 4H |
0017 | l .FIXUP P |
0017 | l(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 |
0018 | m(80E00008): LDR R0, SP, 8H |
0019 | m(E1000005): BEQ 5 [001FH] |
001A | m(810FFFF8): LDR R1, R0, FFFFFFF8H |
001B | m(81100004): LDR R1, R1, 4H |
001C | m .FIXUP D |
001C | m(8D70000A): LDR SB, MT, MOD7 [Graphics] |
001D | m(42D8000E): ADD R2, SB, VAR14 |
001E | m(02290001): SUB R2, R2, R1 |
001F | m(D901C32C): BLNE MT [trap=2, pos=451] |
0020 | n(8000001C): LDR R0, R0, 1CH |
0021 | o(81E00004): LDR R1, SP, 4H |
0022 | o(D101D04C): BLEQ MT [trap=4, pos=464] |
0023 | p(8110001C): LDR R1, R1, 1CH |
0024 | q(82E00004): LDR R2, SP, 4H |
0025 | q(D101D84C): BLEQ MT [trap=4, pos=472] |
0026 | r(83E00004): LDR R3, SP, 4H |
0027 | r(D101E04C): BLEQ MT [trap=4, pos=480] |
0028 | s(82200040): LDR R2, R2, 40H |
0029 | s(83300030): LDR R3, R3, 30H |
002A | s(02290003): SUB R2, R2, R3 |
002B | t(83E00004): LDR R3, SP, 4H |
002C | t(D101E84C): BLEQ MT [trap=4, pos=488] |
002D | u(84E00004): LDR R4, SP, 4H |
002E | u(D101F04C): BLEQ MT [trap=4, pos=496] |
002F | v(83300044): LDR R3, R3, 44H |
0030 | v(84400034): LDR R4, R4, 34H |
0031 | v(03390004): SUB R3, R3, R4 |
0032 | w .FIXUP P |
0032 | w(F773201B): BL MOD7 [Graphics] PROC50 |
| GraphicFrames.Draw(F)x |
0033 | x(80E00004): LDR R0, SP, 4H |
| ENDy |
0034 | y .FIXUP P |
0034 | y(F790C002): BL MOD9 [GraphicFrames] PROC12 |
| END |
| ENDz OpenMacro; |
0035 | z(8FE00000): LDR LNK, SP, 0H |
0036 | z(4EE8000C): ADD SP, SP, CH |
0037 | z(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 |
0038 | a .PROC 2 |
0038 | a .COMMAND MakeMacro |
0038 | a(4EE900C8): SUB SP, SP, C8H |
0039 | a(AFE00000): STR LNK, SP, 0H |
003A | b(40E80014): ADD R0, SP, 14H |
003B | b .FIXUP D |
003B | b(8D10001F): LDR SB, MT, MOD1 [Texts] |
003C | b(41D80003): ADD R1, SB, VAR3 |
003D | c .FIXUP D |
003D | c(8D400002): LDR SB, MT, MOD4 [Oberon] |
003E | c(42D8000E): ADD R2, SB, VAR14 |
003F | c(82200008): LDR R2, R2, 8H |
0040 | d .FIXUP D |
0040 | d(8D400003): LDR SB, MT, MOD4 [Oberon] |
0041 | d(43D8000E): ADD R3, SB, VAR14 |
0042 | d(8330000C): LDR R3, R3, CH |
0043 | e .FIXUP P |
0043 | e(F711500F): BL MOD1 [Texts] PROC21 |
0044 | f(40E80014): ADD R0, SP, 14H |
0045 | f .FIXUP D |
0045 | f(8D100005): LDR SB, MT, MOD1 [Texts] |
0046 | f(41D80003): ADD R1, SB, VAR3 |
0047 | g .FIXUP P |
0047 | g(F7116004): BL MOD1 [Texts] PROC22 |
| IF S.class = Texts.Name THENh |
0048 | h(80E00050): LDR R0, SP, 50H |
0049 | h(40090001): SUB R0, R0, 1H |
004A | h(E9000091): BNE 145 [00DCH] |
| Lname := S.s;i Texts.Scan(S)j;k |
004B | i(40E80088): ADD R0, SP, 88H |
004C | i(41E80068): ADD R1, SP, 68H |
004D | i(42000008): MOV R2, R0, 8H |
004E | i(83100000): LDR R3, R1, 0H |
004F | i(41180004): ADD R1, R1, 4H |
0050 | i(A3000000): STR R3, R0, 0H |
0051 | i(40080004): ADD R0, R0, 4H |
0052 | i(42290001): SUB R2, R2, 1H |
0053 | i(E9FFFFFA): BNE -6 [004EH] |
0054 | j(40E80014): ADD R0, SP, 14H |
0055 | j .FIXUP D |
0055 | j(8D100010): LDR SB, MT, MOD1 [Texts] |
0056 | j(41D80003): ADD R1, SB, VAR3 |
0057 | k .FIXUP P |
0057 | k(F7116010): BL MOD1 [Texts] PROC22 |
| IF (S.class = Texts.Name)l OR (mS.class = Texts.String)n & (oS.len <= 8)p THENq |
0058 | l(80E00050): LDR R0, SP, 50H |
0059 | l(40090001): SUB R0, R0, 1H |
005A | m(E1000006): BEQ 6 [0061H] |
005B | n(80E00050): LDR R0, SP, 50H |
005C | n(40090002): SUB R0, R0, 2H |
005D | o(E900007E): BNE 126 [00DCH] |
005E | p(80E00064): LDR R0, SP, 64H |
005F | p(40090008): SUB R0, R0, 8H |
0060 | q(EE00007B): BGT 123 [00DCH] |
| F := GraphicFrames.Focus();r Mname := S.s;s |
0061 | r .FIXUP P |
0061 | r(F790900A): BL MOD9 [GraphicFrames] PROC9 |
0062 | r(A0E0000C): STR R0, SP, CH |
0063 | s(40E800A8): ADD R0, SP, A8H |
0064 | s(41E80068): ADD R1, SP, 68H |
0065 | s(42000008): MOV R2, R0, 8H |
0066 | s(83100000): LDR R3, R1, 0H |
0067 | s(41180004): ADD R1, R1, 4H |
0068 | s(A3000000): STR R3, R0, 0H |
0069 | s(40080004): ADD R0, R0, 4H |
006A | s(42290001): SUB R2, R2, 1H |
006B | s(E9FFFFFA): BNE -6 [0066H] |
| IF (F # NIL)t & (uF.graphv.selw # NIL)x THENy |
006C | t(80E0000C): LDR R0, SP, CH |
006D | u(E100006E): BEQ 110 [00DCH] |
006E | v(80E0000C): LDR R0, SP, CH |
006F | v(D1047C4C): BLEQ MT [trap=4, pos=1148] |
0070 | w(8000001C): LDR R0, R0, 1CH |
0071 | w(D104804C): BLEQ MT [trap=4, pos=1152] |
0072 | x(80000004): LDR R0, R0, 4H |
0073 | y(E1000068): BEQ 104 [00DCH] |
| Graphics.GetLib(Lname,z FALSE,a L)b;c |
0074 | z(40E80088): ADD R0, SP, 88H |
0075 | z(41000020): MOV R1, R0, 20H |
0076 | a(42000000): MOV R2, R0, 0H |
0077 | b(43E80010): ADD R3, SP, 10H |
0078 | c .FIXUP P |
0078 | c(F772C017): BL MOD7 [Graphics] PROC44 |
| IF L = NIL THENd |
0079 | d(80E00010): LDR R0, SP, 10H |
007A | d(E9000018): BNE 24 [0093H] |
| Texts.WriteString(W,e "new library ")f;g Texts.WriteString(W,h Lname)i;j Texts.WriteLn(W)k;l |
007B | e .FIXUP D |
007B | e(8D000026): LDR SB, MT, MOD0 [MacroTool] |
007C | e(40D80000): ADD R0, SB, 0H [data] |
007D | e .FIXUP D |
007D | e(8D100002): LDR SB, MT, MOD1 [Texts] |
007E | e(41D80005): ADD R1, SB, VAR5 |
007F | f .FIXUP D |
007F | f(8D000002): LDR SB, MT, MOD0 [MacroTool] |
0080 | f(42D80028): ADD R2, SB, 28H ["new library "] |
0081 | f(4300000D): MOV R3, R0, DH |
0082 | g .FIXUP P |
0082 | g(F711D00A): BL MOD1 [Texts] PROC29 |
0083 | h .FIXUP D |
0083 | h(8D000004): LDR SB, MT, MOD0 [MacroTool] |
0084 | h(40D80000): ADD R0, SB, 0H [data] |
0085 | h .FIXUP D |
0085 | h(8D100002): LDR SB, MT, MOD1 [Texts] |
0086 | h(41D80005): ADD R1, SB, VAR5 |
0087 | i(42E80088): ADD R2, SP, 88H |
0088 | i(43000020): MOV R3, R0, 20H |
0089 | j .FIXUP P |
0089 | j(F711D007): BL MOD1 [Texts] PROC29 |
008A | k .FIXUP D |
008A | k(8D000005): LDR SB, MT, MOD0 [MacroTool] |
008B | k(40D80000): ADD R0, SB, 0H [data] |
008C | k .FIXUP D |
008C | k(8D100002): LDR SB, MT, MOD1 [Texts] |
008D | k(41D80005): ADD R1, SB, VAR5 |
008E | l .FIXUP P |
008E | l(F711C005): BL MOD1 [Texts] PROC28 |
| L := Graphics.NewLib(Lname)m |
008F | m(40E80088): ADD R0, SP, 88H |
0090 | m(41000020): MOV R1, R0, 20H |
| ENDn ; |
0091 | n .FIXUP P |
0091 | n(F772D003): BL MOD7 [Graphics] PROC45 |
0092 | n(A0E00010): STR R0, SP, 10H |
| Graphics.MakeMac(F.grapho,p machead)q;r |
0093 | o(80E0000C): LDR R0, SP, CH |
0094 | o(D1058E4C): BLEQ MT [trap=4, pos=1422] |
0095 | p(8000001C): LDR R0, R0, 1CH |
0096 | q(41E80008): ADD R1, SP, 8H |
0097 | r .FIXUP P |
0097 | r(F7733006): BL MOD7 [Graphics] PROC51 |
| IF machead # NIL THENs |
0098 | s(80E00008): LDR R0, SP, 8H |
0099 | s(E1000030): BEQ 48 [00CAH] |
| machead.namet := Mname;u Graphics.InsertMac(machead,v L,w newMac)x;y Texts.WriteString(W,z Mname)a;b |
009A | t(80E00008): LDR R0, SP, 8H |
009B | t(D105D24C): BLEQ MT [trap=4, pos=1490] |
009C | u(41E800A8): ADD R1, SP, A8H |
009D | u(42000008): MOV R2, R0, 8H |
009E | u(83100000): LDR R3, R1, 0H |
009F | u(41180004): ADD R1, R1, 4H |
00A0 | u(A3000000): STR R3, R0, 0H |
00A1 | u(40080004): ADD R0, R0, 4H |
00A2 | u(42290001): SUB R2, R2, 1H |
00A3 | u(E9FFFFFA): BNE -6 [009EH] |
00A4 | v(80E00008): LDR R0, SP, 8H |
00A5 | w(81E00010): LDR R1, SP, 10H |
00A6 | x(42E80004): ADD R2, SP, 4H |
00A7 | y .FIXUP P |
00A7 | y(F7734010): BL MOD7 [Graphics] PROC52 |
00A8 | z .FIXUP D |
00A8 | z(8D00001C): LDR SB, MT, MOD0 [MacroTool] |
00A9 | z(40D80000): ADD R0, SB, 0H [data] |
00AA | z .FIXUP D |
00AA | z(8D100002): LDR SB, MT, MOD1 [Texts] |
00AB | z(41D80005): ADD R1, SB, VAR5 |
00AC | a(42E800A8): ADD R2, SP, A8H |
00AD | a(43000020): MOV R3, R0, 20H |
00AE | b .FIXUP P |
00AE | b(F711D007): BL MOD1 [Texts] PROC29 |
| IF newMac THENc Texts.WriteString(W,d " inserted in ")e ELSEf Textsg.WriteString(W,h " replaced in ")i ENDj ; |
00AF | c(90E00004): LDR R0, SP, 4H |
00B0 | c(E1000009): BEQ 9 [00BAH] |
00B1 | d .FIXUP D |
00B1 | d(8D000007): LDR SB, MT, MOD0 [MacroTool] |
00B2 | d(40D80000): ADD R0, SB, 0H [data] |
00B3 | d .FIXUP D |
00B3 | d(8D100002): LDR SB, MT, MOD1 [Texts] |
00B4 | d(41D80005): ADD R1, SB, VAR5 |
00B5 | e .FIXUP D |
00B5 | e(8D000002): LDR SB, MT, MOD0 [MacroTool] |
00B6 | e(42D80038): ADD R2, SB, 38H [" inserted in "] |
00B7 | e(4300000E): MOV R3, R0, EH |
00B8 | f .FIXUP P |
00B8 | f(F711D00A): BL MOD1 [Texts] PROC29 |
00B9 | g(E7000008): B 8 [00C2H] |
00BA | h .FIXUP D |
00BA | h(8D000005): LDR SB, MT, MOD0 [MacroTool] |
00BB | h(40D80000): ADD R0, SB, 0H [data] |
00BC | h .FIXUP D |
00BC | h(8D100002): LDR SB, MT, MOD1 [Texts] |
00BD | h(41D80005): ADD R1, SB, VAR5 |
00BE | i .FIXUP D |
00BE | i(8D000002): LDR SB, MT, MOD0 [MacroTool] |
00BF | i(42D80048): ADD R2, SB, 48H [" replaced in "] |
00C0 | i(4300000E): MOV R3, R0, EH |
00C1 | j .FIXUP P |
00C1 | j(F711D009): BL MOD1 [Texts] PROC29 |
| Texts.WriteString(W,k Lname)l |
00C2 | k .FIXUP D |
00C2 | k(8D000004): LDR SB, MT, MOD0 [MacroTool] |
00C3 | k(40D80000): ADD R0, SB, 0H [data] |
00C4 | k .FIXUP D |
00C4 | k(8D100002): LDR SB, MT, MOD1 [Texts] |
00C5 | k(41D80005): ADD R1, SB, VAR5 |
00C6 | l(42E80088): ADD R2, SP, 88H |
00C7 | l(43000020): MOV R3, R0, 20H |
| ELSEm Textsn.WriteString(W,o " empty macro")p |
00C8 | m .FIXUP P |
00C8 | m(F711D007): BL MOD1 [Texts] PROC29 |
00C9 | n(E7000008): B 8 [00D2H] |
00CA | o .FIXUP D |
00CA | o(8D000006): LDR SB, MT, MOD0 [MacroTool] |
00CB | o(40D80000): ADD R0, SB, 0H [data] |
00CC | o .FIXUP D |
00CC | o(8D100002): LDR SB, MT, MOD1 [Texts] |
00CD | o(41D80005): ADD R1, SB, VAR5 |
00CE | p .FIXUP D |
00CE | p(8D000002): LDR SB, MT, MOD0 [MacroTool] |
00CF | p(42D80058): ADD R2, SB, 58H [" empty macro"] |
00D0 | p(4300000D): MOV R3, R0, DH |
| ENDq ; |
00D1 | q .FIXUP P |
00D1 | q(F711D009): BL MOD1 [Texts] PROC29 |
| Texts.WriteLn(W)r;s Texts.Append(Oberon.Log,t W.buf)u |
00D2 | r .FIXUP D |
00D2 | r(8D000004): LDR SB, MT, MOD0 [MacroTool] |
00D3 | r(40D80000): ADD R0, SB, 0H [data] |
00D4 | r .FIXUP D |
00D4 | r(8D100002): LDR SB, MT, MOD1 [Texts] |
00D5 | r(41D80005): ADD R1, SB, VAR5 |
00D6 | s .FIXUP P |
00D6 | s(F711C005): BL MOD1 [Texts] PROC28 |
00D7 | t .FIXUP D |
00D7 | t(8D400003): LDR SB, MT, MOD4 [Oberon] |
00D8 | t(80D0000D): LDR R0, SB, VAR13 |
00D9 | u .FIXUP D |
00D9 | u(8D000002): LDR SB, MT, MOD0 [MacroTool] |
00DA | u(81D00000): LDR R1, SB, 0H [data] |
| ENDv |
00DB | v .FIXUP P |
00DB | v(F710E005): BL MOD1 [Texts] PROC14 |
| END |
| END |
| ENDw MakeMacro; |
00DC | w(8FE00000): LDR LNK, SP, 0H |
00DD | w(4EE800C8): ADD SP, SP, C8H |
00DE | w(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 |
00DF | x .PROC 3 |
00DF | x .COMMAND LoadLibrary |
00DF | x(4EE9007C): SUB SP, SP, 7CH |
00E0 | x(AFE00000): STR LNK, SP, 0H |
00E1 | y(40E80004): ADD R0, SP, 4H |
00E2 | y .FIXUP D |
00E2 | y(8D100009): LDR SB, MT, MOD1 [Texts] |
00E3 | y(41D80003): ADD R1, SB, VAR3 |
00E4 | z .FIXUP D |
00E4 | z(8D400002): LDR SB, MT, MOD4 [Oberon] |
00E5 | z(42D8000E): ADD R2, SB, VAR14 |
00E6 | z(82200008): LDR R2, R2, 8H |
00E7 | a .FIXUP D |
00E7 | a(8D400003): LDR SB, MT, MOD4 [Oberon] |
00E8 | a(43D8000E): ADD R3, SB, VAR14 |
00E9 | a(8330000C): LDR R3, R3, CH |
00EA | b .FIXUP P |
00EA | b(F711500F): BL MOD1 [Texts] PROC21 |
00EB | c(40E80004): ADD R0, SP, 4H |
00EC | c .FIXUP D |
00EC | c(8D100005): LDR SB, MT, MOD1 [Texts] |
00ED | c(41D80003): ADD R1, SB, VAR3 |
00EE | d .FIXUP P |
00EE | d(F7116004): BL MOD1 [Texts] PROC22 |
| IF S.class = Texts.Name THENe |
00EF | e(80E00040): LDR R0, SP, 40H |
00F0 | e(40090001): SUB R0, R0, 1H |
00F1 | e(E9000029): BNE 41 [011BH] |
| Texts.WriteString(W,f S.s)g;h Graphics.GetLib(S.s,i FALSE,j L)k;l |
00F2 | f .FIXUP D |
00F2 | f(8D000006): LDR SB, MT, MOD0 [MacroTool] |
00F3 | f(40D80000): ADD R0, SB, 0H [data] |
00F4 | f .FIXUP D |
00F4 | f(8D100002): LDR SB, MT, MOD1 [Texts] |
00F5 | f(41D80005): ADD R1, SB, VAR5 |
00F6 | g(42E80058): ADD R2, SP, 58H |
00F7 | g(43000020): MOV R3, R0, 20H |
00F8 | h .FIXUP P |
00F8 | h(F711D00A): BL MOD1 [Texts] PROC29 |
00F9 | i(40E80058): ADD R0, SP, 58H |
00FA | i(41000020): MOV R1, R0, 20H |
00FB | j(42000000): MOV R2, R0, 0H |
00FC | k(43E80078): ADD R3, SP, 78H |
00FD | l .FIXUP P |
00FD | l(F772C005): BL MOD7 [Graphics] PROC44 |
| IF L # NIL THENm Texts.WriteString(W,n " loaded")o ELSEp Textsq.WriteString(W,r " not found")s ENDt ; |
00FE | m(80E00078): LDR R0, SP, 78H |
00FF | m(E1000009): BEQ 9 [0109H] |
0100 | n .FIXUP D |
0100 | n(8D00000C): LDR SB, MT, MOD0 [MacroTool] |
0101 | n(40D80000): ADD R0, SB, 0H [data] |
0102 | n .FIXUP D |
0102 | n(8D100002): LDR SB, MT, MOD1 [Texts] |
0103 | n(41D80005): ADD R1, SB, VAR5 |
0104 | o .FIXUP D |
0104 | o(8D000002): LDR SB, MT, MOD0 [MacroTool] |
0105 | o(42D80068): ADD R2, SB, 68H [" loaded"] |
0106 | o(43000008): MOV R3, R0, 8H |
0107 | p .FIXUP P |
0107 | p(F711D00A): BL MOD1 [Texts] PROC29 |
0108 | q(E7000008): B 8 [0111H] |
0109 | r .FIXUP D |
0109 | r(8D000005): LDR SB, MT, MOD0 [MacroTool] |
010A | r(40D80000): ADD R0, SB, 0H [data] |
010B | r .FIXUP D |
010B | r(8D100002): LDR SB, MT, MOD1 [Texts] |
010C | r(41D80005): ADD R1, SB, VAR5 |
010D | s .FIXUP D |
010D | s(8D000002): LDR SB, MT, MOD0 [MacroTool] |
010E | s(42D80070): ADD R2, SB, 70H [" not found"] |
010F | s(4300000B): MOV R3, R0, BH |
0110 | t .FIXUP P |
0110 | t(F711D009): BL MOD1 [Texts] PROC29 |
| Texts.WriteLn(W)u;v Texts.Append(Oberon.Log,w W.buf)x |
0111 | u .FIXUP D |
0111 | u(8D000004): LDR SB, MT, MOD0 [MacroTool] |
0112 | u(40D80000): ADD R0, SB, 0H [data] |
0113 | u .FIXUP D |
0113 | u(8D100002): LDR SB, MT, MOD1 [Texts] |
0114 | u(41D80005): ADD R1, SB, VAR5 |
0115 | v .FIXUP P |
0115 | v(F711C005): BL MOD1 [Texts] PROC28 |
0116 | w .FIXUP D |
0116 | w(8D400003): LDR SB, MT, MOD4 [Oberon] |
0117 | w(80D0000D): LDR R0, SB, VAR13 |
0118 | x .FIXUP D |
0118 | x(8D000002): LDR SB, MT, MOD0 [MacroTool] |
0119 | x(81D00000): LDR R1, SB, 0H [data] |
| ENDy |
011A | y .FIXUP P |
011A | y(F710E005): BL MOD1 [Texts] PROC14 |
| ENDz LoadLibrary; |
011B | z(8FE00000): LDR LNK, SP, 0H |
011C | z(4EE8007C): ADD SP, SP, 7CH |
011D | z(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 |
011E | a .PROC 4 |
011E | a .COMMAND StoreLibrary |
011E | a(4EE90080): SUB SP, SP, 80H |
011F | a(AFE00000): STR LNK, SP, 0H |
0120 | b(40E80008): ADD R0, SP, 8H |
0121 | b .FIXUP D |
0121 | b(8D100009): LDR SB, MT, MOD1 [Texts] |
0122 | b(41D80003): ADD R1, SB, VAR3 |
0123 | c .FIXUP D |
0123 | c(8D400002): LDR SB, MT, MOD4 [Oberon] |
0124 | c(42D8000E): ADD R2, SB, VAR14 |
0125 | c(82200008): LDR R2, R2, 8H |
0126 | d .FIXUP D |
0126 | d(8D400003): LDR SB, MT, MOD4 [Oberon] |
0127 | d(43D8000E): ADD R3, SB, VAR14 |
0128 | d(8330000C): LDR R3, R3, CH |
0129 | e .FIXUP P |
0129 | e(F711500F): BL MOD1 [Texts] PROC21 |
012A | f(40E80008): ADD R0, SP, 8H |
012B | f .FIXUP D |
012B | f(8D100005): LDR SB, MT, MOD1 [Texts] |
012C | f(41D80003): ADD R1, SB, VAR3 |
012D | g .FIXUP P |
012D | g(F7116004): BL MOD1 [Texts] PROC22 |
| IF S.class = Texts.Name THENh |
012E | h(80E00044): LDR R0, SP, 44H |
012F | h(40090001): SUB R0, R0, 1H |
0130 | h(E9000028): BNE 40 [0159H] |
| Graphics.StoreLib(L,i S.s)j;k Texts.WriteString(W,l S.s)m;n |
0131 | i(80E0007C): LDR R0, SP, 7CH |
0132 | j(41E8005C): ADD R1, SP, 5CH |
0133 | j(42000020): MOV R2, R0, 20H |
0134 | k .FIXUP P |
0134 | k(F772E007): BL MOD7 [Graphics] PROC46 |
0135 | l .FIXUP D |
0135 | l(8D00000A): LDR SB, MT, MOD0 [MacroTool] |
0136 | l(40D80000): ADD R0, SB, 0H [data] |
0137 | l .FIXUP D |
0137 | l(8D100002): LDR SB, MT, MOD1 [Texts] |
0138 | l(41D80005): ADD R1, SB, VAR5 |
0139 | m(42E8005C): ADD R2, SP, 5CH |
013A | m(43000020): MOV R3, R0, 20H |
013B | n .FIXUP P |
013B | n(F711D007): BL MOD1 [Texts] PROC29 |
| IF L # NIL THENo Texts.WriteString(W,p " stored")q ELSEr Textss.WriteString(W,t " not found")u ENDv ; |
013C | o(80E0007C): LDR R0, SP, 7CH |
013D | o(E1000009): BEQ 9 [0147H] |
013E | p .FIXUP D |
013E | p(8D000007): LDR SB, MT, MOD0 [MacroTool] |
013F | p(40D80000): ADD R0, SB, 0H [data] |
0140 | p .FIXUP D |
0140 | p(8D100002): LDR SB, MT, MOD1 [Texts] |
0141 | p(41D80005): ADD R1, SB, VAR5 |
0142 | q .FIXUP D |
0142 | q(8D000002): LDR SB, MT, MOD0 [MacroTool] |
0143 | q(42D8007C): ADD R2, SB, 7CH [" stored"] |
0144 | q(43000008): MOV R3, R0, 8H |
0145 | r .FIXUP P |
0145 | r(F711D00A): BL MOD1 [Texts] PROC29 |
0146 | s(E7000008): B 8 [014FH] |
0147 | t .FIXUP D |
0147 | t(8D000005): LDR SB, MT, MOD0 [MacroTool] |
0148 | t(40D80000): ADD R0, SB, 0H [data] |
0149 | t .FIXUP D |
0149 | t(8D100002): LDR SB, MT, MOD1 [Texts] |
014A | t(41D80005): ADD R1, SB, VAR5 |
014B | u .FIXUP D |
014B | u(8D000002): LDR SB, MT, MOD0 [MacroTool] |
014C | u(42D80084): ADD R2, SB, 84H [" not found"] |
014D | u(4300000B): MOV R3, R0, BH |
014E | v .FIXUP P |
014E | v(F711D009): BL MOD1 [Texts] PROC29 |
| Texts.WriteLn(W)w;x Texts.Append(Oberon.Log,y W.buf)z |
014F | w .FIXUP D |
014F | w(8D000004): LDR SB, MT, MOD0 [MacroTool] |
0150 | w(40D80000): ADD R0, SB, 0H [data] |
0151 | w .FIXUP D |
0151 | w(8D100002): LDR SB, MT, MOD1 [Texts] |
0152 | w(41D80005): ADD R1, SB, VAR5 |
0153 | x .FIXUP P |
0153 | x(F711C005): BL MOD1 [Texts] PROC28 |
0154 | y .FIXUP D |
0154 | y(8D400003): LDR SB, MT, MOD4 [Oberon] |
0155 | y(80D0000D): LDR R0, SB, VAR13 |
0156 | z .FIXUP D |
0156 | z(8D000002): LDR SB, MT, MOD0 [MacroTool] |
0157 | z(81D00000): LDR R1, SB, 0H [data] |
| ENDa |
0158 | a .FIXUP P |
0158 | a(F710E005): BL MOD1 [Texts] PROC14 |
| ENDb StoreLibrary; |
0159 | b(8FE00000): LDR LNK, SP, 0H |
015A | b(4EE80080): ADD SP, SP, 80H |
015B | b(C700000F): B LNK |
| |
| BEGINc Texts.OpenWriter(W)d;e Texts.WriteString(W,f "MacroTool - NW 6.8.2013")g;h |
015C | c .PROC 0 |
015C | c .ENTRYPOINT |
015C | c(4EE90004): SUB SP, SP, 4H |
015D | c(AFE00000): STR LNK, SP, 0H |
015E | d .FIXUP D |
015E | d(8D000008): LDR SB, MT, MOD0 [MacroTool] |
015F | d(40D80000): ADD R0, SB, 0H [data] |
0160 | d .FIXUP D |
0160 | d(8D100002): LDR SB, MT, MOD1 [Texts] |
0161 | d(41D80005): ADD R1, SB, VAR5 |
0162 | e .FIXUP P |
0162 | e(F711700A): BL MOD1 [Texts] PROC23 |
0163 | f .FIXUP D |
0163 | f(8D000003): LDR SB, MT, MOD0 [MacroTool] |
0164 | f(40D80000): ADD R0, SB, 0H [data] |
0165 | f .FIXUP D |
0165 | f(8D100002): LDR SB, MT, MOD1 [Texts] |
0166 | f(41D80005): ADD R1, SB, VAR5 |
0167 | g .FIXUP D |
0167 | g(8D000002): LDR SB, MT, MOD0 [MacroTool] |
0168 | g(42D80090): ADD R2, SB, 90H ["MacroTool - NW 6.8.2013"] |
0169 | g(43000018): MOV R3, R0, 18H |
016A | h .FIXUP P |
016A | h(F711D008): BL MOD1 [Texts] PROC29 |
| Texts.WriteLn(W)i;j Texts.Append(Oberon.Log,k W.buf)l |
016B | i .FIXUP D |
016B | i(8D000004): LDR SB, MT, MOD0 [MacroTool] |
016C | i(40D80000): ADD R0, SB, 0H [data] |
016D | i .FIXUP D |
016D | i(8D100002): LDR SB, MT, MOD1 [Texts] |
016E | i(41D80005): ADD R1, SB, VAR5 |
016F | j .FIXUP P |
016F | j(F711C005): BL MOD1 [Texts] PROC28 |
0170 | k .FIXUP D |
0170 | k(8D400003): LDR SB, MT, MOD4 [Oberon] |
0171 | k(80D0000D): LDR R0, SB, VAR13 |
0172 | l .FIXUP D |
0172 | l(8D000002): LDR SB, MT, MOD0 [MacroTool] |
0173 | l(81D00000): LDR R1, SB, 0H [data] |
| ENDm MacroTool.n |
0174 | m .FIXUP P |
0174 | m(F710E005): BL MOD1 [Texts] PROC14 |
0175 | n(8FE00000): LDR LNK, SP, 0H |
0176 | n(4EE80004): ADD SP, SP, 4H |
0177 | n(C700000F): B LNK |