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