| MODULE Edit; (*JG 2.11.90 / NW 28.11.2015*) |
| | .MODULE Edit (KEY 58583D06, VERSION 1, SIZE 0000165C) |
| | .IMPORT Files (KEY 73F5D686) |
| | .IMPORT Fonts (KEY F4C9F557) |
| | .IMPORT Texts (KEY 0B9E9984) |
| | .IMPORT Display (KEY 4C08D3EA) |
| | .IMPORT Viewers (KEY 25ABF199) |
| | .IMPORT Oberon (KEY A89CCEE2) |
| | .IMPORT MenuViewers (KEY 245ACC30) |
| | .IMPORT TextFrames (KEY 650813D5) |
| | .DATA 450H |
| | .STRING 450H "System.Close System.Copy System.Grow Edit.Search Edit.Store" |
| | .STRING 48CH "Edit.Store " |
| | .POINTER_REFERENCES 0H 4H 24H 18H |
| | .FIXUP T 0H |
| IMPORT Files, Fonts, Texts, Display, Viewers, Oberon, MenuViewers, TextFrames; |
| |
| CONST CR = 0DX; maxlen = 32; |
| StandardMenu = "System.Close System.Copy System.Grow Edit.Search Edit.Store"; |
| |
| VAR W: Texts.Writer; |
| time: LONGINT; |
| M: INTEGER; |
| pat: ARRAY maxlen OF CHAR; |
| d: ARRAY 256 OF INTEGER; |
| |
| PROCEDURE Max(i, j: LONGINT): LONGINT; |
| VAR m: LONGINT; |
| BEGINa IF i >= j THENb m := i ELSEc md := j ENDe ; |
| 0000 | a(4EE90010): SUB SP, SP, 10H |
| 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 | b(00090001): SUB R0, R0, R1 |
| 0007 | b(E5000003): BLT 3 [000BH] |
| 0008 | c(80E00004): LDR R0, SP, 4H |
| 0009 | c(A0E0000C): STR R0, SP, CH |
| 000A | d(E7000002): B 2 [000DH] |
| 000B | e(80E00008): LDR R0, SP, 8H |
| 000C | e(A0E0000C): STR R0, SP, CH |
| RETURN m |
| ENDf Max; |
| 000D | f(80E0000C): LDR R0, SP, CH |
| 000E | f(8FE00000): LDR LNK, SP, 0H |
| 000F | f(4EE80010): ADD SP, SP, 10H |
| 0010 | f(C700000F): B LNK |
| |
| PROCEDURE Open*; |
| VAR T: Texts.Text; |
| S: Texts.Scanner; |
| V: Viewers.Viewer; |
| X, Y: INTEGER; |
| beg, end, time: LONGINT; |
| BEGINg Texts.OpenScanner(S,h Oberon.Par.text,i Oberon.Par.pos)j;k Texts.Scan(S)l;m |
| 0011 | g .PROC 1 |
| 0011 | g .COMMAND Open |
| 0011 | g(4EE90094): SUB SP, SP, 94H |
| 0012 | g(AFE00000): STR LNK, SP, 0H |
| 0013 | h(40E80008): ADD R0, SP, 8H |
| 0014 | h .FIXUP D |
| 0014 | h(8D300014): LDR SB, MT, MOD3 [Texts] |
| 0015 | h(41D80003): ADD R1, SB, VAR3 |
| 0016 | i .FIXUP D |
| 0016 | i(8D600002): LDR SB, MT, MOD6 [Oberon] |
| 0017 | i(42D8000E): ADD R2, SB, VAR14 |
| 0018 | i(82200008): LDR R2, R2, 8H |
| 0019 | j .FIXUP D |
| 0019 | j(8D600003): LDR SB, MT, MOD6 [Oberon] |
| 001A | j(43D8000E): ADD R3, SB, VAR14 |
| 001B | j(8330000C): LDR R3, R3, CH |
| 001C | k .FIXUP P |
| 001C | k(F731501C): BL MOD3 [Texts] PROC21 |
| 001D | l(40E80008): ADD R0, SP, 8H |
| 001E | l .FIXUP D |
| 001E | l(8D300005): LDR SB, MT, MOD3 [Texts] |
| 001F | l(41D80003): ADD R1, SB, VAR3 |
| 0020 | m .FIXUP P |
| 0020 | m(F7316004): BL MOD3 [Texts] PROC22 |
| IF (S.class = Texts.Char)n & (oS.c = "^")p OR (qS.line # 0)r THENs |
| 0021 | n(80E00044): LDR R0, SP, 44H |
| 0022 | n(40090006): SUB R0, R0, 6H |
| 0023 | o(E9000003): BNE 3 [0027H] |
| 0024 | p(90E00054): LDR R0, SP, 54H |
| 0025 | p(4009005E): SUB R0, R0, 5EH |
| 0026 | q(E1000002): BEQ 2 [0029H] |
| 0027 | r(80E00040): LDR R0, SP, 40H |
| 0028 | s(E1000012): BEQ 18 [003BH] |
| Oberon.GetSelection(T,t beg,u end,v time)w;x |
| 0029 | t(40E80004): ADD R0, SP, 4H |
| 002A | u(41E80088): ADD R1, SP, 88H |
| 002B | v(42E8008C): ADD R2, SP, 8CH |
| 002C | w(43E80090): ADD R3, SP, 90H |
| 002D | x .FIXUP P |
| 002D | x(F762900D): BL MOD6 [Oberon] PROC41 |
| IF time >= 0 THENy Texts.OpenScanner(S,z T,a beg)b;c Texts.Scan(S)d ENDe |
| 002E | y(80E00090): LDR R0, SP, 90H |
| 002F | y(40090000): SUB R0, R0, 0H |
| 0030 | y(E500000A): BLT 10 [003BH] |
| 0031 | z(40E80008): ADD R0, SP, 8H |
| 0032 | z .FIXUP D |
| 0032 | z(8D300014): LDR SB, MT, MOD3 [Texts] |
| 0033 | z(41D80003): ADD R1, SB, VAR3 |
| 0034 | a(82E00004): LDR R2, SP, 4H |
| 0035 | b(83E00088): LDR R3, SP, 88H |
| 0036 | c .FIXUP P |
| 0036 | c(F7315009): BL MOD3 [Texts] PROC21 |
| 0037 | d(40E80008): ADD R0, SP, 8H |
| 0038 | d .FIXUP D |
| 0038 | d(8D300006): LDR SB, MT, MOD3 [Texts] |
| 0039 | d(41D80003): ADD R1, SB, VAR3 |
| 003A | e .FIXUP P |
| 003A | e(F7316004): BL MOD3 [Texts] PROC22 |
| END; |
| IF S.class = Texts.Name THENf |
| 003B | f(80E00044): LDR R0, SP, 44H |
| 003C | f(40090001): SUB R0, R0, 1H |
| 003D | f(E900001E): BNE 30 [005CH] |
| Oberon.AllocateUserViewer(Oberon.Par.vwr.gXh,i X,j Y)k;l |
| 003E | g .FIXUP D |
| 003E | g(8D600006): LDR SB, MT, MOD6 [Oberon] |
| 003F | g(40D8000E): ADD R0, SB, VAR14 |
| 0040 | h(80000000): LDR R0, R0, 0H |
| 0041 | h(D103D34C): BLEQ MT [trap=4, pos=979] |
| 0042 | i(80000008): LDR R0, R0, 8H |
| 0043 | j(41E80080): ADD R1, SP, 80H |
| 0044 | k(42E80084): ADD R2, SP, 84H |
| 0045 | l .FIXUP P |
| 0045 | l(F762200B): BL MOD6 [Oberon] PROC34 |
| V := MenuViewers.New( |
| TextFrames.NewMenu(S.s,m StandardMenu)n,o |
| 0046 | m(40E8005C): ADD R0, SP, 5CH |
| 0047 | m(41000020): MOV R1, R0, 20H |
| 0048 | n .FIXUP D |
| 0048 | n(8D00000A): LDR SB, MT, MOD0 [Edit] |
| 0049 | n(42D80450): ADD R2, SB, 450H ["System.Close System.Copy System.Grow Edit.Search Edit.Store"] |
| 004A | n(4300003C): MOV R3, R0, 3CH |
| 004B | o .FIXUP P |
| 004B | o(F782C006): BL MOD8 [TextFrames] PROC44 |
| TextFrames.NewText(TextFramesp.Text(S.s)q,r 0)s,t |
| 004C | p(4EE90004): SUB SP, SP, 4H |
| 004D | p(A0E00000): STR R0, SP, 0H |
| 004E | q(40E80060): ADD R0, SP, 60H |
| 004F | q(41000020): MOV R1, R0, 20H |
| 0050 | r .FIXUP P |
| 0050 | r(F782B005): BL MOD8 [TextFrames] PROC43 |
| 0051 | s(41000000): MOV R1, R0, 0H |
| 0052 | t .FIXUP P |
| 0052 | t(F782D002): BL MOD8 [TextFrames] PROC45 |
| 0053 | t(01000000): MOV R1, R0, R0 |
| 0054 | t(80E00000): LDR R0, SP, 0H |
| 0055 | t(4EE80004): ADD SP, SP, 4H |
| TextFrames.menuH,u X,v Y)w |
| 0056 | u .FIXUP D |
| 0056 | u(8D80000E): LDR SB, MT, MOD8 [TextFrames] |
| 0057 | u(82D00005): LDR R2, SB, VAR5 |
| 0058 | v(83E00080): LDR R3, SP, 80H |
| 0059 | w(84E00084): LDR R4, SP, 84H |
| ENDx |
| 005A | x .FIXUP P |
| 005A | x(F7704008): BL MOD7 [MenuViewers] PROC4 |
| 005B | x(A0E0007C): STR R0, SP, 7CH |
| ENDy Open; |
| 005C | y(8FE00000): LDR LNK, SP, 0H |
| 005D | y(4EE80094): ADD SP, SP, 94H |
| 005E | y(C700000F): B LNK |
| |
| PROCEDURE Store*; |
| VAR V: Viewers.Viewer; |
| Text: TextFrames.Frame; |
| T: Texts.Text; |
| S: Texts.Scanner; |
| f: Files.File; R: Files.Rider; |
| beg, end, time, len: LONGINT; |
| |
| PROCEDUREz Backup (VAR name: ARRAY OF CHAR); |
| 005F | z(E7000049): B 73 [00A9H] |
| VAR res, i: INTEGER; bak: ARRAY 32 OF CHAR; |
| BEGINa i := 0;b |
| 0060 | a(4EE90034): SUB SP, SP, 34H |
| 0061 | a(AFE00000): STR LNK, SP, 0H |
| 0062 | a(A0E00004): STR R0, SP, 4H |
| 0063 | a(A1E00008): STR R1, SP, 8H |
| 0064 | b(40000000): MOV R0, R0, 0H |
| 0065 | b(A0E00010): STR R0, SP, 10H |
| WHILE name[i]c # 0X DOd bak[i]e := name[i]f;g INC(i) ENDh; |
| 0066 | c(80E00010): LDR R0, SP, 10H |
| 0067 | c(81E00008): LDR R1, SP, 8H |
| 0068 | c(01090001): SUB R1, R0, R1 |
| 0069 | c(DA05DC1C): BLCC MT [trap=1, pos=1500] |
| 006A | c(81E00004): LDR R1, SP, 4H |
| 006B | c(00180000): ADD R0, R1, R0 |
| 006C | d(90000000): LDR R0, R0, 0H |
| 006D | d(E1000010): BEQ 16 [007EH] |
| 006E | e(80E00010): LDR R0, SP, 10H |
| 006F | e(41090020): SUB R1, R0, 20H |
| 0070 | e(DA05EB1C): BLCC MT [trap=1, pos=1515] |
| 0071 | e(00E80000): ADD R0, SP, R0 |
| 0072 | f(81E00010): LDR R1, SP, 10H |
| 0073 | f(82E00008): LDR R2, SP, 8H |
| 0074 | f(02190002): SUB R2, R1, R2 |
| 0075 | f(DA05F61C): BLCC MT [trap=1, pos=1526] |
| 0076 | f(82E00004): LDR R2, SP, 4H |
| 0077 | f(01280001): ADD R1, R2, R1 |
| 0078 | g(91100000): LDR R1, R1, 0H |
| 0079 | g(B1000014): STR R1, R0, 14H |
| 007A | h(80E00010): LDR R0, SP, 10H |
| 007B | h(40080001): ADD R0, R0, 1H |
| 007C | h(A0E00010): STR R0, SP, 10H |
| 007D | h(E7FFFFE8): B -24 [0066H] |
| bak[i]i := ".";j bak[i+1]k := "B";l bak[i+2]m := "a";n bak[i+3]o := "k";p bak[i+4]q := 0X;r |
| 007E | i(80E00010): LDR R0, SP, 10H |
| 007F | i(41090020): SUB R1, R0, 20H |
| 0080 | i(DA06101C): BLCC MT [trap=1, pos=1552] |
| 0081 | i(00E80000): ADD R0, SP, R0 |
| 0082 | j(4100002E): MOV R1, R0, 2EH |
| 0083 | j(B1000014): STR R1, R0, 14H |
| 0084 | k(80E00010): LDR R0, SP, 10H |
| 0085 | k(40080001): ADD R0, R0, 1H |
| 0086 | k(41090020): SUB R1, R0, 20H |
| 0087 | k(DA06211C): BLCC MT [trap=1, pos=1569] |
| 0088 | k(00E80000): ADD R0, SP, R0 |
| 0089 | l(41000042): MOV R1, R0, 42H |
| 008A | l(B1000014): STR R1, R0, 14H |
| 008B | m(80E00010): LDR R0, SP, 10H |
| 008C | m(40080002): ADD R0, R0, 2H |
| 008D | m(41090020): SUB R1, R0, 20H |
| 008E | m(DA06321C): BLCC MT [trap=1, pos=1586] |
| 008F | m(00E80000): ADD R0, SP, R0 |
| 0090 | n(41000061): MOV R1, R0, 61H |
| 0091 | n(B1000014): STR R1, R0, 14H |
| 0092 | o(80E00010): LDR R0, SP, 10H |
| 0093 | o(40080003): ADD R0, R0, 3H |
| 0094 | o(41090020): SUB R1, R0, 20H |
| 0095 | o(DA06431C): BLCC MT [trap=1, pos=1603] |
| 0096 | o(00E80000): ADD R0, SP, R0 |
| 0097 | p(4100006B): MOV R1, R0, 6BH |
| 0098 | p(B1000014): STR R1, R0, 14H |
| 0099 | q(80E00010): LDR R0, SP, 10H |
| 009A | q(40080004): ADD R0, R0, 4H |
| 009B | q(41090020): SUB R1, R0, 20H |
| 009C | q(DA06541C): BLCC MT [trap=1, pos=1620] |
| 009D | q(00E80000): ADD R0, SP, R0 |
| 009E | r(41000000): MOV R1, R0, 0H |
| 009F | r(B1000014): STR R1, R0, 14H |
| Files.Rename(name,s bak,t res)u |
| 00A0 | s(80E00004): LDR R0, SP, 4H |
| 00A1 | s(81E00008): LDR R1, SP, 8H |
| 00A2 | t(42E80014): ADD R2, SP, 14H |
| 00A3 | t(43000020): MOV R3, R0, 20H |
| 00A4 | u(44E8000C): ADD R4, SP, CH |
| ENDv Backup; |
| 00A5 | v .FIXUP P |
| 00A5 | v(F710804B): BL MOD1 [Files] PROC8 |
| 00A6 | v(8FE00000): LDR LNK, SP, 0H |
| 00A7 | v(4EE80034): ADD SP, SP, 34H |
| 00A8 | v(C700000F): B LNK |
| |
| BEGINw Texts.WriteString(W,x "Edit.Store ")y;z |
| 00A9 | w .PROC 2 |
| 00A9 | w .COMMAND Store |
| 00A9 | w(4EE900B0): SUB SP, SP, B0H |
| 00AA | w(AFE00000): STR LNK, SP, 0H |
| 00AB | x .FIXUP D |
| 00AB | x(8D000055): LDR SB, MT, MOD0 [Edit] |
| 00AC | x(40D80000): ADD R0, SB, 0H [data] |
| 00AD | x .FIXUP D |
| 00AD | x(8D300002): LDR SB, MT, MOD3 [Texts] |
| 00AE | x(41D80005): ADD R1, SB, VAR5 |
| 00AF | y .FIXUP D |
| 00AF | y(8D000002): LDR SB, MT, MOD0 [Edit] |
| 00B0 | y(42D8048C): ADD R2, SB, 48CH ["Edit.Store "] |
| 00B1 | y(4300000C): MOV R3, R0, CH |
| 00B2 | z .FIXUP P |
| 00B2 | z(F731D00D): BL MOD3 [Texts] PROC29 |
| IF Oberon.Par.frame =a Oberon.Par.vwr.bdscc THENd |
| 00B3 | a .FIXUP D |
| 00B3 | a(8D600004): LDR SB, MT, MOD6 [Oberon] |
| 00B4 | a(40D8000E): ADD R0, SB, VAR14 |
| 00B5 | b .FIXUP D |
| 00B5 | b(8D600002): LDR SB, MT, MOD6 [Oberon] |
| 00B6 | b(41D8000E): ADD R1, SB, VAR14 |
| 00B7 | c(81100000): LDR R1, R1, 0H |
| 00B8 | c(D106E94C): BLEQ MT [trap=4, pos=1769] |
| 00B9 | d(80000004): LDR R0, R0, 4H |
| 00BA | d(81100004): LDR R1, R1, 4H |
| 00BB | d(00090001): SUB R0, R0, R1 |
| 00BC | d(E9000015): BNE 21 [00D2H] |
| V := Oberon.Par.vwr;e Texts.OpenScanner(S,f V.dscg(TextFrames.Frame)h.text,i 0)j |
| 00BD | e .FIXUP D |
| 00BD | e(8D600008): LDR SB, MT, MOD6 [Oberon] |
| 00BE | e(40D8000E): ADD R0, SB, VAR14 |
| 00BF | e(80000000): LDR R0, R0, 0H |
| 00C0 | e(A0E00004): STR R0, SP, 4H |
| 00C1 | f(40E80010): ADD R0, SP, 10H |
| 00C2 | f .FIXUP D |
| 00C2 | f(8D300005): LDR SB, MT, MOD3 [Texts] |
| 00C3 | f(41D80003): ADD R1, SB, VAR3 |
| 00C4 | g(82E00004): LDR R2, SP, 4H |
| 00C5 | g(D107244C): BLEQ MT [trap=4, pos=1828] |
| 00C6 | h(82200004): LDR R2, R2, 4H |
| 00C7 | h(E1000005): BEQ 5 [00CDH] |
| 00C8 | h(832FFFF8): LDR R3, R2, FFFFFFF8H |
| 00C9 | h(83300004): LDR R3, R3, 4H |
| 00CA | h .FIXUP D |
| 00CA | h(8D800008): LDR SB, MT, MOD8 [TextFrames] |
| 00CB | h(44D80002): ADD R4, SB, VAR2 |
| 00CC | h(04490003): SUB R4, R4, R3 |
| 00CD | h(D907362C): BLNE MT [trap=2, pos=1846] |
| 00CE | i(8220001C): LDR R2, R2, 1CH |
| 00CF | j(43000000): MOV R3, R0, 0H |
| ELSEk Vl := Oberon.MarkedViewer();m Texts.OpenScanner(S,n Oberon.Par.text,o Oberon.Par.pos)p |
| 00D0 | k .FIXUP P |
| 00D0 | k(F731501E): BL MOD3 [Texts] PROC21 |
| 00D1 | l(E700000C): B 12 [00DEH] |
| 00D2 | m .FIXUP P |
| 00D2 | m(F7624002): BL MOD6 [Oberon] PROC36 |
| 00D3 | m(A0E00004): STR R0, SP, 4H |
| 00D4 | n(40E80010): ADD R0, SP, 10H |
| 00D5 | n .FIXUP D |
| 00D5 | n(8D30000B): LDR SB, MT, MOD3 [Texts] |
| 00D6 | n(41D80003): ADD R1, SB, VAR3 |
| 00D7 | o .FIXUP D |
| 00D7 | o(8D600002): LDR SB, MT, MOD6 [Oberon] |
| 00D8 | o(42D8000E): ADD R2, SB, VAR14 |
| 00D9 | o(82200008): LDR R2, R2, 8H |
| 00DA | p .FIXUP D |
| 00DA | p(8D600003): LDR SB, MT, MOD6 [Oberon] |
| 00DB | p(43D8000E): ADD R3, SB, VAR14 |
| 00DC | p(8330000C): LDR R3, R3, CH |
| ENDq; |
| 00DD | q .FIXUP P |
| 00DD | q(F731500B): BL MOD3 [Texts] PROC21 |
| Texts.Scan(S)r;s |
| 00DE | r(40E80010): ADD R0, SP, 10H |
| 00DF | r .FIXUP D |
| 00DF | r(8D300005): LDR SB, MT, MOD3 [Texts] |
| 00E0 | r(41D80003): ADD R1, SB, VAR3 |
| 00E1 | s .FIXUP P |
| 00E1 | s(F7316004): BL MOD3 [Texts] PROC22 |
| IF (S.class = Texts.Char)t & (uS.c = "^")v THENw |
| 00E2 | t(80E0004C): LDR R0, SP, 4CH |
| 00E3 | t(40090006): SUB R0, R0, 6H |
| 00E4 | u(E9000015): BNE 21 [00FAH] |
| 00E5 | v(90E0005C): LDR R0, SP, 5CH |
| 00E6 | v(4009005E): SUB R0, R0, 5EH |
| 00E7 | w(E9000012): BNE 18 [00FAH] |
| Oberon.GetSelection(T,x beg,y end,z time)a;b |
| 00E8 | x(40E8000C): ADD R0, SP, CH |
| 00E9 | y(41E800A0): ADD R1, SP, A0H |
| 00EA | z(42E800A4): ADD R2, SP, A4H |
| 00EB | a(43E800A8): ADD R3, SP, A8H |
| 00EC | b .FIXUP P |
| 00EC | b(F762900B): BL MOD6 [Oberon] PROC41 |
| IF time >= 0 THENc Texts.OpenScanner(S,d T,e beg)f;g Texts.Scan(S)h ENDi |
| 00ED | c(80E000A8): LDR R0, SP, A8H |
| 00EE | c(40090000): SUB R0, R0, 0H |
| 00EF | c(E500000A): BLT 10 [00FAH] |
| 00F0 | d(40E80010): ADD R0, SP, 10H |
| 00F1 | d .FIXUP D |
| 00F1 | d(8D300012): LDR SB, MT, MOD3 [Texts] |
| 00F2 | d(41D80003): ADD R1, SB, VAR3 |
| 00F3 | e(82E0000C): LDR R2, SP, CH |
| 00F4 | f(83E000A0): LDR R3, SP, A0H |
| 00F5 | g .FIXUP P |
| 00F5 | g(F7315009): BL MOD3 [Texts] PROC21 |
| 00F6 | h(40E80010): ADD R0, SP, 10H |
| 00F7 | h .FIXUP D |
| 00F7 | h(8D300006): LDR SB, MT, MOD3 [Texts] |
| 00F8 | h(41D80003): ADD R1, SB, VAR3 |
| 00F9 | i .FIXUP P |
| 00F9 | i(F7316004): BL MOD3 [Texts] PROC22 |
| END; |
| IF (S.class = Texts.Name)j & (kV.dscl # NIL)m & (nV.dsco.nextp IS TextFrames.Frame)q THENr |
| 00FA | j(80E0004C): LDR R0, SP, 4CH |
| 00FB | j(40090001): SUB R0, R0, 1H |
| 00FC | k(E9000042): BNE 66 [013FH] |
| 00FD | l(80E00004): LDR R0, SP, 4H |
| 00FE | l(D1088D4C): BLEQ MT [trap=4, pos=2189] |
| 00FF | m(80000004): LDR R0, R0, 4H |
| 0100 | n(E100003E): BEQ 62 [013FH] |
| 0101 | o(80E00004): LDR R0, SP, 4H |
| 0102 | o(D1089D4C): BLEQ MT [trap=4, pos=2205] |
| 0103 | p(80000004): LDR R0, R0, 4H |
| 0104 | p(D108A24C): BLEQ MT [trap=4, pos=2210] |
| 0105 | q(80000000): LDR R0, R0, 0H |
| 0106 | q(E1000005): BEQ 5 [010CH] |
| 0107 | q(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 0108 | q(81100004): LDR R1, R1, 4H |
| 0109 | q .FIXUP D |
| 0109 | q(8D800012): LDR SB, MT, MOD8 [TextFrames] |
| 010A | q(42D80002): ADD R2, SB, VAR2 |
| 010B | q(02290001): SUB R2, R2, R1 |
| 010C | r(E9000032): BNE 50 [013FH] |
| Text := V.dscs.nextt(TextFrames.Frame)u;v |
| 010D | s(80E00004): LDR R0, SP, 4H |
| 010E | s(D108D04C): BLEQ MT [trap=4, pos=2256] |
| 010F | t(80000004): LDR R0, R0, 4H |
| 0110 | t(D108D54C): BLEQ MT [trap=4, pos=2261] |
| 0111 | u(80000000): LDR R0, R0, 0H |
| 0112 | u(E1000005): BEQ 5 [0118H] |
| 0113 | u(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 0114 | u(81100004): LDR R1, R1, 4H |
| 0115 | u .FIXUP D |
| 0115 | u(8D80000C): LDR SB, MT, MOD8 [TextFrames] |
| 0116 | u(42D80002): ADD R2, SB, VAR2 |
| 0117 | u(02290001): SUB R2, R2, R1 |
| 0118 | u(D908E72C): BLNE MT [trap=2, pos=2279] |
| 0119 | v(A0E00008): STR R0, SP, 8H |
| Texts.WriteString(W,w S.s)x;y Texts.WriteInt(W,z Text.texta.lenb,c 8)d;e |
| 011A | w .FIXUP D |
| 011A | w(8D000005): LDR SB, MT, MOD0 [Edit] |
| 011B | w(40D80000): ADD R0, SB, 0H [data] |
| 011C | w .FIXUP D |
| 011C | w(8D300002): LDR SB, MT, MOD3 [Texts] |
| 011D | w(41D80005): ADD R1, SB, VAR5 |
| 011E | x(42E80064): ADD R2, SP, 64H |
| 011F | x(43000020): MOV R3, R0, 20H |
| 0120 | y .FIXUP P |
| 0120 | y(F731D027): BL MOD3 [Texts] PROC29 |
| 0121 | z .FIXUP D |
| 0121 | z(8D000005): LDR SB, MT, MOD0 [Edit] |
| 0122 | z(40D80000): ADD R0, SB, 0H [data] |
| 0123 | z .FIXUP D |
| 0123 | z(8D300002): LDR SB, MT, MOD3 [Texts] |
| 0124 | z(41D80005): ADD R1, SB, VAR5 |
| 0125 | a(82E00008): LDR R2, SP, 8H |
| 0126 | a(D109254C): BLEQ MT [trap=4, pos=2341] |
| 0127 | b(8220001C): LDR R2, R2, 1CH |
| 0128 | b(D109294C): BLEQ MT [trap=4, pos=2345] |
| 0129 | c(82200000): LDR R2, R2, 0H |
| 012A | d(43000008): MOV R3, R0, 8H |
| 012B | e .FIXUP P |
| 012B | e(F731E00B): BL MOD3 [Texts] PROC30 |
| Texts.WriteLn(W)f;g Texts.Append(Oberon.Log,h W.buf)i;j |
| 012C | f .FIXUP D |
| 012C | f(8D000009): LDR SB, MT, MOD0 [Edit] |
| 012D | f(40D80000): ADD R0, SB, 0H [data] |
| 012E | f .FIXUP D |
| 012E | f(8D300002): LDR SB, MT, MOD3 [Texts] |
| 012F | f(41D80005): ADD R1, SB, VAR5 |
| 0130 | g .FIXUP P |
| 0130 | g(F731C005): BL MOD3 [Texts] PROC28 |
| 0131 | h .FIXUP D |
| 0131 | h(8D600003): LDR SB, MT, MOD6 [Oberon] |
| 0132 | h(80D0000D): LDR R0, SB, VAR13 |
| 0133 | i .FIXUP D |
| 0133 | i(8D000002): LDR SB, MT, MOD0 [Edit] |
| 0134 | i(81D00000): LDR R1, SB, 0H [data] |
| 0135 | j .FIXUP P |
| 0135 | j(F730E005): BL MOD3 [Texts] PROC14 |
| Backup(S.s)k;l Texts.Close(Text.textm,n S.s)o |
| 0136 | k(40E80064): ADD R0, SP, 64H |
| 0137 | k(41000020): MOV R1, R0, 20H |
| 0138 | l(F7FFFF27): BL -217 [0060H] |
| 0139 | m(80E00008): LDR R0, SP, 8H |
| 013A | m(D109904C): BLEQ MT [trap=4, pos=2448] |
| 013B | n(8000001C): LDR R0, R0, 1CH |
| 013C | o(41E80064): ADD R1, SP, 64H |
| 013D | o(42000020): MOV R2, R0, 20H |
| ENDp |
| 013E | p .FIXUP P |
| 013E | p(F7309009): BL MOD3 [Texts] PROC9 |
| ENDq Store; |
| 013F | q(8FE00000): LDR LNK, SP, 0H |
| 0140 | q(4EE800B0): ADD SP, SP, B0H |
| 0141 | q(C700000F): B LNK |
| |
| PROCEDURE CopyLooks*; |
| VAR T: Texts.Text; |
| F: TextFrames.Frame; |
| v: Viewers.Viewer; |
| beg, end, time: LONGINT; |
| fnt: Fonts.Font; col, voff: INTEGER; |
| BEGINr Oberon.GetSelection(T,s beg,t end,u time)v;w |
| 0142 | r .PROC 3 |
| 0142 | r .COMMAND CopyLooks |
| 0142 | r(4EE90028): SUB SP, SP, 28H |
| 0143 | r(AFE00000): STR LNK, SP, 0H |
| 0144 | s(40E80004): ADD R0, SP, 4H |
| 0145 | t(41E80010): ADD R1, SP, 10H |
| 0146 | u(42E80014): ADD R2, SP, 14H |
| 0147 | v(43E80018): ADD R3, SP, 18H |
| 0148 | w .FIXUP P |
| 0148 | w(F762900A): BL MOD6 [Oberon] PROC41 |
| IF time >= 0 THENx |
| 0149 | x(80E00018): LDR R0, SP, 18H |
| 014A | x(40090000): SUB R0, R0, 0H |
| 014B | x(E5000034): BLT 52 [0180H] |
| v := Oberon.FocusViewer;y |
| 014C | y .FIXUP D |
| 014C | y(8D600019): LDR SB, MT, MOD6 [Oberon] |
| 014D | y(80D0000C): LDR R0, SB, VAR12 |
| 014E | y(A0E0000C): STR R0, SP, CH |
| IF (v # NIL)z & (av.dscb # NIL)c & (dv.dsce.nextf IS TextFrames.Frame)g THENh |
| 014F | z(80E0000C): LDR R0, SP, CH |
| 0150 | a(E100002F): BEQ 47 [0180H] |
| 0151 | b(80E0000C): LDR R0, SP, CH |
| 0152 | b(D10ADA4C): BLEQ MT [trap=4, pos=2778] |
| 0153 | c(80000004): LDR R0, R0, 4H |
| 0154 | d(E100002B): BEQ 43 [0180H] |
| 0155 | e(80E0000C): LDR R0, SP, CH |
| 0156 | e(D10AEA4C): BLEQ MT [trap=4, pos=2794] |
| 0157 | f(80000004): LDR R0, R0, 4H |
| 0158 | f(D10AEF4C): BLEQ MT [trap=4, pos=2799] |
| 0159 | g(80000000): LDR R0, R0, 0H |
| 015A | g(E1000005): BEQ 5 [0160H] |
| 015B | g(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 015C | g(81100004): LDR R1, R1, 4H |
| 015D | g .FIXUP D |
| 015D | g(8D800011): LDR SB, MT, MOD8 [TextFrames] |
| 015E | g(42D80002): ADD R2, SB, VAR2 |
| 015F | g(02290001): SUB R2, R2, R1 |
| 0160 | h(E900001F): BNE 31 [0180H] |
| F := v.dsci.nextj(TextFrames.Frame)k;l |
| 0161 | i(80E0000C): LDR R0, SP, CH |
| 0162 | i(D10B1C4C): BLEQ MT [trap=4, pos=2844] |
| 0163 | j(80000004): LDR R0, R0, 4H |
| 0164 | j(D10B214C): BLEQ MT [trap=4, pos=2849] |
| 0165 | k(80000000): LDR R0, R0, 0H |
| 0166 | k(E1000005): BEQ 5 [016CH] |
| 0167 | k(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 0168 | k(81100004): LDR R1, R1, 4H |
| 0169 | k .FIXUP D |
| 0169 | k(8D80000C): LDR SB, MT, MOD8 [TextFrames] |
| 016A | k(42D80002): ADD R2, SB, VAR2 |
| 016B | k(02290001): SUB R2, R2, R1 |
| 016C | k(D90B332C): BLNE MT [trap=2, pos=2867] |
| 016D | l(A0E00008): STR R0, SP, 8H |
| Texts.Attributes(F.textm,n F.carloco.pos,p fnt,q col,r voff)s;t |
| 016E | m(80E00008): LDR R0, SP, 8H |
| 016F | m(D10B544C): BLEQ MT [trap=4, pos=2900] |
| 0170 | n(8000001C): LDR R0, R0, 1CH |
| 0171 | o(81E00008): LDR R1, SP, 8H |
| 0172 | o(D10B5E4C): BLEQ MT [trap=4, pos=2910] |
| 0173 | p(8110004C): LDR R1, R1, 4CH |
| 0174 | q(42E8001C): ADD R2, SP, 1CH |
| 0175 | r(43E80020): ADD R3, SP, 20H |
| 0176 | s(44E80024): ADD R4, SP, 24H |
| 0177 | t .FIXUP P |
| 0177 | t(F731102F): BL MOD3 [Texts] PROC17 |
| Texts.ChangeLooks(T,u beg,v end,w {0,1,2},x fnt,y col,z voff)a |
| 0178 | u(80E00004): LDR R0, SP, 4H |
| 0179 | v(81E00010): LDR R1, SP, 10H |
| 017A | w(82E00014): LDR R2, SP, 14H |
| 017B | x(43000007): MOV R3, R0, 7H |
| 017C | y(84E0001C): LDR R4, SP, 1CH |
| 017D | z(85E00020): LDR R5, SP, 20H |
| 017E | a(86E00024): LDR R6, SP, 24H |
| ENDb |
| 017F | b .FIXUP P |
| 017F | b(F7310008): BL MOD3 [Texts] PROC16 |
| END |
| ENDc CopyLooks; |
| 0180 | c(8FE00000): LDR LNK, SP, 0H |
| 0181 | c(4EE80028): ADD SP, SP, 28H |
| 0182 | c(C700000F): B LNK |
| |
| PROCEDURE ChangeFont*; |
| VAR S: Texts.Scanner; T: Texts.Text; beg, end: LONGINT; |
| BEGINd |
| 0183 | d .PROC 4 |
| 0183 | d .COMMAND ChangeFont |
| 0183 | d(4EE90084): SUB SP, SP, 84H |
| 0184 | d(AFE00000): STR LNK, SP, 0H |
| Oberon.GetSelection(T,e beg,f end,g time)h;i |
| 0185 | e(40E80078): ADD R0, SP, 78H |
| 0186 | f(41E8007C): ADD R1, SP, 7CH |
| 0187 | g(42E80080): ADD R2, SP, 80H |
| 0188 | h .FIXUP D |
| 0188 | h(8D00001F): LDR SB, MT, MOD0 [Edit] |
| 0189 | h(43D80028): ADD R3, SB, 28H [data] |
| 018A | i .FIXUP P |
| 018A | i(F762900B): BL MOD6 [Oberon] PROC41 |
| IF time >= 0 THENj |
| 018B | j .FIXUP D |
| 018B | j(8D000003): LDR SB, MT, MOD0 [Edit] |
| 018C | j(80D00028): LDR R0, SB, 28H [data] |
| 018D | j(40090000): SUB R0, R0, 0H |
| 018E | j(E5000026): BLT 38 [01B5H] |
| Texts.OpenScanner(S,k Oberon.Par.text,l Oberon.Par.pos)m;n Texts.Scan(S)o;p |
| 018F | k(40E80004): ADD R0, SP, 4H |
| 0190 | k .FIXUP D |
| 0190 | k(8D300005): LDR SB, MT, MOD3 [Texts] |
| 0191 | k(41D80003): ADD R1, SB, VAR3 |
| 0192 | l .FIXUP D |
| 0192 | l(8D600002): LDR SB, MT, MOD6 [Oberon] |
| 0193 | l(42D8000E): ADD R2, SB, VAR14 |
| 0194 | l(82200008): LDR R2, R2, 8H |
| 0195 | m .FIXUP D |
| 0195 | m(8D600003): LDR SB, MT, MOD6 [Oberon] |
| 0196 | m(43D8000E): ADD R3, SB, VAR14 |
| 0197 | m(8330000C): LDR R3, R3, CH |
| 0198 | n .FIXUP P |
| 0198 | n(F731500E): BL MOD3 [Texts] PROC21 |
| 0199 | o(40E80004): ADD R0, SP, 4H |
| 019A | o .FIXUP D |
| 019A | o(8D300005): LDR SB, MT, MOD3 [Texts] |
| 019B | o(41D80003): ADD R1, SB, VAR3 |
| 019C | p .FIXUP P |
| 019C | p(F7316004): BL MOD3 [Texts] PROC22 |
| IF S.class = Texts.Name THENq |
| 019D | q(80E00040): LDR R0, SP, 40H |
| 019E | q(40090001): SUB R0, R0, 1H |
| 019F | q(E9000015): BNE 21 [01B5H] |
| Texts.ChangeLooks(T,r beg,s end,t {0},u Fonts.This(Sv.s)w,x 0,y 0)z |
| 01A0 | r(80E00078): LDR R0, SP, 78H |
| 01A1 | s(81E0007C): LDR R1, SP, 7CH |
| 01A2 | t(82E00080): LDR R2, SP, 80H |
| 01A3 | u(43000001): MOV R3, R0, 1H |
| 01A4 | v(4EE90010): SUB SP, SP, 10H |
| 01A5 | v(A0E0000C): STR R0, SP, CH |
| 01A6 | v(A1E00008): STR R1, SP, 8H |
| 01A7 | v(A2E00004): STR R2, SP, 4H |
| 01A8 | v(A3E00000): STR R3, SP, 0H |
| 01A9 | w(40E80068): ADD R0, SP, 68H |
| 01AA | w(41000020): MOV R1, R0, 20H |
| 01AB | x .FIXUP P |
| 01AB | x(F720500F): BL MOD2 [Fonts] PROC5 |
| 01AC | x(04000000): MOV R4, R0, R0 |
| 01AD | x(83E00000): LDR R3, SP, 0H |
| 01AE | x(82E00004): LDR R2, SP, 4H |
| 01AF | x(81E00008): LDR R1, SP, 8H |
| 01B0 | x(80E0000C): LDR R0, SP, CH |
| 01B1 | x(4EE80010): ADD SP, SP, 10H |
| 01B2 | y(45000000): MOV R5, R0, 0H |
| 01B3 | z(46000000): MOV R6, R0, 0H |
| ENDa |
| 01B4 | a .FIXUP P |
| 01B4 | a(F7310009): BL MOD3 [Texts] PROC16 |
| END |
| ENDb ChangeFont; |
| 01B5 | b(8FE00000): LDR LNK, SP, 0H |
| 01B6 | b(4EE80084): ADD SP, SP, 84H |
| 01B7 | b(C700000F): B LNK |
| |
| PROCEDURE ChangeColor*; |
| VAR S: Texts.Scanner; |
| T: Texts.Text; |
| col: INTEGER; |
| beg, end, time: LONGINT; |
| BEGINc Texts.OpenScanner(S,d Oberon.Par.text,e Oberon.Par.pos)f;g Texts.Scan(S)h;i |
| 01B8 | c .PROC 5 |
| 01B8 | c .COMMAND ChangeColor |
| 01B8 | c(4EE9008C): SUB SP, SP, 8CH |
| 01B9 | c(AFE00000): STR LNK, SP, 0H |
| 01BA | d(40E80004): ADD R0, SP, 4H |
| 01BB | d .FIXUP D |
| 01BB | d(8D300021): LDR SB, MT, MOD3 [Texts] |
| 01BC | d(41D80003): ADD R1, SB, VAR3 |
| 01BD | e .FIXUP D |
| 01BD | e(8D600002): LDR SB, MT, MOD6 [Oberon] |
| 01BE | e(42D8000E): ADD R2, SB, VAR14 |
| 01BF | e(82200008): LDR R2, R2, 8H |
| 01C0 | f .FIXUP D |
| 01C0 | f(8D600003): LDR SB, MT, MOD6 [Oberon] |
| 01C1 | f(43D8000E): ADD R3, SB, VAR14 |
| 01C2 | f(8330000C): LDR R3, R3, CH |
| 01C3 | g .FIXUP P |
| 01C3 | g(F731500F): BL MOD3 [Texts] PROC21 |
| 01C4 | h(40E80004): ADD R0, SP, 4H |
| 01C5 | h .FIXUP D |
| 01C5 | h(8D300005): LDR SB, MT, MOD3 [Texts] |
| 01C6 | h(41D80003): ADD R1, SB, VAR3 |
| 01C7 | i .FIXUP P |
| 01C7 | i(F7316004): BL MOD3 [Texts] PROC22 |
| IF S.class = Texts.Int THENj |
| 01C8 | j(80E00040): LDR R0, SP, 40H |
| 01C9 | j(40090003): SUB R0, R0, 3H |
| 01CA | j(E9000012): BNE 18 [01DDH] |
| col := S.i;k Oberon.GetSelection(T,l beg,m end,n time)o;p |
| 01CB | k(80E00044): LDR R0, SP, 44H |
| 01CC | k(A0E0007C): STR R0, SP, 7CH |
| 01CD | l(40E80078): ADD R0, SP, 78H |
| 01CE | m(41E80080): ADD R1, SP, 80H |
| 01CF | n(42E80084): ADD R2, SP, 84H |
| 01D0 | o(43E80088): ADD R3, SP, 88H |
| 01D1 | p .FIXUP P |
| 01D1 | p(F762900A): BL MOD6 [Oberon] PROC41 |
| IF time >= 0 THENq Texts.ChangeLooks(T,r beg,s end,t {1},u NIL,v col,w 0)x ENDy |
| 01D2 | q(80E00088): LDR R0, SP, 88H |
| 01D3 | q(40090000): SUB R0, R0, 0H |
| 01D4 | q(E5000008): BLT 8 [01DDH] |
| 01D5 | r(80E00078): LDR R0, SP, 78H |
| 01D6 | s(81E00080): LDR R1, SP, 80H |
| 01D7 | t(82E00084): LDR R2, SP, 84H |
| 01D8 | u(43000002): MOV R3, R0, 2H |
| 01D9 | v(44000000): MOV R4, R0, 0H |
| 01DA | w(85E0007C): LDR R5, SP, 7CH |
| 01DB | x(46000000): MOV R6, R0, 0H |
| 01DC | y .FIXUP P |
| 01DC | y(F731000B): BL MOD3 [Texts] PROC16 |
| END |
| ENDz ChangeColor; |
| 01DD | z(8FE00000): LDR LNK, SP, 0H |
| 01DE | z(4EE8008C): ADD SP, SP, 8CH |
| 01DF | z(C700000F): B LNK |
| |
| PROCEDURE ChangeOffset*; |
| VAR S: Texts.Scanner; |
| T: Texts.Text; |
| voff: INTEGER; ch: CHAR; |
| beg, end, time: LONGINT; |
| BEGINa Texts.OpenScanner(S,b Oberon.Par.text,c Oberon.Par.pos)d;e Texts.Scan(S)f;g |
| 01E0 | a .PROC 6 |
| 01E0 | a .COMMAND ChangeOffset |
| 01E0 | a(4EE90090): SUB SP, SP, 90H |
| 01E1 | a(AFE00000): STR LNK, SP, 0H |
| 01E2 | b(40E80004): ADD R0, SP, 4H |
| 01E3 | b .FIXUP D |
| 01E3 | b(8D30001E): LDR SB, MT, MOD3 [Texts] |
| 01E4 | b(41D80003): ADD R1, SB, VAR3 |
| 01E5 | c .FIXUP D |
| 01E5 | c(8D600002): LDR SB, MT, MOD6 [Oberon] |
| 01E6 | c(42D8000E): ADD R2, SB, VAR14 |
| 01E7 | c(82200008): LDR R2, R2, 8H |
| 01E8 | d .FIXUP D |
| 01E8 | d(8D600003): LDR SB, MT, MOD6 [Oberon] |
| 01E9 | d(43D8000E): ADD R3, SB, VAR14 |
| 01EA | d(8330000C): LDR R3, R3, CH |
| 01EB | e .FIXUP P |
| 01EB | e(F731500F): BL MOD3 [Texts] PROC21 |
| 01EC | f(40E80004): ADD R0, SP, 4H |
| 01ED | f .FIXUP D |
| 01ED | f(8D300005): LDR SB, MT, MOD3 [Texts] |
| 01EE | f(41D80003): ADD R1, SB, VAR3 |
| 01EF | g .FIXUP P |
| 01EF | g(F7316004): BL MOD3 [Texts] PROC22 |
| IF S.class = Texts.Int THENh |
| 01F0 | h(80E00040): LDR R0, SP, 40H |
| 01F1 | h(40090003): SUB R0, R0, 3H |
| 01F2 | h(E9000012): BNE 18 [0205H] |
| voff := S.i;i Oberon.GetSelection(T,j beg,k end,l time)m;n |
| 01F3 | i(80E00044): LDR R0, SP, 44H |
| 01F4 | i(A0E0007C): STR R0, SP, 7CH |
| 01F5 | j(40E80078): ADD R0, SP, 78H |
| 01F6 | k(41E80084): ADD R1, SP, 84H |
| 01F7 | l(42E80088): ADD R2, SP, 88H |
| 01F8 | m(43E8008C): ADD R3, SP, 8CH |
| 01F9 | n .FIXUP P |
| 01F9 | n(F762900A): BL MOD6 [Oberon] PROC41 |
| IF time >= 0 THENo Texts.ChangeLooks(T,p beg,q end,r {2},s NIL,t voff,u 0)v ENDw |
| 01FA | o(80E0008C): LDR R0, SP, 8CH |
| 01FB | o(40090000): SUB R0, R0, 0H |
| 01FC | o(E5000008): BLT 8 [0205H] |
| 01FD | p(80E00078): LDR R0, SP, 78H |
| 01FE | q(81E00084): LDR R1, SP, 84H |
| 01FF | r(82E00088): LDR R2, SP, 88H |
| 0200 | s(43000004): MOV R3, R0, 4H |
| 0201 | t(44000000): MOV R4, R0, 0H |
| 0202 | u(85E0007C): LDR R5, SP, 7CH |
| 0203 | v(46000000): MOV R6, R0, 0H |
| 0204 | w .FIXUP P |
| 0204 | w(F731000B): BL MOD3 [Texts] PROC16 |
| END |
| ENDx ChangeOffset; |
| 0205 | x(8FE00000): LDR LNK, SP, 0H |
| 0206 | x(4EE80090): ADD SP, SP, 90H |
| 0207 | x(C700000F): B LNK |
| |
| PROCEDURE Search*; (*uses global variables M, pat, d for Boyer-Moore search*) |
| VAR Text: TextFrames.Frame; |
| V: Viewers.Viewer; |
| R: Texts.Reader; |
| T: Texts.Text; |
| pos, beg, end, prevTime, len: LONGINT; n, i, j: INTEGER; |
| buf: ARRAY 32 OF CHAR; |
| |
| PROCEDUREy Forward(n: INTEGER; VAR R: Texts.Reader; VAR buf: ARRAY OF CHAR); |
| 0208 | y(E700003B): B 59 [0244H] |
| VAR m: INTEGER; j: INTEGER; |
| BEGINz m := M - n;a j := 0;b |
| 0209 | z(4EE90020): SUB SP, SP, 20H |
| 020A | z(AFE00000): STR LNK, SP, 0H |
| 020B | z(A0E00004): STR R0, SP, 4H |
| 020C | z(A1E00008): STR R1, SP, 8H |
| 020D | z(A2E0000C): STR R2, SP, CH |
| 020E | z(A3E00010): STR R3, SP, 10H |
| 020F | z(A4E00014): STR R4, SP, 14H |
| 0210 | a .FIXUP D |
| 0210 | a(8D000023): LDR SB, MT, MOD0 [Edit] |
| 0211 | a(80D0002C): LDR R0, SB, 2CH [data] |
| 0212 | a(81E00004): LDR R1, SP, 4H |
| 0213 | a(00090001): SUB R0, R0, R1 |
| 0214 | a(A0E00018): STR R0, SP, 18H |
| 0215 | b(40000000): MOV R0, R0, 0H |
| 0216 | b(A0E0001C): STR R0, SP, 1CH |
| WHILE j # m DOc buf[j]d := buf[n + j]e;f INC(j) ENDg; |
| 0217 | c(80E0001C): LDR R0, SP, 1CH |
| 0218 | c(81E00018): LDR R1, SP, 18H |
| 0219 | c(00090001): SUB R0, R0, R1 |
| 021A | c(E1000014): BEQ 20 [022FH] |
| 021B | d(80E0001C): LDR R0, SP, 1CH |
| 021C | d(81E00014): LDR R1, SP, 14H |
| 021D | d(01090001): SUB R1, R0, R1 |
| 021E | d(DA12371C): BLCC MT [trap=1, pos=4663] |
| 021F | d(81E00010): LDR R1, SP, 10H |
| 0220 | d(00180000): ADD R0, R1, R0 |
| 0221 | e(81E00004): LDR R1, SP, 4H |
| 0222 | e(82E0001C): LDR R2, SP, 1CH |
| 0223 | e(01180002): ADD R1, R1, R2 |
| 0224 | e(82E00014): LDR R2, SP, 14H |
| 0225 | e(02190002): SUB R2, R1, R2 |
| 0226 | e(DA12451C): BLCC MT [trap=1, pos=4677] |
| 0227 | e(82E00010): LDR R2, SP, 10H |
| 0228 | e(01280001): ADD R1, R2, R1 |
| 0229 | f(91100000): LDR R1, R1, 0H |
| 022A | f(B1000000): STR R1, R0, 0H |
| 022B | g(80E0001C): LDR R0, SP, 1CH |
| 022C | g(40080001): ADD R0, R0, 1H |
| 022D | g(A0E0001C): STR R0, SP, 1CH |
| 022E | g(E7FFFFE8): B -24 [0217H] |
| WHILE j # M DOh Texts.Read(R,i buf[j]j);k INC(j) ENDl |
| 022F | h(80E0001C): LDR R0, SP, 1CH |
| 0230 | h .FIXUP D |
| 0230 | h(8D000020): LDR SB, MT, MOD0 [Edit] |
| 0231 | h(81D0002C): LDR R1, SB, 2CH [data] |
| 0232 | h(00090001): SUB R0, R0, R1 |
| 0233 | h(E100000D): BEQ 13 [0241H] |
| 0234 | i(80E00008): LDR R0, SP, 8H |
| 0235 | i(81E0000C): LDR R1, SP, CH |
| 0236 | j(82E0001C): LDR R2, SP, 1CH |
| 0237 | j(83E00014): LDR R3, SP, 14H |
| 0238 | j(03290003): SUB R3, R2, R3 |
| 0239 | j(DA127C1C): BLCC MT [trap=1, pos=4732] |
| 023A | j(83E00010): LDR R3, SP, 10H |
| 023B | j(02380002): ADD R2, R3, R2 |
| 023C | k .FIXUP P |
| 023C | k(F7313038): BL MOD3 [Texts] PROC19 |
| 023D | l(80E0001C): LDR R0, SP, 1CH |
| 023E | l(40080001): ADD R0, R0, 1H |
| 023F | l(A0E0001C): STR R0, SP, 1CH |
| 0240 | l(E7FFFFEE): B -18 [022FH] |
| ENDm Forward; |
| 0241 | m(8FE00000): LDR LNK, SP, 0H |
| 0242 | m(4EE80020): ADD SP, SP, 20H |
| 0243 | m(C700000F): B LNK |
| |
| BEGINn V := Oberon.Par.vwr;o |
| 0244 | n .PROC 7 |
| 0244 | n .COMMAND Search |
| 0244 | n(4EE90084): SUB SP, SP, 84H |
| 0245 | n(AFE00000): STR LNK, SP, 0H |
| 0246 | o .FIXUP D |
| 0246 | o(8D600016): LDR SB, MT, MOD6 [Oberon] |
| 0247 | o(40D8000E): ADD R0, SB, VAR14 |
| 0248 | o(80000000): LDR R0, R0, 0H |
| 0249 | o(A0E00008): STR R0, SP, 8H |
| IF Oberon.Par.frame #p V.dscq THENr V := Oberon.FocusViewer ENDs; |
| 024A | p .FIXUP D |
| 024A | p(8D600004): LDR SB, MT, MOD6 [Oberon] |
| 024B | p(40D8000E): ADD R0, SB, VAR14 |
| 024C | q(81E00008): LDR R1, SP, 8H |
| 024D | q(D112D84C): BLEQ MT [trap=4, pos=4824] |
| 024E | r(80000004): LDR R0, R0, 4H |
| 024F | r(81100004): LDR R1, R1, 4H |
| 0250 | r(00090001): SUB R0, R0, R1 |
| 0251 | r(E1000003): BEQ 3 [0255H] |
| 0252 | s .FIXUP D |
| 0252 | s(8D600008): LDR SB, MT, MOD6 [Oberon] |
| 0253 | s(80D0000C): LDR R0, SB, VAR12 |
| 0254 | s(A0E00008): STR R0, SP, 8H |
| IF (V.dsct # NIL)u & (vV.dscw.nextx IS TextFrames.Frame)y THENz |
| 0255 | t(80E00008): LDR R0, SP, 8H |
| 0256 | t(D113084C): BLEQ MT [trap=4, pos=4872] |
| 0257 | u(80000004): LDR R0, R0, 4H |
| 0258 | v(E1000104): BEQ 260 [035DH] |
| 0259 | w(80E00008): LDR R0, SP, 8H |
| 025A | w(D113184C): BLEQ MT [trap=4, pos=4888] |
| 025B | x(80000004): LDR R0, R0, 4H |
| 025C | x(D1131D4C): BLEQ MT [trap=4, pos=4893] |
| 025D | y(80000000): LDR R0, R0, 0H |
| 025E | y(E1000005): BEQ 5 [0264H] |
| 025F | y(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 0260 | y(81100004): LDR R1, R1, 4H |
| 0261 | y .FIXUP D |
| 0261 | y(8D80000F): LDR SB, MT, MOD8 [TextFrames] |
| 0262 | y(42D80002): ADD R2, SB, VAR2 |
| 0263 | y(02290001): SUB R2, R2, R1 |
| 0264 | z(E90000F8): BNE 248 [035DH] |
| Text := V.dsca.nextb(TextFrames.Frame)c;d |
| 0265 | a(80E00008): LDR R0, SP, 8H |
| 0266 | a(D1134B4C): BLEQ MT [trap=4, pos=4939] |
| 0267 | b(80000004): LDR R0, R0, 4H |
| 0268 | b(D113504C): BLEQ MT [trap=4, pos=4944] |
| 0269 | c(80000000): LDR R0, R0, 0H |
| 026A | c(E1000005): BEQ 5 [0270H] |
| 026B | c(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 026C | c(81100004): LDR R1, R1, 4H |
| 026D | c .FIXUP D |
| 026D | c(8D80000C): LDR SB, MT, MOD8 [TextFrames] |
| 026E | c(42D80002): ADD R2, SB, VAR2 |
| 026F | c(02290001): SUB R2, R2, R1 |
| 0270 | c(D913622C): BLNE MT [trap=2, pos=4962] |
| 0271 | d(A0E00004): STR R0, SP, 4H |
| prevTime := time;e Oberon.GetSelection(T,f beg,g end,h time)i;j |
| 0272 | e .FIXUP D |
| 0272 | e(8D000005): LDR SB, MT, MOD0 [Edit] |
| 0273 | e(80D00028): LDR R0, SB, 28H [data] |
| 0274 | e(A0E00050): STR R0, SP, 50H |
| 0275 | f(40E80040): ADD R0, SP, 40H |
| 0276 | g(41E80048): ADD R1, SP, 48H |
| 0277 | h(42E8004C): ADD R2, SP, 4CH |
| 0278 | i(43D80028): ADD R3, SB, 28H |
| 0279 | j .FIXUP P |
| 0279 | j(F762903D): BL MOD6 [Oberon] PROC41 |
| IF time > prevTime THENk |
| 027A | k .FIXUP D |
| 027A | k(8D000008): LDR SB, MT, MOD0 [Edit] |
| 027B | k(80D00028): LDR R0, SB, 28H [data] |
| 027C | k(81E00050): LDR R1, SP, 50H |
| 027D | k(00090001): SUB R0, R0, R1 |
| 027E | k(E6000050): BLE 80 [02CFH] |
| Texts.OpenReader(R,l T,m beg)n;o |
| 027F | l(40E8000C): ADD R0, SP, CH |
| 0280 | l .FIXUP D |
| 0280 | l(8D300006): LDR SB, MT, MOD3 [Texts] |
| 0281 | l(41D80002): ADD R1, SB, VAR2 |
| 0282 | m(82E00040): LDR R2, SP, 40H |
| 0283 | n(83E00048): LDR R3, SP, 48H |
| 0284 | o .FIXUP P |
| 0284 | o(F731200B): BL MOD3 [Texts] PROC18 |
| i := 0;p pos := beg;q |
| 0285 | p(40000000): MOV R0, R0, 0H |
| 0286 | p(A0E0005C): STR R0, SP, 5CH |
| 0287 | q(80E00048): LDR R0, SP, 48H |
| 0288 | q(A0E00044): STR R0, SP, 44H |
| REPEAT Texts.Read(R,r pat[i]s)t;u INC(i);v INC(pos) |
| 0289 | r(40E8000C): ADD R0, SP, CH |
| 028A | r .FIXUP D |
| 028A | r(8D30000A): LDR SB, MT, MOD3 [Texts] |
| 028B | r(41D80002): ADD R1, SB, VAR2 |
| 028C | s(82E0005C): LDR R2, SP, 5CH |
| 028D | s(43290020): SUB R3, R2, 20H |
| 028E | s(DA14261C): BLCC MT [trap=1, pos=5158] |
| 028F | s .FIXUP D |
| 028F | s(8D000005): LDR SB, MT, MOD0 [Edit] |
| 0290 | s(02D80002): ADD R2, SB, R2 [global array] |
| 0291 | t(42280030): ADD R2, R2, 30H |
| 0292 | u .FIXUP P |
| 0292 | u(F731300E): BL MOD3 [Texts] PROC19 |
| 0293 | v(80E0005C): LDR R0, SP, 5CH |
| 0294 | v(40080001): ADD R0, R0, 1H |
| 0295 | v(A0E0005C): STR R0, SP, 5CH |
| UNTILw (i = maxlen)x OR (ypos = end)z;a |
| 0296 | w(80E00044): LDR R0, SP, 44H |
| 0297 | w(40080001): ADD R0, R0, 1H |
| 0298 | w(A0E00044): STR R0, SP, 44H |
| 0299 | x(80E0005C): LDR R0, SP, 5CH |
| 029A | x(40090020): SUB R0, R0, 20H |
| 029B | y(E1000004): BEQ 4 [02A0H] |
| 029C | z(80E00044): LDR R0, SP, 44H |
| 029D | z(81E0004C): LDR R1, SP, 4CH |
| 029E | z(00090001): SUB R0, R0, R1 |
| 029F | a(E9FFFFE9): BNE -23 [0289H] |
| M := i;b j := 0;c |
| 02A0 | b(80E0005C): LDR R0, SP, 5CH |
| 02A1 | b .FIXUP D |
| 02A1 | b(8D000012): LDR SB, MT, MOD0 [Edit] |
| 02A2 | b(A0D0002C): STR R0, SB, 2CH [data] |
| 02A3 | c(40000000): MOV R0, R0, 0H |
| 02A4 | c(A0E00060): STR R0, SP, 60H |
| WHILE j # 256 DOd d[j]e := M;f INC(j) ENDg; |
| 02A5 | d(80E00060): LDR R0, SP, 60H |
| 02A6 | d(40090100): SUB R0, R0, 100H |
| 02A7 | d(E100000C): BEQ 12 [02B4H] |
| 02A8 | e(80E00060): LDR R0, SP, 60H |
| 02A9 | e(41090100): SUB R1, R0, 100H |
| 02AA | e(DA149A1C): BLCC MT [trap=1, pos=5274] |
| 02AB | e(40010002): LSL R0, R0, 2H |
| 02AC | e .FIXUP D |
| 02AC | e(8D00000B): LDR SB, MT, MOD0 [Edit] |
| 02AD | e(00D80000): ADD R0, SB, R0 [global array] |
| 02AE | f(81D0002C): LDR R1, SB, 2CH |
| 02AF | f(A1000050): STR R1, R0, 50H |
| 02B0 | g(80E00060): LDR R0, SP, 60H |
| 02B1 | g(40080001): ADD R0, R0, 1H |
| 02B2 | g(A0E00060): STR R0, SP, 60H |
| 02B3 | g(E7FFFFF1): B -15 [02A5H] |
| j := 0;h |
| 02B4 | h(40000000): MOV R0, R0, 0H |
| 02B5 | h(A0E00060): STR R0, SP, 60H |
| WHILE j # M - 1 DOi d[ORD(pat[j]j)]k := M - 1 -l j;m INC(j) ENDn |
| 02B6 | i .FIXUP D |
| 02B6 | i(8D00000A): LDR SB, MT, MOD0 [Edit] |
| 02B7 | i(80D0002C): LDR R0, SB, 2CH [data] |
| 02B8 | i(40090001): SUB R0, R0, 1H |
| 02B9 | i(81E00060): LDR R1, SP, 60H |
| 02BA | i(01190000): SUB R1, R1, R0 |
| 02BB | i(E1000013): BEQ 19 [02CFH] |
| 02BC | j(80E00060): LDR R0, SP, 60H |
| 02BD | j(41090020): SUB R1, R0, 20H |
| 02BE | j(DA14E41C): BLCC MT [trap=1, pos=5348] |
| 02BF | j .FIXUP D |
| 02BF | j(8D000009): LDR SB, MT, MOD0 [Edit] |
| 02C0 | j(00D80000): ADD R0, SB, R0 [global array] |
| 02C1 | k(90000030): LDR R0, R0, 30H |
| 02C2 | k(41090100): SUB R1, R0, 100H |
| 02C3 | k(DA14E61C): BLCC MT [trap=1, pos=5350] |
| 02C4 | k(40010002): LSL R0, R0, 2H |
| 02C5 | k(00D80000): ADD R0, SB, R0 |
| 02C6 | l(81D0002C): LDR R1, SB, 2CH |
| 02C7 | l(41190001): SUB R1, R1, 1H |
| 02C8 | m(82E00060): LDR R2, SP, 60H |
| 02C9 | m(01190002): SUB R1, R1, R2 |
| 02CA | m(A1000050): STR R1, R0, 50H |
| 02CB | n(80E00060): LDR R0, SP, 60H |
| 02CC | n(40080001): ADD R0, R0, 1H |
| 02CD | n(A0E00060): STR R0, SP, 60H |
| 02CE | n(E7FFFFE7): B -25 [02B6H] |
| END; |
| IF Text.hasCaro THENp pos := Text.carlocq.pos ELSEr poss := 0 ENDt; |
| 02CF | o(80E00004): LDR R0, SP, 4H |
| 02D0 | o(D1151F4C): BLEQ MT [trap=4, pos=5407] |
| 02D1 | p(90000044): LDR R0, R0, 44H |
| 02D2 | p(E1000005): BEQ 5 [02D8H] |
| 02D3 | q(80E00004): LDR R0, SP, 4H |
| 02D4 | q(D115374C): BLEQ MT [trap=4, pos=5431] |
| 02D5 | r(8000004C): LDR R0, R0, 4CH |
| 02D6 | r(A0E00044): STR R0, SP, 44H |
| 02D7 | s(E7000002): B 2 [02DAH] |
| 02D8 | t(40000000): MOV R0, R0, 0H |
| 02D9 | t(A0E00044): STR R0, SP, 44H |
| len := Text.textu.lenv;w |
| 02DA | u(80E00004): LDR R0, SP, 4H |
| 02DB | u(D115654C): BLEQ MT [trap=4, pos=5477] |
| 02DC | v(8000001C): LDR R0, R0, 1CH |
| 02DD | v(D115694C): BLEQ MT [trap=4, pos=5481] |
| 02DE | w(80000000): LDR R0, R0, 0H |
| 02DF | w(A0E00054): STR R0, SP, 54H |
| Texts.OpenReader(R,x Text.texty,z pos)a;b |
| 02E0 | x(40E8000C): ADD R0, SP, CH |
| 02E1 | x .FIXUP D |
| 02E1 | x(8D300022): LDR SB, MT, MOD3 [Texts] |
| 02E2 | x(41D80002): ADD R1, SB, VAR2 |
| 02E3 | y(82E00004): LDR R2, SP, 4H |
| 02E4 | y(D1158E4C): BLEQ MT [trap=4, pos=5518] |
| 02E5 | z(8220001C): LDR R2, R2, 1CH |
| 02E6 | a(83E00044): LDR R3, SP, 44H |
| 02E7 | b .FIXUP P |
| 02E7 | b(F7312055): BL MOD3 [Texts] PROC18 |
| Forward(M,c R,d buf)e;f pos := pos + M;g |
| 02E8 | c .FIXUP D |
| 02E8 | c(8D000007): LDR SB, MT, MOD0 [Edit] |
| 02E9 | c(80D0002C): LDR R0, SB, 2CH [data] |
| 02EA | d(41E8000C): ADD R1, SP, CH |
| 02EB | d .FIXUP D |
| 02EB | d(8D300003): LDR SB, MT, MOD3 [Texts] |
| 02EC | d(42D80002): ADD R2, SB, VAR2 |
| 02ED | e(43E80064): ADD R3, SP, 64H |
| 02EE | e(44000020): MOV R4, R0, 20H |
| 02EF | f(F7FFFF19): BL -231 [0209H] |
| 02F0 | g(80E00044): LDR R0, SP, 44H |
| 02F1 | g .FIXUP D |
| 02F1 | g(8D000006): LDR SB, MT, MOD0 [Edit] |
| 02F2 | g(81D0002C): LDR R1, SB, 2CH [data] |
| 02F3 | g(00080001): ADD R0, R0, R1 |
| 02F4 | g(A0E00044): STR R0, SP, 44H |
| j := M;h |
| 02F5 | h(80D0002C): LDR R0, SB, 2CH |
| 02F6 | h(A0E00060): STR R0, SP, 60H |
| REPEAT DEC(j) UNTILi (j < 0)j OR (kbuf[j]l # pat[j]m)n;o |
| 02F7 | i(80E00060): LDR R0, SP, 60H |
| 02F8 | i(40090001): SUB R0, R0, 1H |
| 02F9 | i(A0E00060): STR R0, SP, 60H |
| 02FA | j(80E00060): LDR R0, SP, 60H |
| 02FB | j(40090000): SUB R0, R0, 0H |
| 02FC | k(E500000D): BLT 13 [030AH] |
| 02FD | l(80E00060): LDR R0, SP, 60H |
| 02FE | l(41090020): SUB R1, R0, 20H |
| 02FF | l(DA15FA1C): BLCC MT [trap=1, pos=5626] |
| 0300 | l(00E80000): ADD R0, SP, R0 |
| 0301 | m(81E00060): LDR R1, SP, 60H |
| 0302 | m(42190020): SUB R2, R1, 20H |
| 0303 | m(DA16031C): BLCC MT [trap=1, pos=5635] |
| 0304 | m .FIXUP D |
| 0304 | m(8D000013): LDR SB, MT, MOD0 [Edit] |
| 0305 | m(01D80001): ADD R1, SB, R1 [global array] |
| 0306 | n(90000064): LDR R0, R0, 64H |
| 0307 | n(91100030): LDR R1, R1, 30H |
| 0308 | n(00090001): SUB R0, R0, R1 |
| 0309 | o(E1FFFFED): BEQ -19 [02F7H] |
| WHILE (j >= 0)p & (qpos < len)r DOs |
| 030A | p(80E00060): LDR R0, SP, 60H |
| 030B | p(40090000): SUB R0, R0, 0H |
| 030C | q(E5000033): BLT 51 [0340H] |
| 030D | r(80E00044): LDR R0, SP, 44H |
| 030E | r(81E00054): LDR R1, SP, 54H |
| 030F | r(00090001): SUB R0, R0, R1 |
| 0310 | s(ED00002F): BGE 47 [0340H] |
| n := d[ORD(buf[M-1]t)]u;v Forward(n,w R,x buf)y;z INC(pos, n);a j := M;b |
| 0311 | t .FIXUP D |
| 0311 | t(8D00000D): LDR SB, MT, MOD0 [Edit] |
| 0312 | t(80D0002C): LDR R0, SB, 2CH [data] |
| 0313 | t(40090001): SUB R0, R0, 1H |
| 0314 | t(41090020): SUB R1, R0, 20H |
| 0315 | t(DA16471C): BLCC MT [trap=1, pos=5703] |
| 0316 | t(00E80000): ADD R0, SP, R0 |
| 0317 | u(90000064): LDR R0, R0, 64H |
| 0318 | u(41090100): SUB R1, R0, 100H |
| 0319 | u(DA16491C): BLCC MT [trap=1, pos=5705] |
| 031A | u(40010002): LSL R0, R0, 2H |
| 031B | u(00D80000): ADD R0, SB, R0 |
| 031C | v(80000050): LDR R0, R0, 50H |
| 031D | v(A0E00058): STR R0, SP, 58H |
| 031E | w(80E00058): LDR R0, SP, 58H |
| 031F | x(41E8000C): ADD R1, SP, CH |
| 0320 | x .FIXUP D |
| 0320 | x(8D30000F): LDR SB, MT, MOD3 [Texts] |
| 0321 | x(42D80002): ADD R2, SB, VAR2 |
| 0322 | y(43E80064): ADD R3, SP, 64H |
| 0323 | y(44000020): MOV R4, R0, 20H |
| 0324 | z(F7FFFEE4): BL -284 [0209H] |
| 0325 | a(80E00044): LDR R0, SP, 44H |
| 0326 | a(81E00058): LDR R1, SP, 58H |
| 0327 | a(00080001): ADD R0, R0, R1 |
| 0328 | a(A0E00044): STR R0, SP, 44H |
| 0329 | b .FIXUP D |
| 0329 | b(8D000009): LDR SB, MT, MOD0 [Edit] |
| 032A | b(80D0002C): LDR R0, SB, 2CH [data] |
| 032B | b(A0E00060): STR R0, SP, 60H |
| REPEAT DEC(j) UNTILc (j < 0)d OR (ebuf[j]f # pat[j]g)h |
| 032C | c(80E00060): LDR R0, SP, 60H |
| 032D | c(40090001): SUB R0, R0, 1H |
| 032E | c(A0E00060): STR R0, SP, 60H |
| 032F | d(80E00060): LDR R0, SP, 60H |
| 0330 | d(40090000): SUB R0, R0, 0H |
| 0331 | e(E500000D): BLT 13 [033FH] |
| 0332 | f(80E00060): LDR R0, SP, 60H |
| 0333 | f(41090020): SUB R1, R0, 20H |
| 0334 | f(DA16A21C): BLCC MT [trap=1, pos=5794] |
| 0335 | f(00E80000): ADD R0, SP, R0 |
| 0336 | g(81E00060): LDR R1, SP, 60H |
| 0337 | g(42190020): SUB R2, R1, 20H |
| 0338 | g(DA16AB1C): BLCC MT [trap=1, pos=5803] |
| 0339 | g .FIXUP D |
| 0339 | g(8D000010): LDR SB, MT, MOD0 [Edit] |
| 033A | g(01D80001): ADD R1, SB, R1 [global array] |
| 033B | h(90000064): LDR R0, R0, 64H |
| 033C | h(91100030): LDR R1, R1, 30H |
| 033D | h(00090001): SUB R0, R0, R1 |
| ENDi ; |
| 033E | i(E1FFFFED): BEQ -19 [032CH] |
| 033F | i(E7FFFFCA): B -54 [030AH] |
| IF j < 0 THENj |
| 0340 | j(80E00060): LDR R0, SP, 60H |
| 0341 | j(40090000): SUB R0, R0, 0H |
| 0342 | j(ED00001A): BGE 26 [035DH] |
| TextFrames.RemoveSelection(Text)k;l TextFrames.RemoveCaret(Text)m;n |
| 0343 | k(80E00004): LDR R0, SP, 4H |
| 0344 | l .FIXUP P |
| 0344 | l(F781805D): BL MOD8 [TextFrames] PROC24 |
| 0345 | m(80E00004): LDR R0, SP, 4H |
| 0346 | n .FIXUP P |
| 0346 | n(F7815002): BL MOD8 [TextFrames] PROC21 |
| Oberon.RemoveMarks(Text.Xo,p Text.Yq,r Text.Ws,t Text.Hu)v;w |
| 0347 | o(80E00004): LDR R0, SP, 4H |
| 0348 | o(D117364C): BLEQ MT [trap=4, pos=5942] |
| 0349 | p(80000008): LDR R0, R0, 8H |
| 034A | q(81E00004): LDR R1, SP, 4H |
| 034B | q(D1173E4C): BLEQ MT [trap=4, pos=5950] |
| 034C | r(8110000C): LDR R1, R1, CH |
| 034D | s(82E00004): LDR R2, SP, 4H |
| 034E | s(D117464C): BLEQ MT [trap=4, pos=5958] |
| 034F | t(82200010): LDR R2, R2, 10H |
| 0350 | u(83E00004): LDR R3, SP, 4H |
| 0351 | u(D1174E4C): BLEQ MT [trap=4, pos=5966] |
| 0352 | v(83300014): LDR R3, R3, 14H |
| 0353 | w .FIXUP P |
| 0353 | w(F761B00D): BL MOD6 [Oberon] PROC27 |
| TextFrames.Show(Text,x pos - 300)y;z Oberon.PassFocus(V)a;b |
| 0354 | x(80E00004): LDR R0, SP, 4H |
| 0355 | y(81E00044): LDR R1, SP, 44H |
| 0356 | y(4119012C): SUB R1, R1, 12CH |
| 0357 | z .FIXUP P |
| 0357 | z(F7811004): BL MOD8 [TextFrames] PROC17 |
| 0358 | a(80E00008): LDR R0, SP, 8H |
| 0359 | b .FIXUP P |
| 0359 | b(F7625002): BL MOD6 [Oberon] PROC37 |
| TextFrames.SetCaret(Text,c pos)d |
| 035A | c(80E00004): LDR R0, SP, 4H |
| 035B | d(81E00044): LDR R1, SP, 44H |
| ENDe |
| 035C | e .FIXUP P |
| 035C | e(F7813003): BL MOD8 [TextFrames] PROC19 |
| END |
| ENDf Search; |
| 035D | f(8FE00000): LDR LNK, SP, 0H |
| 035E | f(4EE80084): ADD SP, SP, 84H |
| 035F | f(C700000F): B LNK |
| |
| PROCEDURE Locate*; |
| VAR Text: TextFrames.Frame; |
| T: Texts.Text; S: Texts.Scanner; |
| V: Viewers.Viewer; |
| beg, end, time: LONGINT; |
| BEGINg |
| 0360 | g .PROC 8 |
| 0360 | g .COMMAND Locate |
| 0360 | g(4EE90090): SUB SP, SP, 90H |
| 0361 | g(AFE00000): STR LNK, SP, 0H |
| V := Oberon.FocusViewer;h |
| 0362 | h .FIXUP D |
| 0362 | h(8D600029): LDR SB, MT, MOD6 [Oberon] |
| 0363 | h(80D0000C): LDR R0, SB, VAR12 |
| 0364 | h(A0E00080): STR R0, SP, 80H |
| IF (V.dsci # NIL)j & (kV.dscl.nextm IS TextFrames.Frame)n THENo |
| 0365 | i(80E00080): LDR R0, SP, 80H |
| 0366 | i(D1189E4C): BLEQ MT [trap=4, pos=6302] |
| 0367 | j(80000004): LDR R0, R0, 4H |
| 0368 | k(E1000052): BEQ 82 [03BBH] |
| 0369 | l(80E00080): LDR R0, SP, 80H |
| 036A | l(D118AE4C): BLEQ MT [trap=4, pos=6318] |
| 036B | m(80000004): LDR R0, R0, 4H |
| 036C | m(D118B34C): BLEQ MT [trap=4, pos=6323] |
| 036D | n(80000000): LDR R0, R0, 0H |
| 036E | n(E1000005): BEQ 5 [0374H] |
| 036F | n(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 0370 | n(81100004): LDR R1, R1, 4H |
| 0371 | n .FIXUP D |
| 0371 | n(8D80000F): LDR SB, MT, MOD8 [TextFrames] |
| 0372 | n(42D80002): ADD R2, SB, VAR2 |
| 0373 | n(02290001): SUB R2, R2, R1 |
| 0374 | o(E9000046): BNE 70 [03BBH] |
| Text := V.dscp.nextq(TextFrames.Frame)r;s |
| 0375 | p(80E00080): LDR R0, SP, 80H |
| 0376 | p(D118E14C): BLEQ MT [trap=4, pos=6369] |
| 0377 | q(80000004): LDR R0, R0, 4H |
| 0378 | q(D118E64C): BLEQ MT [trap=4, pos=6374] |
| 0379 | r(80000000): LDR R0, R0, 0H |
| 037A | r(E1000005): BEQ 5 [0380H] |
| 037B | r(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 037C | r(81100004): LDR R1, R1, 4H |
| 037D | r .FIXUP D |
| 037D | r(8D80000C): LDR SB, MT, MOD8 [TextFrames] |
| 037E | r(42D80002): ADD R2, SB, VAR2 |
| 037F | r(02290001): SUB R2, R2, R1 |
| 0380 | r(D918F82C): BLNE MT [trap=2, pos=6392] |
| 0381 | s(A0E00004): STR R0, SP, 4H |
| Oberon.GetSelection(T,t beg,u end,v time)w;x |
| 0382 | t(40E80008): ADD R0, SP, 8H |
| 0383 | u(41E80084): ADD R1, SP, 84H |
| 0384 | v(42E80088): ADD R2, SP, 88H |
| 0385 | w(43E8008C): ADD R3, SP, 8CH |
| 0386 | x .FIXUP P |
| 0386 | x(F762902A): BL MOD6 [Oberon] PROC41 |
| IF time >= 0 THENy |
| 0387 | y(80E0008C): LDR R0, SP, 8CH |
| 0388 | y(40090000): SUB R0, R0, 0H |
| 0389 | y(E5000031): BLT 49 [03BBH] |
| Texts.OpenScanner(S,z T,a beg)b;c |
| 038A | z(40E8000C): ADD R0, SP, CH |
| 038B | z .FIXUP D |
| 038B | z(8D30000E): LDR SB, MT, MOD3 [Texts] |
| 038C | z(41D80003): ADD R1, SB, VAR3 |
| 038D | a(82E00008): LDR R2, SP, 8H |
| 038E | b(83E00084): LDR R3, SP, 84H |
| 038F | c .FIXUP P |
| 038F | c(F7315009): BL MOD3 [Texts] PROC21 |
| REPEAT Texts.Scan(S)d UNTILe (S.class >= Texts.Int)f;g (*skip names*) |
| 0390 | d(40E8000C): ADD R0, SP, CH |
| 0391 | d .FIXUP D |
| 0391 | d(8D300006): LDR SB, MT, MOD3 [Texts] |
| 0392 | d(41D80003): ADD R1, SB, VAR3 |
| 0393 | e .FIXUP P |
| 0393 | e(F7316004): BL MOD3 [Texts] PROC22 |
| 0394 | f(80E00048): LDR R0, SP, 48H |
| 0395 | f(40090003): SUB R0, R0, 3H |
| 0396 | g(E5FFFFF9): BLT -7 [0390H] |
| IF S.class = Texts.Int THENh |
| 0397 | h(80E00048): LDR R0, SP, 48H |
| 0398 | h(40090003): SUB R0, R0, 3H |
| 0399 | h(E9000021): BNE 33 [03BBH] |
| TextFrames.RemoveSelection(Text)i;j |
| 039A | i(80E00004): LDR R0, SP, 4H |
| 039B | j .FIXUP P |
| 039B | j(F7818008): BL MOD8 [TextFrames] PROC24 |
| TextFrames.RemoveCaret(Text)k;l |
| 039C | k(80E00004): LDR R0, SP, 4H |
| 039D | l .FIXUP P |
| 039D | l(F7815002): BL MOD8 [TextFrames] PROC21 |
| Oberon.RemoveMarks(Text.Xm,n Text.Yo,p Text.Wq,r Text.Hs)t;u |
| 039E | m(80E00004): LDR R0, SP, 4H |
| 039F | m(D11A4B4C): BLEQ MT [trap=4, pos=6731] |
| 03A0 | n(80000008): LDR R0, R0, 8H |
| 03A1 | o(81E00004): LDR R1, SP, 4H |
| 03A2 | o(D11A534C): BLEQ MT [trap=4, pos=6739] |
| 03A3 | p(8110000C): LDR R1, R1, CH |
| 03A4 | q(82E00004): LDR R2, SP, 4H |
| 03A5 | q(D11A5B4C): BLEQ MT [trap=4, pos=6747] |
| 03A6 | r(82200010): LDR R2, R2, 10H |
| 03A7 | s(83E00004): LDR R3, SP, 4H |
| 03A8 | s(D11A634C): BLEQ MT [trap=4, pos=6755] |
| 03A9 | t(83300014): LDR R3, R3, 14H |
| 03AA | u .FIXUP P |
| 03AA | u(F761B00D): BL MOD6 [Oberon] PROC27 |
| TextFrames.Show(Text,v Max(0w,x S.i - 200)y)z;a |
| 03AB | v(80E00004): LDR R0, SP, 4H |
| 03AC | w(4EE90004): SUB SP, SP, 4H |
| 03AD | w(A0E00000): STR R0, SP, 0H |
| 03AE | x(40000000): MOV R0, R0, 0H |
| 03AF | y(81E00050): LDR R1, SP, 50H |
| 03B0 | y(411900C8): SUB R1, R1, C8H |
| 03B1 | z(F7FFFC4E): BL -946 [0000H] |
| 03B2 | z(01000000): MOV R1, R0, R0 |
| 03B3 | z(80E00000): LDR R0, SP, 0H |
| 03B4 | z(4EE80004): ADD SP, SP, 4H |
| 03B5 | a .FIXUP P |
| 03B5 | a(F781100B): BL MOD8 [TextFrames] PROC17 |
| Oberon.PassFocus(V)b;c |
| 03B6 | b(80E00080): LDR R0, SP, 80H |
| 03B7 | c .FIXUP P |
| 03B7 | c(F7625002): BL MOD6 [Oberon] PROC37 |
| TextFrames.SetCaret(Text,d S.i)e |
| 03B8 | d(80E00004): LDR R0, SP, 4H |
| 03B9 | e(81E0004C): LDR R1, SP, 4CH |
| ENDf |
| 03BA | f .FIXUP P |
| 03BA | f(F7813003): BL MOD8 [TextFrames] PROC19 |
| END |
| END |
| ENDg Locate; |
| 03BB | g(8FE00000): LDR LNK, SP, 0H |
| 03BC | g(4EE80090): ADD SP, SP, 90H |
| 03BD | g(C700000F): B LNK |
| |
| PROCEDURE Recall*; |
| VAR Menu, Main: Display.Frame; |
| buf: Texts.Buffer; |
| V: Viewers.Viewer; |
| pos: LONGINT; |
| M: TextFrames.Frame; |
| BEGINh V := Oberon.FocusViewer;i |
| 03BE | h .PROC 9 |
| 03BE | h .COMMAND Recall |
| 03BE | h(4EE9001C): SUB SP, SP, 1CH |
| 03BF | h(AFE00000): STR LNK, SP, 0H |
| 03C0 | i .FIXUP D |
| 03C0 | i(8D60002F): LDR SB, MT, MOD6 [Oberon] |
| 03C1 | i(80D0000C): LDR R0, SB, VAR12 |
| 03C2 | i(A0E00010): STR R0, SP, 10H |
| IF (V # NIL)j & (kV IS MenuViewers.Viewer)l THENm |
| 03C3 | j(80E00010): LDR R0, SP, 10H |
| 03C4 | k(E1000067): BEQ 103 [042CH] |
| 03C5 | l(80E00010): LDR R0, SP, 10H |
| 03C6 | l(E1000005): BEQ 5 [03CCH] |
| 03C7 | l(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 03C8 | l(81100008): LDR R1, R1, 8H |
| 03C9 | l .FIXUP D |
| 03C9 | l(8D700009): LDR SB, MT, MOD7 [MenuViewers] |
| 03CA | l(42D80001): ADD R2, SB, VAR1 |
| 03CB | l(02290001): SUB R2, R2, R1 |
| 03CC | m(E900005F): BNE 95 [042CH] |
| Menu := V.dscn;o Main := V.dscp.nextq;r |
| 03CD | n(80E00010): LDR R0, SP, 10H |
| 03CE | n(D11C0E4C): BLEQ MT [trap=4, pos=7182] |
| 03CF | o(80000004): LDR R0, R0, 4H |
| 03D0 | o(A0E00004): STR R0, SP, 4H |
| 03D1 | p(80E00010): LDR R0, SP, 10H |
| 03D2 | p(D11C1D4C): BLEQ MT [trap=4, pos=7197] |
| 03D3 | q(80000004): LDR R0, R0, 4H |
| 03D4 | q(D11C224C): BLEQ MT [trap=4, pos=7202] |
| 03D5 | r(80000000): LDR R0, R0, 0H |
| 03D6 | r(A0E00008): STR R0, SP, 8H |
| IF Main IS TextFrames.Frame THENs |
| 03D7 | s(80E00008): LDR R0, SP, 8H |
| 03D8 | s(E1000005): BEQ 5 [03DEH] |
| 03D9 | s(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 03DA | s(81100004): LDR R1, R1, 4H |
| 03DB | s .FIXUP D |
| 03DB | s(8D800012): LDR SB, MT, MOD8 [TextFrames] |
| 03DC | s(42D80002): ADD R2, SB, VAR2 |
| 03DD | s(02290001): SUB R2, R2, R1 |
| 03DE | s(E9000023): BNE 35 [0402H] |
| M := Main(TextFrames.Frame)t;u |
| 03DF | t(80E00008): LDR R0, SP, 8H |
| 03E0 | t(E1000005): BEQ 5 [03E6H] |
| 03E1 | t(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 03E2 | t(81100004): LDR R1, R1, 4H |
| 03E3 | t .FIXUP D |
| 03E3 | t(8D800008): LDR SB, MT, MOD8 [TextFrames] |
| 03E4 | t(42D80002): ADD R2, SB, VAR2 |
| 03E5 | t(02290001): SUB R2, R2, R1 |
| 03E6 | t(D91C6E2C): BLNE MT [trap=2, pos=7278] |
| 03E7 | u(A0E00018): STR R0, SP, 18H |
| IF M.hasCarv THENw |
| 03E8 | v(80E00018): LDR R0, SP, 18H |
| 03E9 | v(D11C834C): BLEQ MT [trap=4, pos=7299] |
| 03EA | w(90000044): LDR R0, R0, 44H |
| 03EB | w(E1000015): BEQ 21 [0401H] |
| TextFrames.Recall(buf)x;y |
| 03EC | x(40E8000C): ADD R0, SP, CH |
| 03ED | y .FIXUP P |
| 03ED | y(F781E033): BL MOD8 [TextFrames] PROC30 |
| pos := M.carlocz.pos + buf.lena;b |
| 03EE | z(80E00018): LDR R0, SP, 18H |
| 03EF | z(D11CC44C): BLEQ MT [trap=4, pos=7364] |
| 03F0 | a(81E0000C): LDR R1, SP, CH |
| 03F1 | a(D11CD24C): BLEQ MT [trap=4, pos=7378] |
| 03F2 | b(8000004C): LDR R0, R0, 4CH |
| 03F3 | b(81100000): LDR R1, R1, 0H |
| 03F4 | b(00080001): ADD R0, R0, R1 |
| 03F5 | b(A0E00014): STR R0, SP, 14H |
| Texts.Insert(M.textc,d M.carloce.pos,f buf)g;h |
| 03F6 | c(80E00018): LDR R0, SP, 18H |
| 03F7 | c(D11CF14C): BLEQ MT [trap=4, pos=7409] |
| 03F8 | d(8000001C): LDR R0, R0, 1CH |
| 03F9 | e(81E00018): LDR R1, SP, 18H |
| 03FA | e(D11CFB4C): BLEQ MT [trap=4, pos=7419] |
| 03FB | f(8110004C): LDR R1, R1, 4CH |
| 03FC | g(82E0000C): LDR R2, SP, CH |
| 03FD | h .FIXUP P |
| 03FD | h(F730D010): BL MOD3 [Texts] PROC13 |
| TextFrames.SetCaret(M,i pos)j |
| 03FE | i(80E00018): LDR R0, SP, 18H |
| 03FF | j(81E00014): LDR R1, SP, 14H |
| ENDk |
| 0400 | k .FIXUP P |
| 0400 | k(F7813003): BL MOD8 [TextFrames] PROC19 |
| ELSIF Menul IS TextFrames.Frame THENm |
| 0401 | l(E700002A): B 42 [042CH] |
| 0402 | m(80E00004): LDR R0, SP, 4H |
| 0403 | m(E1000005): BEQ 5 [0409H] |
| 0404 | m(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 0405 | m(81100004): LDR R1, R1, 4H |
| 0406 | m .FIXUP D |
| 0406 | m(8D800023): LDR SB, MT, MOD8 [TextFrames] |
| 0407 | m(42D80002): ADD R2, SB, VAR2 |
| 0408 | m(02290001): SUB R2, R2, R1 |
| 0409 | m(E9000022): BNE 34 [042CH] |
| M := Menu(TextFrames.Frame)n;o |
| 040A | n(80E00004): LDR R0, SP, 4H |
| 040B | n(E1000005): BEQ 5 [0411H] |
| 040C | n(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 040D | n(81100004): LDR R1, R1, 4H |
| 040E | n .FIXUP D |
| 040E | n(8D800008): LDR SB, MT, MOD8 [TextFrames] |
| 040F | n(42D80002): ADD R2, SB, VAR2 |
| 0410 | n(02290001): SUB R2, R2, R1 |
| 0411 | n(D91D862C): BLNE MT [trap=2, pos=7558] |
| 0412 | o(A0E00018): STR R0, SP, 18H |
| IF M.hasCarp THENq |
| 0413 | p(80E00018): LDR R0, SP, 18H |
| 0414 | p(D11D9B4C): BLEQ MT [trap=4, pos=7579] |
| 0415 | q(90000044): LDR R0, R0, 44H |
| 0416 | q(E1000015): BEQ 21 [042CH] |
| TextFrames.Recall(buf)r;s |
| 0417 | r(40E8000C): ADD R0, SP, CH |
| 0418 | s .FIXUP P |
| 0418 | s(F781E018): BL MOD8 [TextFrames] PROC30 |
| pos := M.carloct.pos + buf.lenu;v |
| 0419 | t(80E00018): LDR R0, SP, 18H |
| 041A | t(D11DDC4C): BLEQ MT [trap=4, pos=7644] |
| 041B | u(81E0000C): LDR R1, SP, CH |
| 041C | u(D11DEA4C): BLEQ MT [trap=4, pos=7658] |
| 041D | v(8000004C): LDR R0, R0, 4CH |
| 041E | v(81100000): LDR R1, R1, 0H |
| 041F | v(00080001): ADD R0, R0, R1 |
| 0420 | v(A0E00014): STR R0, SP, 14H |
| Texts.Insert(M.textw,x M.carlocy.pos,z buf)a;b |
| 0421 | w(80E00018): LDR R0, SP, 18H |
| 0422 | w(D11E094C): BLEQ MT [trap=4, pos=7689] |
| 0423 | x(8000001C): LDR R0, R0, 1CH |
| 0424 | y(81E00018): LDR R1, SP, 18H |
| 0425 | y(D11E134C): BLEQ MT [trap=4, pos=7699] |
| 0426 | z(8110004C): LDR R1, R1, 4CH |
| 0427 | a(82E0000C): LDR R2, SP, CH |
| 0428 | b .FIXUP P |
| 0428 | b(F730D010): BL MOD3 [Texts] PROC13 |
| TextFrames.SetCaret(M,c pos)d |
| 0429 | c(80E00018): LDR R0, SP, 18H |
| 042A | d(81E00014): LDR R1, SP, 14H |
| ENDe |
| 042B | e .FIXUP P |
| 042B | e(F7813003): BL MOD8 [TextFrames] PROC19 |
| END |
| END |
| ENDf Recall; |
| 042C | f(8FE00000): LDR LNK, SP, 0H |
| 042D | f(4EE8001C): ADD SP, SP, 1CH |
| 042E | f(C700000F): B LNK |
| |
| BEGINg Texts.OpenWriter(W)h |
| 042F | g .PROC 0 |
| 042F | g .ENTRYPOINT |
| 042F | g(4EE90004): SUB SP, SP, 4H |
| 0430 | g(AFE00000): STR LNK, SP, 0H |
| 0431 | h .FIXUP D |
| 0431 | h(8D000023): LDR SB, MT, MOD0 [Edit] |
| 0432 | h(40D80000): ADD R0, SB, 0H [data] |
| 0433 | h .FIXUP D |
| 0433 | h(8D300002): LDR SB, MT, MOD3 [Texts] |
| 0434 | h(41D80005): ADD R1, SB, VAR5 |
| ENDi Edit.j |
| 0435 | i .FIXUP P |
| 0435 | i(F731700A): BL MOD3 [Texts] PROC23 |
| 0436 | j(8FE00000): LDR LNK, SP, 0H |
| 0437 | j(4EE80004): ADD SP, SP, 4H |
| 0438 | j(C700000F): B LNK |