| MODULE Draw; (*NW 29.6.88 / 12.11.94 / 18.11.2013*) |
| .MODULE Draw (KEY B28F8C85, VERSION 1, SIZE 00000BB8) |
| .IMPORT Files (KEY 73F5D686) |
| .IMPORT Fonts (KEY F4C9F557) |
| .IMPORT Viewers (KEY 25ABF199) |
| .IMPORT Display (KEY 4C08D3EA) |
| .IMPORT Texts (KEY 0B9E9984) |
| .IMPORT Oberon (KEY A89CCEE2) |
| .IMPORT TextFrames (KEY 650813D5) |
| .IMPORT MenuViewers (KEY 245ACC30) |
| .IMPORT Graphics (KEY F7357DD9) |
| .IMPORT Modules (KEY 41C6A19A) |
| .IMPORT GraphicFrames (KEY 84ABBF86) |
| .DATA 28H |
| .STRING 28H "System.Close System.Copy System.Grow Draw.Delete Draw.Ticks Draw.Restore Draw.Store" |
| .STRING 84H " storing" |
| .STRING 90H " storing" |
| .STRING 9CH "Draw - NW 9.8.2013" |
| .POINTER_REFERENCES 0H 4H 24H 18H |
| .FIXUP T 0H |
| |
| IMPORT Files, Fonts, Viewers, Texts, Oberon, |
| TextFrames, MenuViewers, Graphics, GraphicFrames; |
| |
| CONST Menu = "System.Close System.Copy System.Grow Draw.Delete Draw.Ticks Draw.Restore Draw.Store"; |
| |
| VAR W: Texts.Writer; |
| |
| (*Exported commands: |
| Open, Delete, |
| SetWidth, ChangeColor, ChangeWidth, ChangeFont, |
| Store, Print, Macro, Ticks, Restore*) |
| |
| PROCEDURE Open*; |
| VAR X, Y: INTEGER; |
| beg, end, t: LONGINT; |
| G: Graphics.Graph; |
| F: GraphicFrames.Frame; |
| V: Viewers.Viewer; |
| S: Texts.Scanner; |
| text: Texts.Text; |
| BEGINa Texts.OpenScanner(S,b Oberon.Par.text,c Oberon.Par.pos)d;e Texts.Scan(S)f;g |
0000 | a .PROC 1 |
0000 | a .COMMAND Open |
0000 | a(4EE9009C): SUB SP, SP, 9CH |
0001 | a(AFE00000): STR LNK, SP, 0H |
0002 | b(40E80024): ADD R0, SP, 24H |
0003 | b .FIXUP D |
0003 | b(8D500003): LDR SB, MT, MOD5 [Texts] |
0004 | b(41D80003): ADD R1, SB, VAR3 |
0005 | c .FIXUP D |
0005 | c(8D600002): LDR SB, MT, MOD6 [Oberon] |
0006 | c(42D8000E): ADD R2, SB, VAR14 |
0007 | c(82200008): LDR R2, R2, 8H |
0008 | d .FIXUP D |
0008 | d(8D600003): LDR SB, MT, MOD6 [Oberon] |
0009 | d(43D8000E): ADD R3, SB, VAR14 |
000A | d(8330000C): LDR R3, R3, CH |
000B | e .FIXUP P |
000B | e(F751500B): BL MOD5 [Texts] PROC21 |
000C | f(40E80024): ADD R0, SP, 24H |
000D | f .FIXUP D |
000D | f(8D500005): LDR SB, MT, MOD5 [Texts] |
000E | f(41D80003): ADD R1, SB, VAR3 |
000F | g .FIXUP P |
000F | g(F7516004): BL MOD5 [Texts] PROC22 |
| IF (S.class = Texts.Char)h & (iS.c = "^")j THENk |
0010 | h(80E00060): LDR R0, SP, 60H |
0011 | h(40090006): SUB R0, R0, 6H |
0012 | i(E9000015): BNE 21 [0028H] |
0013 | j(90E00070): LDR R0, SP, 70H |
0014 | j(4009005E): SUB R0, R0, 5EH |
0015 | k(E9000012): BNE 18 [0028H] |
| Oberon.GetSelection(text,l beg,m end,n t)o;p |
0016 | l(40E80098): ADD R0, SP, 98H |
0017 | m(41E8000C): ADD R1, SP, CH |
0018 | n(42E80010): ADD R2, SP, 10H |
0019 | o(43E80014): ADD R3, SP, 14H |
001A | p .FIXUP P |
001A | p(F762900B): BL MOD6 [Oberon] PROC41 |
| IF t >= 0 THENq Texts.OpenScanner(S,r text,s beg)t;u Texts.Scan(S)v ENDw |
001B | q(80E00014): LDR R0, SP, 14H |
001C | q(40090000): SUB R0, R0, 0H |
001D | q(E500000A): BLT 10 [0028H] |
001E | r(40E80024): ADD R0, SP, 24H |
001F | r .FIXUP D |
001F | r(8D500012): LDR SB, MT, MOD5 [Texts] |
0020 | r(41D80003): ADD R1, SB, VAR3 |
0021 | s(82E00098): LDR R2, SP, 98H |
0022 | t(83E0000C): LDR R3, SP, CH |
0023 | u .FIXUP P |
0023 | u(F7515009): BL MOD5 [Texts] PROC21 |
0024 | v(40E80024): ADD R0, SP, 24H |
0025 | v .FIXUP D |
0025 | v(8D500006): LDR SB, MT, MOD5 [Texts] |
0026 | v(41D80003): ADD R1, SB, VAR3 |
0027 | w .FIXUP P |
0027 | w(F7516004): BL MOD5 [Texts] PROC22 |
| END ; |
| IF S.class = Texts.Name THENx |
0028 | x(80E00060): LDR R0, SP, 60H |
0029 | x(40090001): SUB R0, R0, 1H |
002A | x(E9000024): BNE 36 [004FH] |
| NEW(G);y Graphics.Open(G,z S.s)a;b |
002B | y(40E80018): ADD R0, SP, 18H |
002C | y .FIXUP D |
002C | y(8D900007): LDR SB, MT, MOD9 [Graphics] |
002D | y(41D80006): ADD R1, SB, VAR6 |
002E | y(D7039B0C): BL MT [trap=0, pos=923] |
002F | z(80E00018): LDR R0, SP, 18H |
0030 | a(41E80078): ADD R1, SP, 78H |
0031 | a(42000020): MOV R2, R0, 20H |
0032 | b .FIXUP P |
0032 | b(F792A00B): BL MOD9 [Graphics] PROC42 |
| NEW(F);c GraphicFrames.Open(F,d G)e;f |
0033 | c(40E8001C): ADD R0, SP, 1CH |
0034 | c .FIXUP D |
0034 | c(8DB00008): LDR SB, MT, MOD11 [GraphicFrames] |
0035 | c(41D80002): ADD R1, SB, VAR2 |
0036 | c(D703C00C): BL MT [trap=0, pos=960] |
0037 | d(80E0001C): LDR R0, SP, 1CH |
0038 | e(81E00018): LDR R1, SP, 18H |
0039 | f .FIXUP P |
0039 | f(F7B18007): BL MOD11 [GraphicFrames] PROC24 |
| Oberon.AllocateUserViewer(Oberon.Par.vwr.gXh,i X,j Y)k;l |
003A | g .FIXUP D |
003A | g(8D600006): LDR SB, MT, MOD6 [Oberon] |
003B | g(40D8000E): ADD R0, SB, VAR14 |
003C | h(80000000): LDR R0, R0, 0H |
003D | h(D1040B4C): BLEQ MT [trap=4, pos=1035] |
003E | i(80000008): LDR R0, R0, 8H |
003F | j(41E80004): ADD R1, SP, 4H |
0040 | k(42E80008): ADD R2, SP, 8H |
0041 | l .FIXUP P |
0041 | l(F7622008): BL MOD6 [Oberon] PROC34 |
| V := MenuViewers.New(TextFrames.NewMenu(S.s,m Menu)n,o F,p TextFrames.menuH,q X,r Y)s |
0042 | m(40E80078): ADD R0, SP, 78H |
0043 | m(41000020): MOV R1, R0, 20H |
0044 | n .FIXUP D |
0044 | n(8D00000A): LDR SB, MT, MOD0 [Draw] |
0045 | n(42D80028): ADD R2, SB, 28H ["System.Close System.Copy System.Grow Draw.Delete Draw.Ticks Draw.Restore Draw.Store"] |
0046 | n(4300005A): MOV R3, R0, 5AH |
0047 | o .FIXUP P |
0047 | o(F772C006): BL MOD7 [TextFrames] PROC44 |
0048 | p(81E0001C): LDR R1, SP, 1CH |
0049 | q .FIXUP D |
0049 | q(8D700005): LDR SB, MT, MOD7 [TextFrames] |
004A | q(82D00005): LDR R2, SB, VAR5 |
004B | r(83E00004): LDR R3, SP, 4H |
004C | s(84E00008): LDR R4, SP, 8H |
| ENDt |
004D | t .FIXUP P |
004D | t(F7804006): BL MOD8 [MenuViewers] PROC4 |
004E | t(A0E00020): STR R0, SP, 20H |
| ENDu Open; |
004F | u(8FE00000): LDR LNK, SP, 0H |
0050 | u(4EE8009C): ADD SP, SP, 9CH |
0051 | u(C700000F): B LNK |
| |
| PROCEDURE Delete*; |
| VAR F: GraphicFrames.Frame; |
| BEGINv |
0052 | v .PROC 2 |
0052 | v .COMMAND Delete |
0052 | v(4EE90008): SUB SP, SP, 8H |
0053 | v(AFE00000): STR LNK, SP, 0H |
| IF Oberon.Par.frame =w Oberon.Par.vwr.xdscy THENz |
0054 | w .FIXUP D |
0054 | w(8D60000B): LDR SB, MT, MOD6 [Oberon] |
0055 | w(40D8000E): ADD R0, SB, VAR14 |
0056 | x .FIXUP D |
0056 | x(8D600002): LDR SB, MT, MOD6 [Oberon] |
0057 | x(41D8000E): ADD R1, SB, VAR14 |
0058 | y(81100000): LDR R1, R1, 0H |
0059 | y(D104E74C): BLEQ MT [trap=4, pos=1255] |
005A | z(80000004): LDR R0, R0, 4H |
005B | z(81100004): LDR R1, R1, 4H |
005C | z(00090001): SUB R0, R0, R1 |
005D | z(E9000015): BNE 21 [0073H] |
| F := Oberon.Par.vwr.adscb.nextc(GraphicFrames.Frame)d;e |
005E | a .FIXUP D |
005E | a(8D600008): LDR SB, MT, MOD6 [Oberon] |
005F | a(40D8000E): ADD R0, SB, VAR14 |
0060 | b(80000000): LDR R0, R0, 0H |
0061 | b(D1050A4C): BLEQ MT [trap=4, pos=1290] |
0062 | c(80000004): LDR R0, R0, 4H |
0063 | c(D1050F4C): BLEQ MT [trap=4, pos=1295] |
0064 | d(80000000): LDR R0, R0, 0H |
0065 | d(E1000005): BEQ 5 [006BH] |
0066 | d(810FFFF8): LDR R1, R0, FFFFFFF8H |
0067 | d(81100004): LDR R1, R1, 4H |
0068 | d .FIXUP D |
0068 | d(8DB0000A): LDR SB, MT, MOD11 [GraphicFrames] |
0069 | d(42D80002): ADD R2, SB, VAR2 |
006A | d(02290001): SUB R2, R2, R1 |
006B | d(D905242C): BLNE MT [trap=2, pos=1316] |
006C | e(A0E00004): STR R0, SP, 4H |
| GraphicFrames.Erase(F)f;g Graphics.Delete(F.graphh)i |
006D | f(80E00004): LDR R0, SP, 4H |
006E | g .FIXUP P |
006E | g(F7B0D021): BL MOD11 [GraphicFrames] PROC13 |
006F | h(80E00004): LDR R0, SP, 4H |
0070 | h(D1055B4C): BLEQ MT [trap=4, pos=1371] |
0071 | i(8000001C): LDR R0, R0, 1CH |
| ENDj |
0072 | j .FIXUP P |
0072 | j(F7921004): BL MOD9 [Graphics] PROC33 |
| ENDk Delete; |
0073 | k(8FE00000): LDR LNK, SP, 0H |
0074 | k(4EE80008): ADD SP, SP, 8H |
0075 | k(C700000F): B LNK |
| |
| PROCEDURE GetArg(VAR S: Texts.Scanner); |
| VAR T: Texts.Text; beg, end, time: LONGINT; |
| BEGINl Texts.OpenScanner(S,m Oberon.Par.text,n Oberon.Par.pos)o;p Texts.Scan(S)q;r |
0076 | l(4EE9001C): SUB SP, SP, 1CH |
0077 | l(AFE00000): STR LNK, SP, 0H |
0078 | l(A0E00004): STR R0, SP, 4H |
0079 | l(A1E00008): STR R1, SP, 8H |
007A | m(80E00004): LDR R0, SP, 4H |
007B | m(81E00008): LDR R1, SP, 8H |
007C | n .FIXUP D |
007C | n(8D600014): LDR SB, MT, MOD6 [Oberon] |
007D | n(42D8000E): ADD R2, SB, VAR14 |
007E | n(82200008): LDR R2, R2, 8H |
007F | o .FIXUP D |
007F | o(8D600003): LDR SB, MT, MOD6 [Oberon] |
0080 | o(43D8000E): ADD R3, SB, VAR14 |
0081 | o(8330000C): LDR R3, R3, CH |
0082 | p .FIXUP P |
0082 | p(F7515010): BL MOD5 [Texts] PROC21 |
0083 | q(80E00004): LDR R0, SP, 4H |
0084 | q(81E00008): LDR R1, SP, 8H |
0085 | r .FIXUP P |
0085 | r(F7516003): BL MOD5 [Texts] PROC22 |
| IF (S.class = Texts.Char)s & (tS.c = "^")u THENv |
0086 | s(80E00004): LDR R0, SP, 4H |
0087 | s(8000003C): LDR R0, R0, 3CH |
0088 | s(40090006): SUB R0, R0, 6H |
0089 | t(E9000014): BNE 20 [009EH] |
008A | u(80E00004): LDR R0, SP, 4H |
008B | u(9000004C): LDR R0, R0, 4CH |
008C | u(4009005E): SUB R0, R0, 5EH |
008D | v(E9000010): BNE 16 [009EH] |
| Oberon.GetSelection(T,w beg,x end,y time)z;a |
008E | w(40E8000C): ADD R0, SP, CH |
008F | x(41E80010): ADD R1, SP, 10H |
0090 | y(42E80014): ADD R2, SP, 14H |
0091 | z(43E80018): ADD R3, SP, 18H |
0092 | a .FIXUP P |
0092 | a(F762900D): BL MOD6 [Oberon] PROC41 |
| IF time >= 0 THENb Texts.OpenScanner(S,c T,d beg)e;f Texts.Scan(S)g ENDh |
0093 | b(80E00018): LDR R0, SP, 18H |
0094 | b(40090000): SUB R0, R0, 0H |
0095 | b(E5000008): BLT 8 [009EH] |
0096 | c(80E00004): LDR R0, SP, 4H |
0097 | c(81E00008): LDR R1, SP, 8H |
0098 | d(82E0000C): LDR R2, SP, CH |
0099 | e(83E00010): LDR R3, SP, 10H |
009A | f .FIXUP P |
009A | f(F7515008): BL MOD5 [Texts] PROC21 |
009B | g(80E00004): LDR R0, SP, 4H |
009C | g(81E00008): LDR R1, SP, 8H |
009D | h .FIXUP P |
009D | h(F7516003): BL MOD5 [Texts] PROC22 |
| END |
| ENDi GetArg; |
009E | i(8FE00000): LDR LNK, SP, 0H |
009F | i(4EE8001C): ADD SP, SP, 1CH |
00A0 | i(C700000F): B LNK |
| |
| PROCEDURE SetWidth*; |
| VAR S: Texts.Scanner; |
| BEGINj GetArg(S)k;l |
00A1 | j .PROC 3 |
00A1 | j .COMMAND SetWidth |
00A1 | j(4EE90078): SUB SP, SP, 78H |
00A2 | j(AFE00000): STR LNK, SP, 0H |
00A3 | k(40E80004): ADD R0, SP, 4H |
00A4 | k .FIXUP D |
00A4 | k(8D500025): LDR SB, MT, MOD5 [Texts] |
00A5 | k(41D80003): ADD R1, SB, VAR3 |
00A6 | l(F7FFFFCF): BL -49 [0076H] |
| IF (S.class = Texts.Int)m & (nS.i > 0)o & (pS.i < 7)q THENr Graphics.SetWidth(S.i)s ENDt |
00A7 | m(80E00040): LDR R0, SP, 40H |
00A8 | m(40090003): SUB R0, R0, 3H |
00A9 | n(E9000008): BNE 8 [00B2H] |
00AA | o(80E00044): LDR R0, SP, 44H |
00AB | o(40090000): SUB R0, R0, 0H |
00AC | p(E6000005): BLE 5 [00B2H] |
00AD | q(80E00044): LDR R0, SP, 44H |
00AE | q(40090007): SUB R0, R0, 7H |
00AF | r(ED000002): BGE 2 [00B2H] |
00B0 | s(80E00044): LDR R0, SP, 44H |
00B1 | t .FIXUP P |
00B1 | t(F792B014): BL MOD9 [Graphics] PROC43 |
| ENDu SetWidth; |
00B2 | u(8FE00000): LDR LNK, SP, 0H |
00B3 | u(4EE80078): ADD SP, SP, 78H |
00B4 | u(C700000F): B LNK |
| |
| PROCEDURE ChangeColor*; |
| VAR S: Texts.Scanner; CM: Graphics.ColorMsg; |
| BEGINv GetArg(S)w;x |
00B5 | v .PROC 4 |
00B5 | v .COMMAND ChangeColor |
00B5 | v(4EE9007C): SUB SP, SP, 7CH |
00B6 | v(AFE00000): STR LNK, SP, 0H |
00B7 | w(40E80004): ADD R0, SP, 4H |
00B8 | w .FIXUP D |
00B8 | w(8D500014): LDR SB, MT, MOD5 [Texts] |
00B9 | w(41D80003): ADD R1, SB, VAR3 |
00BA | x(F7FFFFBB): BL -69 [0076H] |
| IF S.class = Texts.Int THENy |
00BB | y(80E00040): LDR R0, SP, 40H |
00BC | y(40090003): SUB R0, R0, 3H |
00BD | y(E9000008): BNE 8 [00C6H] |
| CM.col := S.i MOD 16;z GraphicFrames.Change(GraphicFrames.Selected(),a CM)b |
00BE | z(80E00044): LDR R0, SP, 44H |
00BF | z(4004000F): AND R0, R0, FH |
00C0 | z(A0E00078): STR R0, SP, 78H |
00C1 | a .FIXUP P |
00C1 | a(F7B0A010): BL MOD11 [GraphicFrames] PROC10 |
00C2 | b(41E80078): ADD R1, SP, 78H |
00C3 | b .FIXUP D |
00C3 | b(8D90000B): LDR SB, MT, MOD9 [Graphics] |
00C4 | b(42D80004): ADD R2, SB, VAR4 |
| ENDc |
00C5 | c .FIXUP P |
00C5 | c(F7B10004): BL MOD11 [GraphicFrames] PROC16 |
| ENDd ChangeColor; |
00C6 | d(8FE00000): LDR LNK, SP, 0H |
00C7 | d(4EE8007C): ADD SP, SP, 7CH |
00C8 | d(C700000F): B LNK |
| |
| PROCEDURE ChangeWidth*; |
| VAR S: Texts.Scanner; WM: Graphics.WidMsg; |
| BEGINe GetArg(S)f;g |
00C9 | e .PROC 5 |
00C9 | e .COMMAND ChangeWidth |
00C9 | e(4EE9007C): SUB SP, SP, 7CH |
00CA | e(AFE00000): STR LNK, SP, 0H |
00CB | f(40E80004): ADD R0, SP, 4H |
00CC | f .FIXUP D |
00CC | f(8D500009): LDR SB, MT, MOD5 [Texts] |
00CD | f(41D80003): ADD R1, SB, VAR3 |
00CE | g(F7FFFFA7): BL -89 [0076H] |
| IF S.class = Texts.Int THENh |
00CF | h(80E00040): LDR R0, SP, 40H |
00D0 | h(40090003): SUB R0, R0, 3H |
00D1 | h(E9000007): BNE 7 [00D9H] |
| WM.w := S.i;i GraphicFrames.Change(GraphicFrames.Selected(),j WM)k |
00D2 | i(80E00044): LDR R0, SP, 44H |
00D3 | i(A0E00078): STR R0, SP, 78H |
00D4 | j .FIXUP P |
00D4 | j(F7B0A00F): BL MOD11 [GraphicFrames] PROC10 |
00D5 | k(41E80078): ADD R1, SP, 78H |
00D6 | k .FIXUP D |
00D6 | k(8D90000A): LDR SB, MT, MOD9 [Graphics] |
00D7 | k(42D80003): ADD R2, SB, VAR3 |
| ENDl |
00D8 | l .FIXUP P |
00D8 | l(F7B10004): BL MOD11 [GraphicFrames] PROC16 |
| ENDm ChangeWidth; |
00D9 | m(8FE00000): LDR LNK, SP, 0H |
00DA | m(4EE8007C): ADD SP, SP, 7CH |
00DB | m(C700000F): B LNK |
| |
| PROCEDURE ChangeFont*; |
| VAR S: Texts.Scanner; FM: Graphics.FontMsg; |
| BEGINn GetArg(S)o;p |
00DC | n .PROC 6 |
00DC | n .COMMAND ChangeFont |
00DC | n(4EE9007C): SUB SP, SP, 7CH |
00DD | n(AFE00000): STR LNK, SP, 0H |
00DE | o(40E80004): ADD R0, SP, 4H |
00DF | o .FIXUP D |
00DF | o(8D500009): LDR SB, MT, MOD5 [Texts] |
00E0 | o(41D80003): ADD R1, SB, VAR3 |
00E1 | p(F7FFFF94): BL -108 [0076H] |
| IF S.class = Texts.Name THENq |
00E2 | q(80E00040): LDR R0, SP, 40H |
00E3 | q(40090001): SUB R0, R0, 1H |
00E4 | q(E900000B): BNE 11 [00F0H] |
| FM.fnt := Fonts.This(S.s)r;s |
00E5 | r(40E80058): ADD R0, SP, 58H |
00E6 | r(41000020): MOV R1, R0, 20H |
00E7 | s .FIXUP P |
00E7 | s(F720500F): BL MOD2 [Fonts] PROC5 |
00E8 | s(A0E00078): STR R0, SP, 78H |
| IF FM.fnt # NIL THENt GraphicFrames.Change(GraphicFrames.Selected(),u FM)v ENDw |
00E9 | t(80E00078): LDR R0, SP, 78H |
00EA | t(E1000005): BEQ 5 [00F0H] |
00EB | u .FIXUP P |
00EB | u(F7B0A004): BL MOD11 [GraphicFrames] PROC10 |
00EC | v(41E80078): ADD R1, SP, 78H |
00ED | v .FIXUP D |
00ED | v(8D90000E): LDR SB, MT, MOD9 [Graphics] |
00EE | v(42D80005): ADD R2, SB, VAR5 |
00EF | w .FIXUP P |
00EF | w(F7B10004): BL MOD11 [GraphicFrames] PROC16 |
| END |
| ENDx ChangeFont; |
00F0 | x(8FE00000): LDR LNK, SP, 0H |
00F1 | x(4EE8007C): ADD SP, SP, 7CH |
00F2 | x(C700000F): B LNK |
| |
| PROCEDURE Redraw(Q: BOOLEAN); |
| VAR v: Viewers.Viewer; G: GraphicFrames.Frame; |
| BEGINy |
00F3 | y(4EE90010): SUB SP, SP, 10H |
00F4 | y(AFE00000): STR LNK, SP, 0H |
00F5 | y(A0E00004): STR R0, SP, 4H |
| IF Oberon.Par.frame =z Oberon.Par.vwr.adscb THENc v := Oberon.Par.vwr |
00F6 | z .FIXUP D |
00F6 | z(8D600009): LDR SB, MT, MOD6 [Oberon] |
00F7 | z(40D8000E): ADD R0, SB, VAR14 |
00F8 | a .FIXUP D |
00F8 | a(8D600002): LDR SB, MT, MOD6 [Oberon] |
00F9 | a(41D8000E): ADD R1, SB, VAR14 |
00FA | b(81100000): LDR R1, R1, 0H |
00FB | b(D10ADD4C): BLEQ MT [trap=4, pos=2781] |
00FC | c(80000004): LDR R0, R0, 4H |
00FD | c(81100004): LDR R1, R1, 4H |
00FE | c(00090001): SUB R0, R0, R1 |
00FF | c(E9000005): BNE 5 [0105H] |
| ELSEd ve := Oberon.MarkedViewer() |
0100 | d .FIXUP D |
0100 | d(8D600008): LDR SB, MT, MOD6 [Oberon] |
0101 | d(40D8000E): ADD R0, SB, VAR14 |
0102 | d(80000000): LDR R0, R0, 0H |
0103 | d(A0E00008): STR R0, SP, 8H |
0104 | e(E7000002): B 2 [0107H] |
| ENDf ; |
0105 | f .FIXUP P |
0105 | f(F7624016): BL MOD6 [Oberon] PROC36 |
0106 | f(A0E00008): STR R0, SP, 8H |
| IF (v # NIL)g & (hv.dsci # NIL)j & (kv.dscl.nextm IS GraphicFrames.Frame)n THENo |
0107 | g(80E00008): LDR R0, SP, 8H |
0108 | h(E100002B): BEQ 43 [0134H] |
0109 | i(80E00008): LDR R0, SP, 8H |
010A | i(D10B3E4C): BLEQ MT [trap=4, pos=2878] |
010B | j(80000004): LDR R0, R0, 4H |
010C | k(E1000027): BEQ 39 [0134H] |
010D | l(80E00008): LDR R0, SP, 8H |
010E | l(D10B4E4C): BLEQ MT [trap=4, pos=2894] |
010F | m(80000004): LDR R0, R0, 4H |
0110 | m(D10B534C): BLEQ MT [trap=4, pos=2899] |
0111 | n(80000000): LDR R0, R0, 0H |
0112 | n(E1000005): BEQ 5 [0118H] |
0113 | n(810FFFF8): LDR R1, R0, FFFFFFF8H |
0114 | n(81100004): LDR R1, R1, 4H |
0115 | n .FIXUP D |
0115 | n(8DB00015): LDR SB, MT, MOD11 [GraphicFrames] |
0116 | n(42D80002): ADD R2, SB, VAR2 |
0117 | n(02290001): SUB R2, R2, R1 |
0118 | o(E900001B): BNE 27 [0134H] |
| G := v.dscp.nextq(GraphicFrames.Frame)r;s G.tickedt := Q OR ~uG.tickedv;w GraphicFrames.Restore(G)x |
0119 | p(80E00008): LDR R0, SP, 8H |
011A | p(D10B814C): BLEQ MT [trap=4, pos=2945] |
011B | q(80000004): LDR R0, R0, 4H |
011C | q(D10B864C): BLEQ MT [trap=4, pos=2950] |
011D | r(80000000): LDR R0, R0, 0H |
011E | r(E1000005): BEQ 5 [0124H] |
011F | r(810FFFF8): LDR R1, R0, FFFFFFF8H |
0120 | r(81100004): LDR R1, R1, 4H |
0121 | r .FIXUP D |
0121 | r(8DB0000C): LDR SB, MT, MOD11 [GraphicFrames] |
0122 | r(42D80002): ADD R2, SB, VAR2 |
0123 | r(02290001): SUB R2, R2, R1 |
0124 | r(D90B9B2C): BLNE MT [trap=2, pos=2971] |
0125 | s(A0E0000C): STR R0, SP, CH |
0126 | t(80E0000C): LDR R0, SP, CH |
0127 | t(D10BA54C): BLEQ MT [trap=4, pos=2981] |
0128 | u(91E00004): LDR R1, SP, 4H |
0129 | u(E9000004): BNE 4 [012EH] |
012A | v(81E0000C): LDR R1, SP, CH |
012B | v(D10BB74C): BLEQ MT [trap=4, pos=2999] |
012C | w(9110003D): LDR R1, R1, 3DH |
012D | w(E9000002): BNE 2 [0130H] |
012E | w(41000001): MOV R1, R0, 1H |
012F | w(E7000001): B 1 [0131H] |
0130 | w(41000000): MOV R1, R0, 0H |
0131 | w(B100003D): STR R1, R0, 3DH |
0132 | x(80E0000C): LDR R0, SP, CH |
| ENDy |
0133 | y .FIXUP P |
0133 | y(F7B0802E): BL MOD11 [GraphicFrames] PROC8 |
| ENDz Redraw; |
0134 | z(8FE00000): LDR LNK, SP, 0H |
0135 | z(4EE80010): ADD SP, SP, 10H |
0136 | z(C700000F): B LNK |
| |
| PROCEDURE Ticks*; |
| BEGINa Redraw(FALSE)b |
0137 | a .PROC 7 |
0137 | a .COMMAND Ticks |
0137 | a(4EE90004): SUB SP, SP, 4H |
0138 | a(AFE00000): STR LNK, SP, 0H |
0139 | b(40000000): MOV R0, R0, 0H |
| ENDc Ticks; |
013A | c(F7FFFFB8): BL -72 [00F3H] |
013B | c(8FE00000): LDR LNK, SP, 0H |
013C | c(4EE80004): ADD SP, SP, 4H |
013D | c(C700000F): B LNK |
| |
| PROCEDURE Restore*; |
| BEGINd Redraw(TRUE)e |
013E | d .PROC 8 |
013E | d .COMMAND Restore |
013E | d(4EE90004): SUB SP, SP, 4H |
013F | d(AFE00000): STR LNK, SP, 0H |
0140 | e(40000001): MOV R0, R0, 1H |
| ENDf Restore; |
0141 | f(F7FFFFB1): BL -79 [00F3H] |
0142 | f(8FE00000): LDR LNK, SP, 0H |
0143 | f(4EE80004): ADD SP, SP, 4H |
0144 | f(C700000F): B LNK |
| |
| PROCEDURE Backup (VAR name: ARRAY OF CHAR); |
| VAR res, i: INTEGER; ch: CHAR; |
| bak: ARRAY 32 OF CHAR; |
| BEGINg i := 0;h ch := name[0]i;j |
0145 | g(4EE90038): SUB SP, SP, 38H |
0146 | g(AFE00000): STR LNK, SP, 0H |
0147 | g(A0E00004): STR R0, SP, 4H |
0148 | g(A1E00008): STR R1, SP, 8H |
0149 | h(40000000): MOV R0, R0, 0H |
014A | h(A0E00010): STR R0, SP, 10H |
014B | i(40000000): MOV R0, R0, 0H |
014C | i(81E00008): LDR R1, SP, 8H |
014D | i(01090001): SUB R1, R0, R1 |
014E | i(DA0CE71C): BLCC MT [trap=1, pos=3303] |
014F | i(81E00004): LDR R1, SP, 4H |
0150 | i(00180000): ADD R0, R1, R0 |
0151 | j(90000000): LDR R0, R0, 0H |
0152 | j(B0E00014): STR R0, SP, 14H |
| WHILE ch > 0X DOk bak[i]l := ch;m INC(i);n ch := name[i]o ENDp ; |
0153 | k(90E00014): LDR R0, SP, 14H |
0154 | k(40090000): SUB R0, R0, 0H |
0155 | k(E6000012): BLE 18 [0168H] |
0156 | l(80E00010): LDR R0, SP, 10H |
0157 | l(41090020): SUB R1, R0, 20H |
0158 | l(DA0D041C): BLCC MT [trap=1, pos=3332] |
0159 | l(00E80000): ADD R0, SP, R0 |
015A | m(91E00014): LDR R1, SP, 14H |
015B | m(B1000018): STR R1, R0, 18H |
015C | n(80E00010): LDR R0, SP, 10H |
015D | n(40080001): ADD R0, R0, 1H |
015E | n(A0E00010): STR R0, SP, 10H |
015F | o(80E00010): LDR R0, SP, 10H |
0160 | o(81E00008): LDR R1, SP, 8H |
0161 | o(01090001): SUB R1, R0, R1 |
0162 | o(DA0D211C): BLCC MT [trap=1, pos=3361] |
0163 | o(81E00004): LDR R1, SP, 4H |
0164 | o(00180000): ADD R0, R1, R0 |
0165 | p(90000000): LDR R0, R0, 0H |
0166 | p(B0E00014): STR R0, SP, 14H |
0167 | p(E7FFFFEB): B -21 [0153H] |
| IF i < 28 THENq |
0168 | q(80E00010): LDR R0, SP, 10H |
0169 | q(4009001C): SUB R0, R0, 1CH |
016A | q(ED000028): BGE 40 [0193H] |
| bak[i]r := ".";s bak[i+1]t := "B";u bak[i+2]v := "a";w bak[i+3]x := "k";y bak[i+4]z := 0X;a |
016B | r(80E00010): LDR R0, SP, 10H |
016C | r(41090020): SUB R1, R0, 20H |
016D | r(DA0D471C): BLCC MT [trap=1, pos=3399] |
016E | r(00E80000): ADD R0, SP, R0 |
016F | s(4100002E): MOV R1, R0, 2EH |
0170 | s(B1000018): STR R1, R0, 18H |
0171 | t(80E00010): LDR R0, SP, 10H |
0172 | t(40080001): ADD R0, R0, 1H |
0173 | t(41090020): SUB R1, R0, 20H |
0174 | t(DA0D581C): BLCC MT [trap=1, pos=3416] |
0175 | t(00E80000): ADD R0, SP, R0 |
0176 | u(41000042): MOV R1, R0, 42H |
0177 | u(B1000018): STR R1, R0, 18H |
0178 | v(80E00010): LDR R0, SP, 10H |
0179 | v(40080002): ADD R0, R0, 2H |
017A | v(41090020): SUB R1, R0, 20H |
017B | v(DA0D691C): BLCC MT [trap=1, pos=3433] |
017C | v(00E80000): ADD R0, SP, R0 |
017D | w(41000061): MOV R1, R0, 61H |
017E | w(B1000018): STR R1, R0, 18H |
017F | x(80E00010): LDR R0, SP, 10H |
0180 | x(40080003): ADD R0, R0, 3H |
0181 | x(41090020): SUB R1, R0, 20H |
0182 | x(DA0D7A1C): BLCC MT [trap=1, pos=3450] |
0183 | x(00E80000): ADD R0, SP, R0 |
0184 | y(4100006B): MOV R1, R0, 6BH |
0185 | y(B1000018): STR R1, R0, 18H |
0186 | z(80E00010): LDR R0, SP, 10H |
0187 | z(40080004): ADD R0, R0, 4H |
0188 | z(41090020): SUB R1, R0, 20H |
0189 | z(DA0D8B1C): BLCC MT [trap=1, pos=3467] |
018A | z(00E80000): ADD R0, SP, R0 |
018B | a(41000000): MOV R1, R0, 0H |
018C | a(B1000018): STR R1, R0, 18H |
| Files.Rename(name,b bak,c res)d |
018D | b(80E00004): LDR R0, SP, 4H |
018E | b(81E00008): LDR R1, SP, 8H |
018F | c(42E80018): ADD R2, SP, 18H |
0190 | c(43000020): MOV R3, R0, 20H |
0191 | d(44E8000C): ADD R4, SP, CH |
| ENDe |
0192 | e .FIXUP P |
0192 | e(F710805F): BL MOD1 [Files] PROC8 |
| ENDf Backup; |
0193 | f(8FE00000): LDR LNK, SP, 0H |
0194 | f(4EE80038): ADD SP, SP, 38H |
0195 | f(C700000F): B LNK |
| |
| PROCEDURE Store*; |
| VAR S: Texts.Scanner; |
| Menu: TextFrames.Frame; G: GraphicFrames.Frame; |
| v: Viewers.Viewer; |
| BEGINg |
0196 | g .PROC 9 |
0196 | g .COMMAND Store |
0196 | g(4EE90084): SUB SP, SP, 84H |
0197 | g(AFE00000): STR LNK, SP, 0H |
| IF Oberon.Par.frame =h Oberon.Par.vwr.idscj THENk |
0198 | h .FIXUP D |
0198 | h(8D600077): LDR SB, MT, MOD6 [Oberon] |
0199 | h(40D8000E): ADD R0, SB, VAR14 |
019A | i .FIXUP D |
019A | i(8D600002): LDR SB, MT, MOD6 [Oberon] |
019B | i(41D8000E): ADD R1, SB, VAR14 |
019C | j(81100000): LDR R1, R1, 0H |
019D | j(D10E7E4C): BLEQ MT [trap=4, pos=3710] |
019E | k(80000004): LDR R0, R0, 4H |
019F | k(81100004): LDR R1, R1, 4H |
01A0 | k(00090001): SUB R0, R0, R1 |
01A1 | k(E9000048): BNE 72 [01EAH] |
| Menu := Oberon.Par.vwr.ldscm(TextFrames.Frame)n;o G := Menu.nextp(GraphicFrames.Frame)q;r |
01A2 | l .FIXUP D |
01A2 | l(8D600008): LDR SB, MT, MOD6 [Oberon] |
01A3 | l(40D8000E): ADD R0, SB, VAR14 |
01A4 | m(80000000): LDR R0, R0, 0H |
01A5 | m(D10EA44C): BLEQ MT [trap=4, pos=3748] |
01A6 | n(80000004): LDR R0, R0, 4H |
01A7 | n(E1000005): BEQ 5 [01ADH] |
01A8 | n(810FFFF8): LDR R1, R0, FFFFFFF8H |
01A9 | n(81100004): LDR R1, R1, 4H |
01AA | n .FIXUP D |
01AA | n(8D700008): LDR SB, MT, MOD7 [TextFrames] |
01AB | n(42D80002): ADD R2, SB, VAR2 |
01AC | n(02290001): SUB R2, R2, R1 |
01AD | n(D90EB62C): BLNE MT [trap=2, pos=3766] |
01AE | o(A0E00078): STR R0, SP, 78H |
01AF | p(80E00078): LDR R0, SP, 78H |
01B0 | p(D10EC64C): BLEQ MT [trap=4, pos=3782] |
01B1 | q(80000000): LDR R0, R0, 0H |
01B2 | q(E1000005): BEQ 5 [01B8H] |
01B3 | q(810FFFF8): LDR R1, R0, FFFFFFF8H |
01B4 | q(81100004): LDR R1, R1, 4H |
01B5 | q .FIXUP D |
01B5 | q(8DB0000B): LDR SB, MT, MOD11 [GraphicFrames] |
01B6 | q(42D80002): ADD R2, SB, VAR2 |
01B7 | q(02290001): SUB R2, R2, R1 |
01B8 | q(D90EDB2C): BLNE MT [trap=2, pos=3803] |
01B9 | r(A0E0007C): STR R0, SP, 7CH |
| Texts.OpenScanner(S,s Menu.textt,u 0)v;w Texts.Scan(S)x;y |
01BA | s(40E80004): ADD R0, SP, 4H |
01BB | s .FIXUP D |
01BB | s(8D500006): LDR SB, MT, MOD5 [Texts] |
01BC | s(41D80003): ADD R1, SB, VAR3 |
01BD | t(82E00078): LDR R2, SP, 78H |
01BE | t(D10F014C): BLEQ MT [trap=4, pos=3841] |
01BF | u(8220001C): LDR R2, R2, 1CH |
01C0 | v(43000000): MOV R3, R0, 0H |
01C1 | w .FIXUP P |
01C1 | w(F751502F): BL MOD5 [Texts] PROC21 |
01C2 | x(40E80004): ADD R0, SP, 4H |
01C3 | x .FIXUP D |
01C3 | x(8D500008): LDR SB, MT, MOD5 [Texts] |
01C4 | x(41D80003): ADD R1, SB, VAR3 |
01C5 | y .FIXUP P |
01C5 | y(F7516004): BL MOD5 [Texts] PROC22 |
| IF S.class = Texts.Name THENz |
01C6 | z(80E00040): LDR R0, SP, 40H |
01C7 | z(40090001): SUB R0, R0, 1H |
01C8 | z(E9000020): BNE 32 [01E9H] |
| Texts.WriteString(W,a S.s)b;c Texts.WriteString(W,d " storing")e;f |
01C9 | a .FIXUP D |
01C9 | a(8D000006): LDR SB, MT, MOD0 [Draw] |
01CA | a(40D80000): ADD R0, SB, 0H [data] |
01CB | a .FIXUP D |
01CB | a(8D500002): LDR SB, MT, MOD5 [Texts] |
01CC | a(41D80005): ADD R1, SB, VAR5 |
01CD | b(42E80058): ADD R2, SP, 58H |
01CE | b(43000020): MOV R3, R0, 20H |
01CF | c .FIXUP P |
01CF | c(F751D00A): BL MOD5 [Texts] PROC29 |
01D0 | d .FIXUP D |
01D0 | d(8D000005): LDR SB, MT, MOD0 [Draw] |
01D1 | d(40D80000): ADD R0, SB, 0H [data] |
01D2 | d .FIXUP D |
01D2 | d(8D500002): LDR SB, MT, MOD5 [Texts] |
01D3 | d(41D80005): ADD R1, SB, VAR5 |
01D4 | e .FIXUP D |
01D4 | e(8D000002): LDR SB, MT, MOD0 [Draw] |
01D5 | e(42D80084): ADD R2, SB, 84H [" storing"] |
01D6 | e(43000009): MOV R3, R0, 9H |
01D7 | f .FIXUP P |
01D7 | f(F751D008): BL MOD5 [Texts] PROC29 |
| Texts.WriteLn(W)g;h Texts.Append(Oberon.Log,i W.buf)j;k |
01D8 | g .FIXUP D |
01D8 | g(8D000004): LDR SB, MT, MOD0 [Draw] |
01D9 | g(40D80000): ADD R0, SB, 0H [data] |
01DA | g .FIXUP D |
01DA | g(8D500002): LDR SB, MT, MOD5 [Texts] |
01DB | g(41D80005): ADD R1, SB, VAR5 |
01DC | h .FIXUP P |
01DC | h(F751C005): BL MOD5 [Texts] PROC28 |
01DD | i .FIXUP D |
01DD | i(8D600003): LDR SB, MT, MOD6 [Oberon] |
01DE | i(80D0000D): LDR R0, SB, VAR13 |
01DF | j .FIXUP D |
01DF | j(8D000002): LDR SB, MT, MOD0 [Draw] |
01E0 | j(81D00000): LDR R1, SB, 0H [data] |
01E1 | k .FIXUP P |
01E1 | k(F750E005): BL MOD5 [Texts] PROC14 |
| Backup(S.s)l;m GraphicFrames.Store(G,n S.s)o |
01E2 | l(40E80058): ADD R0, SP, 58H |
01E3 | l(41000020): MOV R1, R0, 20H |
01E4 | m(F7FFFF60): BL -160 [0145H] |
01E5 | n(80E0007C): LDR R0, SP, 7CH |
01E6 | o(41E80058): ADD R1, SP, 58H |
01E7 | o(42000020): MOV R2, R0, 20H |
| ENDp |
01E8 | p .FIXUP P |
01E8 | p(F7B15007): BL MOD11 [GraphicFrames] PROC21 |
| ELSE |
| Textsq.OpenScanner(S,r Oberon.Par.text,s Oberon.Par.pos)t;u Texts.Scan(S)v;w |
01E9 | q(E7000050): B 80 [023AH] |
01EA | r(40E80004): ADD R0, SP, 4H |
01EB | r .FIXUP D |
01EB | r(8D50000C): LDR SB, MT, MOD5 [Texts] |
01EC | r(41D80003): ADD R1, SB, VAR3 |
01ED | s .FIXUP D |
01ED | s(8D600002): LDR SB, MT, MOD6 [Oberon] |
01EE | s(42D8000E): ADD R2, SB, VAR14 |
01EF | s(82200008): LDR R2, R2, 8H |
01F0 | t .FIXUP D |
01F0 | t(8D600003): LDR SB, MT, MOD6 [Oberon] |
01F1 | t(43D8000E): ADD R3, SB, VAR14 |
01F2 | t(8330000C): LDR R3, R3, CH |
01F3 | u .FIXUP P |
01F3 | u(F751500B): BL MOD5 [Texts] PROC21 |
01F4 | v(40E80004): ADD R0, SP, 4H |
01F5 | v .FIXUP D |
01F5 | v(8D500005): LDR SB, MT, MOD5 [Texts] |
01F6 | v(41D80003): ADD R1, SB, VAR3 |
01F7 | w .FIXUP P |
01F7 | w(F7516004): BL MOD5 [Texts] PROC22 |
| IF S.class = Texts.Name THENx |
01F8 | x(80E00040): LDR R0, SP, 40H |
01F9 | x(40090001): SUB R0, R0, 1H |
01FA | x(E900003F): BNE 63 [023AH] |
| v := Oberon.MarkedViewer();y |
01FB | y .FIXUP P |
01FB | y(F7624004): BL MOD6 [Oberon] PROC36 |
01FC | y(A0E00080): STR R0, SP, 80H |
| IF (v.dscz # NIL)a & (bv.dscc.nextd IS GraphicFrames.Frame)e THENf |
01FD | z(80E00080): LDR R0, SP, 80H |
01FE | z(D110A14C): BLEQ MT [trap=4, pos=4257] |
01FF | a(80000004): LDR R0, R0, 4H |
0200 | b(E1000039): BEQ 57 [023AH] |
0201 | c(80E00080): LDR R0, SP, 80H |
0202 | c(D110B14C): BLEQ MT [trap=4, pos=4273] |
0203 | d(80000004): LDR R0, R0, 4H |
0204 | d(D110B64C): BLEQ MT [trap=4, pos=4278] |
0205 | e(80000000): LDR R0, R0, 0H |
0206 | e(E1000005): BEQ 5 [020CH] |
0207 | e(810FFFF8): LDR R1, R0, FFFFFFF8H |
0208 | e(81100004): LDR R1, R1, 4H |
0209 | e .FIXUP D |
0209 | e(8DB00014): LDR SB, MT, MOD11 [GraphicFrames] |
020A | e(42D80002): ADD R2, SB, VAR2 |
020B | e(02290001): SUB R2, R2, R1 |
020C | f(E900002D): BNE 45 [023AH] |
| G := v.dscg.nexth(GraphicFrames.Frame)i;j |
020D | g(80E00080): LDR R0, SP, 80H |
020E | g(D110E84C): BLEQ MT [trap=4, pos=4328] |
020F | h(80000004): LDR R0, R0, 4H |
0210 | h(D110ED4C): BLEQ MT [trap=4, pos=4333] |
0211 | i(80000000): LDR R0, R0, 0H |
0212 | i(E1000005): BEQ 5 [0218H] |
0213 | i(810FFFF8): LDR R1, R0, FFFFFFF8H |
0214 | i(81100004): LDR R1, R1, 4H |
0215 | i .FIXUP D |
0215 | i(8DB0000C): LDR SB, MT, MOD11 [GraphicFrames] |
0216 | i(42D80002): ADD R2, SB, VAR2 |
0217 | i(02290001): SUB R2, R2, R1 |
0218 | i(D911022C): BLNE MT [trap=2, pos=4354] |
0219 | j(A0E0007C): STR R0, SP, 7CH |
| Texts.WriteString(W,k S.s)l;m Texts.WriteString(W,n " storing")o;p |
021A | k .FIXUP D |
021A | k(8D000005): LDR SB, MT, MOD0 [Draw] |
021B | k(40D80000): ADD R0, SB, 0H [data] |
021C | k .FIXUP D |
021C | k(8D500002): LDR SB, MT, MOD5 [Texts] |
021D | k(41D80005): ADD R1, SB, VAR5 |
021E | l(42E80058): ADD R2, SP, 58H |
021F | l(43000020): MOV R3, R0, 20H |
0220 | m .FIXUP P |
0220 | m(F751D025): BL MOD5 [Texts] PROC29 |
0221 | n .FIXUP D |
0221 | n(8D000005): LDR SB, MT, MOD0 [Draw] |
0222 | n(40D80000): ADD R0, SB, 0H [data] |
0223 | n .FIXUP D |
0223 | n(8D500002): LDR SB, MT, MOD5 [Texts] |
0224 | n(41D80005): ADD R1, SB, VAR5 |
0225 | o .FIXUP D |
0225 | o(8D000002): LDR SB, MT, MOD0 [Draw] |
0226 | o(42D80090): ADD R2, SB, 90H [" storing"] |
0227 | o(43000009): MOV R3, R0, 9H |
0228 | p .FIXUP P |
0228 | p(F751D008): BL MOD5 [Texts] PROC29 |
| Texts.WriteLn(W)q;r Texts.Append(Oberon.Log,s W.buf)t;u |
0229 | q .FIXUP D |
0229 | q(8D000004): LDR SB, MT, MOD0 [Draw] |
022A | q(40D80000): ADD R0, SB, 0H [data] |
022B | q .FIXUP D |
022B | q(8D500002): LDR SB, MT, MOD5 [Texts] |
022C | q(41D80005): ADD R1, SB, VAR5 |
022D | r .FIXUP P |
022D | r(F751C005): BL MOD5 [Texts] PROC28 |
022E | s .FIXUP D |
022E | s(8D600003): LDR SB, MT, MOD6 [Oberon] |
022F | s(80D0000D): LDR R0, SB, VAR13 |
0230 | t .FIXUP D |
0230 | t(8D000002): LDR SB, MT, MOD0 [Draw] |
0231 | t(81D00000): LDR R1, SB, 0H [data] |
0232 | u .FIXUP P |
0232 | u(F750E005): BL MOD5 [Texts] PROC14 |
| Backup(S.s)v;w GraphicFrames.Store(G,x S.s)y |
0233 | v(40E80058): ADD R0, SP, 58H |
0234 | v(41000020): MOV R1, R0, 20H |
0235 | w(F7FFFF0F): BL -241 [0145H] |
0236 | x(80E0007C): LDR R0, SP, 7CH |
0237 | y(41E80058): ADD R1, SP, 58H |
0238 | y(42000020): MOV R2, R0, 20H |
| ENDz |
0239 | z .FIXUP P |
0239 | z(F7B15007): BL MOD11 [GraphicFrames] PROC21 |
| END |
| END |
| ENDa Store; |
023A | a(8FE00000): LDR LNK, SP, 0H |
023B | a(4EE80084): ADD SP, SP, 84H |
023C | a(C700000F): B LNK |
| |
| PROCEDURE Macro*; |
| VAR S: Texts.Scanner; |
| T: Texts.Text; |
| time, beg, end: LONGINT; |
| Lname: ARRAY 32 OF CHAR; |
| BEGINb Texts.OpenScanner(S,c Oberon.Par.text,d Oberon.Par.pos)e;f Texts.Scan(S)g;h |
023D | b .PROC 10 |
023D | b .COMMAND Macro |
023D | b(4EE900A8): SUB SP, SP, A8H |
023E | b(AFE00000): STR LNK, SP, 0H |
023F | c(40E80004): ADD R0, SP, 4H |
0240 | c .FIXUP D |
0240 | c(8D500010): LDR SB, MT, MOD5 [Texts] |
0241 | c(41D80003): ADD R1, SB, VAR3 |
0242 | d .FIXUP D |
0242 | d(8D600002): LDR SB, MT, MOD6 [Oberon] |
0243 | d(42D8000E): ADD R2, SB, VAR14 |
0244 | d(82200008): LDR R2, R2, 8H |
0245 | e .FIXUP D |
0245 | e(8D600003): LDR SB, MT, MOD6 [Oberon] |
0246 | e(43D8000E): ADD R3, SB, VAR14 |
0247 | e(8330000C): LDR R3, R3, CH |
0248 | f .FIXUP P |
0248 | f(F751500F): BL MOD5 [Texts] PROC21 |
0249 | g(40E80004): ADD R0, SP, 4H |
024A | g .FIXUP D |
024A | g(8D500005): LDR SB, MT, MOD5 [Texts] |
024B | g(41D80003): ADD R1, SB, VAR3 |
024C | h .FIXUP P |
024C | h(F7516004): BL MOD5 [Texts] PROC22 |
| IF S.class = Texts.Name THENi |
024D | i(80E00040): LDR R0, SP, 40H |
024E | i(40090001): SUB R0, R0, 1H |
024F | i(E9000015): BNE 21 [0265H] |
| Lname := S.s;j Texts.Scan(S)k;l |
0250 | j(40E80088): ADD R0, SP, 88H |
0251 | j(41E80058): ADD R1, SP, 58H |
0252 | j(42000008): MOV R2, R0, 8H |
0253 | j(83100000): LDR R3, R1, 0H |
0254 | j(41180004): ADD R1, R1, 4H |
0255 | j(A3000000): STR R3, R0, 0H |
0256 | j(40080004): ADD R0, R0, 4H |
0257 | j(42290001): SUB R2, R2, 1H |
0258 | j(E9FFFFFA): BNE -6 [0253H] |
0259 | k(40E80004): ADD R0, SP, 4H |
025A | k .FIXUP D |
025A | k(8D500010): LDR SB, MT, MOD5 [Texts] |
025B | k(41D80003): ADD R1, SB, VAR3 |
025C | l .FIXUP P |
025C | l(F7516010): BL MOD5 [Texts] PROC22 |
| IF S.class = Texts.Name THENm GraphicFrames.Macro(Lname,n S.s)o ENDp ; |
025D | m(80E00040): LDR R0, SP, 40H |
025E | m(40090001): SUB R0, R0, 1H |
025F | m(E9000005): BNE 5 [0265H] |
0260 | n(40E80088): ADD R0, SP, 88H |
0261 | n(41000020): MOV R1, R0, 20H |
0262 | o(42E80058): ADD R2, SP, 58H |
0263 | o(43000020): MOV R3, R0, 20H |
0264 | p .FIXUP P |
0264 | p(F7B13008): BL MOD11 [GraphicFrames] PROC19 |
| END |
| ENDq Macro; |
0265 | q(8FE00000): LDR LNK, SP, 0H |
0266 | q(4EE800A8): ADD SP, SP, A8H |
0267 | q(C700000F): B LNK |
| |
| BEGINr Texts.OpenWriter(W)s;t Texts.WriteString(W,u "Draw - NW 9.8.2013")v;w |
0268 | r .PROC 0 |
0268 | r .ENTRYPOINT |
0268 | r(4EE90004): SUB SP, SP, 4H |
0269 | r(AFE00000): STR LNK, SP, 0H |
026A | s .FIXUP D |
026A | s(8D000010): LDR SB, MT, MOD0 [Draw] |
026B | s(40D80000): ADD R0, SB, 0H [data] |
026C | s .FIXUP D |
026C | s(8D500002): LDR SB, MT, MOD5 [Texts] |
026D | s(41D80005): ADD R1, SB, VAR5 |
026E | t .FIXUP P |
026E | t(F751700A): BL MOD5 [Texts] PROC23 |
026F | u .FIXUP D |
026F | u(8D000003): LDR SB, MT, MOD0 [Draw] |
0270 | u(40D80000): ADD R0, SB, 0H [data] |
0271 | u .FIXUP D |
0271 | u(8D500002): LDR SB, MT, MOD5 [Texts] |
0272 | u(41D80005): ADD R1, SB, VAR5 |
0273 | v .FIXUP D |
0273 | v(8D000002): LDR SB, MT, MOD0 [Draw] |
0274 | v(42D8009C): ADD R2, SB, 9CH ["Draw - NW 9.8.2013"] |
0275 | v(43000013): MOV R3, R0, 13H |
0276 | w .FIXUP P |
0276 | w(F751D008): BL MOD5 [Texts] PROC29 |
| Texts.WriteLn(W)x;y Texts.Append(Oberon.Log,z W.buf)a |
0277 | x .FIXUP D |
0277 | x(8D000004): LDR SB, MT, MOD0 [Draw] |
0278 | x(40D80000): ADD R0, SB, 0H [data] |
0279 | x .FIXUP D |
0279 | x(8D500002): LDR SB, MT, MOD5 [Texts] |
027A | x(41D80005): ADD R1, SB, VAR5 |
027B | y .FIXUP P |
027B | y(F751C005): BL MOD5 [Texts] PROC28 |
027C | z .FIXUP D |
027C | z(8D600003): LDR SB, MT, MOD6 [Oberon] |
027D | z(80D0000D): LDR R0, SB, VAR13 |
027E | a .FIXUP D |
027E | a(8D000002): LDR SB, MT, MOD0 [Draw] |
027F | a(81D00000): LDR R1, SB, 0H [data] |
| ENDb Draw.c |
0280 | b .FIXUP P |
0280 | b(F750E005): BL MOD5 [Texts] PROC14 |
0281 | c(8FE00000): LDR LNK, SP, 0H |
0282 | c(4EE80004): ADD SP, SP, 4H |
0283 | c(C700000F): B LNK |