| MODULE Tools; (*NW 22.2.2014*) |
| .MODULE Tools (KEY 63A7C0B2, VERSION 1, SIZE 00000A84) |
| .IMPORT Kernel (KEY 97E012DD) |
| .IMPORT Files (KEY 73F5D686) |
| .IMPORT Modules (KEY 41C6A19A) |
| .IMPORT Input (KEY 5DE391A8) |
| .IMPORT Texts (KEY 0B9E9984) |
| .IMPORT Fonts (KEY F4C9F557) |
| .IMPORT Viewers (KEY 25ABF199) |
| .IMPORT Display (KEY 4C08D3EA) |
| .IMPORT MenuViewers (KEY 245ACC30) |
| .IMPORT TextFrames (KEY 650813D5) |
| .IMPORT Oberon (KEY A89CCEE2) |
| .DATA 30H |
| .STRING 30H "System.Close System.Copy System.Grow Edit.Search Edit.Store" |
| .STRING 70H "Sector " |
| .STRING 78H " not found" |
| .STRING 84H "converting to " |
| .STRING 94H " done" |
| .STRING 9CH " not found" |
| .STRING A8H "" |
| .STRING ACH "Tools.Text" |
| .POINTER_REFERENCES 0H 4H 8H CH 2CH 20H |
| .FIXUP T 0H |
| IMPORT SYSTEM, Kernel, Files, Modules, Input, Texts, Viewers, MenuViewers, TextFrames, Oberon; |
| VAR T: Texts.Text; V: MenuViewers.Viewer; W: Texts.Writer; |
| |
| PROCEDURE OpenViewer(T: Texts.Text; title: ARRAY OF CHAR); |
| VAR X, Y: INTEGER; |
| BEGINa |
0000 | a(4EE90018): SUB SP, SP, 18H |
0001 | a(AFE00000): STR LNK, SP, 0H |
0002 | a(A0E00004): STR R0, SP, 4H |
0003 | a(A1E00008): STR R1, SP, 8H |
0004 | a(A2E0000C): STR R2, SP, CH |
| Oberon.AllocateUserViewer(0,b X,c Y)d;e |
0005 | b(40000000): MOV R0, R0, 0H |
0006 | c(41E80010): ADD R1, SP, 10H |
0007 | d(42E80014): ADD R2, SP, 14H |
0008 | e .FIXUP P |
0008 | e(F7B22008): BL MOD11 [Oberon] PROC34 |
| V := MenuViewers.New( |
| TextFrames.NewMenu(title,f "System.Close System.Copy System.Grow Edit.Search Edit.Store")g,h |
0009 | f(80E00008): LDR R0, SP, 8H |
000A | f(81E0000C): LDR R1, SP, CH |
000B | g .FIXUP D |
000B | g(8D00000B): LDR SB, MT, MOD0 [Tools] |
000C | g(42D80030): ADD R2, SB, 30H ["System.Close System.Copy System.Grow Edit.Search Edit.Store"] |
000D | g(43000040): MOV R3, R0, 40H |
000E | h .FIXUP P |
000E | h(F7A2C006): BL MOD10 [TextFrames] PROC44 |
| TextFrames.NewText(Ti,j 0)k,l TextFrames.menuH,m X,n Y)o |
000F | i(4EE90004): SUB SP, SP, 4H |
0010 | i(A0E00000): STR R0, SP, 0H |
0011 | j(80E00008): LDR R0, SP, 8H |
0012 | k(41000000): MOV R1, R0, 0H |
0013 | l .FIXUP P |
0013 | l(F7A2D005): BL MOD10 [TextFrames] PROC45 |
0014 | l(01000000): MOV R1, R0, R0 |
0015 | l(80E00000): LDR R0, SP, 0H |
0016 | l(4EE80004): ADD SP, SP, 4H |
0017 | m .FIXUP D |
0017 | m(8DA0000C): LDR SB, MT, MOD10 [TextFrames] |
0018 | m(82D00005): LDR R2, SB, VAR5 |
0019 | n(83E00010): LDR R3, SP, 10H |
001A | o(84E00014): LDR R4, SP, 14H |
| ENDp OpenViewer; |
001B | p .FIXUP P |
001B | p(F7904008): BL MOD9 [MenuViewers] PROC4 |
001C | p .FIXUP D |
001C | p(8D000005): LDR SB, MT, MOD0 [Tools] |
001D | p(A0D00004): STR R0, SB, 4H [data] |
001E | p(8FE00000): LDR LNK, SP, 0H |
001F | p(4EE80018): ADD SP, SP, 18H |
0020 | p(C700000F): B LNK |
| |
| PROCEDURE Clear*; (*used to clear output*) |
| VAR buf: Texts.Buffer; |
| BEGINq NEW(buf);r Texts.OpenBuf(buf)s;t Texts.Delete(T,u 0,v T.lenw,x buf)y |
0021 | q .PROC 1 |
0021 | q .COMMAND Clear |
0021 | q(4EE90008): SUB SP, SP, 8H |
0022 | q(AFE00000): STR LNK, SP, 0H |
0023 | r(40E80004): ADD R0, SP, 4H |
0024 | r .FIXUP D |
0024 | r(8D500008): LDR SB, MT, MOD5 [Texts] |
0025 | r(41D80004): ADD R1, SB, VAR4 |
0026 | r(D7026C0C): BL MT [trap=0, pos=620] |
0027 | s(80E00004): LDR R0, SP, 4H |
0028 | t .FIXUP P |
0028 | t(F750A00D): BL MOD5 [Texts] PROC10 |
0029 | u .FIXUP D |
0029 | u(8D000005): LDR SB, MT, MOD0 [Tools] |
002A | u(80D00000): LDR R0, SB, 0H [data] |
002B | v(41000000): MOV R1, R0, 0H |
002C | w(82D00000): LDR R2, SB, 0H |
002D | w(D102994C): BLEQ MT [trap=4, pos=665] |
002E | x(82200000): LDR R2, R2, 0H |
002F | y(83E00004): LDR R3, SP, 4H |
| ENDz Clear; |
0030 | z .FIXUP P |
0030 | z(F750F008): BL MOD5 [Texts] PROC15 |
0031 | z(8FE00000): LDR LNK, SP, 0H |
0032 | z(4EE80008): ADD SP, SP, 8H |
0033 | z(C700000F): B LNK |
| |
| PROCEDURE Recall*; |
| VAR M: Viewers.ViewerMsg; |
| BEGINa |
0034 | a .PROC 2 |
0034 | a .COMMAND Recall |
0034 | a(4EE9001C): SUB SP, SP, 1CH |
0035 | a(AFE00000): STR LNK, SP, 0H |
| IF (V # NIL)b & (cV.stated = 0)e THENf |
0036 | b .FIXUP D |
0036 | b(8D00000D): LDR SB, MT, MOD0 [Tools] |
0037 | b(80D00004): LDR R0, SB, 4H [data] |
0038 | c(E1000022): BEQ 34 [005BH] |
0039 | d .FIXUP D |
0039 | d(8D000003): LDR SB, MT, MOD0 [Tools] |
003A | d(80D00004): LDR R0, SB, 4H [data] |
003B | d(D103044C): BLEQ MT [trap=4, pos=772] |
003C | e(8000001C): LDR R0, R0, 1CH |
003D | f(E900001D): BNE 29 [005BH] |
| Viewers.Open(V,g V.Xh,i V.Yj + V.Hk)l;m M.id := Viewers.restore;n V.handleo(Vp,q M)r |
003E | g .FIXUP D |
003E | g(8D000005): LDR SB, MT, MOD0 [Tools] |
003F | g(80D00004): LDR R0, SB, 4H [data] |
0040 | h(81D00004): LDR R1, SB, 4H |
0041 | h(D103284C): BLEQ MT [trap=4, pos=808] |
0042 | i(81100008): LDR R1, R1, 8H |
0043 | j(82D00004): LDR R2, SB, 4H |
0044 | j(D1032D4C): BLEQ MT [trap=4, pos=813] |
0045 | k(83D00004): LDR R3, SB, 4H |
0046 | k(D103334C): BLEQ MT [trap=4, pos=819] |
0047 | l(8220000C): LDR R2, R2, CH |
0048 | l(83300014): LDR R3, R3, 14H |
0049 | l(02280003): ADD R2, R2, R3 |
004A | m .FIXUP P |
004A | m(F770501A): BL MOD7 [Viewers] PROC5 |
004B | n(40000000): MOV R0, R0, 0H |
004C | n(A0E00004): STR R0, SP, 4H |
004D | o .FIXUP D |
004D | o(8D00000F): LDR SB, MT, MOD0 [Tools] |
004E | o(80D00004): LDR R0, SB, 4H [data] |
004F | o(D103574C): BLEQ MT [trap=4, pos=855] |
0050 | p(80000018): LDR R0, R0, 18H |
0051 | p(4EE90004): SUB SP, SP, 4H |
0052 | p(A0E00000): STR R0, SP, 0H |
0053 | q(80D00004): LDR R0, SB, 4H |
0054 | r(41E80008): ADD R1, SP, 8H |
0055 | r .FIXUP D |
0055 | r(8D700008): LDR SB, MT, MOD7 [Viewers] |
0056 | r(42D80002): ADD R2, SB, VAR2 |
| ENDs |
0057 | s(83E00000): LDR R3, SP, 0H |
0058 | s(4EE80004): ADD SP, SP, 4H |
0059 | s(D103655C): BLEQ MT [trap=5, pos=869] |
005A | s(D7000003): BL R3 |
| ENDt Recall; |
005B | t(8FE00000): LDR LNK, SP, 0H |
005C | t(4EE8001C): ADD SP, SP, 1CH |
005D | t(C700000F): B LNK |
| |
| PROCEDURE Inspect*; |
| VAR m, n, adr, data: INTEGER; |
| S: Texts.Scanner; |
| BEGINu Texts.OpenScanner(S,v Oberon.Par.text,w Oberon.Par.pos)x;y Texts.Scan(S)z;a |
005E | u .PROC 3 |
005E | u .COMMAND Inspect |
005E | u(4EE90088): SUB SP, SP, 88H |
005F | u(AFE00000): STR LNK, SP, 0H |
0060 | v(40E80014): ADD R0, SP, 14H |
0061 | v .FIXUP D |
0061 | v(8D50000C): LDR SB, MT, MOD5 [Texts] |
0062 | v(41D80003): ADD R1, SB, VAR3 |
0063 | w .FIXUP D |
0063 | w(8DB00002): LDR SB, MT, MOD11 [Oberon] |
0064 | w(42D8000E): ADD R2, SB, VAR14 |
0065 | w(82200008): LDR R2, R2, 8H |
0066 | x .FIXUP D |
0066 | x(8DB00003): LDR SB, MT, MOD11 [Oberon] |
0067 | x(43D8000E): ADD R3, SB, VAR14 |
0068 | x(8330000C): LDR R3, R3, CH |
0069 | y .FIXUP P |
0069 | y(F751501F): BL MOD5 [Texts] PROC21 |
006A | z(40E80014): ADD R0, SP, 14H |
006B | z .FIXUP D |
006B | z(8D500005): LDR SB, MT, MOD5 [Texts] |
006C | z(41D80003): ADD R1, SB, VAR3 |
006D | a .FIXUP P |
006D | a(F7516004): BL MOD5 [Texts] PROC22 |
| IF S.class = Texts.Int THENb |
006E | b(80E00050): LDR R0, SP, 50H |
006F | b(40090003): SUB R0, R0, 3H |
0070 | b(E9000042): BNE 66 [00B3H] |
| adr := S.i DIV 20H *c 20H;d Texts.Scan(S)e;f |
0071 | c(80E00054): LDR R0, SP, 54H |
0072 | c(40020005): ASR R0, R0, 5H |
0073 | d(40010005): LSL R0, R0, 5H |
0074 | d(A0E0000C): STR R0, SP, CH |
0075 | e(40E80014): ADD R0, SP, 14H |
0076 | e .FIXUP D |
0076 | e(8D50000B): LDR SB, MT, MOD5 [Texts] |
0077 | e(41D80003): ADD R1, SB, VAR3 |
0078 | f .FIXUP P |
0078 | f(F751600B): BL MOD5 [Texts] PROC22 |
| IF S.class = Texts.Int THENg n := S.i ELSEh ni := 8 ENDj ; |
0079 | g(80E00050): LDR R0, SP, 50H |
007A | g(40090003): SUB R0, R0, 3H |
007B | g(E9000003): BNE 3 [007FH] |
007C | h(80E00054): LDR R0, SP, 54H |
007D | h(A0E00008): STR R0, SP, 8H |
007E | i(E7000002): B 2 [0081H] |
007F | j(40000008): MOV R0, R0, 8H |
0080 | j(A0E00008): STR R0, SP, 8H |
| REPEAT DEC(n);k Texts.WriteLn(W)l;m Texts.WriteHex(W,n adr)o;p Texts.Write(W,q 9X)r;s m := 8;t |
0081 | k(80E00008): LDR R0, SP, 8H |
0082 | k(40090001): SUB R0, R0, 1H |
0083 | k(A0E00008): STR R0, SP, 8H |
0084 | l .FIXUP D |
0084 | l(8D00000E): LDR SB, MT, MOD0 [Tools] |
0085 | l(40D80008): ADD R0, SB, 8H [data] |
0086 | l .FIXUP D |
0086 | l(8D500002): LDR SB, MT, MOD5 [Texts] |
0087 | l(41D80005): ADD R1, SB, VAR5 |
0088 | m .FIXUP P |
0088 | m(F751C010): BL MOD5 [Texts] PROC28 |
0089 | n .FIXUP D |
0089 | n(8D000003): LDR SB, MT, MOD0 [Tools] |
008A | n(40D80008): ADD R0, SB, 8H [data] |
008B | n .FIXUP D |
008B | n(8D500002): LDR SB, MT, MOD5 [Texts] |
008C | n(41D80005): ADD R1, SB, VAR5 |
008D | o(82E0000C): LDR R2, SP, CH |
008E | p .FIXUP P |
008E | p(F751F006): BL MOD5 [Texts] PROC31 |
008F | q .FIXUP D |
008F | q(8D000004): LDR SB, MT, MOD0 [Tools] |
0090 | q(40D80008): ADD R0, SB, 8H [data] |
0091 | q .FIXUP D |
0091 | q(8D500002): LDR SB, MT, MOD5 [Texts] |
0092 | q(41D80005): ADD R1, SB, VAR5 |
0093 | r(42000009): MOV R2, R0, 9H |
0094 | s .FIXUP P |
0094 | s(F751B006): BL MOD5 [Texts] PROC27 |
0095 | t(40000008): MOV R0, R0, 8H |
0096 | t(A0E00004): STR R0, SP, 4H |
| REPEAT SYSTEM.GET(adr, data);u INC(adr, 4);v Texts.WriteHex(W,w data)x;y DEC(m) |
0097 | u(80E0000C): LDR R0, SP, CH |
0098 | u(80000000): LDR R0, R0, 0H |
0099 | u(A0E00010): STR R0, SP, 10H |
009A | v(80E0000C): LDR R0, SP, CH |
009B | v(40080004): ADD R0, R0, 4H |
009C | v(A0E0000C): STR R0, SP, CH |
009D | w .FIXUP D |
009D | w(8D00000C): LDR SB, MT, MOD0 [Tools] |
009E | w(40D80008): ADD R0, SB, 8H [data] |
009F | w .FIXUP D |
009F | w(8D500002): LDR SB, MT, MOD5 [Texts] |
00A0 | w(41D80005): ADD R1, SB, VAR5 |
00A1 | x(82E00010): LDR R2, SP, 10H |
00A2 | y .FIXUP P |
00A2 | y(F751F00E): BL MOD5 [Texts] PROC31 |
| UNTILz m = 0 |
00A3 | z(80E00004): LDR R0, SP, 4H |
00A4 | z(40090001): SUB R0, R0, 1H |
00A5 | z(A0E00004): STR R0, SP, 4H |
| UNTILa n = 0;b |
00A6 | a(80E00004): LDR R0, SP, 4H |
00A7 | a(E9FFFFEF): BNE -17 [0097H] |
00A8 | b(80E00008): LDR R0, SP, 8H |
00A9 | b(E9FFFFD7): BNE -41 [0081H] |
| Texts.WriteLn(W)c;d Texts.Append(T,e W.buf)f |
00AA | c .FIXUP D |
00AA | c(8D00000B): LDR SB, MT, MOD0 [Tools] |
00AB | c(40D80008): ADD R0, SB, 8H [data] |
00AC | c .FIXUP D |
00AC | c(8D500002): LDR SB, MT, MOD5 [Texts] |
00AD | c(41D80005): ADD R1, SB, VAR5 |
00AE | d .FIXUP P |
00AE | d(F751C00C): BL MOD5 [Texts] PROC28 |
00AF | e .FIXUP D |
00AF | e(8D000003): LDR SB, MT, MOD0 [Tools] |
00B0 | e(80D00000): LDR R0, SB, 0H [data] |
00B1 | f(81D00008): LDR R1, SB, 8H |
| ENDg |
00B2 | g .FIXUP P |
00B2 | g(F750E004): BL MOD5 [Texts] PROC14 |
| ENDh Inspect; |
00B3 | h(8FE00000): LDR LNK, SP, 0H |
00B4 | h(4EE80088): ADD SP, SP, 88H |
00B5 | h(C700000F): B LNK |
| |
| PROCEDURE Sector*; |
| VAR k, m, n, secno: INTEGER; |
| S: Texts.Scanner; |
| buf: ARRAY 256 OF INTEGER; |
| BEGINi Texts.OpenScanner(S,j Oberon.Par.text,k Oberon.Par.pos)l;m Texts.Scan(S)n;o |
00B6 | i .PROC 4 |
00B6 | i .COMMAND Sector |
00B6 | i(4EE90488): SUB SP, SP, 488H |
00B7 | i(AFE00000): STR LNK, SP, 0H |
00B8 | j(40E80014): ADD R0, SP, 14H |
00B9 | j .FIXUP D |
00B9 | j(8D50000A): LDR SB, MT, MOD5 [Texts] |
00BA | j(41D80003): ADD R1, SB, VAR3 |
00BB | k .FIXUP D |
00BB | k(8DB00002): LDR SB, MT, MOD11 [Oberon] |
00BC | k(42D8000E): ADD R2, SB, VAR14 |
00BD | k(82200008): LDR R2, R2, 8H |
00BE | l .FIXUP D |
00BE | l(8DB00003): LDR SB, MT, MOD11 [Oberon] |
00BF | l(43D8000E): ADD R3, SB, VAR14 |
00C0 | l(8330000C): LDR R3, R3, CH |
00C1 | m .FIXUP P |
00C1 | m(F751500F): BL MOD5 [Texts] PROC21 |
00C2 | n(40E80014): ADD R0, SP, 14H |
00C3 | n .FIXUP D |
00C3 | n(8D500005): LDR SB, MT, MOD5 [Texts] |
00C4 | n(41D80003): ADD R1, SB, VAR3 |
00C5 | o .FIXUP P |
00C5 | o(F7516004): BL MOD5 [Texts] PROC22 |
| IF S.class = Texts.Int THENp |
00C6 | p(80E00050): LDR R0, SP, 50H |
00C7 | p(40090003): SUB R0, R0, 3H |
00C8 | p(E9000058): BNE 88 [0121H] |
| secno := S.i;q Texts.Scan(S)r;s |
00C9 | q(80E00054): LDR R0, SP, 54H |
00CA | q(A0E00010): STR R0, SP, 10H |
00CB | r(40E80014): ADD R0, SP, 14H |
00CC | r .FIXUP D |
00CC | r(8D500009): LDR SB, MT, MOD5 [Texts] |
00CD | r(41D80003): ADD R1, SB, VAR3 |
00CE | s .FIXUP P |
00CE | s(F7516009): BL MOD5 [Texts] PROC22 |
| IF S.class = Texts.Int THENt n := S.i ELSEu nv := 8 ENDw ; |
00CF | t(80E00050): LDR R0, SP, 50H |
00D0 | t(40090003): SUB R0, R0, 3H |
00D1 | t(E9000003): BNE 3 [00D5H] |
00D2 | u(80E00054): LDR R0, SP, 54H |
00D3 | u(A0E0000C): STR R0, SP, CH |
00D4 | v(E7000002): B 2 [00D7H] |
00D5 | w(40000008): MOV R0, R0, 8H |
00D6 | w(A0E0000C): STR R0, SP, CH |
| Kernel.GetSector(secno*29,x buf)y;z Texts.WriteString(W,a "Sector ")b;c Texts.WriteInt(W,d S.i,e 4)f;g |
00D7 | x(80E00010): LDR R0, SP, 10H |
00D8 | x(400A001D): MUL R0, R0, 1DH |
00D9 | y(41E80088): ADD R1, SP, 88H |
00DA | z .FIXUP P |
00DA | z(F710F00C): BL MOD1 [Kernel] PROC15 |
00DB | a .FIXUP D |
00DB | a(8D00000F): LDR SB, MT, MOD0 [Tools] |
00DC | a(40D80008): ADD R0, SB, 8H [data] |
00DD | a .FIXUP D |
00DD | a(8D500002): LDR SB, MT, MOD5 [Texts] |
00DE | a(41D80005): ADD R1, SB, VAR5 |
00DF | b .FIXUP D |
00DF | b(8D000002): LDR SB, MT, MOD0 [Tools] |
00E0 | b(42D80070): ADD R2, SB, 70H ["Sector "] |
00E1 | b(43000008): MOV R3, R0, 8H |
00E2 | c .FIXUP P |
00E2 | c(F751D008): BL MOD5 [Texts] PROC29 |
00E3 | d .FIXUP D |
00E3 | d(8D000004): LDR SB, MT, MOD0 [Tools] |
00E4 | d(40D80008): ADD R0, SB, 8H [data] |
00E5 | d .FIXUP D |
00E5 | d(8D500002): LDR SB, MT, MOD5 [Texts] |
00E6 | d(41D80005): ADD R1, SB, VAR5 |
00E7 | e(82E00054): LDR R2, SP, 54H |
00E8 | f(43000004): MOV R3, R0, 4H |
00E9 | g .FIXUP P |
00E9 | g(F751E007): BL MOD5 [Texts] PROC30 |
| k := 0;h |
00EA | h(40000000): MOV R0, R0, 0H |
00EB | h(A0E00004): STR R0, SP, 4H |
| REPEAT DEC(n);i m := 8;j Texts.WriteLn(W)k;l Texts.WriteHex(W,m k*4)n;o Texts.Write(W,p 9X)q;r |
00EC | i(80E0000C): LDR R0, SP, CH |
00ED | i(40090001): SUB R0, R0, 1H |
00EE | i(A0E0000C): STR R0, SP, CH |
00EF | j(40000008): MOV R0, R0, 8H |
00F0 | j(A0E00008): STR R0, SP, 8H |
00F1 | k .FIXUP D |
00F1 | k(8D00000C): LDR SB, MT, MOD0 [Tools] |
00F2 | k(40D80008): ADD R0, SB, 8H [data] |
00F3 | k .FIXUP D |
00F3 | k(8D500002): LDR SB, MT, MOD5 [Texts] |
00F4 | k(41D80005): ADD R1, SB, VAR5 |
00F5 | l .FIXUP P |
00F5 | l(F751C00C): BL MOD5 [Texts] PROC28 |
00F6 | m .FIXUP D |
00F6 | m(8D000003): LDR SB, MT, MOD0 [Tools] |
00F7 | m(40D80008): ADD R0, SB, 8H [data] |
00F8 | m .FIXUP D |
00F8 | m(8D500002): LDR SB, MT, MOD5 [Texts] |
00F9 | m(41D80005): ADD R1, SB, VAR5 |
00FA | n(82E00004): LDR R2, SP, 4H |
00FB | n(42210002): LSL R2, R2, 2H |
00FC | o .FIXUP P |
00FC | o(F751F007): BL MOD5 [Texts] PROC31 |
00FD | p .FIXUP D |
00FD | p(8D000005): LDR SB, MT, MOD0 [Tools] |
00FE | p(40D80008): ADD R0, SB, 8H [data] |
00FF | p .FIXUP D |
00FF | p(8D500002): LDR SB, MT, MOD5 [Texts] |
0100 | p(41D80005): ADD R1, SB, VAR5 |
0101 | q(42000009): MOV R2, R0, 9H |
0102 | r .FIXUP P |
0102 | r(F751B006): BL MOD5 [Texts] PROC27 |
| REPEAT Texts.WriteHex(W,s buf[k]t)u;v INC(k);w DEC(m) UNTILx m = 0;y |
0103 | s .FIXUP D |
0103 | s(8D000004): LDR SB, MT, MOD0 [Tools] |
0104 | s(40D80008): ADD R0, SB, 8H [data] |
0105 | s .FIXUP D |
0105 | s(8D500002): LDR SB, MT, MOD5 [Texts] |
0106 | s(41D80005): ADD R1, SB, VAR5 |
0107 | t(82E00004): LDR R2, SP, 4H |
0108 | t(43290100): SUB R3, R2, 100H |
0109 | t(DA07EB1C): BLCC MT [trap=1, pos=2027] |
010A | t(42210002): LSL R2, R2, 2H |
010B | t(02E80002): ADD R2, SP, R2 |
010C | u(82200088): LDR R2, R2, 88H |
010D | v .FIXUP P |
010D | v(F751F00B): BL MOD5 [Texts] PROC31 |
010E | w(80E00004): LDR R0, SP, 4H |
010F | w(40080001): ADD R0, R0, 1H |
0110 | w(A0E00004): STR R0, SP, 4H |
0111 | x(80E00008): LDR R0, SP, 8H |
0112 | x(40090001): SUB R0, R0, 1H |
0113 | x(A0E00008): STR R0, SP, 8H |
0114 | y(80E00008): LDR R0, SP, 8H |
0115 | y(E9FFFFED): BNE -19 [0103H] |
| UNTIL n = 0;z |
0116 | z(80E0000C): LDR R0, SP, CH |
0117 | z(E9FFFFD4): BNE -44 [00ECH] |
| Texts.WriteLn(W)a;b Texts.Append(T,c W.buf)d |
0118 | a .FIXUP D |
0118 | a(8D000013): LDR SB, MT, MOD0 [Tools] |
0119 | a(40D80008): ADD R0, SB, 8H [data] |
011A | a .FIXUP D |
011A | a(8D500002): LDR SB, MT, MOD5 [Texts] |
011B | a(41D80005): ADD R1, SB, VAR5 |
011C | b .FIXUP P |
011C | b(F751C00F): BL MOD5 [Texts] PROC28 |
011D | c .FIXUP D |
011D | c(8D000003): LDR SB, MT, MOD0 [Tools] |
011E | c(80D00000): LDR R0, SB, 0H [data] |
011F | d(81D00008): LDR R1, SB, 8H |
| ENDe |
0120 | e .FIXUP P |
0120 | e(F750E004): BL MOD5 [Texts] PROC14 |
| ENDf Sector; |
0121 | f(8FE00000): LDR LNK, SP, 0H |
0122 | f(4EE80488): ADD SP, SP, 488H |
0123 | f(C700000F): B LNK |
| |
| PROCEDURE ShowFile*; |
| VAR x, n: INTEGER; |
| F: Files.File; R: Files.Rider; |
| S: Texts.Scanner; |
| BEGINg Texts.OpenScanner(S,h Oberon.Par.text,i Oberon.Par.pos)j;k Texts.Scan(S)l;m |
0124 | g .PROC 5 |
0124 | g .COMMAND ShowFile |
0124 | g(4EE9009C): SUB SP, SP, 9CH |
0125 | g(AFE00000): STR LNK, SP, 0H |
0126 | h(40E80028): ADD R0, SP, 28H |
0127 | h .FIXUP D |
0127 | h(8D50000A): LDR SB, MT, MOD5 [Texts] |
0128 | h(41D80003): ADD R1, SB, VAR3 |
0129 | i .FIXUP D |
0129 | i(8DB00002): LDR SB, MT, MOD11 [Oberon] |
012A | i(42D8000E): ADD R2, SB, VAR14 |
012B | i(82200008): LDR R2, R2, 8H |
012C | j .FIXUP D |
012C | j(8DB00003): LDR SB, MT, MOD11 [Oberon] |
012D | j(43D8000E): ADD R3, SB, VAR14 |
012E | j(8330000C): LDR R3, R3, CH |
012F | k .FIXUP P |
012F | k(F751500F): BL MOD5 [Texts] PROC21 |
0130 | l(40E80028): ADD R0, SP, 28H |
0131 | l .FIXUP D |
0131 | l(8D500005): LDR SB, MT, MOD5 [Texts] |
0132 | l(41D80003): ADD R1, SB, VAR3 |
0133 | m .FIXUP P |
0133 | m(F7516004): BL MOD5 [Texts] PROC22 |
| IF S.class = Texts.Name THENn |
0134 | n(80E00064): LDR R0, SP, 64H |
0135 | n(40090001): SUB R0, R0, 1H |
0136 | n(E9000058): BNE 88 [018FH] |
| Texts.WriteString(W,o S.s)p;q F := Files.Old(S.s)r;s |
0137 | o .FIXUP D |
0137 | o(8D000006): LDR SB, MT, MOD0 [Tools] |
0138 | o(40D80008): ADD R0, SB, 8H [data] |
0139 | o .FIXUP D |
0139 | o(8D500002): LDR SB, MT, MOD5 [Texts] |
013A | o(41D80005): ADD R1, SB, VAR5 |
013B | p(42E8007C): ADD R2, SP, 7CH |
013C | p(43000020): MOV R3, R0, 20H |
013D | q .FIXUP P |
013D | q(F751D00A): BL MOD5 [Texts] PROC29 |
013E | r(40E8007C): ADD R0, SP, 7CH |
013F | r(41000020): MOV R1, R0, 20H |
0140 | s .FIXUP P |
0140 | s(F7202003): BL MOD2 [Files] PROC2 |
0141 | s(A0E0000C): STR R0, SP, CH |
| IF F # NIL THENt |
0142 | t(80E0000C): LDR R0, SP, CH |
0143 | t(E100003A): BEQ 58 [017EH] |
| n := 0;u Files.Set(R,v F,w 0)x;y Files.ReadInt(R,z x)a;b |
0144 | u(40000000): MOV R0, R0, 0H |
0145 | u(A0E00008): STR R0, SP, 8H |
0146 | v(40E80010): ADD R0, SP, 10H |
0147 | v .FIXUP D |
0147 | v(8D20000E): LDR SB, MT, MOD2 [Files] |
0148 | v(41D80001): ADD R1, SB, VAR1 |
0149 | w(82E0000C): LDR R2, SP, CH |
014A | x(43000000): MOV R3, R0, 0H |
014B | y .FIXUP P |
014B | y(F720B00B): BL MOD2 [Files] PROC11 |
014C | z(40E80010): ADD R0, SP, 10H |
014D | z .FIXUP D |
014D | z(8D200006): LDR SB, MT, MOD2 [Files] |
014E | z(41D80001): ADD R1, SB, VAR1 |
014F | a(42E80004): ADD R2, SP, 4H |
0150 | b .FIXUP P |
0150 | b(F7211005): BL MOD2 [Files] PROC17 |
| WHILE ~R.eof DOc |
0151 | c(90E00010): LDR R0, SP, 10H |
0152 | c(E9000024): BNE 36 [0177H] |
| IF n MOD 20H =d 0 THENe Texts.WriteLn(W)f;g Texts.WriteHex(W,h n)i;j Texts.Write(W,k 9X)l ENDm ; |
0153 | d(80E00008): LDR R0, SP, 8H |
0154 | d(4004001F): AND R0, R0, 1FH |
0155 | e(40090000): SUB R0, R0, 0H |
0156 | e(E9000011): BNE 17 [0168H] |
0157 | f .FIXUP D |
0157 | f(8D00000A): LDR SB, MT, MOD0 [Tools] |
0158 | f(40D80008): ADD R0, SB, 8H [data] |
0159 | f .FIXUP D |
0159 | f(8D500002): LDR SB, MT, MOD5 [Texts] |
015A | f(41D80005): ADD R1, SB, VAR5 |
015B | g .FIXUP P |
015B | g(F751C00B): BL MOD5 [Texts] PROC28 |
015C | h .FIXUP D |
015C | h(8D000003): LDR SB, MT, MOD0 [Tools] |
015D | h(40D80008): ADD R0, SB, 8H [data] |
015E | h .FIXUP D |
015E | h(8D500002): LDR SB, MT, MOD5 [Texts] |
015F | h(41D80005): ADD R1, SB, VAR5 |
0160 | i(82E00008): LDR R2, SP, 8H |
0161 | j .FIXUP P |
0161 | j(F751F006): BL MOD5 [Texts] PROC31 |
0162 | k .FIXUP D |
0162 | k(8D000004): LDR SB, MT, MOD0 [Tools] |
0163 | k(40D80008): ADD R0, SB, 8H [data] |
0164 | k .FIXUP D |
0164 | k(8D500002): LDR SB, MT, MOD5 [Texts] |
0165 | k(41D80005): ADD R1, SB, VAR5 |
0166 | l(42000009): MOV R2, R0, 9H |
0167 | m .FIXUP P |
0167 | m(F751B006): BL MOD5 [Texts] PROC27 |
| Texts.WriteHex(W,n x)o;p INC(n, 4);q Files.ReadInt(R,r x)s |
0168 | n .FIXUP D |
0168 | n(8D000004): LDR SB, MT, MOD0 [Tools] |
0169 | n(40D80008): ADD R0, SB, 8H [data] |
016A | n .FIXUP D |
016A | n(8D500002): LDR SB, MT, MOD5 [Texts] |
016B | n(41D80005): ADD R1, SB, VAR5 |
016C | o(82E00004): LDR R2, SP, 4H |
016D | p .FIXUP P |
016D | p(F751F006): BL MOD5 [Texts] PROC31 |
016E | q(80E00008): LDR R0, SP, 8H |
016F | q(40080004): ADD R0, R0, 4H |
0170 | q(A0E00008): STR R0, SP, 8H |
0171 | r(40E80010): ADD R0, SP, 10H |
0172 | r .FIXUP D |
0172 | r(8D200008): LDR SB, MT, MOD2 [Files] |
0173 | r(41D80001): ADD R1, SB, VAR1 |
0174 | s(42E80004): ADD R2, SP, 4H |
| ENDt ; |
0175 | t .FIXUP P |
0175 | t(F7211008): BL MOD2 [Files] PROC17 |
0176 | t(E7FFFFDA): B -38 [0151H] |
| Texts.WriteHex(W,u x)v |
0177 | u .FIXUP D |
0177 | u(8D000005): LDR SB, MT, MOD0 [Tools] |
0178 | u(40D80008): ADD R0, SB, 8H [data] |
0179 | u .FIXUP D |
0179 | u(8D500002): LDR SB, MT, MOD5 [Texts] |
017A | u(41D80005): ADD R1, SB, VAR5 |
017B | v(82E00004): LDR R2, SP, 4H |
| ELSEw Textsx.WriteString(W,y " not found")z |
017C | w .FIXUP P |
017C | w(F751F007): BL MOD5 [Texts] PROC31 |
017D | x(E7000008): B 8 [0186H] |
017E | y .FIXUP D |
017E | y(8D000005): LDR SB, MT, MOD0 [Tools] |
017F | y(40D80008): ADD R0, SB, 8H [data] |
0180 | y .FIXUP D |
0180 | y(8D500002): LDR SB, MT, MOD5 [Texts] |
0181 | y(41D80005): ADD R1, SB, VAR5 |
0182 | z .FIXUP D |
0182 | z(8D000002): LDR SB, MT, MOD0 [Tools] |
0183 | z(42D80078): ADD R2, SB, 78H [" not found"] |
0184 | z(4300000B): MOV R3, R0, BH |
| ENDa ; |
0185 | a .FIXUP P |
0185 | a(F751D009): BL MOD5 [Texts] PROC29 |
| Texts.WriteLn(W)b;c Texts.Append(T,d W.buf)e |
0186 | b .FIXUP D |
0186 | b(8D000004): LDR SB, MT, MOD0 [Tools] |
0187 | b(40D80008): ADD R0, SB, 8H [data] |
0188 | b .FIXUP D |
0188 | b(8D500002): LDR SB, MT, MOD5 [Texts] |
0189 | b(41D80005): ADD R1, SB, VAR5 |
018A | c .FIXUP P |
018A | c(F751C005): BL MOD5 [Texts] PROC28 |
018B | d .FIXUP D |
018B | d(8D000003): LDR SB, MT, MOD0 [Tools] |
018C | d(80D00000): LDR R0, SB, 0H [data] |
018D | e(81D00008): LDR R1, SB, 8H |
| ENDf |
018E | f .FIXUP P |
018E | f(F750E004): BL MOD5 [Texts] PROC14 |
| ENDg ShowFile; |
018F | g(8FE00000): LDR LNK, SP, 0H |
0190 | g(4EE8009C): ADD SP, SP, 9CH |
0191 | g(C700000F): B LNK |
| |
| PROCEDURE Convert*; (*convert selected text to txt-format*) |
| VAR beg, end, time: LONGINT |
| ; ch: CHAR; |
| T: Texts.Text; R: Texts.Reader; (*input*) |
| F: Files.File; Q: Files.Rider; (*output*) |
| S: Texts.Scanner; |
| BEGINh Oberon.GetSelection(T,i beg,j end,k time)l;m |
0192 | h .PROC 6 |
0192 | h .COMMAND Convert |
0192 | h(4EE900DC): SUB SP, SP, DCH |
0193 | h(AFE00000): STR LNK, SP, 0H |
0194 | i(40E80014): ADD R0, SP, 14H |
0195 | j(41E80004): ADD R1, SP, 4H |
0196 | k(42E80008): ADD R2, SP, 8H |
0197 | l(43E8000C): ADD R3, SP, CH |
0198 | m .FIXUP P |
0198 | m(F7B2900A): BL MOD11 [Oberon] PROC41 |
| IF time >= 0 THENn |
0199 | n(80E0000C): LDR R0, SP, CH |
019A | n(40090000): SUB R0, R0, 0H |
019B | n(E5000066): BLT 102 [0202H] |
| Texts.OpenScanner(S,o Oberon.Par.text,p Oberon.Par.pos)q;r Texts.Scan(S)s;t |
019C | o(40E80068): ADD R0, SP, 68H |
019D | o .FIXUP D |
019D | o(8D500012): LDR SB, MT, MOD5 [Texts] |
019E | o(41D80003): ADD R1, SB, VAR3 |
019F | p .FIXUP D |
019F | p(8DB00002): LDR SB, MT, MOD11 [Oberon] |
01A0 | p(42D8000E): ADD R2, SB, VAR14 |
01A1 | p(82200008): LDR R2, R2, 8H |
01A2 | q .FIXUP D |
01A2 | q(8DB00003): LDR SB, MT, MOD11 [Oberon] |
01A3 | q(43D8000E): ADD R3, SB, VAR14 |
01A4 | q(8330000C): LDR R3, R3, CH |
01A5 | r .FIXUP P |
01A5 | r(F751500D): BL MOD5 [Texts] PROC21 |
01A6 | s(40E80068): ADD R0, SP, 68H |
01A7 | s .FIXUP D |
01A7 | s(8D500005): LDR SB, MT, MOD5 [Texts] |
01A8 | s(41D80003): ADD R1, SB, VAR3 |
01A9 | t .FIXUP P |
01A9 | t(F7516004): BL MOD5 [Texts] PROC22 |
| Texts.WriteString(W,u "converting to ")v;w Texts.WriteString(W,x S.s)y;z |
01AA | u .FIXUP D |
01AA | u(8D000003): LDR SB, MT, MOD0 [Tools] |
01AB | u(40D80008): ADD R0, SB, 8H [data] |
01AC | u .FIXUP D |
01AC | u(8D500002): LDR SB, MT, MOD5 [Texts] |
01AD | u(41D80005): ADD R1, SB, VAR5 |
01AE | v .FIXUP D |
01AE | v(8D000002): LDR SB, MT, MOD0 [Tools] |
01AF | v(42D80084): ADD R2, SB, 84H ["converting to "] |
01B0 | v(4300000F): MOV R3, R0, FH |
01B1 | w .FIXUP P |
01B1 | w(F751D008): BL MOD5 [Texts] PROC29 |
01B2 | x .FIXUP D |
01B2 | x(8D000004): LDR SB, MT, MOD0 [Tools] |
01B3 | x(40D80008): ADD R0, SB, 8H [data] |
01B4 | x .FIXUP D |
01B4 | x(8D500002): LDR SB, MT, MOD5 [Texts] |
01B5 | x(41D80005): ADD R1, SB, VAR5 |
01B6 | y(42E800BC): ADD R2, SP, BCH |
01B7 | y(43000020): MOV R3, R0, 20H |
01B8 | z .FIXUP P |
01B8 | z(F751D007): BL MOD5 [Texts] PROC29 |
| F := Files.New(S.s)a;b Files.Set(Q,c F,d 0)e;f Texts.OpenReader(R,g T,h beg)i;j Texts.Read(R,k ch)l;m |
01B9 | a(40E800BC): ADD R0, SP, BCH |
01BA | a(41000020): MOV R1, R0, 20H |
01BB | b .FIXUP P |
01BB | b(F7203003): BL MOD2 [Files] PROC3 |
01BC | b(A0E0004C): STR R0, SP, 4CH |
01BD | c(40E80050): ADD R0, SP, 50H |
01BE | c .FIXUP D |
01BE | c(8D20000A): LDR SB, MT, MOD2 [Files] |
01BF | c(41D80001): ADD R1, SB, VAR1 |
01C0 | d(82E0004C): LDR R2, SP, 4CH |
01C1 | e(43000000): MOV R3, R0, 0H |
01C2 | f .FIXUP P |
01C2 | f(F720B007): BL MOD2 [Files] PROC11 |
01C3 | g(40E80018): ADD R0, SP, 18H |
01C4 | g .FIXUP D |
01C4 | g(8D500006): LDR SB, MT, MOD5 [Texts] |
01C5 | g(41D80002): ADD R1, SB, VAR2 |
01C6 | h(82E00014): LDR R2, SP, 14H |
01C7 | i(83E00004): LDR R3, SP, 4H |
01C8 | j .FIXUP P |
01C8 | j(F7512006): BL MOD5 [Texts] PROC18 |
01C9 | k(40E80018): ADD R0, SP, 18H |
01CA | k .FIXUP D |
01CA | k(8D500006): LDR SB, MT, MOD5 [Texts] |
01CB | k(41D80002): ADD R1, SB, VAR2 |
01CC | l(42E80010): ADD R2, SP, 10H |
01CD | m .FIXUP P |
01CD | m(F7513005): BL MOD5 [Texts] PROC19 |
| WHILE ~R.eot DOn |
01CE | n(90E00018): LDR R0, SP, 18H |
01CF | n(E9000027): BNE 39 [01F7H] |
| IF ch = 0DX THENo Files.Write(Q,p 0DX)q;r Files.Write(Q,s 0AX)t |
01D0 | o(90E00010): LDR R0, SP, 10H |
01D1 | o(4009000D): SUB R0, R0, DH |
01D2 | o(E900000B): BNE 11 [01DEH] |
01D3 | p(40E80050): ADD R0, SP, 50H |
01D4 | p .FIXUP D |
01D4 | p(8D20000A): LDR SB, MT, MOD2 [Files] |
01D5 | p(41D80001): ADD R1, SB, VAR1 |
01D6 | q(4200000D): MOV R2, R0, DH |
01D7 | r .FIXUP P |
01D7 | r(F721800A): BL MOD2 [Files] PROC24 |
01D8 | s(40E80050): ADD R0, SP, 50H |
01D9 | s .FIXUP D |
01D9 | s(8D200005): LDR SB, MT, MOD2 [Files] |
01DA | s(41D80001): ADD R1, SB, VAR1 |
01DB | t(4200000A): MOV R2, R0, AH |
| ELSIFu chv = 9X THENw (*TAB*) Files.Write(Q,x " ")y;z Files.Write(Q,a " ")b |
01DC | u .FIXUP P |
01DC | u(F7218005): BL MOD2 [Files] PROC24 |
01DD | v(E7000013): B 19 [01F1H] |
01DE | w(90E00010): LDR R0, SP, 10H |
01DF | w(40090009): SUB R0, R0, 9H |
01E0 | w(E900000B): BNE 11 [01ECH] |
01E1 | x(40E80050): ADD R0, SP, 50H |
01E2 | x .FIXUP D |
01E2 | x(8D200009): LDR SB, MT, MOD2 [Files] |
01E3 | x(41D80001): ADD R1, SB, VAR1 |
01E4 | y(42000020): MOV R2, R0, 20H |
01E5 | z .FIXUP P |
01E5 | z(F7218009): BL MOD2 [Files] PROC24 |
01E6 | a(40E80050): ADD R0, SP, 50H |
01E7 | a .FIXUP D |
01E7 | a(8D200005): LDR SB, MT, MOD2 [Files] |
01E8 | a(41D80001): ADD R1, SB, VAR1 |
01E9 | b(42000020): MOV R2, R0, 20H |
| ELSEc Filesd.Write(Q,e ch)f |
01EA | c .FIXUP P |
01EA | c(F7218005): BL MOD2 [Files] PROC24 |
01EB | d(E7000005): B 5 [01F1H] |
01EC | e(40E80050): ADD R0, SP, 50H |
01ED | e .FIXUP D |
01ED | e(8D200006): LDR SB, MT, MOD2 [Files] |
01EE | e(41D80001): ADD R1, SB, VAR1 |
01EF | f(92E00010): LDR R2, SP, 10H |
| ENDg ; |
01F0 | g .FIXUP P |
01F0 | g(F7218006): BL MOD2 [Files] PROC24 |
| Texts.Read(R,h ch)i |
01F1 | h(40E80018): ADD R0, SP, 18H |
01F2 | h .FIXUP D |
01F2 | h(8D500005): LDR SB, MT, MOD5 [Texts] |
01F3 | h(41D80002): ADD R1, SB, VAR2 |
01F4 | i(42E80010): ADD R2, SP, 10H |
| ENDj ; |
01F5 | j .FIXUP P |
01F5 | j(F7513005): BL MOD5 [Texts] PROC19 |
01F6 | j(E7FFFFD7): B -41 [01CEH] |
| Files.Register(F)k;l Texts.WriteString(W,m " done")n |
01F7 | k(80E0004C): LDR R0, SP, 4CH |
01F8 | l .FIXUP P |
01F8 | l(F7204003): BL MOD2 [Files] PROC4 |
01F9 | m .FIXUP D |
01F9 | m(8D000007): LDR SB, MT, MOD0 [Tools] |
01FA | m(40D80008): ADD R0, SB, 8H [data] |
01FB | m .FIXUP D |
01FB | m(8D500002): LDR SB, MT, MOD5 [Texts] |
01FC | m(41D80005): ADD R1, SB, VAR5 |
01FD | n .FIXUP D |
01FD | n(8D000002): LDR SB, MT, MOD0 [Tools] |
01FE | n(42D80094): ADD R2, SB, 94H [" done"] |
01FF | n(43000006): MOV R3, R0, 6H |
| ELSEo Textsp.WriteString(W,q " not found")r |
0200 | o .FIXUP P |
0200 | o(F751D008): BL MOD5 [Texts] PROC29 |
0201 | p(E7000008): B 8 [020AH] |
0202 | q .FIXUP D |
0202 | q(8D000005): LDR SB, MT, MOD0 [Tools] |
0203 | q(40D80008): ADD R0, SB, 8H [data] |
0204 | q .FIXUP D |
0204 | q(8D500002): LDR SB, MT, MOD5 [Texts] |
0205 | q(41D80005): ADD R1, SB, VAR5 |
0206 | r .FIXUP D |
0206 | r(8D000002): LDR SB, MT, MOD0 [Tools] |
0207 | r(42D8009C): ADD R2, SB, 9CH [" not found"] |
0208 | r(4300000B): MOV R3, R0, BH |
| ENDs ; |
0209 | s .FIXUP P |
0209 | s(F751D009): BL MOD5 [Texts] PROC29 |
| Texts.WriteLn(W)t;u Texts.Append(Oberon.Log,v W.buf)w;x Texts.Scan(S)y |
020A | t .FIXUP D |
020A | t(8D000004): LDR SB, MT, MOD0 [Tools] |
020B | t(40D80008): ADD R0, SB, 8H [data] |
020C | t .FIXUP D |
020C | t(8D500002): LDR SB, MT, MOD5 [Texts] |
020D | t(41D80005): ADD R1, SB, VAR5 |
020E | u .FIXUP P |
020E | u(F751C005): BL MOD5 [Texts] PROC28 |
020F | v .FIXUP D |
020F | v(8DB00003): LDR SB, MT, MOD11 [Oberon] |
0210 | v(80D0000D): LDR R0, SB, VAR13 |
0211 | w .FIXUP D |
0211 | w(8D000002): LDR SB, MT, MOD0 [Tools] |
0212 | w(81D00008): LDR R1, SB, 8H [data] |
0213 | x .FIXUP P |
0213 | x(F750E005): BL MOD5 [Texts] PROC14 |
0214 | y(40E80068): ADD R0, SP, 68H |
0215 | y .FIXUP D |
0215 | y(8D500004): LDR SB, MT, MOD5 [Texts] |
0216 | y(41D80003): ADD R1, SB, VAR3 |
| ENDz Convert; |
0217 | z .FIXUP P |
0217 | z(F7516004): BL MOD5 [Texts] PROC22 |
0218 | z(8FE00000): LDR LNK, SP, 0H |
0219 | z(4EE800DC): ADD SP, SP, DCH |
021A | z(C700000F): B LNK |
| |
| PROCEDURE Id*; |
| BEGINa Texts.WriteHex(W,b SYSTEM.H(1))c;d Texts.WriteLn(W)e;f Texts.Append(T,g W.buf)h |
021B | a .PROC 7 |
021B | a .COMMAND Id |
021B | a(4EE90004): SUB SP, SP, 4H |
021C | a(AFE00000): STR LNK, SP, 0H |
021D | b .FIXUP D |
021D | b(8D000008): LDR SB, MT, MOD0 [Tools] |
021E | b(40D80008): ADD R0, SB, 8H [data] |
021F | b .FIXUP D |
021F | b(8D500002): LDR SB, MT, MOD5 [Texts] |
0220 | b(41D80005): ADD R1, SB, VAR5 |
0221 | c(32000000): MOV' R2, R0, R0 |
0222 | d .FIXUP P |
0222 | d(F751F00B): BL MOD5 [Texts] PROC31 |
0223 | e .FIXUP D |
0223 | e(8D000004): LDR SB, MT, MOD0 [Tools] |
0224 | e(40D80008): ADD R0, SB, 8H [data] |
0225 | e .FIXUP D |
0225 | e(8D500002): LDR SB, MT, MOD5 [Texts] |
0226 | e(41D80005): ADD R1, SB, VAR5 |
0227 | f .FIXUP P |
0227 | f(F751C005): BL MOD5 [Texts] PROC28 |
0228 | g .FIXUP D |
0228 | g(8D000003): LDR SB, MT, MOD0 [Tools] |
0229 | g(80D00000): LDR R0, SB, 0H [data] |
022A | h(81D00008): LDR R1, SB, 8H |
| ENDi Id; |
022B | i .FIXUP P |
022B | i(F750E004): BL MOD5 [Texts] PROC14 |
022C | i(8FE00000): LDR LNK, SP, 0H |
022D | i(4EE80004): ADD SP, SP, 4H |
022E | i(C700000F): B LNK |
| |
| BEGINj Texts.OpenWriter(W)k;l T := TextFrames.Text("")m;n OpenViewer(T,o "Tools.Text")p |
022F | j .PROC 0 |
022F | j .ENTRYPOINT |
022F | j(4EE90004): SUB SP, SP, 4H |
0230 | j(AFE00000): STR LNK, SP, 0H |
0231 | k .FIXUP D |
0231 | k(8D000009): LDR SB, MT, MOD0 [Tools] |
0232 | k(40D80008): ADD R0, SB, 8H [data] |
0233 | k .FIXUP D |
0233 | k(8D500002): LDR SB, MT, MOD5 [Texts] |
0234 | k(41D80005): ADD R1, SB, VAR5 |
0235 | l .FIXUP P |
0235 | l(F751700A): BL MOD5 [Texts] PROC23 |
0236 | m .FIXUP D |
0236 | m(8D000003): LDR SB, MT, MOD0 [Tools] |
0237 | m(40D800A8): ADD R0, SB, A8H [""] |
0238 | m(41000001): MOV R1, R0, 1H |
0239 | n .FIXUP P |
0239 | n(F7A2B004): BL MOD10 [TextFrames] PROC43 |
023A | n .FIXUP D |
023A | n(8D000004): LDR SB, MT, MOD0 [Tools] |
023B | n(A0D00000): STR R0, SB, 0H [data] |
023C | o(80D00000): LDR R0, SB, 0H |
023D | p(41D800AC): ADD R1, SB, ACH |
023E | p(4200000B): MOV R2, R0, BH |
| ENDq Tools.r |
023F | q(F7FFFDC0): BL -576 [0000H] |
0240 | r(8FE00000): LDR LNK, SP, 0H |
0241 | r(4EE80004): ADD SP, SP, 4H |
0242 | r(C700000F): B LNK |