| 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 |