| MODULE System; (*JG 3.10.90 / NW 12.10.93 / NW 20.6.2016*) |
| | .MODULE System (KEY D4F6C028, VERSION 1, SIZE 00002638) |
| | .IMPORT Kernel (KEY 97E012DD) |
| | .IMPORT FileDir (KEY AF8E65FF) |
| | .IMPORT Files (KEY 73F5D686) |
| | .IMPORT Modules (KEY 41C6A19A) |
| | .IMPORT Input (KEY 5DE391A8) |
| | .IMPORT Display (KEY 4C08D3EA) |
| | .IMPORT Viewers (KEY 25ABF199) |
| | .IMPORT Fonts (KEY F4C9F557) |
| | .IMPORT Texts (KEY 0B9E9984) |
| | .IMPORT Oberon (KEY A89CCEE2) |
| | .IMPORT MenuViewers (KEY 245ACC30) |
| | .IMPORT TextFrames (KEY 650813D5) |
| | .DATA 48H |
| | .STRING 48H "System.Close System.Copy System.Grow Edit.Search Edit.Store" |
| | .STRING 84H "Edit.Locate Edit.Search System.Copy System.Grow System.Clear" |
| | .STRING C4H "System.Clock" |
| | .STRING D4H " unloading" |
| | .STRING E0H " failed" |
| | .STRING E8H "System.Free" |
| | .STRING F4H "System.FreeFonts" |
| | .STRING 108H "" |
| | .STRING 10CH "System.Directory" |
| | .STRING 120H "System.CopyFiles" |
| | .STRING 134H " => " |
| | .STRING 13CH " copying" |
| | .STRING 148H " failed" |
| | .STRING 150H "System.RenameFiles" |
| | .STRING 164H " => " |
| | .STRING 16CH " renaming" |
| | .STRING 178H " failed" |
| | .STRING 180H "System.DeleteFiles" |
| | .STRING 194H " deleting" |
| | .STRING 1A0H " failed" |
| | .STRING 1A8H "System.Watch" |
| | .STRING 1B8H " Modules space (bytes)" |
| | .STRING 1D0H " Heap speace" |
| | .STRING 1E0H " Disk sectors " |
| | .STRING 1F0H " Tasks" |
| | .STRING 1F8H "" |
| | .STRING 1FCH "System.ShowModules" |
| | .STRING 210H "---" |
| | .STRING 214H "" |
| | .STRING 218H "System.Commands" |
| | .STRING 228H "System.ShowFonts" |
| | .STRING 23CH "Oberon V5 NW 14.4.2013" |
| | .STRING 254H "System.Log" |
| | .STRING 260H "System.Tool" |
| | .STRING 26CH "System.Tool" |
| | .STRING 278H " pos " |
| | .STRING 280H " TRAP" |
| | .STRING 288H " in " |
| | .STRING 290H " at" |
| | .STRING 294H " ABORT " |
| | .STRING 2A0H "" |
| | .POINTER_REFERENCES 0H 4H 24H 18H |
| | .FIXUP T 0H |
| IMPORT SYSTEM, Kernel, FileDir, Files, Modules, |
| Input, Display, Viewers, Fonts, Texts, Oberon, MenuViewers, TextFrames; |
| |
| CONST |
| StandardMenu = "System.Close System.Copy System.Grow Edit.Search Edit.Store"; |
| LogMenu = "Edit.Locate Edit.Search System.Copy System.Grow System.Clear"; |
| |
| VAR W: Texts.Writer; |
| pat: ARRAY 32 OF CHAR; |
| |
| PROCEDURE GetArg(VAR S: Texts.Scanner); |
| VAR T: Texts.Text; beg, end, time: LONGINT; |
| BEGINa Texts.OpenScanner(S,b Oberon.Par.text,c Oberon.Par.pos)d;e Texts.Scan(S)f;g |
| 0000 | a(4EE9001C): SUB SP, SP, 1CH |
| 0001 | a(AFE00000): STR LNK, SP, 0H |
| 0002 | a(A0E00004): STR R0, SP, 4H |
| 0003 | a(A1E00008): STR R1, SP, 8H |
| 0004 | b(80E00004): LDR R0, SP, 4H |
| 0005 | b(81E00008): LDR R1, SP, 8H |
| 0006 | c .FIXUP D |
| 0006 | c(8DA00006): LDR SB, MT, MOD10 [Oberon] |
| 0007 | c(42D8000E): ADD R2, SB, VAR14 |
| 0008 | c(82200008): LDR R2, R2, 8H |
| 0009 | d .FIXUP D |
| 0009 | d(8DA00003): LDR SB, MT, MOD10 [Oberon] |
| 000A | d(43D8000E): ADD R3, SB, VAR14 |
| 000B | d(8330000C): LDR R3, R3, CH |
| 000C | e .FIXUP P |
| 000C | e(F791500C): BL MOD9 [Texts] PROC21 |
| 000D | f(80E00004): LDR R0, SP, 4H |
| 000E | f(81E00008): LDR R1, SP, 8H |
| 000F | g .FIXUP P |
| 000F | g(F7916003): BL MOD9 [Texts] PROC22 |
| IF (S.class = Texts.Char)h & (iS.c = "^")j THENk |
| 0010 | h(80E00004): LDR R0, SP, 4H |
| 0011 | h(8000003C): LDR R0, R0, 3CH |
| 0012 | h(40090006): SUB R0, R0, 6H |
| 0013 | i(E9000014): BNE 20 [0028H] |
| 0014 | j(80E00004): LDR R0, SP, 4H |
| 0015 | j(9000004C): LDR R0, R0, 4CH |
| 0016 | j(4009005E): SUB R0, R0, 5EH |
| 0017 | k(E9000010): BNE 16 [0028H] |
| Oberon.GetSelection(T,l beg,m end,n time)o;p |
| 0018 | l(40E8000C): ADD R0, SP, CH |
| 0019 | m(41E80010): ADD R1, SP, 10H |
| 001A | n(42E80014): ADD R2, SP, 14H |
| 001B | o(43E80018): ADD R3, SP, 18H |
| 001C | p .FIXUP P |
| 001C | p(F7A2900D): BL MOD10 [Oberon] PROC41 |
| IF time >= 0 THENq Texts.OpenScanner(S,r T,s beg)t;u Texts.Scan(S)v ENDw |
| 001D | q(80E00018): LDR R0, SP, 18H |
| 001E | q(40090000): SUB R0, R0, 0H |
| 001F | q(E5000008): BLT 8 [0028H] |
| 0020 | r(80E00004): LDR R0, SP, 4H |
| 0021 | r(81E00008): LDR R1, SP, 8H |
| 0022 | s(82E0000C): LDR R2, SP, CH |
| 0023 | t(83E00010): LDR R3, SP, 10H |
| 0024 | u .FIXUP P |
| 0024 | u(F7915008): BL MOD9 [Texts] PROC21 |
| 0025 | v(80E00004): LDR R0, SP, 4H |
| 0026 | v(81E00008): LDR R1, SP, 8H |
| 0027 | w .FIXUP P |
| 0027 | w(F7916003): BL MOD9 [Texts] PROC22 |
| END |
| ENDx GetArg; |
| 0028 | x(8FE00000): LDR LNK, SP, 0H |
| 0029 | x(4EE8001C): ADD SP, SP, 1CH |
| 002A | x(C700000F): B LNK |
| |
| PROCEDURE EndLine; |
| BEGINy Texts.WriteLn(W)z;a Texts.Append(Oberon.Log,b W.buf)c |
| 002B | y(4EE90004): SUB SP, SP, 4H |
| 002C | y(AFE00000): STR LNK, SP, 0H |
| 002D | z .FIXUP D |
| 002D | z(8D000024): LDR SB, MT, MOD0 [System] |
| 002E | z(40D80000): ADD R0, SB, 0H [data] |
| 002F | z .FIXUP D |
| 002F | z(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0030 | z(41D80005): ADD R1, SB, VAR5 |
| 0031 | a .FIXUP P |
| 0031 | a(F791C00A): BL MOD9 [Texts] PROC28 |
| 0032 | b .FIXUP D |
| 0032 | b(8DA00003): LDR SB, MT, MOD10 [Oberon] |
| 0033 | b(80D0000D): LDR R0, SB, VAR13 |
| 0034 | c .FIXUP D |
| 0034 | c(8D000002): LDR SB, MT, MOD0 [System] |
| 0035 | c(81D00000): LDR R1, SB, 0H [data] |
| ENDd EndLine; |
| 0036 | d .FIXUP P |
| 0036 | d(F790E005): BL MOD9 [Texts] PROC14 |
| 0037 | d(8FE00000): LDR LNK, SP, 0H |
| 0038 | d(4EE80004): ADD SP, SP, 4H |
| 0039 | d(C700000F): B LNK |
| |
| (* ------------- Toolbox for system control ---------------*) |
| |
| PROCEDURE SetUser*; |
| VAR i: INTEGER; ch: CHAR; |
| user: ARRAY 8 OF CHAR; |
| password: ARRAY 16 OF CHAR; |
| BEGINe i := 0;f Input.Read(ch)g;h |
| 003A | e .PROC 1 |
| 003A | e .COMMAND SetUser |
| 003A | e(4EE90024): SUB SP, SP, 24H |
| 003B | e(AFE00000): STR LNK, SP, 0H |
| 003C | f(40000000): MOV R0, R0, 0H |
| 003D | f(A0E00004): STR R0, SP, 4H |
| 003E | g(40E80008): ADD R0, SP, 8H |
| 003F | h .FIXUP P |
| 003F | h(F7502009): BL MOD5 [Input] PROC2 |
| WHILE (ch # "/")i & (ji < 7)k DOl user[i]m := ch;n INC(i);o Input.Read(ch)p ENDq; |
| 0040 | i(90E00008): LDR R0, SP, 8H |
| 0041 | i(4009002F): SUB R0, R0, 2FH |
| 0042 | j(E100000F): BEQ 15 [0052H] |
| 0043 | k(80E00004): LDR R0, SP, 4H |
| 0044 | k(40090007): SUB R0, R0, 7H |
| 0045 | l(ED00000C): BGE 12 [0052H] |
| 0046 | m(80E00004): LDR R0, SP, 4H |
| 0047 | m(41090008): SUB R1, R0, 8H |
| 0048 | m(DA04581C): BLCC MT [trap=1, pos=1112] |
| 0049 | m(00E80000): ADD R0, SP, R0 |
| 004A | n(91E00008): LDR R1, SP, 8H |
| 004B | n(B100000C): STR R1, R0, CH |
| 004C | o(80E00004): LDR R0, SP, 4H |
| 004D | o(40080001): ADD R0, R0, 1H |
| 004E | o(A0E00004): STR R0, SP, 4H |
| 004F | p(40E80008): ADD R0, SP, 8H |
| 0050 | q .FIXUP P |
| 0050 | q(F7502011): BL MOD5 [Input] PROC2 |
| 0051 | q(E7FFFFEE): B -18 [0040H] |
| user[i]r := 0X;s i := 0;t Input.Read(ch)u;v |
| 0052 | r(80E00004): LDR R0, SP, 4H |
| 0053 | r(41090008): SUB R1, R0, 8H |
| 0054 | r(DA04871C): BLCC MT [trap=1, pos=1159] |
| 0055 | r(00E80000): ADD R0, SP, R0 |
| 0056 | s(41000000): MOV R1, R0, 0H |
| 0057 | s(B100000C): STR R1, R0, CH |
| 0058 | t(40000000): MOV R0, R0, 0H |
| 0059 | t(A0E00004): STR R0, SP, 4H |
| 005A | u(40E80008): ADD R0, SP, 8H |
| 005B | v .FIXUP P |
| 005B | v(F750200B): BL MOD5 [Input] PROC2 |
| WHILE (ch > " ")w & (xi < 15)y DOz password[i]a := ch;b INC(i);c Input.Read(ch)d ENDe; |
| 005C | w(90E00008): LDR R0, SP, 8H |
| 005D | w(40090020): SUB R0, R0, 20H |
| 005E | x(E600000F): BLE 15 [006EH] |
| 005F | y(80E00004): LDR R0, SP, 4H |
| 0060 | y(4009000F): SUB R0, R0, FH |
| 0061 | z(ED00000C): BGE 12 [006EH] |
| 0062 | a(80E00004): LDR R0, SP, 4H |
| 0063 | a(41090010): SUB R1, R0, 10H |
| 0064 | a(DA04D51C): BLCC MT [trap=1, pos=1237] |
| 0065 | a(00E80000): ADD R0, SP, R0 |
| 0066 | b(91E00008): LDR R1, SP, 8H |
| 0067 | b(B1000014): STR R1, R0, 14H |
| 0068 | c(80E00004): LDR R0, SP, 4H |
| 0069 | c(40080001): ADD R0, R0, 1H |
| 006A | c(A0E00004): STR R0, SP, 4H |
| 006B | d(40E80008): ADD R0, SP, 8H |
| 006C | e .FIXUP P |
| 006C | e(F7502011): BL MOD5 [Input] PROC2 |
| 006D | e(E7FFFFEE): B -18 [005CH] |
| password[i]f := 0X;g Oberon.SetUser(user,h password)i |
| 006E | f(80E00004): LDR R0, SP, 4H |
| 006F | f(41090010): SUB R1, R0, 10H |
| 0070 | f(DA05081C): BLCC MT [trap=1, pos=1288] |
| 0071 | f(00E80000): ADD R0, SP, R0 |
| 0072 | g(41000000): MOV R1, R0, 0H |
| 0073 | g(B1000014): STR R1, R0, 14H |
| 0074 | h(40E8000C): ADD R0, SP, CH |
| 0075 | h(41000008): MOV R1, R0, 8H |
| 0076 | i(42E80014): ADD R2, SP, 14H |
| 0077 | i(43000010): MOV R3, R0, 10H |
| ENDj SetUser; |
| 0078 | j .FIXUP P |
| 0078 | j(F7A1300C): BL MOD10 [Oberon] PROC19 |
| 0079 | j(8FE00000): LDR LNK, SP, 0H |
| 007A | j(4EE80024): ADD SP, SP, 24H |
| 007B | j(C700000F): B LNK |
| |
| PROCEDURE SetFont*; |
| VAR S: Texts.Scanner; |
| BEGINk GetArg(S)l;m |
| 007C | k .PROC 2 |
| 007C | k .COMMAND SetFont |
| 007C | k(4EE90078): SUB SP, SP, 78H |
| 007D | k(AFE00000): STR LNK, SP, 0H |
| 007E | l(40E80004): ADD R0, SP, 4H |
| 007F | l .FIXUP D |
| 007F | l(8D90004B): LDR SB, MT, MOD9 [Texts] |
| 0080 | l(41D80003): ADD R1, SB, VAR3 |
| 0081 | m(F7FFFF7E): BL -130 [0000H] |
| IF S.class = Texts.Name THENn Oberon.SetFont(Fonts.This(S.s)o)p ENDq |
| 0082 | n(80E00040): LDR R0, SP, 40H |
| 0083 | n(40090001): SUB R0, R0, 1H |
| 0084 | n(E9000004): BNE 4 [0089H] |
| 0085 | o(40E80058): ADD R0, SP, 58H |
| 0086 | o(41000020): MOV R1, R0, 20H |
| 0087 | p .FIXUP P |
| 0087 | p(F780500F): BL MOD8 [Fonts] PROC5 |
| 0088 | q .FIXUP P |
| 0088 | q(F7A2E001): BL MOD10 [Oberon] PROC46 |
| ENDr SetFont; |
| 0089 | r(8FE00000): LDR LNK, SP, 0H |
| 008A | r(4EE80078): ADD SP, SP, 78H |
| 008B | r(C700000F): B LNK |
| |
| PROCEDURE SetColor*; |
| VAR S: Texts.Scanner; |
| BEGINs GetArg(S)t;u |
| 008C | s .PROC 3 |
| 008C | s .COMMAND SetColor |
| 008C | s(4EE90078): SUB SP, SP, 78H |
| 008D | s(AFE00000): STR LNK, SP, 0H |
| 008E | t(40E80004): ADD R0, SP, 4H |
| 008F | t .FIXUP D |
| 008F | t(8D900010): LDR SB, MT, MOD9 [Texts] |
| 0090 | t(41D80003): ADD R1, SB, VAR3 |
| 0091 | u(F7FFFF6E): BL -146 [0000H] |
| IF S.class = Texts.Int THENv Oberon.SetColor(S.i)w ENDx |
| 0092 | v(80E00040): LDR R0, SP, 40H |
| 0093 | v(40090003): SUB R0, R0, 3H |
| 0094 | v(E9000002): BNE 2 [0097H] |
| 0095 | w(80E00044): LDR R0, SP, 44H |
| 0096 | x .FIXUP P |
| 0096 | x(F7A2F00E): BL MOD10 [Oberon] PROC47 |
| ENDy SetColor; |
| 0097 | y(8FE00000): LDR LNK, SP, 0H |
| 0098 | y(4EE80078): ADD SP, SP, 78H |
| 0099 | y(C700000F): B LNK |
| |
| PROCEDURE SetOffset*; |
| VAR S: Texts.Scanner; |
| BEGINz GetArg(S)a;b |
| 009A | z .PROC 4 |
| 009A | z .COMMAND SetOffset |
| 009A | z(4EE90078): SUB SP, SP, 78H |
| 009B | z(AFE00000): STR LNK, SP, 0H |
| 009C | a(40E80004): ADD R0, SP, 4H |
| 009D | a .FIXUP D |
| 009D | a(8D90000E): LDR SB, MT, MOD9 [Texts] |
| 009E | a(41D80003): ADD R1, SB, VAR3 |
| 009F | b(F7FFFF60): BL -160 [0000H] |
| IF S.class = Texts.Int THENc Oberon.SetOffset(S.i)d ENDe |
| 00A0 | c(80E00040): LDR R0, SP, 40H |
| 00A1 | c(40090003): SUB R0, R0, 3H |
| 00A2 | c(E9000002): BNE 2 [00A5H] |
| 00A3 | d(80E00044): LDR R0, SP, 44H |
| 00A4 | e .FIXUP P |
| 00A4 | e(F7A3000E): BL MOD10 [Oberon] PROC48 |
| ENDf SetOffset; |
| 00A5 | f(8FE00000): LDR LNK, SP, 0H |
| 00A6 | f(4EE80078): ADD SP, SP, 78H |
| 00A7 | f(C700000F): B LNK |
| |
| PROCEDURE Date*; |
| VAR S: Texts.Scanner; |
| dt, hr, min, sec, yr, mo, day: LONGINT; |
| BEGINg Texts.OpenScanner(S,h Oberon.Par.text,i Oberon.Par.pos)j;k Texts.Scan(S)l;m |
| 00A8 | g .PROC 5 |
| 00A8 | g .COMMAND Date |
| 00A8 | g(4EE90094): SUB SP, SP, 94H |
| 00A9 | g(AFE00000): STR LNK, SP, 0H |
| 00AA | h(40E80004): ADD R0, SP, 4H |
| 00AB | h .FIXUP D |
| 00AB | h(8D90000E): LDR SB, MT, MOD9 [Texts] |
| 00AC | h(41D80003): ADD R1, SB, VAR3 |
| 00AD | i .FIXUP D |
| 00AD | i(8DA00002): LDR SB, MT, MOD10 [Oberon] |
| 00AE | i(42D8000E): ADD R2, SB, VAR14 |
| 00AF | i(82200008): LDR R2, R2, 8H |
| 00B0 | j .FIXUP D |
| 00B0 | j(8DA00003): LDR SB, MT, MOD10 [Oberon] |
| 00B1 | j(43D8000E): ADD R3, SB, VAR14 |
| 00B2 | j(8330000C): LDR R3, R3, CH |
| 00B3 | k .FIXUP P |
| 00B3 | k(F791500F): BL MOD9 [Texts] PROC21 |
| 00B4 | l(40E80004): ADD R0, SP, 4H |
| 00B5 | l .FIXUP D |
| 00B5 | l(8D900005): LDR SB, MT, MOD9 [Texts] |
| 00B6 | l(41D80003): ADD R1, SB, VAR3 |
| 00B7 | m .FIXUP P |
| 00B7 | m(F7916004): BL MOD9 [Texts] PROC22 |
| IF S.class = Texts.Int THENn (*set clock*) |
| 00B8 | n(80E00040): LDR R0, SP, 40H |
| 00B9 | n(40090003): SUB R0, R0, 3H |
| 00BA | n(E9000034): BNE 52 [00EFH] |
| day := S.i;o Texts.Scan(S)p;q mo := S.i;r Texts.Scan(S)s;t yr := S.i;u Texts.Scan(S)v;w |
| 00BB | o(80E00044): LDR R0, SP, 44H |
| 00BC | o(A0E00090): STR R0, SP, 90H |
| 00BD | p(40E80004): ADD R0, SP, 4H |
| 00BE | p .FIXUP D |
| 00BE | p(8D900009): LDR SB, MT, MOD9 [Texts] |
| 00BF | p(41D80003): ADD R1, SB, VAR3 |
| 00C0 | q .FIXUP P |
| 00C0 | q(F7916009): BL MOD9 [Texts] PROC22 |
| 00C1 | r(80E00044): LDR R0, SP, 44H |
| 00C2 | r(A0E0008C): STR R0, SP, 8CH |
| 00C3 | s(40E80004): ADD R0, SP, 4H |
| 00C4 | s .FIXUP D |
| 00C4 | s(8D900006): LDR SB, MT, MOD9 [Texts] |
| 00C5 | s(41D80003): ADD R1, SB, VAR3 |
| 00C6 | t .FIXUP P |
| 00C6 | t(F7916006): BL MOD9 [Texts] PROC22 |
| 00C7 | u(80E00044): LDR R0, SP, 44H |
| 00C8 | u(A0E00088): STR R0, SP, 88H |
| 00C9 | v(40E80004): ADD R0, SP, 4H |
| 00CA | v .FIXUP D |
| 00CA | v(8D900006): LDR SB, MT, MOD9 [Texts] |
| 00CB | v(41D80003): ADD R1, SB, VAR3 |
| 00CC | w .FIXUP P |
| 00CC | w(F7916006): BL MOD9 [Texts] PROC22 |
| hr := S.i;x Texts.Scan(S)y;z min := S.i;a Texts.Scan(S)b;c sec := S.i;d |
| 00CD | x(80E00044): LDR R0, SP, 44H |
| 00CE | x(A0E0007C): STR R0, SP, 7CH |
| 00CF | y(40E80004): ADD R0, SP, 4H |
| 00D0 | y .FIXUP D |
| 00D0 | y(8D900006): LDR SB, MT, MOD9 [Texts] |
| 00D1 | y(41D80003): ADD R1, SB, VAR3 |
| 00D2 | z .FIXUP P |
| 00D2 | z(F7916006): BL MOD9 [Texts] PROC22 |
| 00D3 | a(80E00044): LDR R0, SP, 44H |
| 00D4 | a(A0E00080): STR R0, SP, 80H |
| 00D5 | b(40E80004): ADD R0, SP, 4H |
| 00D6 | b .FIXUP D |
| 00D6 | b(8D900006): LDR SB, MT, MOD9 [Texts] |
| 00D7 | b(41D80003): ADD R1, SB, VAR3 |
| 00D8 | c .FIXUP P |
| 00D8 | c(F7916006): BL MOD9 [Texts] PROC22 |
| 00D9 | d(80E00044): LDR R0, SP, 44H |
| 00DA | d(A0E00084): STR R0, SP, 84H |
| dt := ((((yr*16 +e mo)f*32 +g day)h*32 +i hr)j*64 +k min)l*64 +m sec;n |
| 00DB | e(80E00088): LDR R0, SP, 88H |
| 00DC | e(40010004): LSL R0, R0, 4H |
| 00DD | f(81E0008C): LDR R1, SP, 8CH |
| 00DE | f(00080001): ADD R0, R0, R1 |
| 00DF | g(40010005): LSL R0, R0, 5H |
| 00E0 | h(81E00090): LDR R1, SP, 90H |
| 00E1 | h(00080001): ADD R0, R0, R1 |
| 00E2 | i(40010005): LSL R0, R0, 5H |
| 00E3 | j(81E0007C): LDR R1, SP, 7CH |
| 00E4 | j(00080001): ADD R0, R0, R1 |
| 00E5 | k(40010006): LSL R0, R0, 6H |
| 00E6 | l(81E00080): LDR R1, SP, 80H |
| 00E7 | l(00080001): ADD R0, R0, R1 |
| 00E8 | m(40010006): LSL R0, R0, 6H |
| 00E9 | n(81E00084): LDR R1, SP, 84H |
| 00EA | n(00080001): ADD R0, R0, R1 |
| 00EB | n(A0E00078): STR R0, SP, 78H |
| Kernel.SetClock(dt)o |
| 00EC | o(80E00078): LDR R0, SP, 78H |
| ELSEp (*read clock*) Textsq.WriteString(W,r "System.Clock")s;t |
| 00ED | p .FIXUP P |
| 00ED | p(F7113015): BL MOD1 [Kernel] PROC19 |
| 00EE | q(E7000011): B 17 [0100H] |
| 00EF | r .FIXUP D |
| 00EF | r(8D000019): LDR SB, MT, MOD0 [System] |
| 00F0 | r(40D80000): ADD R0, SB, 0H [data] |
| 00F1 | r .FIXUP D |
| 00F1 | r(8D900002): LDR SB, MT, MOD9 [Texts] |
| 00F2 | r(41D80005): ADD R1, SB, VAR5 |
| 00F3 | s .FIXUP D |
| 00F3 | s(8D000002): LDR SB, MT, MOD0 [System] |
| 00F4 | s(42D800C4): ADD R2, SB, C4H ["System.Clock"] |
| 00F5 | s(4300000D): MOV R3, R0, DH |
| 00F6 | t .FIXUP P |
| 00F6 | t(F791D009): BL MOD9 [Texts] PROC29 |
| dt := Oberon.Clock();u Texts.WriteClock(W,v dt)w;x EndLine |
| 00F7 | u .FIXUP P |
| 00F7 | u(F7A14001): BL MOD10 [Oberon] PROC20 |
| 00F8 | u(A0E00078): STR R0, SP, 78H |
| 00F9 | v .FIXUP D |
| 00F9 | v(8D000006): LDR SB, MT, MOD0 [System] |
| 00FA | v(40D80000): ADD R0, SB, 0H [data] |
| 00FB | v .FIXUP D |
| 00FB | v(8D900002): LDR SB, MT, MOD9 [Texts] |
| 00FC | v(41D80005): ADD R1, SB, VAR5 |
| 00FD | w(82E00078): LDR R2, SP, 78H |
| 00FE | x .FIXUP P |
| 00FE | x(F7922007): BL MOD9 [Texts] PROC34 |
| ENDy |
| 00FF | y(F7FFFF2B): BL -213 [002BH] |
| ENDz Date; |
| 0100 | z(8FE00000): LDR LNK, SP, 0H |
| 0101 | z(4EE80094): ADD SP, SP, 94H |
| 0102 | z(C700000F): B LNK |
| |
| PROCEDURE Collect*; |
| BEGINa Oberon.Collect(0)b |
| 0103 | a .PROC 6 |
| 0103 | a .COMMAND Collect |
| 0103 | a(4EE90004): SUB SP, SP, 4H |
| 0104 | a(AFE00000): STR LNK, SP, 0H |
| 0105 | b(40000000): MOV R0, R0, 0H |
| ENDc Collect; |
| 0106 | c .FIXUP P |
| 0106 | c(F7A2D008): BL MOD10 [Oberon] PROC45 |
| 0107 | c(8FE00000): LDR LNK, SP, 0H |
| 0108 | c(4EE80004): ADD SP, SP, 4H |
| 0109 | c(C700000F): B LNK |
| |
| (* ------------- Toolbox for standard display ---------------*) |
| |
| PROCEDURE Open*; (*open viewer in system track*) |
| VAR X, Y: INTEGER; |
| V: Viewers.Viewer; |
| S: Texts.Scanner; |
| BEGINd GetArg(S)e;f |
| 010A | d .PROC 7 |
| 010A | d .COMMAND Open |
| 010A | d(4EE90084): SUB SP, SP, 84H |
| 010B | d(AFE00000): STR LNK, SP, 0H |
| 010C | e(40E80010): ADD R0, SP, 10H |
| 010D | e .FIXUP D |
| 010D | e(8D900012): LDR SB, MT, MOD9 [Texts] |
| 010E | e(41D80003): ADD R1, SB, VAR3 |
| 010F | f(F7FFFEF0): BL -272 [0000H] |
| IF S.class = Texts.Name THENg |
| 0110 | g(80E0004C): LDR R0, SP, 4CH |
| 0111 | g(40090001): SUB R0, R0, 1H |
| 0112 | g(E900001E): BNE 30 [0131H] |
| Oberon.AllocateSystemViewer(Oberon.Par.vwr.hXi,j X,k Y)l;m |
| 0113 | h .FIXUP D |
| 0113 | h(8DA00006): LDR SB, MT, MOD10 [Oberon] |
| 0114 | h(40D8000E): ADD R0, SB, VAR14 |
| 0115 | i(80000000): LDR R0, R0, 0H |
| 0116 | i(D10ABD4C): BLEQ MT [trap=4, pos=2749] |
| 0117 | j(80000008): LDR R0, R0, 8H |
| 0118 | k(41E80004): ADD R1, SP, 4H |
| 0119 | l(42E80008): ADD R2, SP, 8H |
| 011A | m .FIXUP P |
| 011A | m(F7A23014): BL MOD10 [Oberon] PROC35 |
| V := MenuViewers.New( |
| TextFrames.NewMenu(S.s,n StandardMenu)o,p |
| 011B | n(40E80064): ADD R0, SP, 64H |
| 011C | n(41000020): MOV R1, R0, 20H |
| 011D | o .FIXUP D |
| 011D | o(8D00000A): LDR SB, MT, MOD0 [System] |
| 011E | o(42D80048): ADD R2, SB, 48H ["System.Close System.Copy System.Grow Edit.Search Edit.Store"] |
| 011F | o(4300003C): MOV R3, R0, 3CH |
| 0120 | p .FIXUP P |
| 0120 | p(F7C2C006): BL MOD12 [TextFrames] PROC44 |
| TextFrames.NewText(TextFramesq.Text(S.s)r,s 0)t,u TextFrames.menuH,v X,w Y)x |
| 0121 | q(4EE90004): SUB SP, SP, 4H |
| 0122 | q(A0E00000): STR R0, SP, 0H |
| 0123 | r(40E80068): ADD R0, SP, 68H |
| 0124 | r(41000020): MOV R1, R0, 20H |
| 0125 | s .FIXUP P |
| 0125 | s(F7C2B005): BL MOD12 [TextFrames] PROC43 |
| 0126 | t(41000000): MOV R1, R0, 0H |
| 0127 | u .FIXUP P |
| 0127 | u(F7C2D002): BL MOD12 [TextFrames] PROC45 |
| 0128 | u(01000000): MOV R1, R0, R0 |
| 0129 | u(80E00000): LDR R0, SP, 0H |
| 012A | u(4EE80004): ADD SP, SP, 4H |
| 012B | v .FIXUP D |
| 012B | v(8DC0000E): LDR SB, MT, MOD12 [TextFrames] |
| 012C | v(82D00005): LDR R2, SB, VAR5 |
| 012D | w(83E00004): LDR R3, SP, 4H |
| 012E | x(84E00008): LDR R4, SP, 8H |
| ENDy |
| 012F | y .FIXUP P |
| 012F | y(F7B04008): BL MOD11 [MenuViewers] PROC4 |
| 0130 | y(A0E0000C): STR R0, SP, CH |
| ENDz Open; |
| 0131 | z(8FE00000): LDR LNK, SP, 0H |
| 0132 | z(4EE80084): ADD SP, SP, 84H |
| 0133 | z(C700000F): B LNK |
| |
| PROCEDURE Clear*; (*clear Log*) |
| VAR T: Texts.Text; F: Display.Frame; buf: Texts.Buffer; |
| BEGINa F := Oberon.Par.frame;b |
| 0134 | a .PROC 8 |
| 0134 | a .COMMAND Clear |
| 0134 | a(4EE90010): SUB SP, SP, 10H |
| 0135 | a(AFE00000): STR LNK, SP, 0H |
| 0136 | b .FIXUP D |
| 0136 | b(8DA0000B): LDR SB, MT, MOD10 [Oberon] |
| 0137 | b(40D8000E): ADD R0, SB, VAR14 |
| 0138 | b(80000004): LDR R0, R0, 4H |
| 0139 | b(A0E00008): STR R0, SP, 8H |
| IF (F # NIL)c & (dF.nexte IS TextFrames.Frame)f & (gF = Oberon.Par.vwr.hdsci)j THENk |
| 013A | c(80E00008): LDR R0, SP, 8H |
| 013B | d(E100002B): BEQ 43 [0167H] |
| 013C | e(80E00008): LDR R0, SP, 8H |
| 013D | e(D10C0B4C): BLEQ MT [trap=4, pos=3083] |
| 013E | f(80000000): LDR R0, R0, 0H |
| 013F | f(E1000005): BEQ 5 [0145H] |
| 0140 | f(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 0141 | f(81100004): LDR R1, R1, 4H |
| 0142 | f .FIXUP D |
| 0142 | f(8DC0000C): LDR SB, MT, MOD12 [TextFrames] |
| 0143 | f(42D80002): ADD R2, SB, VAR2 |
| 0144 | f(02290001): SUB R2, R2, R1 |
| 0145 | g(E9000021): BNE 33 [0167H] |
| 0146 | h .FIXUP D |
| 0146 | h(8DA00004): LDR SB, MT, MOD10 [Oberon] |
| 0147 | h(40D8000E): ADD R0, SB, VAR14 |
| 0148 | i(80000000): LDR R0, R0, 0H |
| 0149 | i(D10C3A4C): BLEQ MT [trap=4, pos=3130] |
| 014A | j(81E00008): LDR R1, SP, 8H |
| 014B | j(80000004): LDR R0, R0, 4H |
| 014C | j(01190000): SUB R1, R1, R0 |
| 014D | k(E9000019): BNE 25 [0167H] |
| NEW(buf);l Texts.OpenBuf(buf)m;n T := F.nexto(TextFrames.Frame)p.text;q Texts.Delete(T,r 0,s T.lent,u buf)v |
| 014E | l(40E8000C): ADD R0, SP, CH |
| 014F | l .FIXUP D |
| 014F | l(8D900009): LDR SB, MT, MOD9 [Texts] |
| 0150 | l(41D80004): ADD R1, SB, VAR4 |
| 0151 | l(D70C500C): BL MT [trap=0, pos=3152] |
| 0152 | m(80E0000C): LDR R0, SP, CH |
| 0153 | n .FIXUP P |
| 0153 | n(F790A024): BL MOD9 [Texts] PROC10 |
| 0154 | o(80E00008): LDR R0, SP, 8H |
| 0155 | o(D10C704C): BLEQ MT [trap=4, pos=3184] |
| 0156 | p(80000000): LDR R0, R0, 0H |
| 0157 | p(E1000005): BEQ 5 [015DH] |
| 0158 | p(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 0159 | p(81100004): LDR R1, R1, 4H |
| 015A | p .FIXUP D |
| 015A | p(8DC0000B): LDR SB, MT, MOD12 [TextFrames] |
| 015B | p(42D80002): ADD R2, SB, VAR2 |
| 015C | p(02290001): SUB R2, R2, R1 |
| 015D | p(D90C822C): BLNE MT [trap=2, pos=3202] |
| 015E | q(8000001C): LDR R0, R0, 1CH |
| 015F | q(A0E00004): STR R0, SP, 4H |
| 0160 | r(80E00004): LDR R0, SP, 4H |
| 0161 | s(41000000): MOV R1, R0, 0H |
| 0162 | t(82E00004): LDR R2, SP, 4H |
| 0163 | t(D10CA14C): BLEQ MT [trap=4, pos=3233] |
| 0164 | u(82200000): LDR R2, R2, 0H |
| 0165 | v(83E0000C): LDR R3, SP, CH |
| ENDw |
| 0166 | w .FIXUP P |
| 0166 | w(F790F013): BL MOD9 [Texts] PROC15 |
| ENDx Clear; |
| 0167 | x(8FE00000): LDR LNK, SP, 0H |
| 0168 | x(4EE80010): ADD SP, SP, 10H |
| 0169 | x(C700000F): B LNK |
| |
| PROCEDURE Close*; |
| VAR V: Viewers.Viewer; |
| BEGINy |
| 016A | y .PROC 9 |
| 016A | y .COMMAND Close |
| 016A | y(4EE90008): SUB SP, SP, 8H |
| 016B | y(AFE00000): STR LNK, SP, 0H |
| IF Oberon.Par.frame =z Oberon.Par.vwr.adscb THENc V := Oberon.Par.vwr |
| 016C | z .FIXUP D |
| 016C | z(8DA00012): LDR SB, MT, MOD10 [Oberon] |
| 016D | z(40D8000E): ADD R0, SB, VAR14 |
| 016E | a .FIXUP D |
| 016E | a(8DA00002): LDR SB, MT, MOD10 [Oberon] |
| 016F | a(41D8000E): ADD R1, SB, VAR14 |
| 0170 | b(81100000): LDR R1, R1, 0H |
| 0171 | b(D10D214C): BLEQ MT [trap=4, pos=3361] |
| 0172 | c(80000004): LDR R0, R0, 4H |
| 0173 | c(81100004): LDR R1, R1, 4H |
| 0174 | c(00090001): SUB R0, R0, R1 |
| 0175 | c(E9000005): BNE 5 [017BH] |
| ELSEd Ve := Oberon.MarkedViewer() |
| 0176 | d .FIXUP D |
| 0176 | d(8DA00008): LDR SB, MT, MOD10 [Oberon] |
| 0177 | d(40D8000E): ADD R0, SB, VAR14 |
| 0178 | d(80000000): LDR R0, R0, 0H |
| 0179 | d(A0E00004): STR R0, SP, 4H |
| 017A | e(E7000002): B 2 [017DH] |
| ENDf; |
| 017B | f .FIXUP P |
| 017B | f(F7A24015): BL MOD10 [Oberon] PROC36 |
| 017C | f(A0E00004): STR R0, SP, 4H |
| Viewers.Close(V)g |
| 017D | g(80E00004): LDR R0, SP, 4H |
| ENDh Close; |
| 017E | h .FIXUP P |
| 017E | h(F7707003): BL MOD7 [Viewers] PROC7 |
| 017F | h(8FE00000): LDR LNK, SP, 0H |
| 0180 | h(4EE80008): ADD SP, SP, 8H |
| 0181 | h(C700000F): B LNK |
| |
| PROCEDURE CloseTrack*; |
| VAR V: Viewers.Viewer; |
| BEGINi V := Oberon.MarkedViewer();j Viewers.CloseTrack(V.Xk)l |
| 0182 | i .PROC 10 |
| 0182 | i .COMMAND CloseTrack |
| 0182 | i(4EE90008): SUB SP, SP, 8H |
| 0183 | i(AFE00000): STR LNK, SP, 0H |
| 0184 | j .FIXUP P |
| 0184 | j(F7A24006): BL MOD10 [Oberon] PROC36 |
| 0185 | j(A0E00004): STR R0, SP, 4H |
| 0186 | k(80E00004): LDR R0, SP, 4H |
| 0187 | k(D10DF94C): BLEQ MT [trap=4, pos=3577] |
| 0188 | l(80000008): LDR R0, R0, 8H |
| ENDm CloseTrack; |
| 0189 | m .FIXUP P |
| 0189 | m(F770E005): BL MOD7 [Viewers] PROC14 |
| 018A | m(8FE00000): LDR LNK, SP, 0H |
| 018B | m(4EE80008): ADD SP, SP, 8H |
| 018C | m(C700000F): B LNK |
| |
| PROCEDURE Recall*; |
| VAR V: Viewers.Viewer; M: Viewers.ViewerMsg; |
| BEGINn Viewers.Recall(V)o;p |
| 018D | n .PROC 11 |
| 018D | n .COMMAND Recall |
| 018D | n(4EE90020): SUB SP, SP, 20H |
| 018E | n(AFE00000): STR LNK, SP, 0H |
| 018F | o(40E80004): ADD R0, SP, 4H |
| 0190 | p .FIXUP P |
| 0190 | p(F7708007): BL MOD7 [Viewers] PROC8 |
| IF (V#NIL)q & (rV.states = 0)t THENu |
| 0191 | q(80E00004): LDR R0, SP, 4H |
| 0192 | r(E100001F): BEQ 31 [01B2H] |
| 0193 | s(80E00004): LDR R0, SP, 4H |
| 0194 | s(D10E884C): BLEQ MT [trap=4, pos=3720] |
| 0195 | t(8000001C): LDR R0, R0, 1CH |
| 0196 | u(E900001B): BNE 27 [01B2H] |
| Viewers.Open(V,v V.Xw,x V.Yy + V.Hz)a;b M.id := Viewers.restore;c V.handled(Ve,f M)g |
| 0197 | v(80E00004): LDR R0, SP, 4H |
| 0198 | w(81E00004): LDR R1, SP, 4H |
| 0199 | w(D10EAC4C): BLEQ MT [trap=4, pos=3756] |
| 019A | x(81100008): LDR R1, R1, 8H |
| 019B | y(82E00004): LDR R2, SP, 4H |
| 019C | y(D10EB14C): BLEQ MT [trap=4, pos=3761] |
| 019D | z(83E00004): LDR R3, SP, 4H |
| 019E | z(D10EB74C): BLEQ MT [trap=4, pos=3767] |
| 019F | a(8220000C): LDR R2, R2, CH |
| 01A0 | a(83300014): LDR R3, R3, 14H |
| 01A1 | a(02280003): ADD R2, R2, R3 |
| 01A2 | b .FIXUP P |
| 01A2 | b(F7705012): BL MOD7 [Viewers] PROC5 |
| 01A3 | c(40000000): MOV R0, R0, 0H |
| 01A4 | c(A0E00008): STR R0, SP, 8H |
| 01A5 | d(80E00004): LDR R0, SP, 4H |
| 01A6 | d(D10EDB4C): BLEQ MT [trap=4, pos=3803] |
| 01A7 | e(80000018): LDR R0, R0, 18H |
| 01A8 | e(4EE90004): SUB SP, SP, 4H |
| 01A9 | e(A0E00000): STR R0, SP, 0H |
| 01AA | f(80E00008): LDR R0, SP, 8H |
| 01AB | g(41E8000C): ADD R1, SP, CH |
| 01AC | g .FIXUP D |
| 01AC | g(8D700036): LDR SB, MT, MOD7 [Viewers] |
| 01AD | g(42D80002): ADD R2, SB, VAR2 |
| ENDh |
| 01AE | h(83E00000): LDR R3, SP, 0H |
| 01AF | h(4EE80004): ADD SP, SP, 4H |
| 01B0 | h(D10EE95C): BLEQ MT [trap=5, pos=3817] |
| 01B1 | h(D7000003): BL R3 |
| ENDi Recall; |
| 01B2 | i(8FE00000): LDR LNK, SP, 0H |
| 01B3 | i(4EE80020): ADD SP, SP, 20H |
| 01B4 | i(C700000F): B LNK |
| |
| PROCEDURE Copy*; |
| VAR V, V1: Viewers.Viewer; M: Oberon.CopyMsg; N: Viewers.ViewerMsg; |
| BEGINj V := Oberon.Par.vwr;k V.handlel(Vm,n M)o;p V1 := M.F(Viewers.Viewer)q;r |
| 01B5 | j .PROC 12 |
| 01B5 | j .COMMAND Copy |
| 01B5 | j(4EE90028): SUB SP, SP, 28H |
| 01B6 | j(AFE00000): STR LNK, SP, 0H |
| 01B7 | k .FIXUP D |
| 01B7 | k(8DA0000B): LDR SB, MT, MOD10 [Oberon] |
| 01B8 | k(40D8000E): ADD R0, SB, VAR14 |
| 01B9 | k(80000000): LDR R0, R0, 0H |
| 01BA | k(A0E00004): STR R0, SP, 4H |
| 01BB | l(80E00004): LDR R0, SP, 4H |
| 01BC | l(D10F794C): BLEQ MT [trap=4, pos=3961] |
| 01BD | m(80000018): LDR R0, R0, 18H |
| 01BE | m(4EE90004): SUB SP, SP, 4H |
| 01BF | m(A0E00000): STR R0, SP, 0H |
| 01C0 | n(80E00008): LDR R0, SP, 8H |
| 01C1 | o(41E80010): ADD R1, SP, 10H |
| 01C2 | o .FIXUP D |
| 01C2 | o(8DA0000B): LDR SB, MT, MOD10 [Oberon] |
| 01C3 | o(42D80006): ADD R2, SB, VAR6 |
| 01C4 | p(83E00000): LDR R3, SP, 0H |
| 01C5 | p(4EE80004): ADD SP, SP, 4H |
| 01C6 | p(D10F805C): BLEQ MT [trap=5, pos=3968] |
| 01C7 | p(D7000003): BL R3 |
| 01C8 | q(80E0000C): LDR R0, SP, CH |
| 01C9 | q(E1000005): BEQ 5 [01CFH] |
| 01CA | q(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 01CB | q(81100004): LDR R1, R1, 4H |
| 01CC | q .FIXUP D |
| 01CC | q(8D70000A): LDR SB, MT, MOD7 [Viewers] |
| 01CD | q(42D80001): ADD R2, SB, VAR1 |
| 01CE | q(02290001): SUB R2, R2, R1 |
| 01CF | q(D90F9A2C): BLNE MT [trap=2, pos=3994] |
| 01D0 | r(A0E00008): STR R0, SP, 8H |
| Viewers.Open(V1,s V.Xt,u V.Yv + V.Hw DIV 2)x;y |
| 01D1 | s(80E00008): LDR R0, SP, 8H |
| 01D2 | t(81E00004): LDR R1, SP, 4H |
| 01D3 | t(D10FB44C): BLEQ MT [trap=4, pos=4020] |
| 01D4 | u(81100008): LDR R1, R1, 8H |
| 01D5 | v(82E00004): LDR R2, SP, 4H |
| 01D6 | v(D10FB94C): BLEQ MT [trap=4, pos=4025] |
| 01D7 | w(83E00004): LDR R3, SP, 4H |
| 01D8 | w(D10FBF4C): BLEQ MT [trap=4, pos=4031] |
| 01D9 | x(83300014): LDR R3, R3, 14H |
| 01DA | x(43320001): ASR R3, R3, 1H |
| 01DB | x(8220000C): LDR R2, R2, CH |
| 01DC | x(02280003): ADD R2, R2, R3 |
| 01DD | y .FIXUP P |
| 01DD | y(F770503B): BL MOD7 [Viewers] PROC5 |
| N.id := Viewers.restore;z V1.handlea(V1b,c N)d |
| 01DE | z(40000000): MOV R0, R0, 0H |
| 01DF | z(A0E00010): STR R0, SP, 10H |
| 01E0 | a(80E00008): LDR R0, SP, 8H |
| 01E1 | a(D10FEE4C): BLEQ MT [trap=4, pos=4078] |
| 01E2 | b(80000018): LDR R0, R0, 18H |
| 01E3 | b(4EE90004): SUB SP, SP, 4H |
| 01E4 | b(A0E00000): STR R0, SP, 0H |
| 01E5 | c(80E0000C): LDR R0, SP, CH |
| 01E6 | d(41E80014): ADD R1, SP, 14H |
| 01E7 | d .FIXUP D |
| 01E7 | d(8D70001B): LDR SB, MT, MOD7 [Viewers] |
| 01E8 | d(42D80002): ADD R2, SB, VAR2 |
| ENDe Copy; |
| 01E9 | e(83E00000): LDR R3, SP, 0H |
| 01EA | e(4EE80004): ADD SP, SP, 4H |
| 01EB | e(D10FFB5C): BLEQ MT [trap=5, pos=4091] |
| 01EC | e(D7000003): BL R3 |
| 01ED | e(8FE00000): LDR LNK, SP, 0H |
| 01EE | e(4EE80028): ADD SP, SP, 28H |
| 01EF | e(C700000F): B LNK |
| |
| PROCEDURE Grow*; |
| VAR V, V1: Viewers.Viewer; M: Oberon.CopyMsg; N: Viewers.ViewerMsg; |
| DW, DH: INTEGER; |
| BEGINf V := Oberon.Par.vwr;g |
| 01F0 | f .PROC 13 |
| 01F0 | f .COMMAND Grow |
| 01F0 | f(4EE90030): SUB SP, SP, 30H |
| 01F1 | f(AFE00000): STR LNK, SP, 0H |
| 01F2 | g .FIXUP D |
| 01F2 | g(8DA0000B): LDR SB, MT, MOD10 [Oberon] |
| 01F3 | g(40D8000E): ADD R0, SB, VAR14 |
| 01F4 | g(80000000): LDR R0, R0, 0H |
| 01F5 | g(A0E00004): STR R0, SP, 4H |
| DW := Oberon.DisplayWidth(V.Xh)i;j DH := Oberon.DisplayHeight(V.Xk)l;m |
| 01F6 | h(80E00004): LDR R0, SP, 4H |
| 01F7 | h(D110B34C): BLEQ MT [trap=4, pos=4275] |
| 01F8 | i(80000008): LDR R0, R0, 8H |
| 01F9 | j .FIXUP P |
| 01F9 | j(F7A1D01C): BL MOD10 [Oberon] PROC29 |
| 01FA | j(A0E00028): STR R0, SP, 28H |
| 01FB | k(80E00004): LDR R0, SP, 4H |
| 01FC | k(D110D44C): BLEQ MT [trap=4, pos=4308] |
| 01FD | l(80000008): LDR R0, R0, 8H |
| 01FE | m .FIXUP P |
| 01FE | m(F7A1E005): BL MOD10 [Oberon] PROC30 |
| 01FF | m(A0E0002C): STR R0, SP, 2CH |
| IF V.Hn < DH - Viewers.minH THENo Oberon.OpenTrack(V.Xp,q V.Wr)s |
| 0200 | n(80E00004): LDR R0, SP, 4H |
| 0201 | n(D110E14C): BLEQ MT [trap=4, pos=4321] |
| 0202 | o(81E0002C): LDR R1, SP, 2CH |
| 0203 | o .FIXUP D |
| 0203 | o(8D700011): LDR SB, MT, MOD7 [Viewers] |
| 0204 | o(82D00004): LDR R2, SB, VAR4 |
| 0205 | o(01190002): SUB R1, R1, R2 |
| 0206 | o(80000014): LDR R0, R0, 14H |
| 0207 | o(00090001): SUB R0, R0, R1 |
| 0208 | o(ED000008): BGE 8 [0211H] |
| 0209 | p(80E00004): LDR R0, SP, 4H |
| 020A | p(D1110F4C): BLEQ MT [trap=4, pos=4367] |
| 020B | q(80000008): LDR R0, R0, 8H |
| 020C | r(81E00004): LDR R1, SP, 4H |
| 020D | r(D111144C): BLEQ MT [trap=4, pos=4372] |
| 020E | s(81100010): LDR R1, R1, 10H |
| ELSIFt Vu.Wv < DW THENw Oberon.OpenTrack(Oberon.UserTrack(V.Xx)y,z DW)a |
| 020F | t .FIXUP P |
| 020F | t(F7A1F011): BL MOD10 [Oberon] PROC31 |
| 0210 | u(E700000C): B 12 [021DH] |
| 0211 | v(80E00004): LDR R0, SP, 4H |
| 0212 | v(D111234C): BLEQ MT [trap=4, pos=4387] |
| 0213 | w(80000010): LDR R0, R0, 10H |
| 0214 | w(81E00028): LDR R1, SP, 28H |
| 0215 | w(00090001): SUB R0, R0, R1 |
| 0216 | w(ED000006): BGE 6 [021DH] |
| 0217 | x(80E00004): LDR R0, SP, 4H |
| 0218 | x(D111534C): BLEQ MT [trap=4, pos=4435] |
| 0219 | y(80000008): LDR R0, R0, 8H |
| 021A | z .FIXUP P |
| 021A | z(F7A2000B): BL MOD10 [Oberon] PROC32 |
| 021B | a(81E00028): LDR R1, SP, 28H |
| ENDb; |
| 021C | b .FIXUP P |
| 021C | b(F7A1F002): BL MOD10 [Oberon] PROC31 |
| IF (V.Hc < DH - Viewers.minH)d OR (eV.Wf < DW)g THENh |
| 021D | c(80E00004): LDR R0, SP, 4H |
| 021E | c(D1116E4C): BLEQ MT [trap=4, pos=4462] |
| 021F | d(81E0002C): LDR R1, SP, 2CH |
| 0220 | d .FIXUP D |
| 0220 | d(8D70001D): LDR SB, MT, MOD7 [Viewers] |
| 0221 | d(82D00004): LDR R2, SB, VAR4 |
| 0222 | d(01190002): SUB R1, R1, R2 |
| 0223 | d(80000014): LDR R0, R0, 14H |
| 0224 | d(00090001): SUB R0, R0, R1 |
| 0225 | e(E5000006): BLT 6 [022CH] |
| 0226 | f(80E00004): LDR R0, SP, 4H |
| 0227 | f(D1118B4C): BLEQ MT [trap=4, pos=4491] |
| 0228 | g(80000010): LDR R0, R0, 10H |
| 0229 | g(81E00028): LDR R1, SP, 28H |
| 022A | g(00090001): SUB R0, R0, R1 |
| 022B | h(ED00002B): BGE 43 [0257H] |
| V.handlei(Vj,k M)l;m V1 := M.F(Viewers.Viewer)n;o |
| 022C | i(80E00004): LDR R0, SP, 4H |
| 022D | i(D111A54C): BLEQ MT [trap=4, pos=4517] |
| 022E | j(80000018): LDR R0, R0, 18H |
| 022F | j(4EE90004): SUB SP, SP, 4H |
| 0230 | j(A0E00000): STR R0, SP, 0H |
| 0231 | k(80E00008): LDR R0, SP, 8H |
| 0232 | l(41E80010): ADD R1, SP, 10H |
| 0233 | l .FIXUP D |
| 0233 | l(8DA00013): LDR SB, MT, MOD10 [Oberon] |
| 0234 | l(42D80006): ADD R2, SB, VAR6 |
| 0235 | m(83E00000): LDR R3, SP, 0H |
| 0236 | m(4EE80004): ADD SP, SP, 4H |
| 0237 | m(D111AC5C): BLEQ MT [trap=5, pos=4524] |
| 0238 | m(D7000003): BL R3 |
| 0239 | n(80E0000C): LDR R0, SP, CH |
| 023A | n(E1000005): BEQ 5 [0240H] |
| 023B | n(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 023C | n(81100004): LDR R1, R1, 4H |
| 023D | n .FIXUP D |
| 023D | n(8D70000A): LDR SB, MT, MOD7 [Viewers] |
| 023E | n(42D80001): ADD R2, SB, VAR1 |
| 023F | n(02290001): SUB R2, R2, R1 |
| 0240 | n(D911C62C): BLNE MT [trap=2, pos=4550] |
| 0241 | o(A0E00008): STR R0, SP, 8H |
| Viewers.Open(V1,p V.Xq,r DH)s;t; |
| 0242 | p(80E00008): LDR R0, SP, 8H |
| 0243 | q(81E00004): LDR R1, SP, 4H |
| 0244 | q(D111E24C): BLEQ MT [trap=4, pos=4578] |
| 0245 | r(81100008): LDR R1, R1, 8H |
| 0246 | s(82E0002C): LDR R2, SP, 2CH |
| 0247 | t .FIXUP P |
| 0247 | t(F770502B): BL MOD7 [Viewers] PROC5 |
| N.id := Viewers.restore;u V1.handlev(V1w,x N)y |
| 0248 | u(40000000): MOV R0, R0, 0H |
| 0249 | u(A0E00010): STR R0, SP, 10H |
| 024A | v(80E00008): LDR R0, SP, 8H |
| 024B | v(D112124C): BLEQ MT [trap=4, pos=4626] |
| 024C | w(80000018): LDR R0, R0, 18H |
| 024D | w(4EE90004): SUB SP, SP, 4H |
| 024E | w(A0E00000): STR R0, SP, 0H |
| 024F | x(80E0000C): LDR R0, SP, CH |
| 0250 | y(41E80014): ADD R1, SP, 14H |
| 0251 | y .FIXUP D |
| 0251 | y(8D700014): LDR SB, MT, MOD7 [Viewers] |
| 0252 | y(42D80002): ADD R2, SB, VAR2 |
| ENDz |
| 0253 | z(83E00000): LDR R3, SP, 0H |
| 0254 | z(4EE80004): ADD SP, SP, 4H |
| 0255 | z(D112215C): BLEQ MT [trap=5, pos=4641] |
| 0256 | z(D7000003): BL R3 |
| ENDa Grow; |
| 0257 | a(8FE00000): LDR LNK, SP, 0H |
| 0258 | a(4EE80030): ADD SP, SP, 30H |
| 0259 | a(C700000F): B LNK |
| |
| (* ------------- Toolbox for module management ---------------*) |
| |
| PROCEDURE Free1(VAR S: Texts.Scanner); |
| BEGINb Texts.WriteString(W,c S.s)d;e Texts.WriteString(W,f " unloading")g;h |
| 025A | b(4EE9000C): SUB SP, SP, CH |
| 025B | b(AFE00000): STR LNK, SP, 0H |
| 025C | b(A0E00004): STR R0, SP, 4H |
| 025D | b(A1E00008): STR R1, SP, 8H |
| 025E | c .FIXUP D |
| 025E | c(8D00000D): LDR SB, MT, MOD0 [System] |
| 025F | c(40D80000): ADD R0, SB, 0H [data] |
| 0260 | c .FIXUP D |
| 0260 | c(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0261 | c(41D80005): ADD R1, SB, VAR5 |
| 0262 | d(82E00004): LDR R2, SP, 4H |
| 0263 | d(42280054): ADD R2, R2, 54H |
| 0264 | d(43000020): MOV R3, R0, 20H |
| 0265 | e .FIXUP P |
| 0265 | e(F791D01E): BL MOD9 [Texts] PROC29 |
| 0266 | f .FIXUP D |
| 0266 | f(8D000006): LDR SB, MT, MOD0 [System] |
| 0267 | f(40D80000): ADD R0, SB, 0H [data] |
| 0268 | f .FIXUP D |
| 0268 | f(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0269 | f(41D80005): ADD R1, SB, VAR5 |
| 026A | g .FIXUP D |
| 026A | g(8D000002): LDR SB, MT, MOD0 [System] |
| 026B | g(42D800D4): ADD R2, SB, D4H [" unloading"] |
| 026C | g(4300000B): MOV R3, R0, BH |
| 026D | h .FIXUP P |
| 026D | h(F791D008): BL MOD9 [Texts] PROC29 |
| Modules.Free(S.s)i;j |
| 026E | i(80E00004): LDR R0, SP, 4H |
| 026F | i(40080054): ADD R0, R0, 54H |
| 0270 | i(41000020): MOV R1, R0, 20H |
| 0271 | j .FIXUP P |
| 0271 | j(F740A004): BL MOD4 [Modules] PROC10 |
| IF Modules.res # 0 THENk Texts.WriteString(W,l " failed")m ENDn; |
| 0272 | k .FIXUP D |
| 0272 | k(8D400008): LDR SB, MT, MOD4 [Modules] |
| 0273 | k(80D00005): LDR R0, SB, VAR5 |
| 0274 | k(E1000008): BEQ 8 [027DH] |
| 0275 | l .FIXUP D |
| 0275 | l(8D000003): LDR SB, MT, MOD0 [System] |
| 0276 | l(40D80000): ADD R0, SB, 0H [data] |
| 0277 | l .FIXUP D |
| 0277 | l(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0278 | l(41D80005): ADD R1, SB, VAR5 |
| 0279 | m .FIXUP D |
| 0279 | m(8D000002): LDR SB, MT, MOD0 [System] |
| 027A | m(42D800E0): ADD R2, SB, E0H [" failed"] |
| 027B | m(43000008): MOV R3, R0, 8H |
| 027C | n .FIXUP P |
| 027C | n(F791D00B): BL MOD9 [Texts] PROC29 |
| EndLine |
| ENDo Free1; |
| 027D | o(F7FFFDAD): BL -595 [002BH] |
| 027E | o(8FE00000): LDR LNK, SP, 0H |
| 027F | o(4EE8000C): ADD SP, SP, CH |
| 0280 | o(C700000F): B LNK |
| |
| PROCEDURE Free*; |
| VAR T: Texts.Text; |
| beg, end, time: LONGINT; |
| S: Texts.Scanner; |
| BEGINp Texts.WriteString(W,q "System.Free")r;s EndLine;t |
| 0281 | p .PROC 14 |
| 0281 | p .COMMAND Free |
| 0281 | p(4EE90088): SUB SP, SP, 88H |
| 0282 | p(AFE00000): STR LNK, SP, 0H |
| 0283 | q .FIXUP D |
| 0283 | q(8D00000A): LDR SB, MT, MOD0 [System] |
| 0284 | q(40D80000): ADD R0, SB, 0H [data] |
| 0285 | q .FIXUP D |
| 0285 | q(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0286 | q(41D80005): ADD R1, SB, VAR5 |
| 0287 | r .FIXUP D |
| 0287 | r(8D000002): LDR SB, MT, MOD0 [System] |
| 0288 | r(42D800E8): ADD R2, SB, E8H ["System.Free"] |
| 0289 | r(4300000C): MOV R3, R0, CH |
| 028A | s .FIXUP P |
| 028A | s(F791D00E): BL MOD9 [Texts] PROC29 |
| 028B | t(F7FFFD9F): BL -609 [002BH] |
| Texts.OpenScanner(S,u Oberon.Par.text,v Oberon.Par.pos)w;x Texts.Scan(S)y;z |
| 028C | u(40E80014): ADD R0, SP, 14H |
| 028D | u .FIXUP D |
| 028D | u(8D900006): LDR SB, MT, MOD9 [Texts] |
| 028E | u(41D80003): ADD R1, SB, VAR3 |
| 028F | v .FIXUP D |
| 028F | v(8DA00002): LDR SB, MT, MOD10 [Oberon] |
| 0290 | v(42D8000E): ADD R2, SB, VAR14 |
| 0291 | v(82200008): LDR R2, R2, 8H |
| 0292 | w .FIXUP D |
| 0292 | w(8DA00003): LDR SB, MT, MOD10 [Oberon] |
| 0293 | w(43D8000E): ADD R3, SB, VAR14 |
| 0294 | w(8330000C): LDR R3, R3, CH |
| 0295 | x .FIXUP P |
| 0295 | x(F791500B): BL MOD9 [Texts] PROC21 |
| 0296 | y(40E80014): ADD R0, SP, 14H |
| 0297 | y .FIXUP D |
| 0297 | y(8D900005): LDR SB, MT, MOD9 [Texts] |
| 0298 | y(41D80003): ADD R1, SB, VAR3 |
| 0299 | z .FIXUP P |
| 0299 | z(F7916004): BL MOD9 [Texts] PROC22 |
| IF (S.class = Texts.Char)a & (bS.c = "^")c THENd |
| 029A | a(80E00050): LDR R0, SP, 50H |
| 029B | a(40090006): SUB R0, R0, 6H |
| 029C | b(E900001D): BNE 29 [02BAH] |
| 029D | c(90E00060): LDR R0, SP, 60H |
| 029E | c(4009005E): SUB R0, R0, 5EH |
| 029F | d(E900001A): BNE 26 [02BAH] |
| Oberon.GetSelection(T,e beg,f end,g time)h;i |
| 02A0 | e(40E80004): ADD R0, SP, 4H |
| 02A1 | f(41E80008): ADD R1, SP, 8H |
| 02A2 | g(42E8000C): ADD R2, SP, CH |
| 02A3 | h(43E80010): ADD R3, SP, 10H |
| 02A4 | i .FIXUP P |
| 02A4 | i(F7A2900B): BL MOD10 [Oberon] PROC41 |
| IF time >= 0 THENj Texts.OpenScanner(S,k T,l beg)m;n Texts.Scan(S)o;p |
| 02A5 | j(80E00010): LDR R0, SP, 10H |
| 02A6 | j(40090000): SUB R0, R0, 0H |
| 02A7 | j(E5000011): BLT 17 [02B9H] |
| 02A8 | k(40E80014): ADD R0, SP, 14H |
| 02A9 | k .FIXUP D |
| 02A9 | k(8D900012): LDR SB, MT, MOD9 [Texts] |
| 02AA | k(41D80003): ADD R1, SB, VAR3 |
| 02AB | l(82E00004): LDR R2, SP, 4H |
| 02AC | m(83E00008): LDR R3, SP, 8H |
| 02AD | n .FIXUP P |
| 02AD | n(F7915009): BL MOD9 [Texts] PROC21 |
| 02AE | o(40E80014): ADD R0, SP, 14H |
| 02AF | o .FIXUP D |
| 02AF | o(8D900006): LDR SB, MT, MOD9 [Texts] |
| 02B0 | o(41D80003): ADD R1, SB, VAR3 |
| 02B1 | p .FIXUP P |
| 02B1 | p(F7916004): BL MOD9 [Texts] PROC22 |
| IF S.class = Texts.Name THENq Free1(S)r ENDs |
| 02B2 | q(80E00050): LDR R0, SP, 50H |
| 02B3 | q(40090001): SUB R0, R0, 1H |
| 02B4 | q(E9000004): BNE 4 [02B9H] |
| 02B5 | r(40E80014): ADD R0, SP, 14H |
| 02B6 | r .FIXUP D |
| 02B6 | r(8D900007): LDR SB, MT, MOD9 [Texts] |
| 02B7 | r(41D80003): ADD R1, SB, VAR3 |
| 02B8 | s(F7FFFFA1): BL -95 [025AH] |
| END |
| ELSE |
| WHILEt S.class = Texts.Name DOu Free1(S)v;w Texts.Scan(S)x ENDy |
| 02B9 | t(E700000C): B 12 [02C6H] |
| 02BA | u(80E00050): LDR R0, SP, 50H |
| 02BB | u(40090001): SUB R0, R0, 1H |
| 02BC | u(E9000009): BNE 9 [02C6H] |
| 02BD | v(40E80014): ADD R0, SP, 14H |
| 02BE | v .FIXUP D |
| 02BE | v(8D900008): LDR SB, MT, MOD9 [Texts] |
| 02BF | v(41D80003): ADD R1, SB, VAR3 |
| 02C0 | w(F7FFFF99): BL -103 [025AH] |
| 02C1 | x(40E80014): ADD R0, SP, 14H |
| 02C2 | x .FIXUP D |
| 02C2 | x(8D900004): LDR SB, MT, MOD9 [Texts] |
| 02C3 | x(41D80003): ADD R1, SB, VAR3 |
| 02C4 | y .FIXUP P |
| 02C4 | y(F7916013): BL MOD9 [Texts] PROC22 |
| 02C5 | y(E7FFFFF4): B -12 [02BAH] |
| END ; |
| Oberon.Collect(0)z |
| 02C6 | z(40000000): MOV R0, R0, 0H |
| ENDa Free; |
| 02C7 | a .FIXUP P |
| 02C7 | a(F7A2D003): BL MOD10 [Oberon] PROC45 |
| 02C8 | a(8FE00000): LDR LNK, SP, 0H |
| 02C9 | a(4EE80088): ADD SP, SP, 88H |
| 02CA | a(C700000F): B LNK |
| |
| PROCEDURE FreeFonts*; |
| BEGINb Texts.WriteString(W,c "System.FreeFonts")d;e Fonts.Free;f EndLine |
| 02CB | b .PROC 15 |
| 02CB | b .COMMAND FreeFonts |
| 02CB | b(4EE90004): SUB SP, SP, 4H |
| 02CC | b(AFE00000): STR LNK, SP, 0H |
| 02CD | c .FIXUP D |
| 02CD | c(8D00000B): LDR SB, MT, MOD0 [System] |
| 02CE | c(40D80000): ADD R0, SB, 0H [data] |
| 02CF | c .FIXUP D |
| 02CF | c(8D900002): LDR SB, MT, MOD9 [Texts] |
| 02D0 | c(41D80005): ADD R1, SB, VAR5 |
| 02D1 | d .FIXUP D |
| 02D1 | d(8D000002): LDR SB, MT, MOD0 [System] |
| 02D2 | d(42D800F4): ADD R2, SB, F4H ["System.FreeFonts"] |
| 02D3 | d(43000011): MOV R3, R0, 11H |
| 02D4 | e .FIXUP P |
| 02D4 | e(F791D00D): BL MOD9 [Texts] PROC29 |
| 02D5 | f .FIXUP P |
| 02D5 | f(F7806001): BL MOD8 [Fonts] PROC6 |
| ENDg FreeFonts; |
| 02D6 | g(F7FFFD54): BL -684 [002BH] |
| 02D7 | g(8FE00000): LDR LNK, SP, 0H |
| 02D8 | g(4EE80004): ADD SP, SP, 4H |
| 02D9 | g(C700000F): B LNK |
| |
| (* ------------- Toolbox of file system ---------------*) |
| |
| PROCEDURE List(name: FileDir.FileName; adr: LONGINT; VAR cont: BOOLEAN); |
| VAR i0, i, j0, j: INTEGER; hp: FileDir.FileHeader; |
| BEGINh |
| 02DA | h(4EE90420): SUB SP, SP, 420H |
| 02DB | h(AFE00000): STR LNK, SP, 0H |
| 02DC | h(A0E00004): STR R0, SP, 4H |
| 02DD | h(A1E00008): STR R1, SP, 8H |
| 02DE | h(A2E0000C): STR R2, SP, CH |
| i := 0;i |
| 02DF | i(40000000): MOV R0, R0, 0H |
| 02E0 | i(A0E00014): STR R0, SP, 14H |
| WHILE (pat[i]j > "*")k & (lpat[i]m = name[i]n)o DOp INC(i) ENDq ; |
| 02E1 | j(80E00014): LDR R0, SP, 14H |
| 02E2 | j(41090020): SUB R1, R0, 20H |
| 02E3 | j(DA16E01C): BLCC MT [trap=1, pos=5856] |
| 02E4 | j .FIXUP D |
| 02E4 | j(8D000013): LDR SB, MT, MOD0 [System] |
| 02E5 | j(00D80000): ADD R0, SB, R0 [global array] |
| 02E6 | k(90000028): LDR R0, R0, 28H |
| 02E7 | k(4009002A): SUB R0, R0, 2AH |
| 02E8 | l(E6000012): BLE 18 [02FBH] |
| 02E9 | m(80E00014): LDR R0, SP, 14H |
| 02EA | m(41090020): SUB R1, R0, 20H |
| 02EB | m(DA16F11C): BLCC MT [trap=1, pos=5873] |
| 02EC | m .FIXUP D |
| 02EC | m(8D000008): LDR SB, MT, MOD0 [System] |
| 02ED | m(00D80000): ADD R0, SB, R0 [global array] |
| 02EE | n(81E00014): LDR R1, SP, 14H |
| 02EF | n(42190020): SUB R2, R1, 20H |
| 02F0 | n(DA16FB1C): BLCC MT [trap=1, pos=5883] |
| 02F1 | n(82E00004): LDR R2, SP, 4H |
| 02F2 | n(01280001): ADD R1, R2, R1 |
| 02F3 | o(90000028): LDR R0, R0, 28H |
| 02F4 | o(91100000): LDR R1, R1, 0H |
| 02F5 | o(00090001): SUB R0, R0, R1 |
| 02F6 | p(E9000004): BNE 4 [02FBH] |
| 02F7 | q(80E00014): LDR R0, SP, 14H |
| 02F8 | q(40080001): ADD R0, R0, 1H |
| 02F9 | q(A0E00014): STR R0, SP, 14H |
| 02FA | q(E7FFFFE6): B -26 [02E1H] |
| IF (pat[i]r = 0X)s & (tname[i]u = 0X)v THENw i0 := i;x j0 := i |
| 02FB | r(80E00014): LDR R0, SP, 14H |
| 02FC | r(41090020): SUB R1, R0, 20H |
| 02FD | r(DA171B1C): BLCC MT [trap=1, pos=5915] |
| 02FE | r .FIXUP D |
| 02FE | r(8D000012): LDR SB, MT, MOD0 [System] |
| 02FF | r(00D80000): ADD R0, SB, R0 [global array] |
| 0300 | s(90000028): LDR R0, R0, 28H |
| 0301 | t(E900000C): BNE 12 [030EH] |
| 0302 | u(80E00014): LDR R0, SP, 14H |
| 0303 | u(41090020): SUB R1, R0, 20H |
| 0304 | u(DA172C1C): BLCC MT [trap=1, pos=5932] |
| 0305 | u(81E00004): LDR R1, SP, 4H |
| 0306 | u(00180000): ADD R0, R1, R0 |
| 0307 | v(90000000): LDR R0, R0, 0H |
| 0308 | w(E9000005): BNE 5 [030EH] |
| 0309 | x(80E00014): LDR R0, SP, 14H |
| 030A | x(A0E00010): STR R0, SP, 10H |
| ELSIFy patz[i]a = "*" THENb |
| 030B | y(80E00014): LDR R0, SP, 14H |
| 030C | y(A0E00018): STR R0, SP, 18H |
| 030D | z(E700005B): B 91 [0369H] |
| 030E | a(80E00014): LDR R0, SP, 14H |
| 030F | a(41090020): SUB R1, R0, 20H |
| 0310 | a(DA17591C): BLCC MT [trap=1, pos=5977] |
| 0311 | a .FIXUP D |
| 0311 | a(8D000013): LDR SB, MT, MOD0 [System] |
| 0312 | a(00D80000): ADD R0, SB, R0 [global array] |
| 0313 | b(90000028): LDR R0, R0, 28H |
| 0314 | b(4009002A): SUB R0, R0, 2AH |
| 0315 | b(E9000053): BNE 83 [0369H] |
| i0 := i;c j0 := i+1;d |
| 0316 | c(80E00014): LDR R0, SP, 14H |
| 0317 | c(A0E00010): STR R0, SP, 10H |
| 0318 | d(80E00014): LDR R0, SP, 14H |
| 0319 | d(40080001): ADD R0, R0, 1H |
| 031A | d(A0E00018): STR R0, SP, 18H |
| WHILE name[i0]e # 0X DOf |
| 031B | e(80E00010): LDR R0, SP, 10H |
| 031C | e(41090020): SUB R1, R0, 20H |
| 031D | e(DA17931C): BLCC MT [trap=1, pos=6035] |
| 031E | e(81E00004): LDR R1, SP, 4H |
| 031F | e(00180000): ADD R0, R1, R0 |
| 0320 | f(90000000): LDR R0, R0, 0H |
| 0321 | f(E1000047): BEQ 71 [0369H] |
| i := i0;g j := j0;h |
| 0322 | g(80E00010): LDR R0, SP, 10H |
| 0323 | g(A0E00014): STR R0, SP, 14H |
| 0324 | h(80E00018): LDR R0, SP, 18H |
| 0325 | h(A0E0001C): STR R0, SP, 1CH |
| WHILE (name[i]i # 0X)j & (kname[i]l = pat[j]m)n DOo INC(i);p INC(j) ENDq ; |
| 0326 | i(80E00014): LDR R0, SP, 14H |
| 0327 | i(41090020): SUB R1, R0, 20H |
| 0328 | i(DA17CC1C): BLCC MT [trap=1, pos=6092] |
| 0329 | i(81E00004): LDR R1, SP, 4H |
| 032A | i(00180000): ADD R0, R1, R0 |
| 032B | j(90000000): LDR R0, R0, 0H |
| 032C | k(E1000015): BEQ 21 [0342H] |
| 032D | l(80E00014): LDR R0, SP, 14H |
| 032E | l(41090020): SUB R1, R0, 20H |
| 032F | l(DA17DD1C): BLCC MT [trap=1, pos=6109] |
| 0330 | l(81E00004): LDR R1, SP, 4H |
| 0331 | l(00180000): ADD R0, R1, R0 |
| 0332 | m(81E0001C): LDR R1, SP, 1CH |
| 0333 | m(42190020): SUB R2, R1, 20H |
| 0334 | m(DA17E61C): BLCC MT [trap=1, pos=6118] |
| 0335 | m .FIXUP D |
| 0335 | m(8D000024): LDR SB, MT, MOD0 [System] |
| 0336 | m(01D80001): ADD R1, SB, R1 [global array] |
| 0337 | n(90000000): LDR R0, R0, 0H |
| 0338 | n(91100028): LDR R1, R1, 28H |
| 0339 | n(00090001): SUB R0, R0, R1 |
| 033A | o(E9000007): BNE 7 [0342H] |
| 033B | p(80E00014): LDR R0, SP, 14H |
| 033C | p(40080001): ADD R0, R0, 1H |
| 033D | p(A0E00014): STR R0, SP, 14H |
| 033E | q(80E0001C): LDR R0, SP, 1CH |
| 033F | q(40080001): ADD R0, R0, 1H |
| 0340 | q(A0E0001C): STR R0, SP, 1CH |
| 0341 | q(E7FFFFE4): B -28 [0326H] |
| IF pat[j]r = 0X THENs |
| 0342 | r(80E0001C): LDR R0, SP, 1CH |
| 0343 | r(41090020): SUB R1, R0, 20H |
| 0344 | r(DA18111C): BLCC MT [trap=1, pos=6161] |
| 0345 | r .FIXUP D |
| 0345 | r(8D000010): LDR SB, MT, MOD0 [System] |
| 0346 | r(00D80000): ADD R0, SB, R0 [global array] |
| 0347 | s(90000028): LDR R0, R0, 28H |
| 0348 | s(E900000E): BNE 14 [0357H] |
| IF name[i]t = 0X THENu (*match*) j0 := j ELSEv INCw(i0) ENDx |
| 0349 | t(80E00014): LDR R0, SP, 14H |
| 034A | t(41090020): SUB R1, R0, 20H |
| 034B | t(DA18301C): BLCC MT [trap=1, pos=6192] |
| 034C | t(81E00004): LDR R1, SP, 4H |
| 034D | t(00180000): ADD R0, R1, R0 |
| 034E | u(90000000): LDR R0, R0, 0H |
| 034F | u(E9000003): BNE 3 [0353H] |
| 0350 | v(80E0001C): LDR R0, SP, 1CH |
| 0351 | v(A0E00018): STR R0, SP, 18H |
| 0352 | w(E7000003): B 3 [0356H] |
| 0353 | x(80E00010): LDR R0, SP, 10H |
| 0354 | x(40080001): ADD R0, R0, 1H |
| 0355 | x(A0E00010): STR R0, SP, 10H |
| ELSIF paty[j]z = "*" THENa i0 := i;b j0 := j+1 |
| 0356 | y(E7000011): B 17 [0368H] |
| 0357 | z(80E0001C): LDR R0, SP, 1CH |
| 0358 | z(41090020): SUB R1, R0, 20H |
| 0359 | z(DA18721C): BLCC MT [trap=1, pos=6258] |
| 035A | z .FIXUP D |
| 035A | z(8D000015): LDR SB, MT, MOD0 [System] |
| 035B | z(00D80000): ADD R0, SB, R0 [global array] |
| 035C | a(90000028): LDR R0, R0, 28H |
| 035D | a(4009002A): SUB R0, R0, 2AH |
| 035E | a(E9000006): BNE 6 [0365H] |
| 035F | b(80E00014): LDR R0, SP, 14H |
| 0360 | b(A0E00010): STR R0, SP, 10H |
| ELSEc INCd(i0) |
| 0361 | c(80E0001C): LDR R0, SP, 1CH |
| 0362 | c(40080001): ADD R0, R0, 1H |
| 0363 | c(A0E00018): STR R0, SP, 18H |
| 0364 | d(E7000003): B 3 [0368H] |
| ENDe |
| 0365 | e(80E00010): LDR R0, SP, 10H |
| 0366 | e(40080001): ADD R0, R0, 1H |
| 0367 | e(A0E00010): STR R0, SP, 10H |
| ENDf |
| 0368 | f(E7FFFFB2): B -78 [031BH] |
| END ; |
| IF (name[i0]g = 0X)h & (ipat[j0]j = 0X)k THENl (*found*) |
| 0369 | g(80E00010): LDR R0, SP, 10H |
| 036A | g(41090020): SUB R1, R0, 20H |
| 036B | g(DA18D61C): BLCC MT [trap=1, pos=6358] |
| 036C | g(81E00004): LDR R1, SP, 4H |
| 036D | g(00180000): ADD R0, R1, R0 |
| 036E | h(90000000): LDR R0, R0, 0H |
| 036F | i(E9000036): BNE 54 [03A6H] |
| 0370 | j(80E00018): LDR R0, SP, 18H |
| 0371 | j(41090020): SUB R1, R0, 20H |
| 0372 | j(DA18E71C): BLCC MT [trap=1, pos=6375] |
| 0373 | j .FIXUP D |
| 0373 | j(8D000019): LDR SB, MT, MOD0 [System] |
| 0374 | j(00D80000): ADD R0, SB, R0 [global array] |
| 0375 | k(90000028): LDR R0, R0, 28H |
| 0376 | l(E900002F): BNE 47 [03A6H] |
| Texts.WriteString(W,m name)n;o |
| 0377 | m .FIXUP D |
| 0377 | m(8D000004): LDR SB, MT, MOD0 [System] |
| 0378 | m(40D80000): ADD R0, SB, 0H [data] |
| 0379 | m .FIXUP D |
| 0379 | m(8D900002): LDR SB, MT, MOD9 [Texts] |
| 037A | m(41D80005): ADD R1, SB, VAR5 |
| 037B | n(82E00004): LDR R2, SP, 4H |
| 037C | n(43000020): MOV R3, R0, 20H |
| 037D | o .FIXUP P |
| 037D | o(F791D0A8): BL MOD9 [Texts] PROC29 |
| IF pat[j0+1]p = "!" THENq (*option*) |
| 037E | p(80E00018): LDR R0, SP, 18H |
| 037F | p(40080001): ADD R0, R0, 1H |
| 0380 | p(41090020): SUB R1, R0, 20H |
| 0381 | p(DA19311C): BLCC MT [trap=1, pos=6449] |
| 0382 | p .FIXUP D |
| 0382 | p(8D000009): LDR SB, MT, MOD0 [System] |
| 0383 | p(00D80000): ADD R0, SB, R0 [global array] |
| 0384 | q(90000028): LDR R0, R0, 28H |
| 0385 | q(40090021): SUB R0, R0, 21H |
| 0386 | q(E900001A): BNE 26 [03A1H] |
| Kernel.GetSector(adr,r hp)s;t |
| 0387 | r(80E00008): LDR R0, SP, 8H |
| 0388 | s(41E80020): ADD R1, SP, 20H |
| 0389 | t .FIXUP P |
| 0389 | t(F710F00C): BL MOD1 [Kernel] PROC15 |
| Texts.Write(W,u 9X)v;w Texts.WriteClock(W,x hp.date)y;z |
| 038A | u .FIXUP D |
| 038A | u(8D000008): LDR SB, MT, MOD0 [System] |
| 038B | u(40D80000): ADD R0, SB, 0H [data] |
| 038C | u .FIXUP D |
| 038C | u(8D900002): LDR SB, MT, MOD9 [Texts] |
| 038D | u(41D80005): ADD R1, SB, VAR5 |
| 038E | v(42000009): MOV R2, R0, 9H |
| 038F | w .FIXUP P |
| 038F | w(F791B006): BL MOD9 [Texts] PROC27 |
| 0390 | x .FIXUP D |
| 0390 | x(8D000004): LDR SB, MT, MOD0 [System] |
| 0391 | x(40D80000): ADD R0, SB, 0H [data] |
| 0392 | x .FIXUP D |
| 0392 | x(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0393 | x(41D80005): ADD R1, SB, VAR5 |
| 0394 | y(82E0004C): LDR R2, SP, 4CH |
| 0395 | z .FIXUP P |
| 0395 | z(F7922006): BL MOD9 [Texts] PROC34 |
| Texts.WriteInt(W,a hp.aleng*FileDir.SectorSize +b hp.bleng -c FileDir.HeaderSize,d 8)e;f (*length*) |
| 0396 | a .FIXUP D |
| 0396 | a(8D000004): LDR SB, MT, MOD0 [System] |
| 0397 | a(40D80000): ADD R0, SB, 0H [data] |
| 0398 | a .FIXUP D |
| 0398 | a(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0399 | a(41D80005): ADD R1, SB, VAR5 |
| 039A | b(82E00044): LDR R2, SP, 44H |
| 039B | b(4221000A): LSL R2, R2, AH |
| 039C | c(83E00048): LDR R3, SP, 48H |
| 039D | c(02280003): ADD R2, R2, R3 |
| 039E | d(42290160): SUB R2, R2, 160H |
| 039F | e(43000008): MOV R3, R0, 8H |
| 03A0 | f .FIXUP P |
| 03A0 | f(F791E00B): BL MOD9 [Texts] PROC30 |
| (*Texts.WriteHex(W, adr)*) |
| END ; |
| Texts.WriteLn(W)g |
| 03A1 | g .FIXUP D |
| 03A1 | g(8D000009): LDR SB, MT, MOD0 [System] |
| 03A2 | g(40D80000): ADD R0, SB, 0H [data] |
| 03A3 | g .FIXUP D |
| 03A3 | g(8D900002): LDR SB, MT, MOD9 [Texts] |
| 03A4 | g(41D80005): ADD R1, SB, VAR5 |
| ENDh |
| 03A5 | h .FIXUP P |
| 03A5 | h(F791C005): BL MOD9 [Texts] PROC28 |
| ENDi List; |
| 03A6 | i(8FE00000): LDR LNK, SP, 0H |
| 03A7 | i(4EE80420): ADD SP, SP, 420H |
| 03A8 | i(C700000F): B LNK |
| |
| PROCEDURE Directory*; |
| VAR X, Y, i: INTEGER; ch: CHAR; |
| R: Texts.Reader; |
| T, t: Texts.Text; |
| V: Viewers.Viewer; |
| beg, end, time: LONGINT; |
| pre: ARRAY 32 OF CHAR; |
| BEGINj Texts.OpenReader(R,k Oberon.Par.text,l Oberon.Par.pos)m;n Texts.Read(R,o ch)p;q |
| 03A9 | j .PROC 16 |
| 03A9 | j .COMMAND Directory |
| 03A9 | j(4EE90080): SUB SP, SP, 80H |
| 03AA | j(AFE00000): STR LNK, SP, 0H |
| 03AB | k(40E80014): ADD R0, SP, 14H |
| 03AC | k .FIXUP D |
| 03AC | k(8D900009): LDR SB, MT, MOD9 [Texts] |
| 03AD | k(41D80002): ADD R1, SB, VAR2 |
| 03AE | l .FIXUP D |
| 03AE | l(8DA00002): LDR SB, MT, MOD10 [Oberon] |
| 03AF | l(42D8000E): ADD R2, SB, VAR14 |
| 03B0 | l(82200008): LDR R2, R2, 8H |
| 03B1 | m .FIXUP D |
| 03B1 | m(8DA00003): LDR SB, MT, MOD10 [Oberon] |
| 03B2 | m(43D8000E): ADD R3, SB, VAR14 |
| 03B3 | m(8330000C): LDR R3, R3, CH |
| 03B4 | n .FIXUP P |
| 03B4 | n(F791200F): BL MOD9 [Texts] PROC18 |
| 03B5 | o(40E80014): ADD R0, SP, 14H |
| 03B6 | o .FIXUP D |
| 03B6 | o(8D900005): LDR SB, MT, MOD9 [Texts] |
| 03B7 | o(41D80002): ADD R1, SB, VAR2 |
| 03B8 | p(42E80010): ADD R2, SP, 10H |
| 03B9 | q .FIXUP P |
| 03B9 | q(F7913005): BL MOD9 [Texts] PROC19 |
| WHILE ch = " " DOr Texts.Read(R,s ch)t ENDu; |
| 03BA | r(90E00010): LDR R0, SP, 10H |
| 03BB | r(40090020): SUB R0, R0, 20H |
| 03BC | r(E9000006): BNE 6 [03C3H] |
| 03BD | s(40E80014): ADD R0, SP, 14H |
| 03BE | s .FIXUP D |
| 03BE | s(8D900008): LDR SB, MT, MOD9 [Texts] |
| 03BF | s(41D80002): ADD R1, SB, VAR2 |
| 03C0 | t(42E80010): ADD R2, SP, 10H |
| 03C1 | u .FIXUP P |
| 03C1 | u(F7913008): BL MOD9 [Texts] PROC19 |
| 03C2 | u(E7FFFFF7): B -9 [03BAH] |
| IF (ch = "^")v OR (wch = 0DX)x THENy |
| 03C3 | v(90E00010): LDR R0, SP, 10H |
| 03C4 | v(4009005E): SUB R0, R0, 5EH |
| 03C5 | w(E1000003): BEQ 3 [03C9H] |
| 03C6 | x(90E00010): LDR R0, SP, 10H |
| 03C7 | x(4009000D): SUB R0, R0, DH |
| 03C8 | y(E900001C): BNE 28 [03E5H] |
| Oberon.GetSelection(T,z beg,a end,b time)c;d |
| 03C9 | z(40E80048): ADD R0, SP, 48H |
| 03CA | a(41E80054): ADD R1, SP, 54H |
| 03CB | b(42E80058): ADD R2, SP, 58H |
| 03CC | c(43E8005C): ADD R3, SP, 5CH |
| 03CD | d .FIXUP P |
| 03CD | d(F7A2900C): BL MOD10 [Oberon] PROC41 |
| IF time >= 0 THENe |
| 03CE | e(80E0005C): LDR R0, SP, 5CH |
| 03CF | e(40090000): SUB R0, R0, 0H |
| 03D0 | e(E5000014): BLT 20 [03E5H] |
| Texts.OpenReader(R,f T,g beg)h;i Texts.Read(R,j ch)k;l |
| 03D1 | f(40E80014): ADD R0, SP, 14H |
| 03D2 | f .FIXUP D |
| 03D2 | f(8D900014): LDR SB, MT, MOD9 [Texts] |
| 03D3 | f(41D80002): ADD R1, SB, VAR2 |
| 03D4 | g(82E00048): LDR R2, SP, 48H |
| 03D5 | h(83E00054): LDR R3, SP, 54H |
| 03D6 | i .FIXUP P |
| 03D6 | i(F7912009): BL MOD9 [Texts] PROC18 |
| 03D7 | j(40E80014): ADD R0, SP, 14H |
| 03D8 | j .FIXUP D |
| 03D8 | j(8D900006): LDR SB, MT, MOD9 [Texts] |
| 03D9 | j(41D80002): ADD R1, SB, VAR2 |
| 03DA | k(42E80010): ADD R2, SP, 10H |
| 03DB | l .FIXUP P |
| 03DB | l(F7913005): BL MOD9 [Texts] PROC19 |
| WHILE ch <= " " DOm Texts.Read(R,n ch)o ENDp |
| 03DC | m(90E00010): LDR R0, SP, 10H |
| 03DD | m(40090020): SUB R0, R0, 20H |
| 03DE | m(EE000006): BGT 6 [03E5H] |
| 03DF | n(40E80014): ADD R0, SP, 14H |
| 03E0 | n .FIXUP D |
| 03E0 | n(8D900008): LDR SB, MT, MOD9 [Texts] |
| 03E1 | n(41D80002): ADD R1, SB, VAR2 |
| 03E2 | o(42E80010): ADD R2, SP, 10H |
| 03E3 | p .FIXUP P |
| 03E3 | p(F7913008): BL MOD9 [Texts] PROC19 |
| 03E4 | p(E7FFFFF7): B -9 [03DCH] |
| END |
| END ; |
| i := 0;q |
| 03E5 | q(40000000): MOV R0, R0, 0H |
| 03E6 | q(A0E0000C): STR R0, SP, CH |
| WHILE ch > "!" DOr pat[i]s := ch;t INC(i);u Texts.Read(R,v ch)w ENDx; |
| 03E7 | r(90E00010): LDR R0, SP, 10H |
| 03E8 | r(40090021): SUB R0, R0, 21H |
| 03E9 | r(E6000010): BLE 16 [03FAH] |
| 03EA | s(80E0000C): LDR R0, SP, CH |
| 03EB | s(41090020): SUB R1, R0, 20H |
| 03EC | s(DA1CB41C): BLCC MT [trap=1, pos=7348] |
| 03ED | s .FIXUP D |
| 03ED | s(8D00000D): LDR SB, MT, MOD0 [System] |
| 03EE | s(00D80000): ADD R0, SB, R0 [global array] |
| 03EF | t(91E00010): LDR R1, SP, 10H |
| 03F0 | t(B1000028): STR R1, R0, 28H |
| 03F1 | u(80E0000C): LDR R0, SP, CH |
| 03F2 | u(40080001): ADD R0, R0, 1H |
| 03F3 | u(A0E0000C): STR R0, SP, CH |
| 03F4 | v(40E80014): ADD R0, SP, 14H |
| 03F5 | v .FIXUP D |
| 03F5 | v(8D900008): LDR SB, MT, MOD9 [Texts] |
| 03F6 | v(41D80002): ADD R1, SB, VAR2 |
| 03F7 | w(42E80010): ADD R2, SP, 10H |
| 03F8 | x .FIXUP P |
| 03F8 | x(F7913015): BL MOD9 [Texts] PROC19 |
| 03F9 | x(E7FFFFED): B -19 [03E7H] |
| pat[i]y := 0X;z |
| 03FA | y(80E0000C): LDR R0, SP, CH |
| 03FB | y(41090020): SUB R1, R0, 20H |
| 03FC | y(DA1CE51C): BLCC MT [trap=1, pos=7397] |
| 03FD | y .FIXUP D |
| 03FD | y(8D000008): LDR SB, MT, MOD0 [System] |
| 03FE | y(00D80000): ADD R0, SB, R0 [global array] |
| 03FF | z(41000000): MOV R1, R0, 0H |
| 0400 | z(B1000028): STR R1, R0, 28H |
| IF ch = "!" THENa pat[i+1]b := "!" ENDc ; (*directory option*) |
| 0401 | a(90E00010): LDR R0, SP, 10H |
| 0402 | a(40090021): SUB R0, R0, 21H |
| 0403 | a(E9000008): BNE 8 [040CH] |
| 0404 | b(80E0000C): LDR R0, SP, CH |
| 0405 | b(40080001): ADD R0, R0, 1H |
| 0406 | b(41090020): SUB R1, R0, 20H |
| 0407 | b(DA1D0A1C): BLCC MT [trap=1, pos=7434] |
| 0408 | b .FIXUP D |
| 0408 | b(8D00000B): LDR SB, MT, MOD0 [System] |
| 0409 | b(00D80000): ADD R0, SB, R0 [global array] |
| 040A | c(41000021): MOV R1, R0, 21H |
| 040B | c(B1000028): STR R1, R0, 28H |
| i := 0;d |
| 040C | d(40000000): MOV R0, R0, 0H |
| 040D | d(A0E0000C): STR R0, SP, CH |
| WHILE pat[i]e > "*" DOf pre[i]g := pat[i]h;i INC(i) ENDj; |
| 040E | e(80E0000C): LDR R0, SP, CH |
| 040F | e(41090020): SUB R1, R0, 20H |
| 0410 | e(DA1D4A1C): BLCC MT [trap=1, pos=7498] |
| 0411 | e .FIXUP D |
| 0411 | e(8D000009): LDR SB, MT, MOD0 [System] |
| 0412 | e(00D80000): ADD R0, SB, R0 [global array] |
| 0413 | f(90000028): LDR R0, R0, 28H |
| 0414 | f(4009002A): SUB R0, R0, 2AH |
| 0415 | f(E600000F): BLE 15 [0425H] |
| 0416 | g(80E0000C): LDR R0, SP, CH |
| 0417 | g(41090020): SUB R1, R0, 20H |
| 0418 | g(DA1D5A1C): BLCC MT [trap=1, pos=7514] |
| 0419 | g(00E80000): ADD R0, SP, R0 |
| 041A | h(81E0000C): LDR R1, SP, CH |
| 041B | h(42190020): SUB R2, R1, 20H |
| 041C | h(DA1D641C): BLCC MT [trap=1, pos=7524] |
| 041D | h .FIXUP D |
| 041D | h(8D00000C): LDR SB, MT, MOD0 [System] |
| 041E | h(01D80001): ADD R1, SB, R1 [global array] |
| 041F | i(91100028): LDR R1, R1, 28H |
| 0420 | i(B1000060): STR R1, R0, 60H |
| 0421 | j(80E0000C): LDR R0, SP, CH |
| 0422 | j(40080001): ADD R0, R0, 1H |
| 0423 | j(A0E0000C): STR R0, SP, CH |
| 0424 | j(E7FFFFE9): B -23 [040EH] |
| pre[i]k := 0X;l |
| 0425 | k(80E0000C): LDR R0, SP, CH |
| 0426 | k(41090020): SUB R1, R0, 20H |
| 0427 | k(DA1D7C1C): BLCC MT [trap=1, pos=7548] |
| 0428 | k(00E80000): ADD R0, SP, R0 |
| 0429 | l(41000000): MOV R1, R0, 0H |
| 042A | l(B1000060): STR R1, R0, 60H |
| Oberon.AllocateSystemViewer(Oberon.Par.vwr.mXn,o X,p Y)q;r t := TextFrames.Text("")s;t |
| 042B | m .FIXUP D |
| 042B | m(8DA0000E): LDR SB, MT, MOD10 [Oberon] |
| 042C | m(40D8000E): ADD R0, SB, VAR14 |
| 042D | n(80000000): LDR R0, R0, 0H |
| 042E | n(D11DB44C): BLEQ MT [trap=4, pos=7604] |
| 042F | o(80000008): LDR R0, R0, 8H |
| 0430 | p(41E80004): ADD R1, SP, 4H |
| 0431 | q(42E80008): ADD R2, SP, 8H |
| 0432 | r .FIXUP P |
| 0432 | r(F7A2303A): BL MOD10 [Oberon] PROC35 |
| 0433 | s .FIXUP D |
| 0433 | s(8D000008): LDR SB, MT, MOD0 [System] |
| 0434 | s(40D80108): ADD R0, SB, 108H [""] |
| 0435 | s(41000001): MOV R1, R0, 1H |
| 0436 | t .FIXUP P |
| 0436 | t(F7C2B004): BL MOD12 [TextFrames] PROC43 |
| 0437 | t(A0E0004C): STR R0, SP, 4CH |
| V := MenuViewers.New( |
| TextFrames.NewMenu("System.Directory",u StandardMenu)v,w |
| 0438 | u .FIXUP D |
| 0438 | u(8D000005): LDR SB, MT, MOD0 [System] |
| 0439 | u(40D8010C): ADD R0, SB, 10CH ["System.Directory"] |
| 043A | u(41000011): MOV R1, R0, 11H |
| 043B | v(42D80048): ADD R2, SB, 48H |
| 043C | v(4300003C): MOV R3, R0, 3CH |
| 043D | w .FIXUP P |
| 043D | w(F7C2C007): BL MOD12 [TextFrames] PROC44 |
| TextFrames.NewText(tx,y 0)z,a TextFrames.menuH,b X,c Y)d;e |
| 043E | x(4EE90004): SUB SP, SP, 4H |
| 043F | x(A0E00000): STR R0, SP, 0H |
| 0440 | y(80E00050): LDR R0, SP, 50H |
| 0441 | z(41000000): MOV R1, R0, 0H |
| 0442 | a .FIXUP P |
| 0442 | a(F7C2D005): BL MOD12 [TextFrames] PROC45 |
| 0443 | a(01000000): MOV R1, R0, R0 |
| 0444 | a(80E00000): LDR R0, SP, 0H |
| 0445 | a(4EE80004): ADD SP, SP, 4H |
| 0446 | b .FIXUP D |
| 0446 | b(8DC0000E): LDR SB, MT, MOD12 [TextFrames] |
| 0447 | b(82D00005): LDR R2, SB, VAR5 |
| 0448 | c(83E00004): LDR R3, SP, 4H |
| 0449 | d(84E00008): LDR R4, SP, 8H |
| 044A | e .FIXUP P |
| 044A | e(F7B04008): BL MOD11 [MenuViewers] PROC4 |
| 044B | e(A0E00050): STR R0, SP, 50H |
| FileDir.Enumerate(pre,f List)g;h Texts.Append(t,i W.buf)j |
| 044C | f(40E80060): ADD R0, SP, 60H |
| 044D | f(41000020): MOV R1, R0, 20H |
| 044E | g(F7000000): BL 0 [044FH] |
| 044F | g(42F905D4): SUB R2, LNK, 5D4H |
| 0450 | h .FIXUP P |
| 0450 | h(F7207006): BL MOD2 [FileDir] PROC7 |
| 0451 | i(80E0004C): LDR R0, SP, 4CH |
| 0452 | j .FIXUP D |
| 0452 | j(8D00000C): LDR SB, MT, MOD0 [System] |
| 0453 | j(81D00000): LDR R1, SB, 0H [data] |
| ENDk Directory; |
| 0454 | k .FIXUP P |
| 0454 | k(F790E004): BL MOD9 [Texts] PROC14 |
| 0455 | k(8FE00000): LDR LNK, SP, 0H |
| 0456 | k(4EE80080): ADD SP, SP, 80H |
| 0457 | k(C700000F): B LNK |
| |
| PROCEDURE CopyFiles*; |
| VAR f, g: Files.File; Rf, Rg: Files.Rider; ch: CHAR; |
| name: ARRAY 32 OF CHAR; |
| S: Texts.Scanner; |
| BEGINl GetArg(S)m;n |
| 0458 | l .PROC 17 |
| 0458 | l .COMMAND CopyFiles |
| 0458 | l(4EE900D4): SUB SP, SP, D4H |
| 0459 | l(AFE00000): STR LNK, SP, 0H |
| 045A | m(40E80060): ADD R0, SP, 60H |
| 045B | m .FIXUP D |
| 045B | m(8D900009): LDR SB, MT, MOD9 [Texts] |
| 045C | m(41D80003): ADD R1, SB, VAR3 |
| 045D | n(F7FFFBA2): BL -1118 [0000H] |
| Texts.WriteString(W,o "System.CopyFiles")p;q EndLine;r |
| 045E | o .FIXUP D |
| 045E | o(8D000003): LDR SB, MT, MOD0 [System] |
| 045F | o(40D80000): ADD R0, SB, 0H [data] |
| 0460 | o .FIXUP D |
| 0460 | o(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0461 | o(41D80005): ADD R1, SB, VAR5 |
| 0462 | p .FIXUP D |
| 0462 | p(8D000002): LDR SB, MT, MOD0 [System] |
| 0463 | p(42D80120): ADD R2, SB, 120H ["System.CopyFiles"] |
| 0464 | p(43000011): MOV R3, R0, 11H |
| 0465 | q .FIXUP P |
| 0465 | q(F791D011): BL MOD9 [Texts] PROC29 |
| 0466 | r(F7FFFBC4): BL -1084 [002BH] |
| WHILE S.class = Texts.Name DOs |
| 0467 | s(80E0009C): LDR R0, SP, 9CH |
| 0468 | s(40090001): SUB R0, R0, 1H |
| 0469 | s(E9000080): BNE 128 [04EAH] |
| name := S.s;t Texts.Scan(S)u;v |
| 046A | t(40E80040): ADD R0, SP, 40H |
| 046B | t(41E800B4): ADD R1, SP, B4H |
| 046C | t(42000008): MOV R2, R0, 8H |
| 046D | t(83100000): LDR R3, R1, 0H |
| 046E | t(41180004): ADD R1, R1, 4H |
| 046F | t(A3000000): STR R3, R0, 0H |
| 0470 | t(40080004): ADD R0, R0, 4H |
| 0471 | t(42290001): SUB R2, R2, 1H |
| 0472 | t(E9FFFFFA): BNE -6 [046DH] |
| 0473 | u(40E80060): ADD R0, SP, 60H |
| 0474 | u .FIXUP D |
| 0474 | u(8D900012): LDR SB, MT, MOD9 [Texts] |
| 0475 | u(41D80003): ADD R1, SB, VAR3 |
| 0476 | v .FIXUP P |
| 0476 | v(F7916011): BL MOD9 [Texts] PROC22 |
| IF (S.class = Texts.Char)w & (xS.c = "=")y THENz Texts.Scan(S)a;b |
| 0477 | w(80E0009C): LDR R0, SP, 9CH |
| 0478 | w(40090006): SUB R0, R0, 6H |
| 0479 | x(E900006B): BNE 107 [04E5H] |
| 047A | y(90E000AC): LDR R0, SP, ACH |
| 047B | y(4009003D): SUB R0, R0, 3DH |
| 047C | z(E9000068): BNE 104 [04E5H] |
| 047D | a(40E80060): ADD R0, SP, 60H |
| 047E | a .FIXUP D |
| 047E | a(8D90000A): LDR SB, MT, MOD9 [Texts] |
| 047F | a(41D80003): ADD R1, SB, VAR3 |
| 0480 | b .FIXUP P |
| 0480 | b(F791600A): BL MOD9 [Texts] PROC22 |
| IF (S.class = Texts.Char)c & (dS.c = ">")e THENf Texts.Scan(S)g;h |
| 0481 | c(80E0009C): LDR R0, SP, 9CH |
| 0482 | c(40090006): SUB R0, R0, 6H |
| 0483 | d(E9000061): BNE 97 [04E5H] |
| 0484 | e(90E000AC): LDR R0, SP, ACH |
| 0485 | e(4009003E): SUB R0, R0, 3EH |
| 0486 | f(E900005E): BNE 94 [04E5H] |
| 0487 | g(40E80060): ADD R0, SP, 60H |
| 0488 | g .FIXUP D |
| 0488 | g(8D90000A): LDR SB, MT, MOD9 [Texts] |
| 0489 | g(41D80003): ADD R1, SB, VAR3 |
| 048A | h .FIXUP P |
| 048A | h(F791600A): BL MOD9 [Texts] PROC22 |
| IF S.class = Texts.Name THENi |
| 048B | i(80E0009C): LDR R0, SP, 9CH |
| 048C | i(40090001): SUB R0, R0, 1H |
| 048D | i(E9000057): BNE 87 [04E5H] |
| Texts.WriteString(W,j name)k;l Texts.WriteString(W,m " => ")n;o Texts.WriteString(W,p S.s)q;r |
| 048E | j .FIXUP D |
| 048E | j(8D000006): LDR SB, MT, MOD0 [System] |
| 048F | j(40D80000): ADD R0, SB, 0H [data] |
| 0490 | j .FIXUP D |
| 0490 | j(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0491 | j(41D80005): ADD R1, SB, VAR5 |
| 0492 | k(42E80040): ADD R2, SP, 40H |
| 0493 | k(43000020): MOV R3, R0, 20H |
| 0494 | l .FIXUP P |
| 0494 | l(F791D00A): BL MOD9 [Texts] PROC29 |
| 0495 | m .FIXUP D |
| 0495 | m(8D000005): LDR SB, MT, MOD0 [System] |
| 0496 | m(40D80000): ADD R0, SB, 0H [data] |
| 0497 | m .FIXUP D |
| 0497 | m(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0498 | m(41D80005): ADD R1, SB, VAR5 |
| 0499 | n .FIXUP D |
| 0499 | n(8D000002): LDR SB, MT, MOD0 [System] |
| 049A | n(42D80134): ADD R2, SB, 134H [" => "] |
| 049B | n(43000005): MOV R3, R0, 5H |
| 049C | o .FIXUP P |
| 049C | o(F791D008): BL MOD9 [Texts] PROC29 |
| 049D | p .FIXUP D |
| 049D | p(8D000004): LDR SB, MT, MOD0 [System] |
| 049E | p(40D80000): ADD R0, SB, 0H [data] |
| 049F | p .FIXUP D |
| 049F | p(8D900002): LDR SB, MT, MOD9 [Texts] |
| 04A0 | p(41D80005): ADD R1, SB, VAR5 |
| 04A1 | q(42E800B4): ADD R2, SP, B4H |
| 04A2 | q(43000020): MOV R3, R0, 20H |
| 04A3 | r .FIXUP P |
| 04A3 | r(F791D007): BL MOD9 [Texts] PROC29 |
| Texts.WriteString(W,s " copying")t;u Texts.Append(Oberon.Log,v W.buf)w;x |
| 04A4 | s .FIXUP D |
| 04A4 | s(8D000005): LDR SB, MT, MOD0 [System] |
| 04A5 | s(40D80000): ADD R0, SB, 0H [data] |
| 04A6 | s .FIXUP D |
| 04A6 | s(8D900002): LDR SB, MT, MOD9 [Texts] |
| 04A7 | s(41D80005): ADD R1, SB, VAR5 |
| 04A8 | t .FIXUP D |
| 04A8 | t(8D000002): LDR SB, MT, MOD0 [System] |
| 04A9 | t(42D8013C): ADD R2, SB, 13CH [" copying"] |
| 04AA | t(43000009): MOV R3, R0, 9H |
| 04AB | u .FIXUP P |
| 04AB | u(F791D008): BL MOD9 [Texts] PROC29 |
| 04AC | v .FIXUP D |
| 04AC | v(8DA00004): LDR SB, MT, MOD10 [Oberon] |
| 04AD | v(80D0000D): LDR R0, SB, VAR13 |
| 04AE | w .FIXUP D |
| 04AE | w(8D000002): LDR SB, MT, MOD0 [System] |
| 04AF | w(81D00000): LDR R1, SB, 0H [data] |
| 04B0 | x .FIXUP P |
| 04B0 | x(F790E005): BL MOD9 [Texts] PROC14 |
| f := Files.Old(name)y;z |
| 04B1 | y(40E80040): ADD R0, SP, 40H |
| 04B2 | y(41000020): MOV R1, R0, 20H |
| 04B3 | z .FIXUP P |
| 04B3 | z(F7302003): BL MOD3 [Files] PROC2 |
| 04B4 | z(A0E00004): STR R0, SP, 4H |
| IF f # NIL THENa g := Files.New(S.s)b;c |
| 04B5 | a(80E00004): LDR R0, SP, 4H |
| 04B6 | a(E1000025): BEQ 37 [04DCH] |
| 04B7 | b(40E800B4): ADD R0, SP, B4H |
| 04B8 | b(41000020): MOV R1, R0, 20H |
| 04B9 | c .FIXUP P |
| 04B9 | c(F7303006): BL MOD3 [Files] PROC3 |
| 04BA | c(A0E00008): STR R0, SP, 8H |
| Files.Set(Rf,d f,e 0)f;g Files.Set(Rg,h g,i 0)j;k Files.Read(Rf,l ch)m;n |
| 04BB | d(40E8000C): ADD R0, SP, CH |
| 04BC | d .FIXUP D |
| 04BC | d(8D30000E): LDR SB, MT, MOD3 [Files] |
| 04BD | d(41D80001): ADD R1, SB, VAR1 |
| 04BE | e(82E00004): LDR R2, SP, 4H |
| 04BF | f(43000000): MOV R3, R0, 0H |
| 04C0 | g .FIXUP P |
| 04C0 | g(F730B007): BL MOD3 [Files] PROC11 |
| 04C1 | h(40E80024): ADD R0, SP, 24H |
| 04C2 | h .FIXUP D |
| 04C2 | h(8D300006): LDR SB, MT, MOD3 [Files] |
| 04C3 | h(41D80001): ADD R1, SB, VAR1 |
| 04C4 | i(82E00008): LDR R2, SP, 8H |
| 04C5 | j(43000000): MOV R3, R0, 0H |
| 04C6 | k .FIXUP P |
| 04C6 | k(F730B006): BL MOD3 [Files] PROC11 |
| 04C7 | l(40E8000C): ADD R0, SP, CH |
| 04C8 | l .FIXUP D |
| 04C8 | l(8D300006): LDR SB, MT, MOD3 [Files] |
| 04C9 | l(41D80001): ADD R1, SB, VAR1 |
| 04CA | m(42E8003C): ADD R2, SP, 3CH |
| 04CB | n .FIXUP P |
| 04CB | n(F7310005): BL MOD3 [Files] PROC16 |
| WHILE ~Rf.eof DOo Files.Write(Rg,p ch)q;r Files.Read(Rf,s ch)t ENDu; |
| 04CC | o(90E0000C): LDR R0, SP, CH |
| 04CD | o(E900000B): BNE 11 [04D9H] |
| 04CE | p(40E80024): ADD R0, SP, 24H |
| 04CF | p .FIXUP D |
| 04CF | p(8D300007): LDR SB, MT, MOD3 [Files] |
| 04D0 | p(41D80001): ADD R1, SB, VAR1 |
| 04D1 | q(92E0003C): LDR R2, SP, 3CH |
| 04D2 | r .FIXUP P |
| 04D2 | r(F7318007): BL MOD3 [Files] PROC24 |
| 04D3 | s(40E8000C): ADD R0, SP, CH |
| 04D4 | s .FIXUP D |
| 04D4 | s(8D300005): LDR SB, MT, MOD3 [Files] |
| 04D5 | s(41D80001): ADD R1, SB, VAR1 |
| 04D6 | t(42E8003C): ADD R2, SP, 3CH |
| 04D7 | u .FIXUP P |
| 04D7 | u(F7310005): BL MOD3 [Files] PROC16 |
| 04D8 | u(E7FFFFF3): B -13 [04CCH] |
| Files.Register(g)v |
| 04D9 | v(80E00008): LDR R0, SP, 8H |
| ELSEw Textsx.WriteString(W,y " failed")z |
| 04DA | w .FIXUP P |
| 04DA | w(F7304003): BL MOD3 [Files] PROC4 |
| 04DB | x(E7000008): B 8 [04E4H] |
| 04DC | y .FIXUP D |
| 04DC | y(8D000008): LDR SB, MT, MOD0 [System] |
| 04DD | y(40D80000): ADD R0, SB, 0H [data] |
| 04DE | y .FIXUP D |
| 04DE | y(8D900002): LDR SB, MT, MOD9 [Texts] |
| 04DF | y(41D80005): ADD R1, SB, VAR5 |
| 04E0 | z .FIXUP D |
| 04E0 | z(8D000002): LDR SB, MT, MOD0 [System] |
| 04E1 | z(42D80148): ADD R2, SB, 148H [" failed"] |
| 04E2 | z(43000008): MOV R3, R0, 8H |
| ENDa ; |
| 04E3 | a .FIXUP P |
| 04E3 | a(F791D009): BL MOD9 [Texts] PROC29 |
| EndLine |
| ENDb |
| 04E4 | b(F7FFFB46): BL -1210 [002BH] |
| END |
| END ; |
| Texts.Scan(S)c |
| 04E5 | c(40E80060): ADD R0, SP, 60H |
| 04E6 | c .FIXUP D |
| 04E6 | c(8D900006): LDR SB, MT, MOD9 [Texts] |
| 04E7 | c(41D80003): ADD R1, SB, VAR3 |
| ENDd |
| 04E8 | d .FIXUP P |
| 04E8 | d(F7916005): BL MOD9 [Texts] PROC22 |
| 04E9 | d(E7FFFF7D): B -131 [0467H] |
| ENDe CopyFiles; |
| 04EA | e(8FE00000): LDR LNK, SP, 0H |
| 04EB | e(4EE800D4): ADD SP, SP, D4H |
| 04EC | e(C700000F): B LNK |
| |
| PROCEDURE RenameFiles*; |
| VAR res: INTEGER; |
| name: ARRAY 32 OF CHAR; |
| S: Texts.Scanner; |
| BEGINf GetArg(S)g;h |
| 04ED | f .PROC 18 |
| 04ED | f .COMMAND RenameFiles |
| 04ED | f(4EE9009C): SUB SP, SP, 9CH |
| 04EE | f(AFE00000): STR LNK, SP, 0H |
| 04EF | g(40E80028): ADD R0, SP, 28H |
| 04F0 | g .FIXUP D |
| 04F0 | g(8D90000A): LDR SB, MT, MOD9 [Texts] |
| 04F1 | g(41D80003): ADD R1, SB, VAR3 |
| 04F2 | h(F7FFFB0D): BL -1267 [0000H] |
| Texts.WriteString(W,i "System.RenameFiles")j;k EndLine;l |
| 04F3 | i .FIXUP D |
| 04F3 | i(8D000003): LDR SB, MT, MOD0 [System] |
| 04F4 | i(40D80000): ADD R0, SB, 0H [data] |
| 04F5 | i .FIXUP D |
| 04F5 | i(8D900002): LDR SB, MT, MOD9 [Texts] |
| 04F6 | i(41D80005): ADD R1, SB, VAR5 |
| 04F7 | j .FIXUP D |
| 04F7 | j(8D000002): LDR SB, MT, MOD0 [System] |
| 04F8 | j(42D80150): ADD R2, SB, 150H ["System.RenameFiles"] |
| 04F9 | j(43000013): MOV R3, R0, 13H |
| 04FA | k .FIXUP P |
| 04FA | k(F791D012): BL MOD9 [Texts] PROC29 |
| 04FB | l(F7FFFB2F): BL -1233 [002BH] |
| WHILE S.class = Texts.Name DOm |
| 04FC | m(80E00064): LDR R0, SP, 64H |
| 04FD | m(40090001): SUB R0, R0, 1H |
| 04FE | m(E9000059): BNE 89 [0558H] |
| name := S.s;n Texts.Scan(S)o;p |
| 04FF | n(40E80008): ADD R0, SP, 8H |
| 0500 | n(41E8007C): ADD R1, SP, 7CH |
| 0501 | n(42000008): MOV R2, R0, 8H |
| 0502 | n(83100000): LDR R3, R1, 0H |
| 0503 | n(41180004): ADD R1, R1, 4H |
| 0504 | n(A3000000): STR R3, R0, 0H |
| 0505 | n(40080004): ADD R0, R0, 4H |
| 0506 | n(42290001): SUB R2, R2, 1H |
| 0507 | n(E9FFFFFA): BNE -6 [0502H] |
| 0508 | o(40E80028): ADD R0, SP, 28H |
| 0509 | o .FIXUP D |
| 0509 | o(8D900012): LDR SB, MT, MOD9 [Texts] |
| 050A | o(41D80003): ADD R1, SB, VAR3 |
| 050B | p .FIXUP P |
| 050B | p(F7916011): BL MOD9 [Texts] PROC22 |
| IF (S.class = Texts.Char)q & (rS.c = "=")s THENt Texts.Scan(S)u;v |
| 050C | q(80E00064): LDR R0, SP, 64H |
| 050D | q(40090006): SUB R0, R0, 6H |
| 050E | r(E9000044): BNE 68 [0553H] |
| 050F | s(90E00074): LDR R0, SP, 74H |
| 0510 | s(4009003D): SUB R0, R0, 3DH |
| 0511 | t(E9000041): BNE 65 [0553H] |
| 0512 | u(40E80028): ADD R0, SP, 28H |
| 0513 | u .FIXUP D |
| 0513 | u(8D90000A): LDR SB, MT, MOD9 [Texts] |
| 0514 | u(41D80003): ADD R1, SB, VAR3 |
| 0515 | v .FIXUP P |
| 0515 | v(F791600A): BL MOD9 [Texts] PROC22 |
| IF (S.class = Texts.Char)w & (xS.c = ">")y THENz Texts.Scan(S)a;b |
| 0516 | w(80E00064): LDR R0, SP, 64H |
| 0517 | w(40090006): SUB R0, R0, 6H |
| 0518 | x(E900003A): BNE 58 [0553H] |
| 0519 | y(90E00074): LDR R0, SP, 74H |
| 051A | y(4009003E): SUB R0, R0, 3EH |
| 051B | z(E9000037): BNE 55 [0553H] |
| 051C | a(40E80028): ADD R0, SP, 28H |
| 051D | a .FIXUP D |
| 051D | a(8D90000A): LDR SB, MT, MOD9 [Texts] |
| 051E | a(41D80003): ADD R1, SB, VAR3 |
| 051F | b .FIXUP P |
| 051F | b(F791600A): BL MOD9 [Texts] PROC22 |
| IF S.class = Texts.Name THENc |
| 0520 | c(80E00064): LDR R0, SP, 64H |
| 0521 | c(40090001): SUB R0, R0, 1H |
| 0522 | c(E9000030): BNE 48 [0553H] |
| Texts.WriteString(W,d name)e;f Texts.WriteString(W,g " => ")h;i Texts.WriteString(W,j S.s)k;l |
| 0523 | d .FIXUP D |
| 0523 | d(8D000006): LDR SB, MT, MOD0 [System] |
| 0524 | d(40D80000): ADD R0, SB, 0H [data] |
| 0525 | d .FIXUP D |
| 0525 | d(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0526 | d(41D80005): ADD R1, SB, VAR5 |
| 0527 | e(42E80008): ADD R2, SP, 8H |
| 0528 | e(43000020): MOV R3, R0, 20H |
| 0529 | f .FIXUP P |
| 0529 | f(F791D00A): BL MOD9 [Texts] PROC29 |
| 052A | g .FIXUP D |
| 052A | g(8D000005): LDR SB, MT, MOD0 [System] |
| 052B | g(40D80000): ADD R0, SB, 0H [data] |
| 052C | g .FIXUP D |
| 052C | g(8D900002): LDR SB, MT, MOD9 [Texts] |
| 052D | g(41D80005): ADD R1, SB, VAR5 |
| 052E | h .FIXUP D |
| 052E | h(8D000002): LDR SB, MT, MOD0 [System] |
| 052F | h(42D80164): ADD R2, SB, 164H [" => "] |
| 0530 | h(43000005): MOV R3, R0, 5H |
| 0531 | i .FIXUP P |
| 0531 | i(F791D008): BL MOD9 [Texts] PROC29 |
| 0532 | j .FIXUP D |
| 0532 | j(8D000004): LDR SB, MT, MOD0 [System] |
| 0533 | j(40D80000): ADD R0, SB, 0H [data] |
| 0534 | j .FIXUP D |
| 0534 | j(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0535 | j(41D80005): ADD R1, SB, VAR5 |
| 0536 | k(42E8007C): ADD R2, SP, 7CH |
| 0537 | k(43000020): MOV R3, R0, 20H |
| 0538 | l .FIXUP P |
| 0538 | l(F791D007): BL MOD9 [Texts] PROC29 |
| Texts.WriteString(W,m " renaming")n;o Files.Rename(name,p S.s,q res)r;s |
| 0539 | m .FIXUP D |
| 0539 | m(8D000005): LDR SB, MT, MOD0 [System] |
| 053A | m(40D80000): ADD R0, SB, 0H [data] |
| 053B | m .FIXUP D |
| 053B | m(8D900002): LDR SB, MT, MOD9 [Texts] |
| 053C | m(41D80005): ADD R1, SB, VAR5 |
| 053D | n .FIXUP D |
| 053D | n(8D000002): LDR SB, MT, MOD0 [System] |
| 053E | n(42D8016C): ADD R2, SB, 16CH [" renaming"] |
| 053F | n(4300000A): MOV R3, R0, AH |
| 0540 | o .FIXUP P |
| 0540 | o(F791D008): BL MOD9 [Texts] PROC29 |
| 0541 | p(40E80008): ADD R0, SP, 8H |
| 0542 | p(41000020): MOV R1, R0, 20H |
| 0543 | q(42E8007C): ADD R2, SP, 7CH |
| 0544 | q(43000020): MOV R3, R0, 20H |
| 0545 | r(44E80004): ADD R4, SP, 4H |
| 0546 | s .FIXUP P |
| 0546 | s(F7308006): BL MOD3 [Files] PROC8 |
| IF res > 1 THENt Texts.WriteString(W,u " failed")v ENDw; |
| 0547 | t(80E00004): LDR R0, SP, 4H |
| 0548 | t(40090001): SUB R0, R0, 1H |
| 0549 | t(E6000008): BLE 8 [0552H] |
| 054A | u .FIXUP D |
| 054A | u(8D00000D): LDR SB, MT, MOD0 [System] |
| 054B | u(40D80000): ADD R0, SB, 0H [data] |
| 054C | u .FIXUP D |
| 054C | u(8D900002): LDR SB, MT, MOD9 [Texts] |
| 054D | u(41D80005): ADD R1, SB, VAR5 |
| 054E | v .FIXUP D |
| 054E | v(8D000002): LDR SB, MT, MOD0 [System] |
| 054F | v(42D80178): ADD R2, SB, 178H [" failed"] |
| 0550 | v(43000008): MOV R3, R0, 8H |
| 0551 | w .FIXUP P |
| 0551 | w(F791D00B): BL MOD9 [Texts] PROC29 |
| EndLine |
| ENDx |
| 0552 | x(F7FFFAD8): BL -1320 [002BH] |
| END |
| END ; |
| Texts.Scan(S)y |
| 0553 | y(40E80028): ADD R0, SP, 28H |
| 0554 | y .FIXUP D |
| 0554 | y(8D900006): LDR SB, MT, MOD9 [Texts] |
| 0555 | y(41D80003): ADD R1, SB, VAR3 |
| ENDz |
| 0556 | z .FIXUP P |
| 0556 | z(F7916005): BL MOD9 [Texts] PROC22 |
| 0557 | z(E7FFFFA4): B -92 [04FCH] |
| ENDa RenameFiles; |
| 0558 | a(8FE00000): LDR LNK, SP, 0H |
| 0559 | a(4EE8009C): ADD SP, SP, 9CH |
| 055A | a(C700000F): B LNK |
| |
| PROCEDURE DeleteFiles*; |
| VAR res: INTEGER; S: Texts.Scanner; |
| BEGINb GetArg(S)c;d |
| 055B | b .PROC 19 |
| 055B | b .COMMAND DeleteFiles |
| 055B | b(4EE9007C): SUB SP, SP, 7CH |
| 055C | b(AFE00000): STR LNK, SP, 0H |
| 055D | c(40E80008): ADD R0, SP, 8H |
| 055E | c .FIXUP D |
| 055E | c(8D90000A): LDR SB, MT, MOD9 [Texts] |
| 055F | c(41D80003): ADD R1, SB, VAR3 |
| 0560 | d(F7FFFA9F): BL -1377 [0000H] |
| Texts.WriteString(W,e "System.DeleteFiles")f;g EndLine;h |
| 0561 | e .FIXUP D |
| 0561 | e(8D000003): LDR SB, MT, MOD0 [System] |
| 0562 | e(40D80000): ADD R0, SB, 0H [data] |
| 0563 | e .FIXUP D |
| 0563 | e(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0564 | e(41D80005): ADD R1, SB, VAR5 |
| 0565 | f .FIXUP D |
| 0565 | f(8D000002): LDR SB, MT, MOD0 [System] |
| 0566 | f(42D80180): ADD R2, SB, 180H ["System.DeleteFiles"] |
| 0567 | f(43000013): MOV R3, R0, 13H |
| 0568 | g .FIXUP P |
| 0568 | g(F791D012): BL MOD9 [Texts] PROC29 |
| 0569 | h(F7FFFAC1): BL -1343 [002BH] |
| WHILE S.class = Texts.Name DOi |
| 056A | i(80E00044): LDR R0, SP, 44H |
| 056B | i(40090001): SUB R0, R0, 1H |
| 056C | i(E9000023): BNE 35 [0590H] |
| Texts.WriteString(W,j S.s)k;l Texts.WriteString(W,m " deleting")n;o |
| 056D | j .FIXUP D |
| 056D | j(8D000008): LDR SB, MT, MOD0 [System] |
| 056E | j(40D80000): ADD R0, SB, 0H [data] |
| 056F | j .FIXUP D |
| 056F | j(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0570 | j(41D80005): ADD R1, SB, VAR5 |
| 0571 | k(42E8005C): ADD R2, SP, 5CH |
| 0572 | k(43000020): MOV R3, R0, 20H |
| 0573 | l .FIXUP P |
| 0573 | l(F791D00B): BL MOD9 [Texts] PROC29 |
| 0574 | m .FIXUP D |
| 0574 | m(8D000005): LDR SB, MT, MOD0 [System] |
| 0575 | m(40D80000): ADD R0, SB, 0H [data] |
| 0576 | m .FIXUP D |
| 0576 | m(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0577 | m(41D80005): ADD R1, SB, VAR5 |
| 0578 | n .FIXUP D |
| 0578 | n(8D000002): LDR SB, MT, MOD0 [System] |
| 0579 | n(42D80194): ADD R2, SB, 194H [" deleting"] |
| 057A | n(4300000A): MOV R3, R0, AH |
| 057B | o .FIXUP P |
| 057B | o(F791D008): BL MOD9 [Texts] PROC29 |
| Files.Delete(S.s,p res)q;r |
| 057C | p(40E8005C): ADD R0, SP, 5CH |
| 057D | p(41000020): MOV R1, R0, 20H |
| 057E | q(42E80004): ADD R2, SP, 4H |
| 057F | r .FIXUP P |
| 057F | r(F7307004): BL MOD3 [Files] PROC7 |
| IF res # 0 THENs Texts.WriteString(W,t " failed")u ENDv; |
| 0580 | s(80E00004): LDR R0, SP, 4H |
| 0581 | s(E1000008): BEQ 8 [058AH] |
| 0582 | t .FIXUP D |
| 0582 | t(8D00000A): LDR SB, MT, MOD0 [System] |
| 0583 | t(40D80000): ADD R0, SB, 0H [data] |
| 0584 | t .FIXUP D |
| 0584 | t(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0585 | t(41D80005): ADD R1, SB, VAR5 |
| 0586 | u .FIXUP D |
| 0586 | u(8D000002): LDR SB, MT, MOD0 [System] |
| 0587 | u(42D801A0): ADD R2, SB, 1A0H [" failed"] |
| 0588 | u(43000008): MOV R3, R0, 8H |
| 0589 | v .FIXUP P |
| 0589 | v(F791D00A): BL MOD9 [Texts] PROC29 |
| EndLine;w Texts.Scan(S)x |
| 058A | w(F7FFFAA0): BL -1376 [002BH] |
| 058B | x(40E80008): ADD R0, SP, 8H |
| 058C | x .FIXUP D |
| 058C | x(8D900006): LDR SB, MT, MOD9 [Texts] |
| 058D | x(41D80003): ADD R1, SB, VAR3 |
| ENDy |
| 058E | y .FIXUP P |
| 058E | y(F7916005): BL MOD9 [Texts] PROC22 |
| 058F | y(E7FFFFDA): B -38 [056AH] |
| ENDz DeleteFiles; |
| 0590 | z(8FE00000): LDR LNK, SP, 0H |
| 0591 | z(4EE8007C): ADD SP, SP, 7CH |
| 0592 | z(C700000F): B LNK |
| |
| (* ------------- Toolbox for system inspection ---------------*) |
| |
| PROCEDURE Watch*; |
| BEGINa Texts.WriteString(W,b "System.Watch")c;d Texts.WriteLn(W)e;f |
| 0593 | a .PROC 20 |
| 0593 | a .COMMAND Watch |
| 0593 | a(4EE90004): SUB SP, SP, 4H |
| 0594 | a(AFE00000): STR LNK, SP, 0H |
| 0595 | b .FIXUP D |
| 0595 | b(8D000009): LDR SB, MT, MOD0 [System] |
| 0596 | b(40D80000): ADD R0, SB, 0H [data] |
| 0597 | b .FIXUP D |
| 0597 | b(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0598 | b(41D80005): ADD R1, SB, VAR5 |
| 0599 | c .FIXUP D |
| 0599 | c(8D000002): LDR SB, MT, MOD0 [System] |
| 059A | c(42D801A8): ADD R2, SB, 1A8H ["System.Watch"] |
| 059B | c(4300000D): MOV R3, R0, DH |
| 059C | d .FIXUP P |
| 059C | d(F791D00E): BL MOD9 [Texts] PROC29 |
| 059D | e .FIXUP D |
| 059D | e(8D000004): LDR SB, MT, MOD0 [System] |
| 059E | e(40D80000): ADD R0, SB, 0H [data] |
| 059F | e .FIXUP D |
| 059F | e(8D900002): LDR SB, MT, MOD9 [Texts] |
| 05A0 | e(41D80005): ADD R1, SB, VAR5 |
| 05A1 | f .FIXUP P |
| 05A1 | f(F791C005): BL MOD9 [Texts] PROC28 |
| Texts.WriteString(W,g " Modules space (bytes)")h;i Texts.WriteInt(W,j Modules.AllocPtr,k 8)l;m |
| 05A2 | g .FIXUP D |
| 05A2 | g(8D000003): LDR SB, MT, MOD0 [System] |
| 05A3 | g(40D80000): ADD R0, SB, 0H [data] |
| 05A4 | g .FIXUP D |
| 05A4 | g(8D900002): LDR SB, MT, MOD9 [Texts] |
| 05A5 | g(41D80005): ADD R1, SB, VAR5 |
| 05A6 | h .FIXUP D |
| 05A6 | h(8D000002): LDR SB, MT, MOD0 [System] |
| 05A7 | h(42D801B8): ADD R2, SB, 1B8H [" Modules space (bytes)"] |
| 05A8 | h(43000018): MOV R3, R0, 18H |
| 05A9 | i .FIXUP P |
| 05A9 | i(F791D008): BL MOD9 [Texts] PROC29 |
| 05AA | j .FIXUP D |
| 05AA | j(8D000004): LDR SB, MT, MOD0 [System] |
| 05AB | j(40D80000): ADD R0, SB, 0H [data] |
| 05AC | j .FIXUP D |
| 05AC | j(8D900002): LDR SB, MT, MOD9 [Texts] |
| 05AD | j(41D80005): ADD R1, SB, VAR5 |
| 05AE | k .FIXUP D |
| 05AE | k(8D400002): LDR SB, MT, MOD4 [Modules] |
| 05AF | k(82D00004): LDR R2, SB, VAR4 |
| 05B0 | l(43000008): MOV R3, R0, 8H |
| 05B1 | m .FIXUP P |
| 05B1 | m(F791E008): BL MOD9 [Texts] PROC30 |
| Texts.WriteInt(W,n Modules.AllocPtr * 100 DIVo Kernel.heapOrg,p 4)q;r Texts.Write(W,s "%")t;u EndLine;v |
| 05B2 | n .FIXUP D |
| 05B2 | n(8D000004): LDR SB, MT, MOD0 [System] |
| 05B3 | n(40D80000): ADD R0, SB, 0H [data] |
| 05B4 | n .FIXUP D |
| 05B4 | n(8D900002): LDR SB, MT, MOD9 [Texts] |
| 05B5 | n(41D80005): ADD R1, SB, VAR5 |
| 05B6 | o .FIXUP D |
| 05B6 | o(8D400002): LDR SB, MT, MOD4 [Modules] |
| 05B7 | o(82D00004): LDR R2, SB, VAR4 |
| 05B8 | o(422A0064): MUL R2, R2, 64H |
| 05B9 | p .FIXUP D |
| 05B9 | p(8D100003): LDR SB, MT, MOD1 [Kernel] |
| 05BA | p(83D00003): LDR R3, SB, VAR3 |
| 05BB | p(D628906C): BLLE MT [trap=6, pos=10384] |
| 05BC | p(022B0003): DIV R2, R2, R3 |
| 05BD | q(43000004): MOV R3, R0, 4H |
| 05BE | r .FIXUP P |
| 05BE | r(F791E00D): BL MOD9 [Texts] PROC30 |
| 05BF | s .FIXUP D |
| 05BF | s(8D000006): LDR SB, MT, MOD0 [System] |
| 05C0 | s(40D80000): ADD R0, SB, 0H [data] |
| 05C1 | s .FIXUP D |
| 05C1 | s(8D900002): LDR SB, MT, MOD9 [Texts] |
| 05C2 | s(41D80005): ADD R1, SB, VAR5 |
| 05C3 | t(42000025): MOV R2, R0, 25H |
| 05C4 | u .FIXUP P |
| 05C4 | u(F791B006): BL MOD9 [Texts] PROC27 |
| 05C5 | v(F7FFFA65): BL -1435 [002BH] |
| Texts.WriteString(W,w " Heap speace")x;y Texts.WriteInt(W,z Kernel.allocated,a 8)b;c |
| 05C6 | w .FIXUP D |
| 05C6 | w(8D000005): LDR SB, MT, MOD0 [System] |
| 05C7 | w(40D80000): ADD R0, SB, 0H [data] |
| 05C8 | w .FIXUP D |
| 05C8 | w(8D900002): LDR SB, MT, MOD9 [Texts] |
| 05C9 | w(41D80005): ADD R1, SB, VAR5 |
| 05CA | x .FIXUP D |
| 05CA | x(8D000002): LDR SB, MT, MOD0 [System] |
| 05CB | x(42D801D0): ADD R2, SB, 1D0H [" Heap speace"] |
| 05CC | x(4300000E): MOV R3, R0, EH |
| 05CD | y .FIXUP P |
| 05CD | y(F791D009): BL MOD9 [Texts] PROC29 |
| 05CE | z .FIXUP D |
| 05CE | z(8D000004): LDR SB, MT, MOD0 [System] |
| 05CF | z(40D80000): ADD R0, SB, 0H [data] |
| 05D0 | z .FIXUP D |
| 05D0 | z(8D900002): LDR SB, MT, MOD9 [Texts] |
| 05D1 | z(41D80005): ADD R1, SB, VAR5 |
| 05D2 | a .FIXUP D |
| 05D2 | a(8D100002): LDR SB, MT, MOD1 [Kernel] |
| 05D3 | a(82D00001): LDR R2, SB, VAR1 |
| 05D4 | b(43000008): MOV R3, R0, 8H |
| 05D5 | c .FIXUP P |
| 05D5 | c(F791E008): BL MOD9 [Texts] PROC30 |
| Texts.WriteInt(W,d Kernel.allocated * 100 DIVe (Kernel.heapLim - Kernel.heapOrg)f,g 4)h;i Texts.Write(W,j "%")k;l EndLine;m |
| 05D6 | d .FIXUP D |
| 05D6 | d(8D000004): LDR SB, MT, MOD0 [System] |
| 05D7 | d(40D80000): ADD R0, SB, 0H [data] |
| 05D8 | d .FIXUP D |
| 05D8 | d(8D900002): LDR SB, MT, MOD9 [Texts] |
| 05D9 | d(41D80005): ADD R1, SB, VAR5 |
| 05DA | e .FIXUP D |
| 05DA | e(8D100002): LDR SB, MT, MOD1 [Kernel] |
| 05DB | e(82D00001): LDR R2, SB, VAR1 |
| 05DC | e(422A0064): MUL R2, R2, 64H |
| 05DD | f .FIXUP D |
| 05DD | f(8D100003): LDR SB, MT, MOD1 [Kernel] |
| 05DE | f(83D00004): LDR R3, SB, VAR4 |
| 05DF | f .FIXUP D |
| 05DF | f(8D100002): LDR SB, MT, MOD1 [Kernel] |
| 05E0 | f(84D00003): LDR R4, SB, VAR3 |
| 05E1 | f(03390004): SUB R3, R3, R4 |
| 05E2 | g(D629596C): BLLE MT [trap=6, pos=10585] |
| 05E3 | g(022B0003): DIV R2, R2, R3 |
| 05E4 | h(43000004): MOV R3, R0, 4H |
| 05E5 | i .FIXUP P |
| 05E5 | i(F791E010): BL MOD9 [Texts] PROC30 |
| 05E6 | j .FIXUP D |
| 05E6 | j(8D000007): LDR SB, MT, MOD0 [System] |
| 05E7 | j(40D80000): ADD R0, SB, 0H [data] |
| 05E8 | j .FIXUP D |
| 05E8 | j(8D900002): LDR SB, MT, MOD9 [Texts] |
| 05E9 | j(41D80005): ADD R1, SB, VAR5 |
| 05EA | k(42000025): MOV R2, R0, 25H |
| 05EB | l .FIXUP P |
| 05EB | l(F791B006): BL MOD9 [Texts] PROC27 |
| 05EC | m(F7FFFA3E): BL -1474 [002BH] |
| Texts.WriteString(W,n " Disk sectors ")o;p Texts.WriteInt(W,q Kernel.NofSectors,r 4)s;t |
| 05ED | n .FIXUP D |
| 05ED | n(8D000005): LDR SB, MT, MOD0 [System] |
| 05EE | n(40D80000): ADD R0, SB, 0H [data] |
| 05EF | n .FIXUP D |
| 05EF | n(8D900002): LDR SB, MT, MOD9 [Texts] |
| 05F0 | n(41D80005): ADD R1, SB, VAR5 |
| 05F1 | o .FIXUP D |
| 05F1 | o(8D000002): LDR SB, MT, MOD0 [System] |
| 05F2 | o(42D801E0): ADD R2, SB, 1E0H [" Disk sectors "] |
| 05F3 | o(43000010): MOV R3, R0, 10H |
| 05F4 | p .FIXUP P |
| 05F4 | p(F791D009): BL MOD9 [Texts] PROC29 |
| 05F5 | q .FIXUP D |
| 05F5 | q(8D000004): LDR SB, MT, MOD0 [System] |
| 05F6 | q(40D80000): ADD R0, SB, 0H [data] |
| 05F7 | q .FIXUP D |
| 05F7 | q(8D900002): LDR SB, MT, MOD9 [Texts] |
| 05F8 | q(41D80005): ADD R1, SB, VAR5 |
| 05F9 | r .FIXUP D |
| 05F9 | r(8D100002): LDR SB, MT, MOD1 [Kernel] |
| 05FA | r(82D00002): LDR R2, SB, VAR2 |
| 05FB | s(43000004): MOV R3, R0, 4H |
| 05FC | t .FIXUP P |
| 05FC | t(F791E008): BL MOD9 [Texts] PROC30 |
| Texts.WriteInt(W,u Kernel.NofSectors * 100 DIVv 10000H,w 4)x;y Texts.Write(W,z "%")a;b EndLine;c |
| 05FD | u .FIXUP D |
| 05FD | u(8D000004): LDR SB, MT, MOD0 [System] |
| 05FE | u(40D80000): ADD R0, SB, 0H [data] |
| 05FF | u .FIXUP D |
| 05FF | u(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0600 | u(41D80005): ADD R1, SB, VAR5 |
| 0601 | v .FIXUP D |
| 0601 | v(8D100002): LDR SB, MT, MOD1 [Kernel] |
| 0602 | v(82D00002): LDR R2, SB, VAR2 |
| 0603 | v(422A0064): MUL R2, R2, 64H |
| 0604 | w(42220010): ASR R2, R2, 10H |
| 0605 | x(43000004): MOV R3, R0, 4H |
| 0606 | y .FIXUP P |
| 0606 | y(F791E00A): BL MOD9 [Texts] PROC30 |
| 0607 | z .FIXUP D |
| 0607 | z(8D000006): LDR SB, MT, MOD0 [System] |
| 0608 | z(40D80000): ADD R0, SB, 0H [data] |
| 0609 | z .FIXUP D |
| 0609 | z(8D900002): LDR SB, MT, MOD9 [Texts] |
| 060A | z(41D80005): ADD R1, SB, VAR5 |
| 060B | a(42000025): MOV R2, R0, 25H |
| 060C | b .FIXUP P |
| 060C | b(F791B006): BL MOD9 [Texts] PROC27 |
| 060D | c(F7FFFA1D): BL -1507 [002BH] |
| Texts.WriteString(W,d " Tasks")e;f Texts.WriteInt(W,g Oberon.NofTasks,h 4)i;j EndLine |
| 060E | d .FIXUP D |
| 060E | d(8D000005): LDR SB, MT, MOD0 [System] |
| 060F | d(40D80000): ADD R0, SB, 0H [data] |
| 0610 | d .FIXUP D |
| 0610 | d(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0611 | d(41D80005): ADD R1, SB, VAR5 |
| 0612 | e .FIXUP D |
| 0612 | e(8D000002): LDR SB, MT, MOD0 [System] |
| 0613 | e(42D801F0): ADD R2, SB, 1F0H [" Tasks"] |
| 0614 | e(43000008): MOV R3, R0, 8H |
| 0615 | f .FIXUP P |
| 0615 | f(F791D009): BL MOD9 [Texts] PROC29 |
| 0616 | g .FIXUP D |
| 0616 | g(8D000004): LDR SB, MT, MOD0 [System] |
| 0617 | g(40D80000): ADD R0, SB, 0H [data] |
| 0618 | g .FIXUP D |
| 0618 | g(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0619 | g(41D80005): ADD R1, SB, VAR5 |
| 061A | h .FIXUP D |
| 061A | h(8DA00002): LDR SB, MT, MOD10 [Oberon] |
| 061B | h(82D00012): LDR R2, SB, VAR18 |
| 061C | i(43000004): MOV R3, R0, 4H |
| 061D | j .FIXUP P |
| 061D | j(F791E008): BL MOD9 [Texts] PROC30 |
| ENDk Watch; |
| 061E | k(F7FFFA0C): BL -1524 [002BH] |
| 061F | k(8FE00000): LDR LNK, SP, 0H |
| 0620 | k(4EE80004): ADD SP, SP, 4H |
| 0621 | k(C700000F): B LNK |
| |
| PROCEDURE ShowModules*; |
| VAR T: Texts.Text; |
| V: Viewers.Viewer; |
| M: Modules.Module; |
| X, Y: INTEGER; |
| BEGINl T := TextFrames.Text("")m;n |
| 0622 | l .PROC 21 |
| 0622 | l .COMMAND ShowModules |
| 0622 | l(4EE90018): SUB SP, SP, 18H |
| 0623 | l(AFE00000): STR LNK, SP, 0H |
| 0624 | m .FIXUP D |
| 0624 | m(8D00000A): LDR SB, MT, MOD0 [System] |
| 0625 | m(40D801F8): ADD R0, SB, 1F8H [""] |
| 0626 | m(41000001): MOV R1, R0, 1H |
| 0627 | n .FIXUP P |
| 0627 | n(F7C2B00A): BL MOD12 [TextFrames] PROC43 |
| 0628 | n(A0E00004): STR R0, SP, 4H |
| Oberon.AllocateSystemViewer(Oberon.Par.vwr.oXp,q X,r Y)s;t |
| 0629 | o .FIXUP D |
| 0629 | o(8DA00005): LDR SB, MT, MOD10 [Oberon] |
| 062A | o(40D8000E): ADD R0, SB, VAR14 |
| 062B | p(80000000): LDR R0, R0, 0H |
| 062C | p(D12B5A4C): BLEQ MT [trap=4, pos=11098] |
| 062D | q(80000008): LDR R0, R0, 8H |
| 062E | r(41E80010): ADD R1, SP, 10H |
| 062F | s(42E80014): ADD R2, SP, 14H |
| 0630 | t .FIXUP P |
| 0630 | t(F7A23009): BL MOD10 [Oberon] PROC35 |
| V := MenuViewers.New(TextFrames.NewMenu("System.ShowModules",u StandardMenu)v,w |
| 0631 | u .FIXUP D |
| 0631 | u(8D000008): LDR SB, MT, MOD0 [System] |
| 0632 | u(40D801FC): ADD R0, SB, 1FCH ["System.ShowModules"] |
| 0633 | u(41000013): MOV R1, R0, 13H |
| 0634 | v(42D80048): ADD R2, SB, 48H |
| 0635 | v(4300003C): MOV R3, R0, 3CH |
| 0636 | w .FIXUP P |
| 0636 | w(F7C2C006): BL MOD12 [TextFrames] PROC44 |
| TextFrames.NewText(Tx,y 0)z,a TextFrames.menuH,b X,c Y)d;e |
| 0637 | x(4EE90004): SUB SP, SP, 4H |
| 0638 | x(A0E00000): STR R0, SP, 0H |
| 0639 | y(80E00008): LDR R0, SP, 8H |
| 063A | z(41000000): MOV R1, R0, 0H |
| 063B | a .FIXUP P |
| 063B | a(F7C2D005): BL MOD12 [TextFrames] PROC45 |
| 063C | a(01000000): MOV R1, R0, R0 |
| 063D | a(80E00000): LDR R0, SP, 0H |
| 063E | a(4EE80004): ADD SP, SP, 4H |
| 063F | b .FIXUP D |
| 063F | b(8DC0000E): LDR SB, MT, MOD12 [TextFrames] |
| 0640 | b(82D00005): LDR R2, SB, VAR5 |
| 0641 | c(83E00010): LDR R3, SP, 10H |
| 0642 | d(84E00014): LDR R4, SP, 14H |
| 0643 | e .FIXUP P |
| 0643 | e(F7B04008): BL MOD11 [MenuViewers] PROC4 |
| 0644 | e(A0E00008): STR R0, SP, 8H |
| M := Modules.root;f |
| 0645 | f .FIXUP D |
| 0645 | f(8D400006): LDR SB, MT, MOD4 [Modules] |
| 0646 | f(80D00002): LDR R0, SB, VAR2 |
| 0647 | f(A0E0000C): STR R0, SP, CH |
| WHILE M # NIL DOg |
| 0648 | g(80E0000C): LDR R0, SP, CH |
| 0649 | g(E100003C): BEQ 60 [0686H] |
| IF M.nameh[0] # 0X THENi |
| 064A | h(80E0000C): LDR R0, SP, CH |
| 064B | h(D12C2A4C): BLEQ MT [trap=4, pos=11306] |
| 064C | i(90000000): LDR R0, R0, 0H |
| 064D | i(E1000026): BEQ 38 [0674H] |
| Texts.WriteString(W,j M.namek)l;m Texts.Write(W,n 9X)o;p Texts.WriteHex(W,q ORD(M))r;s |
| 064E | j .FIXUP D |
| 064E | j(8D000009): LDR SB, MT, MOD0 [System] |
| 064F | j(40D80000): ADD R0, SB, 0H [data] |
| 0650 | j .FIXUP D |
| 0650 | j(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0651 | j(41D80005): ADD R1, SB, VAR5 |
| 0652 | k(82E0000C): LDR R2, SP, CH |
| 0653 | k(D12C5B4C): BLEQ MT [trap=4, pos=11355] |
| 0654 | l(43000020): MOV R3, R0, 20H |
| 0655 | m .FIXUP P |
| 0655 | m(F791D012): BL MOD9 [Texts] PROC29 |
| 0656 | n .FIXUP D |
| 0656 | n(8D000006): LDR SB, MT, MOD0 [System] |
| 0657 | n(40D80000): ADD R0, SB, 0H [data] |
| 0658 | n .FIXUP D |
| 0658 | n(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0659 | n(41D80005): ADD R1, SB, VAR5 |
| 065A | o(42000009): MOV R2, R0, 9H |
| 065B | p .FIXUP P |
| 065B | p(F791B006): BL MOD9 [Texts] PROC27 |
| 065C | q .FIXUP D |
| 065C | q(8D000004): LDR SB, MT, MOD0 [System] |
| 065D | q(40D80000): ADD R0, SB, 0H [data] |
| 065E | q .FIXUP D |
| 065E | q(8D900002): LDR SB, MT, MOD9 [Texts] |
| 065F | q(41D80005): ADD R1, SB, VAR5 |
| 0660 | r(82E0000C): LDR R2, SP, CH |
| 0661 | s .FIXUP P |
| 0661 | s(F791F006): BL MOD9 [Texts] PROC31 |
| Texts.WriteHex(W,t M.codeu)v;w Texts.WriteInt(W,x M.refcnty,z 4)a |
| 0662 | t .FIXUP D |
| 0662 | t(8D000004): LDR SB, MT, MOD0 [System] |
| 0663 | t(40D80000): ADD R0, SB, 0H [data] |
| 0664 | t .FIXUP D |
| 0664 | t(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0665 | t(41D80005): ADD R1, SB, VAR5 |
| 0666 | u(82E0000C): LDR R2, SP, CH |
| 0667 | u(D12CAD4C): BLEQ MT [trap=4, pos=11437] |
| 0668 | v(82200038): LDR R2, R2, 38H |
| 0669 | w .FIXUP P |
| 0669 | w(F791F008): BL MOD9 [Texts] PROC31 |
| 066A | x .FIXUP D |
| 066A | x(8D000006): LDR SB, MT, MOD0 [System] |
| 066B | x(40D80000): ADD R0, SB, 0H [data] |
| 066C | x .FIXUP D |
| 066C | x(8D900002): LDR SB, MT, MOD9 [Texts] |
| 066D | x(41D80005): ADD R1, SB, VAR5 |
| 066E | y(82E0000C): LDR R2, SP, CH |
| 066F | y(D12CCA4C): BLEQ MT [trap=4, pos=11466] |
| 0670 | z(82200030): LDR R2, R2, 30H |
| 0671 | a(43000004): MOV R3, R0, 4H |
| ELSEb Textsc.WriteString(W,d "---")e |
| 0672 | b .FIXUP P |
| 0672 | b(F791E009): BL MOD9 [Texts] PROC30 |
| 0673 | c(E7000008): B 8 [067CH] |
| 0674 | d .FIXUP D |
| 0674 | d(8D000008): LDR SB, MT, MOD0 [System] |
| 0675 | d(40D80000): ADD R0, SB, 0H [data] |
| 0676 | d .FIXUP D |
| 0676 | d(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0677 | d(41D80005): ADD R1, SB, VAR5 |
| 0678 | e .FIXUP D |
| 0678 | e(8D000002): LDR SB, MT, MOD0 [System] |
| 0679 | e(42D80210): ADD R2, SB, 210H ["---"] |
| 067A | e(43000004): MOV R3, R0, 4H |
| ENDf ; |
| 067B | f .FIXUP P |
| 067B | f(F791D009): BL MOD9 [Texts] PROC29 |
| Texts.WriteLn(W)g;h M := M.nexti |
| 067C | g .FIXUP D |
| 067C | g(8D000004): LDR SB, MT, MOD0 [System] |
| 067D | g(40D80000): ADD R0, SB, 0H [data] |
| 067E | g .FIXUP D |
| 067E | g(8D900002): LDR SB, MT, MOD9 [Texts] |
| 067F | g(41D80005): ADD R1, SB, VAR5 |
| 0680 | h .FIXUP P |
| 0680 | h(F791C005): BL MOD9 [Texts] PROC28 |
| 0681 | i(80E0000C): LDR R0, SP, CH |
| 0682 | i(D12D254C): BLEQ MT [trap=4, pos=11557] |
| ENDj; |
| 0683 | j(80000020): LDR R0, R0, 20H |
| 0684 | j(A0E0000C): STR R0, SP, CH |
| 0685 | j(E7FFFFC2): B -62 [0648H] |
| Texts.Append(T,k W.buf)l |
| 0686 | k(80E00004): LDR R0, SP, 4H |
| 0687 | l .FIXUP D |
| 0687 | l(8D000009): LDR SB, MT, MOD0 [System] |
| 0688 | l(81D00000): LDR R1, SB, 0H [data] |
| ENDm ShowModules; |
| 0689 | m .FIXUP P |
| 0689 | m(F790E009): BL MOD9 [Texts] PROC14 |
| 068A | m(8FE00000): LDR LNK, SP, 0H |
| 068B | m(4EE80018): ADD SP, SP, 18H |
| 068C | m(C700000F): B LNK |
| |
| PROCEDURE ShowCommands*; |
| VAR M: Modules.Module; |
| comadr: LONGINT; ch: CHAR; |
| T: Texts.Text; |
| S: Texts.Scanner; |
| V: Viewers.Viewer; |
| X, Y: INTEGER; |
| BEGINn GetArg(S)o;p |
| 068D | n .PROC 22 |
| 068D | n .COMMAND ShowCommands |
| 068D | n(4EE90094): SUB SP, SP, 94H |
| 068E | n(AFE00000): STR LNK, SP, 0H |
| 068F | o(40E80014): ADD R0, SP, 14H |
| 0690 | o .FIXUP D |
| 0690 | o(8D900009): LDR SB, MT, MOD9 [Texts] |
| 0691 | o(41D80003): ADD R1, SB, VAR3 |
| 0692 | p(F7FFF96D): BL -1683 [0000H] |
| IF S.class = Texts.Name THENq |
| 0693 | q(80E00050): LDR R0, SP, 50H |
| 0694 | q(40090001): SUB R0, R0, 1H |
| 0695 | q(E9000069): BNE 105 [06FFH] |
| Modules.Load(S.s,r M)s;t |
| 0696 | r(40E80068): ADD R0, SP, 68H |
| 0697 | r(41000020): MOV R1, R0, 20H |
| 0698 | s(42E80004): ADD R2, SP, 4H |
| 0699 | t .FIXUP P |
| 0699 | t(F7408010): BL MOD4 [Modules] PROC8 |
| IF M # NIL THENu |
| 069A | u(80E00004): LDR R0, SP, 4H |
| 069B | u(E1000063): BEQ 99 [06FFH] |
| Oberon.AllocateSystemViewer(Oberon.Par.vwr.vXw,x X,y Y)z;a T := TextFrames.Text("")b;c |
| 069C | v .FIXUP D |
| 069C | v(8DA0000C): LDR SB, MT, MOD10 [Oberon] |
| 069D | v(40D8000E): ADD R0, SB, VAR14 |
| 069E | w(80000000): LDR R0, R0, 0H |
| 069F | w(D12EAA4C): BLEQ MT [trap=4, pos=11946] |
| 06A0 | x(80000008): LDR R0, R0, 8H |
| 06A1 | y(41E8008C): ADD R1, SP, 8CH |
| 06A2 | z(42E80090): ADD R2, SP, 90H |
| 06A3 | a .FIXUP P |
| 06A3 | a(F7A2300A): BL MOD10 [Oberon] PROC35 |
| 06A4 | b .FIXUP D |
| 06A4 | b(8D000008): LDR SB, MT, MOD0 [System] |
| 06A5 | b(40D80214): ADD R0, SB, 214H [""] |
| 06A6 | b(41000001): MOV R1, R0, 1H |
| 06A7 | c .FIXUP P |
| 06A7 | c(F7C2B004): BL MOD12 [TextFrames] PROC43 |
| 06A8 | c(A0E00010): STR R0, SP, 10H |
| V := MenuViewers.New(TextFrames.NewMenu("System.Commands",d StandardMenu)e,f |
| 06A9 | d .FIXUP D |
| 06A9 | d(8D000005): LDR SB, MT, MOD0 [System] |
| 06AA | d(40D80218): ADD R0, SB, 218H ["System.Commands"] |
| 06AB | d(41000010): MOV R1, R0, 10H |
| 06AC | e(42D80048): ADD R2, SB, 48H |
| 06AD | e(4300003C): MOV R3, R0, 3CH |
| 06AE | f .FIXUP P |
| 06AE | f(F7C2C007): BL MOD12 [TextFrames] PROC44 |
| TextFrames.NewText(Tg,h 0)i,j TextFrames.menuH,k X,l Y)m;n |
| 06AF | g(4EE90004): SUB SP, SP, 4H |
| 06B0 | g(A0E00000): STR R0, SP, 0H |
| 06B1 | h(80E00014): LDR R0, SP, 14H |
| 06B2 | i(41000000): MOV R1, R0, 0H |
| 06B3 | j .FIXUP P |
| 06B3 | j(F7C2D005): BL MOD12 [TextFrames] PROC45 |
| 06B4 | j(01000000): MOV R1, R0, R0 |
| 06B5 | j(80E00000): LDR R0, SP, 0H |
| 06B6 | j(4EE80004): ADD SP, SP, 4H |
| 06B7 | k .FIXUP D |
| 06B7 | k(8DC0000E): LDR SB, MT, MOD12 [TextFrames] |
| 06B8 | k(82D00005): LDR R2, SB, VAR5 |
| 06B9 | l(83E0008C): LDR R3, SP, 8CH |
| 06BA | m(84E00090): LDR R4, SP, 90H |
| 06BB | n .FIXUP P |
| 06BB | n(F7B04008): BL MOD11 [MenuViewers] PROC4 |
| 06BC | n(A0E00088): STR R0, SP, 88H |
| comadr := M.cmdo;p SYSTEM.GET(comadr, ch);q INC(comadr);r |
| 06BD | o(80E00004): LDR R0, SP, 4H |
| 06BE | o(D12F754C): BLEQ MT [trap=4, pos=12149] |
| 06BF | p(80000040): LDR R0, R0, 40H |
| 06C0 | p(A0E00008): STR R0, SP, 8H |
| 06C1 | q(80E00008): LDR R0, SP, 8H |
| 06C2 | q(90000000): LDR R0, R0, 0H |
| 06C3 | q(B0E0000C): STR R0, SP, CH |
| 06C4 | r(80E00008): LDR R0, SP, 8H |
| 06C5 | r(40080001): ADD R0, R0, 1H |
| 06C6 | r(A0E00008): STR R0, SP, 8H |
| WHILE ch # 0X DOs |
| 06C7 | s(90E0000C): LDR R0, SP, CH |
| 06C8 | s(E1000032): BEQ 50 [06FBH] |
| Texts.WriteString(W,t S.s)u;v Texts.Write(W,w ".")x;y |
| 06C9 | t .FIXUP D |
| 06C9 | t(8D000012): LDR SB, MT, MOD0 [System] |
| 06CA | t(40D80000): ADD R0, SB, 0H [data] |
| 06CB | t .FIXUP D |
| 06CB | t(8D900002): LDR SB, MT, MOD9 [Texts] |
| 06CC | t(41D80005): ADD R1, SB, VAR5 |
| 06CD | u(42E80068): ADD R2, SP, 68H |
| 06CE | u(43000020): MOV R3, R0, 20H |
| 06CF | v .FIXUP P |
| 06CF | v(F791D014): BL MOD9 [Texts] PROC29 |
| 06D0 | w .FIXUP D |
| 06D0 | w(8D000005): LDR SB, MT, MOD0 [System] |
| 06D1 | w(40D80000): ADD R0, SB, 0H [data] |
| 06D2 | w .FIXUP D |
| 06D2 | w(8D900002): LDR SB, MT, MOD9 [Texts] |
| 06D3 | w(41D80005): ADD R1, SB, VAR5 |
| 06D4 | x(4200002E): MOV R2, R0, 2EH |
| 06D5 | y .FIXUP P |
| 06D5 | y(F791B006): BL MOD9 [Texts] PROC27 |
| REPEAT Texts.Write(W,z ch)a;b SYSTEM.GET(comadr, ch);c INC(comadr) |
| 06D6 | z .FIXUP D |
| 06D6 | z(8D000004): LDR SB, MT, MOD0 [System] |
| 06D7 | z(40D80000): ADD R0, SB, 0H [data] |
| 06D8 | z .FIXUP D |
| 06D8 | z(8D900002): LDR SB, MT, MOD9 [Texts] |
| 06D9 | z(41D80005): ADD R1, SB, VAR5 |
| 06DA | a(92E0000C): LDR R2, SP, CH |
| 06DB | b .FIXUP P |
| 06DB | b(F791B006): BL MOD9 [Texts] PROC27 |
| 06DC | c(80E00008): LDR R0, SP, 8H |
| 06DD | c(90000000): LDR R0, R0, 0H |
| 06DE | c(B0E0000C): STR R0, SP, CH |
| UNTILd ch = 0X;e |
| 06DF | d(80E00008): LDR R0, SP, 8H |
| 06E0 | d(40080001): ADD R0, R0, 1H |
| 06E1 | d(A0E00008): STR R0, SP, 8H |
| 06E2 | e(90E0000C): LDR R0, SP, CH |
| 06E3 | e(E9FFFFF2): BNE -14 [06D6H] |
| WHILE comadr MOD 4 #f 0 DOg INC(comadr) ENDh ; |
| 06E4 | f(80E00008): LDR R0, SP, 8H |
| 06E5 | f(40040003): AND R0, R0, 3H |
| 06E6 | g(40090000): SUB R0, R0, 0H |
| 06E7 | g(E1000004): BEQ 4 [06ECH] |
| 06E8 | h(80E00008): LDR R0, SP, 8H |
| 06E9 | h(40080001): ADD R0, R0, 1H |
| 06EA | h(A0E00008): STR R0, SP, 8H |
| 06EB | h(E7FFFFF8): B -8 [06E4H] |
| Texts.WriteLn(W)i;j INC(comadr, 4);k SYSTEM.GET(comadr, ch);l INC(comadr) |
| 06EC | i .FIXUP D |
| 06EC | i(8D000014): LDR SB, MT, MOD0 [System] |
| 06ED | i(40D80000): ADD R0, SB, 0H [data] |
| 06EE | i .FIXUP D |
| 06EE | i(8D900002): LDR SB, MT, MOD9 [Texts] |
| 06EF | i(41D80005): ADD R1, SB, VAR5 |
| 06F0 | j .FIXUP P |
| 06F0 | j(F791C015): BL MOD9 [Texts] PROC28 |
| 06F1 | k(80E00008): LDR R0, SP, 8H |
| 06F2 | k(40080004): ADD R0, R0, 4H |
| 06F3 | k(A0E00008): STR R0, SP, 8H |
| 06F4 | l(80E00008): LDR R0, SP, 8H |
| 06F5 | l(90000000): LDR R0, R0, 0H |
| 06F6 | l(B0E0000C): STR R0, SP, CH |
| ENDm ; |
| 06F7 | m(80E00008): LDR R0, SP, 8H |
| 06F8 | m(40080001): ADD R0, R0, 1H |
| 06F9 | m(A0E00008): STR R0, SP, 8H |
| 06FA | m(E7FFFFCC): B -52 [06C7H] |
| Texts.Append(T,n W.buf)o |
| 06FB | n(80E00010): LDR R0, SP, 10H |
| 06FC | o .FIXUP D |
| 06FC | o(8D00000E): LDR SB, MT, MOD0 [System] |
| 06FD | o(81D00000): LDR R1, SB, 0H [data] |
| ENDp |
| 06FE | p .FIXUP P |
| 06FE | p(F790E00E): BL MOD9 [Texts] PROC14 |
| END |
| ENDq ShowCommands; |
| 06FF | q(8FE00000): LDR LNK, SP, 0H |
| 0700 | q(4EE80094): ADD SP, SP, 94H |
| 0701 | q(C700000F): B LNK |
| |
| PROCEDURE ShowFonts*; |
| VAR fnt: Fonts.Font; |
| BEGINr Texts.WriteString(W,s "System.ShowFonts")t;u Texts.WriteLn(W)v;w fnt := Fonts.root;x |
| 0702 | r .PROC 23 |
| 0702 | r .COMMAND ShowFonts |
| 0702 | r(4EE90008): SUB SP, SP, 8H |
| 0703 | r(AFE00000): STR LNK, SP, 0H |
| 0704 | s .FIXUP D |
| 0704 | s(8D000008): LDR SB, MT, MOD0 [System] |
| 0705 | s(40D80000): ADD R0, SB, 0H [data] |
| 0706 | s .FIXUP D |
| 0706 | s(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0707 | s(41D80005): ADD R1, SB, VAR5 |
| 0708 | t .FIXUP D |
| 0708 | t(8D000002): LDR SB, MT, MOD0 [System] |
| 0709 | t(42D80228): ADD R2, SB, 228H ["System.ShowFonts"] |
| 070A | t(43000011): MOV R3, R0, 11H |
| 070B | u .FIXUP P |
| 070B | u(F791D00D): BL MOD9 [Texts] PROC29 |
| 070C | v .FIXUP D |
| 070C | v(8D000004): LDR SB, MT, MOD0 [System] |
| 070D | v(40D80000): ADD R0, SB, 0H [data] |
| 070E | v .FIXUP D |
| 070E | v(8D900002): LDR SB, MT, MOD9 [Texts] |
| 070F | v(41D80005): ADD R1, SB, VAR5 |
| 0710 | w .FIXUP P |
| 0710 | w(F791C005): BL MOD9 [Texts] PROC28 |
| 0711 | x .FIXUP D |
| 0711 | x(8D800003): LDR SB, MT, MOD8 [Fonts] |
| 0712 | x(80D00003): LDR R0, SB, VAR3 |
| 0713 | x(A0E00004): STR R0, SP, 4H |
| WHILE fnt # NIL DOy |
| 0714 | y(80E00004): LDR R0, SP, 4H |
| 0715 | y(E1000018): BEQ 24 [072EH] |
| Texts.Write(W,z 9X)a;b Texts.WriteString(W,c fnt.named)e;f Texts.WriteLn(W)g;h fnt := fnt.nexti |
| 0716 | z .FIXUP D |
| 0716 | z(8D000005): LDR SB, MT, MOD0 [System] |
| 0717 | z(40D80000): ADD R0, SB, 0H [data] |
| 0718 | z .FIXUP D |
| 0718 | z(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0719 | z(41D80005): ADD R1, SB, VAR5 |
| 071A | a(42000009): MOV R2, R0, 9H |
| 071B | b .FIXUP P |
| 071B | b(F791B00B): BL MOD9 [Texts] PROC27 |
| 071C | c .FIXUP D |
| 071C | c(8D000004): LDR SB, MT, MOD0 [System] |
| 071D | c(40D80000): ADD R0, SB, 0H [data] |
| 071E | c .FIXUP D |
| 071E | c(8D900002): LDR SB, MT, MOD9 [Texts] |
| 071F | c(41D80005): ADD R1, SB, VAR5 |
| 0720 | d(82E00004): LDR R2, SP, 4H |
| 0721 | d(D132014C): BLEQ MT [trap=4, pos=12801] |
| 0722 | e(43000020): MOV R3, R0, 20H |
| 0723 | f .FIXUP P |
| 0723 | f(F791D008): BL MOD9 [Texts] PROC29 |
| 0724 | g .FIXUP D |
| 0724 | g(8D000006): LDR SB, MT, MOD0 [System] |
| 0725 | g(40D80000): ADD R0, SB, 0H [data] |
| 0726 | g .FIXUP D |
| 0726 | g(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0727 | g(41D80005): ADD R1, SB, VAR5 |
| 0728 | h .FIXUP P |
| 0728 | h(F791C005): BL MOD9 [Texts] PROC28 |
| 0729 | i(80E00004): LDR R0, SP, 4H |
| 072A | i(D132254C): BLEQ MT [trap=4, pos=12837] |
| ENDj ; |
| 072B | j(80000034): LDR R0, R0, 34H |
| 072C | j(A0E00004): STR R0, SP, 4H |
| 072D | j(E7FFFFE6): B -26 [0714H] |
| Texts.Append(Oberon.Log,k W.buf)l |
| 072E | k .FIXUP D |
| 072E | k(8DA00008): LDR SB, MT, MOD10 [Oberon] |
| 072F | k(80D0000D): LDR R0, SB, VAR13 |
| 0730 | l .FIXUP D |
| 0730 | l(8D000002): LDR SB, MT, MOD0 [System] |
| 0731 | l(81D00000): LDR R1, SB, 0H [data] |
| ENDm ShowFonts; |
| 0732 | m .FIXUP P |
| 0732 | m(F790E00A): BL MOD9 [Texts] PROC14 |
| 0733 | m(8FE00000): LDR LNK, SP, 0H |
| 0734 | m(4EE80008): ADD SP, SP, 8H |
| 0735 | m(C700000F): B LNK |
| |
| PROCEDURE OpenViewers; |
| VAR logV, toolV: Viewers.Viewer; |
| menu, main: Display.Frame; |
| d: LONGINT; X, Y: INTEGER; |
| BEGINn d := Kernel.Clock();o Texts.WriteString(W,p "Oberon V5 NW 14.4.2013")q;r EndLine;s |
| 0736 | n(4EE90020): SUB SP, SP, 20H |
| 0737 | n(AFE00000): STR LNK, SP, 0H |
| 0738 | o .FIXUP P |
| 0738 | o(F7112006): BL MOD1 [Kernel] PROC18 |
| 0739 | o(A0E00014): STR R0, SP, 14H |
| 073A | p .FIXUP D |
| 073A | p(8D00000A): LDR SB, MT, MOD0 [System] |
| 073B | p(40D80000): ADD R0, SB, 0H [data] |
| 073C | p .FIXUP D |
| 073C | p(8D900002): LDR SB, MT, MOD9 [Texts] |
| 073D | p(41D80005): ADD R1, SB, VAR5 |
| 073E | q .FIXUP D |
| 073E | q(8D000002): LDR SB, MT, MOD0 [System] |
| 073F | q(42D8023C): ADD R2, SB, 23CH ["Oberon V5 NW 14.4.2013"] |
| 0740 | q(43000018): MOV R3, R0, 18H |
| 0741 | r .FIXUP P |
| 0741 | r(F791D009): BL MOD9 [Texts] PROC29 |
| 0742 | s(F7FFF8E8): BL -1816 [002BH] |
| Oberon.AllocateSystemViewer(0,t X,u Y)v;w |
| 0743 | t(40000000): MOV R0, R0, 0H |
| 0744 | u(41E80018): ADD R1, SP, 18H |
| 0745 | v(42E8001C): ADD R2, SP, 1CH |
| 0746 | w .FIXUP P |
| 0746 | w(F7A23005): BL MOD10 [Oberon] PROC35 |
| menu := TextFrames.NewMenu("System.Log",x LogMenu)y;z |
| 0747 | x .FIXUP D |
| 0747 | x(8D000009): LDR SB, MT, MOD0 [System] |
| 0748 | x(40D80254): ADD R0, SB, 254H ["System.Log"] |
| 0749 | x(4100000B): MOV R1, R0, BH |
| 074A | y(42D80084): ADD R2, SB, 84H |
| 074B | y(4300003D): MOV R3, R0, 3DH |
| 074C | z .FIXUP P |
| 074C | z(F7C2C006): BL MOD12 [TextFrames] PROC44 |
| 074D | z(A0E0000C): STR R0, SP, CH |
| main := TextFrames.NewText(Oberon.Log,a 0)b;c |
| 074E | a .FIXUP D |
| 074E | a(8DA00007): LDR SB, MT, MOD10 [Oberon] |
| 074F | a(80D0000D): LDR R0, SB, VAR13 |
| 0750 | b(41000000): MOV R1, R0, 0H |
| 0751 | c .FIXUP P |
| 0751 | c(F7C2D005): BL MOD12 [TextFrames] PROC45 |
| 0752 | c(A0E00010): STR R0, SP, 10H |
| logV := MenuViewers.New(menu,d main,e TextFrames.menuH,f X,g Y)h;i |
| 0753 | d(80E0000C): LDR R0, SP, CH |
| 0754 | e(81E00010): LDR R1, SP, 10H |
| 0755 | f .FIXUP D |
| 0755 | f(8DC00007): LDR SB, MT, MOD12 [TextFrames] |
| 0756 | f(82D00005): LDR R2, SB, VAR5 |
| 0757 | g(83E00018): LDR R3, SP, 18H |
| 0758 | h(84E0001C): LDR R4, SP, 1CH |
| 0759 | i .FIXUP P |
| 0759 | i(F7B04008): BL MOD11 [MenuViewers] PROC4 |
| 075A | i(A0E00004): STR R0, SP, 4H |
| Oberon.AllocateSystemViewer(0,j X,k Y)l;m |
| 075B | j(40000000): MOV R0, R0, 0H |
| 075C | k(41E80018): ADD R1, SP, 18H |
| 075D | l(42E8001C): ADD R2, SP, 1CH |
| 075E | m .FIXUP P |
| 075E | m(F7A23005): BL MOD10 [Oberon] PROC35 |
| menu := TextFrames.NewMenu("System.Tool",n StandardMenu)o;p |
| 075F | n .FIXUP D |
| 075F | n(8D00000A): LDR SB, MT, MOD0 [System] |
| 0760 | n(40D80260): ADD R0, SB, 260H ["System.Tool"] |
| 0761 | n(4100000C): MOV R1, R0, CH |
| 0762 | o(42D80048): ADD R2, SB, 48H |
| 0763 | o(4300003C): MOV R3, R0, 3CH |
| 0764 | p .FIXUP P |
| 0764 | p(F7C2C006): BL MOD12 [TextFrames] PROC44 |
| 0765 | p(A0E0000C): STR R0, SP, CH |
| main := TextFrames.NewText(TextFrames.Text("System.Tool")q,r 0)s;t |
| 0766 | q .FIXUP D |
| 0766 | q(8D000007): LDR SB, MT, MOD0 [System] |
| 0767 | q(40D8026C): ADD R0, SB, 26CH ["System.Tool"] |
| 0768 | q(4100000C): MOV R1, R0, CH |
| 0769 | r .FIXUP P |
| 0769 | r(F7C2B005): BL MOD12 [TextFrames] PROC43 |
| 076A | s(41000000): MOV R1, R0, 0H |
| 076B | t .FIXUP P |
| 076B | t(F7C2D002): BL MOD12 [TextFrames] PROC45 |
| 076C | t(A0E00010): STR R0, SP, 10H |
| toolV := MenuViewers.New(menu,u main,v TextFrames.menuH,w X,x Y)y |
| 076D | u(80E0000C): LDR R0, SP, CH |
| 076E | v(81E00010): LDR R1, SP, 10H |
| 076F | w .FIXUP D |
| 076F | w(8DC00009): LDR SB, MT, MOD12 [TextFrames] |
| 0770 | w(82D00005): LDR R2, SB, VAR5 |
| 0771 | x(83E00018): LDR R3, SP, 18H |
| 0772 | y(84E0001C): LDR R4, SP, 1CH |
| ENDz OpenViewers; |
| 0773 | z .FIXUP P |
| 0773 | z(F7B04008): BL MOD11 [MenuViewers] PROC4 |
| 0774 | z(A0E00008): STR R0, SP, 8H |
| 0775 | z(8FE00000): LDR LNK, SP, 0H |
| 0776 | z(4EE80020): ADD SP, SP, 20H |
| 0777 | z(C700000F): B LNK |
| |
| PROCEDURE ExtendDisplay*; |
| VAR V: Viewers.Viewer; |
| X, Y, DX, DW, DH: INTEGER; |
| S: Texts.Scanner; |
| BEGINa GetArg(S)b;c |
| 0778 | a .PROC 24 |
| 0778 | a .COMMAND ExtendDisplay |
| 0778 | a(4EE90090): SUB SP, SP, 90H |
| 0779 | a(AFE00000): STR LNK, SP, 0H |
| 077A | b(40E8001C): ADD R0, SP, 1CH |
| 077B | b .FIXUP D |
| 077B | b(8D90000C): LDR SB, MT, MOD9 [Texts] |
| 077C | b(41D80003): ADD R1, SB, VAR3 |
| 077D | c(F7FFF882): BL -1918 [0000H] |
| IF S.class = Texts.Name THENd |
| 077E | d(80E00058): LDR R0, SP, 58H |
| 077F | d(40090001): SUB R0, R0, 1H |
| 0780 | d(E900002B): BNE 43 [07ACH] |
| DX := Viewers.curW;e DW := Oberon.DisplayWidth(DX)f;g DH := Oberon.DisplayHeight(DX)h;i |
| 0781 | e .FIXUP D |
| 0781 | e(8D700006): LDR SB, MT, MOD7 [Viewers] |
| 0782 | e(80D00003): LDR R0, SB, VAR3 |
| 0783 | e(A0E00010): STR R0, SP, 10H |
| 0784 | f(80E00010): LDR R0, SP, 10H |
| 0785 | g .FIXUP P |
| 0785 | g(F7A1D012): BL MOD10 [Oberon] PROC29 |
| 0786 | g(A0E00014): STR R0, SP, 14H |
| 0787 | h(80E00010): LDR R0, SP, 10H |
| 0788 | i .FIXUP P |
| 0788 | i(F7A1E003): BL MOD10 [Oberon] PROC30 |
| 0789 | i(A0E00018): STR R0, SP, 18H |
| Oberon.OpenDisplay(DW DIV 8 *j 5,k DW DIV 8 *l 3,m DH)n;o |
| 078A | j(80E00014): LDR R0, SP, 14H |
| 078B | j(40020003): ASR R0, R0, 3H |
| 078C | k(400A0005): MUL R0, R0, 5H |
| 078D | l(81E00014): LDR R1, SP, 14H |
| 078E | l(41120003): ASR R1, R1, 3H |
| 078F | m(411A0003): MUL R1, R1, 3H |
| 0790 | n(82E00018): LDR R2, SP, 18H |
| 0791 | o .FIXUP P |
| 0791 | o(F7A1C009): BL MOD10 [Oberon] PROC28 |
| Oberon.AllocateSystemViewer(DX,p X,q Y)r;s |
| 0792 | p(80E00010): LDR R0, SP, 10H |
| 0793 | q(41E80008): ADD R1, SP, 8H |
| 0794 | r(42E8000C): ADD R2, SP, CH |
| 0795 | s .FIXUP P |
| 0795 | s(F7A23004): BL MOD10 [Oberon] PROC35 |
| V := MenuViewers.New( |
| TextFrames.NewMenu(S.s,t StandardMenu)u,v |
| 0796 | t(40E80070): ADD R0, SP, 70H |
| 0797 | t(41000020): MOV R1, R0, 20H |
| 0798 | u .FIXUP D |
| 0798 | u(8D000017): LDR SB, MT, MOD0 [System] |
| 0799 | u(42D80048): ADD R2, SB, 48H ["System.Close System.Copy System.Grow Edit.Search Edit.Store"] |
| 079A | u(4300003C): MOV R3, R0, 3CH |
| 079B | v .FIXUP P |
| 079B | v(F7C2C006): BL MOD12 [TextFrames] PROC44 |
| TextFrames.NewText(TextFramesw.Text(S.s)x,y 0)z,a |
| 079C | w(4EE90004): SUB SP, SP, 4H |
| 079D | w(A0E00000): STR R0, SP, 0H |
| 079E | x(40E80074): ADD R0, SP, 74H |
| 079F | x(41000020): MOV R1, R0, 20H |
| 07A0 | y .FIXUP P |
| 07A0 | y(F7C2B005): BL MOD12 [TextFrames] PROC43 |
| 07A1 | z(41000000): MOV R1, R0, 0H |
| 07A2 | a .FIXUP P |
| 07A2 | a(F7C2D002): BL MOD12 [TextFrames] PROC45 |
| 07A3 | a(01000000): MOV R1, R0, R0 |
| 07A4 | a(80E00000): LDR R0, SP, 0H |
| 07A5 | a(4EE80004): ADD SP, SP, 4H |
| TextFrames.menuH,b X,c Y)d |
| 07A6 | b .FIXUP D |
| 07A6 | b(8DC0000E): LDR SB, MT, MOD12 [TextFrames] |
| 07A7 | b(82D00005): LDR R2, SB, VAR5 |
| 07A8 | c(83E00008): LDR R3, SP, 8H |
| 07A9 | d(84E0000C): LDR R4, SP, CH |
| ENDe |
| 07AA | e .FIXUP P |
| 07AA | e(F7B04008): BL MOD11 [MenuViewers] PROC4 |
| 07AB | e(A0E00004): STR R0, SP, 4H |
| ENDf ExtendDisplay; |
| 07AC | f(8FE00000): LDR LNK, SP, 0H |
| 07AD | f(4EE80090): ADD SP, SP, 90H |
| 07AE | f(C700000F): B LNK |
| |
| PROCEDURE Trap(VAR a: INTEGER; b: INTEGER); |
| VAR u, v, w: INTEGER; mod: Modules.Module; |
| BEGINg u := SYSTEM.REG(15);h SYSTEM.GET(u - 4,i v);j w := v DIV 10H MODk 10H;l (*trap number*) |
| 07AF | g(4EE9001C): SUB SP, SP, 1CH |
| 07B0 | g(AFE00000): STR LNK, SP, 0H |
| 07B1 | g(A0E00004): STR R0, SP, 4H |
| 07B2 | g(A1E00008): STR R1, SP, 8H |
| 07B3 | h(0000000F): MOV R0, R0, LNK |
| 07B4 | h(A0E0000C): STR R0, SP, CH |
| 07B5 | i(80E0000C): LDR R0, SP, CH |
| 07B6 | i(40090004): SUB R0, R0, 4H |
| 07B7 | j(80000000): LDR R0, R0, 0H |
| 07B8 | j(A0E00010): STR R0, SP, 10H |
| 07B9 | k(80E00010): LDR R0, SP, 10H |
| 07BA | k(40020004): ASR R0, R0, 4H |
| 07BB | l(4004000F): AND R0, R0, FH |
| 07BC | l(A0E00014): STR R0, SP, 14H |
| IF w = 0 THENm Kernel.New(a,n b)o |
| 07BD | m(80E00014): LDR R0, SP, 14H |
| 07BE | m(E9000004): BNE 4 [07C3H] |
| 07BF | n(80E00004): LDR R0, SP, 4H |
| 07C0 | o(81E00008): LDR R1, SP, 8H |
| ELSEp (*trap*) Textsq.WriteLn(W)r;s Texts.WriteString(W,t " pos ")u;v Texts.WriteInt(W,w v DIV 100H MODx 10000H,y 4)z;a |
| 07C1 | p .FIXUP P |
| 07C1 | p(F7108017): BL MOD1 [Kernel] PROC8 |
| 07C2 | q(E7000066): B 102 [0829H] |
| 07C3 | r .FIXUP D |
| 07C3 | r(8D00001D): LDR SB, MT, MOD0 [System] |
| 07C4 | r(40D80000): ADD R0, SB, 0H [data] |
| 07C5 | r .FIXUP D |
| 07C5 | r(8D900002): LDR SB, MT, MOD9 [Texts] |
| 07C6 | r(41D80005): ADD R1, SB, VAR5 |
| 07C7 | s .FIXUP P |
| 07C7 | s(F791C006): BL MOD9 [Texts] PROC28 |
| 07C8 | t .FIXUP D |
| 07C8 | t(8D000003): LDR SB, MT, MOD0 [System] |
| 07C9 | t(40D80000): ADD R0, SB, 0H [data] |
| 07CA | t .FIXUP D |
| 07CA | t(8D900002): LDR SB, MT, MOD9 [Texts] |
| 07CB | t(41D80005): ADD R1, SB, VAR5 |
| 07CC | u .FIXUP D |
| 07CC | u(8D000002): LDR SB, MT, MOD0 [System] |
| 07CD | u(42D80278): ADD R2, SB, 278H [" pos "] |
| 07CE | u(43000007): MOV R3, R0, 7H |
| 07CF | v .FIXUP P |
| 07CF | v(F791D008): BL MOD9 [Texts] PROC29 |
| 07D0 | w .FIXUP D |
| 07D0 | w(8D000004): LDR SB, MT, MOD0 [System] |
| 07D1 | w(40D80000): ADD R0, SB, 0H [data] |
| 07D2 | w .FIXUP D |
| 07D2 | w(8D900002): LDR SB, MT, MOD9 [Texts] |
| 07D3 | w(41D80005): ADD R1, SB, VAR5 |
| 07D4 | x(82E00010): LDR R2, SP, 10H |
| 07D5 | x(42220008): ASR R2, R2, 8H |
| 07D6 | y(4224FFFF): AND R2, R2, FFFFFFFFH |
| 07D7 | z(43000004): MOV R3, R0, 4H |
| 07D8 | a .FIXUP P |
| 07D8 | a(F791E009): BL MOD9 [Texts] PROC30 |
| Texts.WriteString(W,b " TRAP")c;d Texts.WriteInt(W,e w,f 4)g;h mod := Modules.root;i |
| 07D9 | b .FIXUP D |
| 07D9 | b(8D000007): LDR SB, MT, MOD0 [System] |
| 07DA | b(40D80000): ADD R0, SB, 0H [data] |
| 07DB | b .FIXUP D |
| 07DB | b(8D900002): LDR SB, MT, MOD9 [Texts] |
| 07DC | b(41D80005): ADD R1, SB, VAR5 |
| 07DD | c .FIXUP D |
| 07DD | c(8D000002): LDR SB, MT, MOD0 [System] |
| 07DE | c(42D80280): ADD R2, SB, 280H [" TRAP"] |
| 07DF | c(43000007): MOV R3, R0, 7H |
| 07E0 | d .FIXUP P |
| 07E0 | d(F791D008): BL MOD9 [Texts] PROC29 |
| 07E1 | e .FIXUP D |
| 07E1 | e(8D000004): LDR SB, MT, MOD0 [System] |
| 07E2 | e(40D80000): ADD R0, SB, 0H [data] |
| 07E3 | e .FIXUP D |
| 07E3 | e(8D900002): LDR SB, MT, MOD9 [Texts] |
| 07E4 | e(41D80005): ADD R1, SB, VAR5 |
| 07E5 | f(82E00014): LDR R2, SP, 14H |
| 07E6 | g(43000004): MOV R3, R0, 4H |
| 07E7 | h .FIXUP P |
| 07E7 | h(F791E007): BL MOD9 [Texts] PROC30 |
| 07E8 | i .FIXUP D |
| 07E8 | i(8D400005): LDR SB, MT, MOD4 [Modules] |
| 07E9 | i(80D00002): LDR R0, SB, VAR2 |
| 07EA | i(A0E00018): STR R0, SP, 18H |
| WHILE (mod # NIL)j & (k(u < mod.codel)m OR (nu >= mod.impo)p) DOq mod := mod.nextr ENDs ; |
| 07EB | j(80E00018): LDR R0, SP, 18H |
| 07EC | k(E1000011): BEQ 17 [07FEH] |
| 07ED | l(80E00018): LDR R0, SP, 18H |
| 07EE | l(D138F74C): BLEQ MT [trap=4, pos=14583] |
| 07EF | m(81E0000C): LDR R1, SP, CH |
| 07F0 | m(80000038): LDR R0, R0, 38H |
| 07F1 | m(01190000): SUB R1, R1, R0 |
| 07F2 | n(E5000006): BLT 6 [07F9H] |
| 07F3 | o(80E00018): LDR R0, SP, 18H |
| 07F4 | o(D139094C): BLEQ MT [trap=4, pos=14601] |
| 07F5 | p(81E0000C): LDR R1, SP, CH |
| 07F6 | p(8000003C): LDR R0, R0, 3CH |
| 07F7 | p(01190000): SUB R1, R1, R0 |
| 07F8 | q(E5000005): BLT 5 [07FEH] |
| 07F9 | r(80E00018): LDR R0, SP, 18H |
| 07FA | r(D1391E4C): BLEQ MT [trap=4, pos=14622] |
| 07FB | s(80000020): LDR R0, R0, 20H |
| 07FC | s(A0E00018): STR R0, SP, 18H |
| 07FD | s(E7FFFFED): B -19 [07EBH] |
| IF mod # NIL THENt Texts.WriteString(W,u " in ")v;w Texts.WriteString(W,x mod.namey)z ENDa ; |
| 07FE | t(80E00018): LDR R0, SP, 18H |
| 07FF | t(E1000010): BEQ 16 [0810H] |
| 0800 | u .FIXUP D |
| 0800 | u(8D000018): LDR SB, MT, MOD0 [System] |
| 0801 | u(40D80000): ADD R0, SB, 0H [data] |
| 0802 | u .FIXUP D |
| 0802 | u(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0803 | u(41D80005): ADD R1, SB, VAR5 |
| 0804 | v .FIXUP D |
| 0804 | v(8D000002): LDR SB, MT, MOD0 [System] |
| 0805 | v(42D80288): ADD R2, SB, 288H [" in "] |
| 0806 | v(43000005): MOV R3, R0, 5H |
| 0807 | w .FIXUP P |
| 0807 | w(F791D020): BL MOD9 [Texts] PROC29 |
| 0808 | x .FIXUP D |
| 0808 | x(8D000004): LDR SB, MT, MOD0 [System] |
| 0809 | x(40D80000): ADD R0, SB, 0H [data] |
| 080A | x .FIXUP D |
| 080A | x(8D900002): LDR SB, MT, MOD9 [Texts] |
| 080B | x(41D80005): ADD R1, SB, VAR5 |
| 080C | y(82E00018): LDR R2, SP, 18H |
| 080D | y(D139784C): BLEQ MT [trap=4, pos=14712] |
| 080E | z(43000020): MOV R3, R0, 20H |
| 080F | a .FIXUP P |
| 080F | a(F791D008): BL MOD9 [Texts] PROC29 |
| Texts.WriteString(W,b " at")c;d Texts.WriteHex(W,e u)f;g |
| 0810 | b .FIXUP D |
| 0810 | b(8D000006): LDR SB, MT, MOD0 [System] |
| 0811 | b(40D80000): ADD R0, SB, 0H [data] |
| 0812 | b .FIXUP D |
| 0812 | b(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0813 | b(41D80005): ADD R1, SB, VAR5 |
| 0814 | c .FIXUP D |
| 0814 | c(8D000002): LDR SB, MT, MOD0 [System] |
| 0815 | c(42D80290): ADD R2, SB, 290H [" at"] |
| 0816 | c(43000004): MOV R3, R0, 4H |
| 0817 | d .FIXUP P |
| 0817 | d(F791D008): BL MOD9 [Texts] PROC29 |
| 0818 | e .FIXUP D |
| 0818 | e(8D000004): LDR SB, MT, MOD0 [System] |
| 0819 | e(40D80000): ADD R0, SB, 0H [data] |
| 081A | e .FIXUP D |
| 081A | e(8D900002): LDR SB, MT, MOD9 [Texts] |
| 081B | e(41D80005): ADD R1, SB, VAR5 |
| 081C | f(82E0000C): LDR R2, SP, CH |
| 081D | g .FIXUP P |
| 081D | g(F791F006): BL MOD9 [Texts] PROC31 |
| Texts.WriteLn(W)h;i Texts.Append(Oberon.Log,j W.buf)k;l Oberon.Reset |
| 081E | h .FIXUP D |
| 081E | h(8D000004): LDR SB, MT, MOD0 [System] |
| 081F | h(40D80000): ADD R0, SB, 0H [data] |
| 0820 | h .FIXUP D |
| 0820 | h(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0821 | h(41D80005): ADD R1, SB, VAR5 |
| 0822 | i .FIXUP P |
| 0822 | i(F791C005): BL MOD9 [Texts] PROC28 |
| 0823 | j .FIXUP D |
| 0823 | j(8DA00003): LDR SB, MT, MOD10 [Oberon] |
| 0824 | j(80D0000D): LDR R0, SB, VAR13 |
| 0825 | k .FIXUP D |
| 0825 | k(8D000002): LDR SB, MT, MOD0 [System] |
| 0826 | k(81D00000): LDR R1, SB, 0H [data] |
| 0827 | l .FIXUP P |
| 0827 | l(F790E005): BL MOD9 [Texts] PROC14 |
| ENDm |
| 0828 | m .FIXUP P |
| 0828 | m(F7A32001): BL MOD10 [Oberon] PROC50 |
| ENDn Trap; |
| 0829 | n(8FE00000): LDR LNK, SP, 0H |
| 082A | n(4EE8001C): ADD SP, SP, 1CH |
| 082B | n(C700000F): B LNK |
| |
| PROCEDURE Abort; |
| VAR n: INTEGER; |
| BEGINo n := SYSTEM.REG(15);p Texts.WriteString(W,q " ABORT ")r;s Texts.WriteHex(W,t n)u;v |
| 082C | o(4EE90008): SUB SP, SP, 8H |
| 082D | o(AFE00000): STR LNK, SP, 0H |
| 082E | p(0000000F): MOV R0, R0, LNK |
| 082F | p(A0E00004): STR R0, SP, 4H |
| 0830 | q .FIXUP D |
| 0830 | q(8D00000B): LDR SB, MT, MOD0 [System] |
| 0831 | q(40D80000): ADD R0, SB, 0H [data] |
| 0832 | q .FIXUP D |
| 0832 | q(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0833 | q(41D80005): ADD R1, SB, VAR5 |
| 0834 | r .FIXUP D |
| 0834 | r(8D000002): LDR SB, MT, MOD0 [System] |
| 0835 | r(42D80294): ADD R2, SB, 294H [" ABORT "] |
| 0836 | r(4300000A): MOV R3, R0, AH |
| 0837 | s .FIXUP P |
| 0837 | s(F791D00F): BL MOD9 [Texts] PROC29 |
| 0838 | t .FIXUP D |
| 0838 | t(8D000004): LDR SB, MT, MOD0 [System] |
| 0839 | t(40D80000): ADD R0, SB, 0H [data] |
| 083A | t .FIXUP D |
| 083A | t(8D900002): LDR SB, MT, MOD9 [Texts] |
| 083B | t(41D80005): ADD R1, SB, VAR5 |
| 083C | u(82E00004): LDR R2, SP, 4H |
| 083D | v .FIXUP P |
| 083D | v(F791F006): BL MOD9 [Texts] PROC31 |
| Texts.WriteLn(W)w;x Texts.Append(Oberon.Log,y W.buf)z;a Oberon.Reset |
| 083E | w .FIXUP D |
| 083E | w(8D000004): LDR SB, MT, MOD0 [System] |
| 083F | w(40D80000): ADD R0, SB, 0H [data] |
| 0840 | w .FIXUP D |
| 0840 | w(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0841 | w(41D80005): ADD R1, SB, VAR5 |
| 0842 | x .FIXUP P |
| 0842 | x(F791C005): BL MOD9 [Texts] PROC28 |
| 0843 | y .FIXUP D |
| 0843 | y(8DA00003): LDR SB, MT, MOD10 [Oberon] |
| 0844 | y(80D0000D): LDR R0, SB, VAR13 |
| 0845 | z .FIXUP D |
| 0845 | z(8D000002): LDR SB, MT, MOD0 [System] |
| 0846 | z(81D00000): LDR R1, SB, 0H [data] |
| 0847 | a .FIXUP P |
| 0847 | a(F790E005): BL MOD9 [Texts] PROC14 |
| ENDb Abort; |
| 0848 | b .FIXUP P |
| 0848 | b(F7A32001): BL MOD10 [Oberon] PROC50 |
| 0849 | b(8FE00000): LDR LNK, SP, 0H |
| 084A | b(4EE80008): ADD SP, SP, 8H |
| 084B | b(C700000F): B LNK |
| |
| BEGINc Texts.OpenWriter(W)d;e |
| 084C | c .PROC 0 |
| 084C | c .ENTRYPOINT |
| 084C | c(4EE90004): SUB SP, SP, 4H |
| 084D | c(AFE00000): STR LNK, SP, 0H |
| 084E | d .FIXUP D |
| 084E | d(8D000009): LDR SB, MT, MOD0 [System] |
| 084F | d(40D80000): ADD R0, SB, 0H [data] |
| 0850 | d .FIXUP D |
| 0850 | d(8D900002): LDR SB, MT, MOD9 [Texts] |
| 0851 | d(41D80005): ADD R1, SB, VAR5 |
| 0852 | e .FIXUP P |
| 0852 | e(F791700A): BL MOD9 [Texts] PROC23 |
| Oberon.OpenLog(TextFrames.Text("")f)g;h OpenViewers;i |
| 0853 | f .FIXUP D |
| 0853 | f(8D000003): LDR SB, MT, MOD0 [System] |
| 0854 | f(40D802A0): ADD R0, SB, 2A0H [""] |
| 0855 | f(41000001): MOV R1, R0, 1H |
| 0856 | g .FIXUP P |
| 0856 | g(F7C2B004): BL MOD12 [TextFrames] PROC43 |
| 0857 | h .FIXUP P |
| 0857 | h(F7A26001): BL MOD10 [Oberon] PROC38 |
| 0858 | i(F7FFFEDD): BL -291 [0736H] |
| Kernel.Install(SYSTEM.ADR(Trap),j 20H)k;l Kernel.Install(SYSTEM.ADR(Abort),m 0)n;o |
| 0859 | j(F7000000): BL 0 [085AH] |
| 085A | j(40F902AC): SUB R0, LNK, 2ACH |
| 085B | k(41000020): MOV R1, R0, 20H |
| 085C | l .FIXUP P |
| 085C | l(F7114005): BL MOD1 [Kernel] PROC20 |
| 085D | m(F7000000): BL 0 [085EH] |
| 085E | m(40F900C8): SUB R0, LNK, C8H |
| 085F | n(41000000): MOV R1, R0, 0H |
| 0860 | o .FIXUP P |
| 0860 | o(F7114004): BL MOD1 [Kernel] PROC20 |
| END System.p |
| 0861 | p(8FE00000): LDR LNK, SP, 0H |
| 0862 | p(4EE80004): ADD SP, SP, 4H |
| 0863 | p(C700000F): B LNK |