| MODULE MenuViewers; (*JG 26.8.90 / 16.9.93 / NW 10.3.2013*) |
| .MODULE MenuViewers (KEY 245ACC30, VERSION 1, SIZE 000018CC) |
| .IMPORT Input (KEY 5DE391A8) |
| .IMPORT Display (KEY 4C08D3EA) |
| .IMPORT Viewers (KEY 25ABF199) |
| .IMPORT Oberon (KEY A89CCEE2) |
| .IMPORT Fonts (KEY F4C9F557) |
| .IMPORT Texts (KEY 0B9E9984) |
| .TYPEDESC 00000040 03001001 00000001 FFFFFFFF 00000004 00000000 00000000 00000004 FFFFFFFF 00000020 00024008 FFFFFFFF FFFFFFFF FFFFFFFF |
| .FIXUP T AH |
| IMPORT Input, Display, Viewers, Oberon; |
| |
| CONST extend* = 0; reduce* = 1; FrameColor = Display.white; |
| |
| TYPE Viewer* = POINTER TO ViewerDesc; |
| |
| ViewerDesc* = RECORD (Viewers.ViewerDesc) |
| menuH*: INTEGER |
| END; |
| |
| ModifyMsg* = RECORD (Display.FrameMsg) |
| id*: INTEGER; |
| dY*, Y*, H*: INTEGER |
| END; |
| |
| PROCEDURE Copy (V: Viewer; VAR V1: Viewer); |
| VAR Menu, Main: Display.Frame; M: Oberon.CopyMsg; |
| BEGINa Menu := V.dscb;c Main := V.dscd.nexte;f |
0000 | a .PROC 1 |
0000 | a(4EE90018): SUB SP, SP, 18H |
0001 | a(AFE00000): STR LNK, SP, 0H |
0002 | a(A0E00004): STR R0, SP, 4H |
0003 | a(A1E00008): STR R1, SP, 8H |
0004 | b(80E00004): LDR R0, SP, 4H |
0005 | b(D101FA4C): BLEQ MT [trap=4, pos=506] |
0006 | c(80000004): LDR R0, R0, 4H |
0007 | c(A0E0000C): STR R0, SP, CH |
0008 | d(80E00004): LDR R0, SP, 4H |
0009 | d .PROC 2 |
0009 | d(D102094C): BLEQ MT [trap=4, pos=521] |
000A | e(80000004): LDR R0, R0, 4H |
000B | e(D1020E4C): BLEQ MT [trap=4, pos=526] |
000C | f(80000000): LDR R0, R0, 0H |
000D | f(A0E00010): STR R0, SP, 10H |
| NEW(V1);g V1^ :=h V^;i V1.statej := 0;k |
000E | g(80E00008): LDR R0, SP, 8H |
000F | g .FIXUP D |
000F | g(8D00000F): LDR SB, MT, MOD0 [MenuViewers] |
0010 | g(41D80000): ADD R1, SB, 0H [data] |
0011 | g(D7021C0C): BL MT [trap=0, pos=540] |
0012 | h(80E00008): LDR R0, SP, 8H |
0013 | h(80000000): LDR R0, R0, 0H |
0014 | h(D102234C): BLEQ MT [trap=4, pos=547] |
0015 | i(81E00004): LDR R1, SP, 4H |
0016 | i(D102274C): BLEQ MT [trap=4, pos=551] |
0017 | i(42000009): MOV R2, R0, 9H |
0018 | i(83100000): LDR R3, R1, 0H |
0019 | i(41180004): ADD R1, R1, 4H |
001A | i(A3000000): STR R3, R0, 0H |
001B | i(40080004): ADD R0, R0, 4H |
001C | i(42290001): SUB R2, R2, 1H |
001D | i(E9FFFFFA): BNE -6 [0018H] |
001E | j(80E00008): LDR R0, SP, 8H |
001F | j(80000000): LDR R0, R0, 0H |
0020 | j(D102304C): BLEQ MT [trap=4, pos=560] |
0021 | k(41000000): MOV R1, R0, 0H |
0022 | k(A100001C): STR R1, R0, 1CH |
| M.F := NIL;l Menu.handlem(Menun,o M)p;q V1.dscr := M.F;s |
0023 | l(40000000): MOV R0, R0, 0H |
0024 | l(A0E00014): STR R0, SP, 14H |
0025 | m(80E0000C): LDR R0, SP, CH |
0026 | m(D102524C): BLEQ MT [trap=4, pos=594] |
0027 | n(80000018): LDR R0, R0, 18H |
0028 | n(4EE90004): SUB SP, SP, 4H |
0029 | n(A0E00000): STR R0, SP, 0H |
002A | o(80E00010): LDR R0, SP, 10H |
002B | p(41E80018): ADD R1, SP, 18H |
002C | p .FIXUP D |
002C | p(8D40001D): LDR SB, MT, MOD4 [Oberon] |
002D | p(42D80006): ADD R2, SB, VAR6 |
002E | q(83E00000): LDR R3, SP, 0H |
002F | q(4EE80004): ADD SP, SP, 4H |
0030 | q(D1025C5C): BLEQ MT [trap=5, pos=604] |
0031 | q(D7000003): BL R3 |
0032 | r(80E00008): LDR R0, SP, 8H |
0033 | r(80000000): LDR R0, R0, 0H |
0034 | r(D102634C): BLEQ MT [trap=4, pos=611] |
0035 | s(81E00014): LDR R1, SP, 14H |
0036 | s(A1000004): STR R1, R0, 4H |
| M.F := NIL;t Main.handleu(Mainv,w M)x;y V1.dscz.nexta := M.F |
0037 | t(40000000): MOV R0, R0, 0H |
0038 | t(A0E00014): STR R0, SP, 14H |
0039 | u(80E00010): LDR R0, SP, 10H |
003A | u(D102874C): BLEQ MT [trap=4, pos=647] |
003B | v(80000018): LDR R0, R0, 18H |
003C | v(4EE90004): SUB SP, SP, 4H |
003D | v(A0E00000): STR R0, SP, 0H |
003E | w(80E00014): LDR R0, SP, 14H |
003F | x(41E80018): ADD R1, SP, 18H |
0040 | x .FIXUP D |
0040 | x(8D400014): LDR SB, MT, MOD4 [Oberon] |
0041 | x(42D80006): ADD R2, SB, VAR6 |
0042 | y(83E00000): LDR R3, SP, 0H |
0043 | y(4EE80004): ADD SP, SP, 4H |
0044 | y(D102915C): BLEQ MT [trap=5, pos=657] |
0045 | y(D7000003): BL R3 |
0046 | z(80E00008): LDR R0, SP, 8H |
0047 | z(80000000): LDR R0, R0, 0H |
0048 | z(D102984C): BLEQ MT [trap=4, pos=664] |
0049 | a(80000004): LDR R0, R0, 4H |
004A | a(D1029D4C): BLEQ MT [trap=4, pos=669] |
| ENDb Copy; |
004B | b(81E00014): LDR R1, SP, 14H |
004C | b(A1000000): STR R1, R0, 0H |
004D | b(8FE00000): LDR LNK, SP, 0H |
004E | b(4EE80018): ADD SP, SP, 18H |
004F | b(C700000F): B LNK |
| |
| PROCEDURE Draw (V: Viewers.Viewer); |
| BEGINc |
0050 | c(4EE90008): SUB SP, SP, 8H |
0051 | c(AFE00000): STR LNK, SP, 0H |
0052 | c(A0E00004): STR R0, SP, 4H |
| Display.ReplConst(FrameColor,d V.Xe,f V.Yg,h 1,i V.Hj,k Display.replace)l;m |
0053 | d(40000001): MOV R0, R0, 1H |
0054 | e(81E00004): LDR R1, SP, 4H |
0055 | e(D103054C): BLEQ MT [trap=4, pos=773] |
0056 | f(81100008): LDR R1, R1, 8H |
0057 | g(82E00004): LDR R2, SP, 4H |
0058 | g(D1030A4C): BLEQ MT [trap=4, pos=778] |
0059 | h(8220000C): LDR R2, R2, CH |
005A | i(43000001): MOV R3, R0, 1H |
005B | j(84E00004): LDR R4, SP, 4H |
005C | j(D103124C): BLEQ MT [trap=4, pos=786] |
005D | k(84400014): LDR R4, R4, 14H |
005E | l(45000000): MOV R5, R0, 0H |
005F | m .FIXUP P |
005F | m(F720F05F): BL MOD2 [Display] PROC15 |
| Display.ReplConst(FrameColor,n V.Xo + V.Wp -q 1,r V.Ys,t 1,u V.Hv,w Display.replace)x;y |
0060 | n(40000001): MOV R0, R0, 1H |
0061 | o(81E00004): LDR R1, SP, 4H |
0062 | o(D1034B4C): BLEQ MT [trap=4, pos=843] |
0063 | p(82E00004): LDR R2, SP, 4H |
0064 | p(D103514C): BLEQ MT [trap=4, pos=849] |
0065 | q(81100008): LDR R1, R1, 8H |
0066 | q(82200010): LDR R2, R2, 10H |
0067 | q(01180002): ADD R1, R1, R2 |
0068 | r(41190001): SUB R1, R1, 1H |
0069 | s(82E00004): LDR R2, SP, 4H |
006A | s(D1035A4C): BLEQ MT [trap=4, pos=858] |
006B | t(8220000C): LDR R2, R2, CH |
006C | u(43000001): MOV R3, R0, 1H |
006D | v(84E00004): LDR R4, SP, 4H |
006E | v(D103624C): BLEQ MT [trap=4, pos=866] |
006F | w(84400014): LDR R4, R4, 14H |
0070 | x(45000000): MOV R5, R0, 0H |
0071 | y .FIXUP P |
0071 | y(F720F012): BL MOD2 [Display] PROC15 |
| Display.ReplConst(FrameColor,z V.Xa + 1,b V.Yc,d V.We - 2,f 1,g Display.replace)h;i |
0072 | z(40000001): MOV R0, R0, 1H |
0073 | a(81E00004): LDR R1, SP, 4H |
0074 | a(D1039B4C): BLEQ MT [trap=4, pos=923] |
0075 | b(81100008): LDR R1, R1, 8H |
0076 | b(41180001): ADD R1, R1, 1H |
0077 | c(82E00004): LDR R2, SP, 4H |
0078 | c(D103A44C): BLEQ MT [trap=4, pos=932] |
0079 | d(8220000C): LDR R2, R2, CH |
007A | e(83E00004): LDR R3, SP, 4H |
007B | e(D103A94C): BLEQ MT [trap=4, pos=937] |
007C | f(83300010): LDR R3, R3, 10H |
007D | f(43390002): SUB R3, R3, 2H |
007E | g(44000001): MOV R4, R0, 1H |
007F | h(45000000): MOV R5, R0, 0H |
0080 | i .FIXUP P |
0080 | i(F720F00F): BL MOD2 [Display] PROC15 |
| Display.ReplConst(FrameColor,j V.Xk + 1,l V.Ym + V.Hn -o 1,p V.Wq - 2,r 1,s Display.replace)t |
0081 | j(40000001): MOV R0, R0, 1H |
0082 | k(81E00004): LDR R1, SP, 4H |
0083 | k(D103E94C): BLEQ MT [trap=4, pos=1001] |
0084 | l(81100008): LDR R1, R1, 8H |
0085 | l(41180001): ADD R1, R1, 1H |
0086 | m(82E00004): LDR R2, SP, 4H |
0087 | m(D103F24C): BLEQ MT [trap=4, pos=1010] |
0088 | n(83E00004): LDR R3, SP, 4H |
0089 | n(D103F84C): BLEQ MT [trap=4, pos=1016] |
008A | o(8220000C): LDR R2, R2, CH |
008B | o(83300014): LDR R3, R3, 14H |
008C | o(02280003): ADD R2, R2, R3 |
008D | p(42290001): SUB R2, R2, 1H |
008E | q(83E00004): LDR R3, SP, 4H |
008F | q(D104014C): BLEQ MT [trap=4, pos=1025] |
0090 | r(83300010): LDR R3, R3, 10H |
0091 | r(43390002): SUB R3, R3, 2H |
0092 | s(44000001): MOV R4, R0, 1H |
0093 | t(45000000): MOV R5, R0, 0H |
| ENDu Draw; |
0094 | u .FIXUP P |
0094 | u(F720F014): BL MOD2 [Display] PROC15 |
0095 | u(8FE00000): LDR LNK, SP, 0H |
0096 | u(4EE80008): ADD SP, SP, 8H |
0097 | u(C700000F): B LNK |
| |
| PROCEDURE Extend (V: Viewer; newY: INTEGER); |
| VAR dH: INTEGER; |
| BEGINv dH := V.Yw - newY;x |
0098 | v(4EE90010): SUB SP, SP, 10H |
0099 | v(AFE00000): STR LNK, SP, 0H |
009A | v(A0E00004): STR R0, SP, 4H |
009B | v(A1E00008): STR R1, SP, 8H |
009C | w(80E00004): LDR R0, SP, 4H |
009D | w(D1047D4C): BLEQ MT [trap=4, pos=1149] |
009E | x(8000000C): LDR R0, R0, CH |
009F | x(81E00008): LDR R1, SP, 8H |
00A0 | x(00090001): SUB R0, R0, R1 |
00A1 | x(A0E0000C): STR R0, SP, CH |
| IF dH > 0 THENy |
00A2 | y(80E0000C): LDR R0, SP, CH |
00A3 | y(40090000): SUB R0, R0, 0H |
00A4 | y(E6000032): BLE 50 [00D7H] |
| Display.ReplConst(Display.black,z V.Xa + 1,b newY + 1,c V.Wd - 2,e dH,f Display.replace)g;h |
00A5 | z(40000000): MOV R0, R0, 0H |
00A6 | a(81E00004): LDR R1, SP, 4H |
00A7 | a(D104C34C): BLEQ MT [trap=4, pos=1219] |
00A8 | b(81100008): LDR R1, R1, 8H |
00A9 | b(41180001): ADD R1, R1, 1H |
00AA | c(82E00008): LDR R2, SP, 8H |
00AB | c(42280001): ADD R2, R2, 1H |
00AC | d(83E00004): LDR R3, SP, 4H |
00AD | d(D104D64C): BLEQ MT [trap=4, pos=1238] |
00AE | e(83300010): LDR R3, R3, 10H |
00AF | e(43390002): SUB R3, R3, 2H |
00B0 | f(84E0000C): LDR R4, SP, CH |
00B1 | g(45000000): MOV R5, R0, 0H |
00B2 | h .FIXUP P |
00B2 | h(F720F01E): BL MOD2 [Display] PROC15 |
| Display.ReplConst(FrameColor,i V.Xj,k newY,l 1,m dH,n Display.replace)o;p |
00B3 | i(40000001): MOV R0, R0, 1H |
00B4 | j(81E00004): LDR R1, SP, 4H |
00B5 | j(D105194C): BLEQ MT [trap=4, pos=1305] |
00B6 | k(81100008): LDR R1, R1, 8H |
00B7 | l(82E00008): LDR R2, SP, 8H |
00B8 | m(43000001): MOV R3, R0, 1H |
00B9 | n(84E0000C): LDR R4, SP, CH |
00BA | o(45000000): MOV R5, R0, 0H |
00BB | p .FIXUP P |
00BB | p(F720F009): BL MOD2 [Display] PROC15 |
| Display.ReplConst(FrameColor,q V.Xr + V.Ws -t 1,u newY,v 1,w dH,x Display.replace)y;z |
00BC | q(40000001): MOV R0, R0, 1H |
00BD | r(81E00004): LDR R1, SP, 4H |
00BE | r(D105614C): BLEQ MT [trap=4, pos=1377] |
00BF | s(82E00004): LDR R2, SP, 4H |
00C0 | s(D105674C): BLEQ MT [trap=4, pos=1383] |
00C1 | t(81100008): LDR R1, R1, 8H |
00C2 | t(82200010): LDR R2, R2, 10H |
00C3 | t(01180002): ADD R1, R1, R2 |
00C4 | u(41190001): SUB R1, R1, 1H |
00C5 | v(82E00008): LDR R2, SP, 8H |
00C6 | w(43000001): MOV R3, R0, 1H |
00C7 | x(84E0000C): LDR R4, SP, CH |
00C8 | y(45000000): MOV R5, R0, 0H |
00C9 | z .FIXUP P |
00C9 | z(F720F00E): BL MOD2 [Display] PROC15 |
| Display.ReplConst(FrameColor,a V.Xb + 1,c newY,d V.We - 2,f 1,g Display.replace)h |
00CA | a(40000001): MOV R0, R0, 1H |
00CB | b(81E00004): LDR R1, SP, 4H |
00CC | b(D105B34C): BLEQ MT [trap=4, pos=1459] |
00CD | c(81100008): LDR R1, R1, 8H |
00CE | c(41180001): ADD R1, R1, 1H |
00CF | d(82E00008): LDR R2, SP, 8H |
00D0 | e(83E00004): LDR R3, SP, 4H |
00D1 | e(D105C24C): BLEQ MT [trap=4, pos=1474] |
00D2 | f(83300010): LDR R3, R3, 10H |
00D3 | f(43390002): SUB R3, R3, 2H |
00D4 | g(44000001): MOV R4, R0, 1H |
00D5 | h(45000000): MOV R5, R0, 0H |
| ENDi |
00D6 | i .FIXUP P |
00D6 | i(F720F00D): BL MOD2 [Display] PROC15 |
| ENDj Extend; |
00D7 | j(8FE00000): LDR LNK, SP, 0H |
00D8 | j(4EE80010): ADD SP, SP, 10H |
00D9 | j(C700000F): B LNK |
| |
| PROCEDURE Reduce (V: Viewer; newY: INTEGER); |
| BEGINk Display.ReplConst(FrameColor,l V.Xm + 1,n newY,o V.Wp - 2,q 1,r Display.replace)s |
00DA | k(4EE9000C): SUB SP, SP, CH |
00DB | k(AFE00000): STR LNK, SP, 0H |
00DC | k(A0E00004): STR R0, SP, 4H |
00DD | k(A1E00008): STR R1, SP, 8H |
00DE | l(40000001): MOV R0, R0, 1H |
00DF | m(81E00004): LDR R1, SP, 4H |
00E0 | m(D1064B4C): BLEQ MT [trap=4, pos=1611] |
00E1 | n(81100008): LDR R1, R1, 8H |
00E2 | n(41180001): ADD R1, R1, 1H |
00E3 | o(82E00008): LDR R2, SP, 8H |
00E4 | p(83E00004): LDR R3, SP, 4H |
00E5 | p(D1065A4C): BLEQ MT [trap=4, pos=1626] |
00E6 | q(83300010): LDR R3, R3, 10H |
00E7 | q(43390002): SUB R3, R3, 2H |
00E8 | r(44000001): MOV R4, R0, 1H |
00E9 | s(45000000): MOV R5, R0, 0H |
| ENDt Reduce; |
00EA | t .FIXUP P |
00EA | t(F720F014): BL MOD2 [Display] PROC15 |
00EB | t(8FE00000): LDR LNK, SP, 0H |
00EC | t(4EE8000C): ADD SP, SP, CH |
00ED | t(C700000F): B LNK |
| |
| PROCEDURE Grow (V: Viewer; oldH: INTEGER); |
| VAR dH: INTEGER; |
| BEGINu dH := V.Hv - oldH;w |
00EE | u(4EE90010): SUB SP, SP, 10H |
00EF | u(AFE00000): STR LNK, SP, 0H |
00F0 | u(A0E00004): STR R0, SP, 4H |
00F1 | u(A1E00008): STR R1, SP, 8H |
00F2 | v(80E00004): LDR R0, SP, 4H |
00F3 | v(D106D64C): BLEQ MT [trap=4, pos=1750] |
00F4 | w(80000014): LDR R0, R0, 14H |
00F5 | w(81E00008): LDR R1, SP, 8H |
00F6 | w(00090001): SUB R0, R0, R1 |
00F7 | w(A0E0000C): STR R0, SP, CH |
| IF dH > 0 THENx |
00F8 | x(80E0000C): LDR R0, SP, CH |
00F9 | x(40090000): SUB R0, R0, 0H |
00FA | x(E6000033): BLE 51 [012EH] |
| Display.ReplConst(FrameColor,y V.Xz,a V.Yb + oldH,c 1,d dH,e Display.replace)f;g |
00FB | y(40000001): MOV R0, R0, 1H |
00FC | z(81E00004): LDR R1, SP, 4H |
00FD | z(D107194C): BLEQ MT [trap=4, pos=1817] |
00FE | a(81100008): LDR R1, R1, 8H |
00FF | b(82E00004): LDR R2, SP, 4H |
0100 | b(D1071E4C): BLEQ MT [trap=4, pos=1822] |
0101 | c(8220000C): LDR R2, R2, CH |
0102 | c(83E00008): LDR R3, SP, 8H |
0103 | c(02280003): ADD R2, R2, R3 |
0104 | d(43000001): MOV R3, R0, 1H |
0105 | e(84E0000C): LDR R4, SP, CH |
0106 | f(45000000): MOV R5, R0, 0H |
0107 | g .FIXUP P |
0107 | g(F720F01D): BL MOD2 [Display] PROC15 |
| Display.ReplConst(FrameColor,h V.Xi + V.Wj -k 1,l V.Ym + oldH,n 1,o dH,p Display.replace)q;r |
0108 | h(40000001): MOV R0, R0, 1H |
0109 | i(81E00004): LDR R1, SP, 4H |
010A | i(D107674C): BLEQ MT [trap=4, pos=1895] |
010B | j(82E00004): LDR R2, SP, 4H |
010C | j(D1076D4C): BLEQ MT [trap=4, pos=1901] |
010D | k(81100008): LDR R1, R1, 8H |
010E | k(82200010): LDR R2, R2, 10H |
010F | k(01180002): ADD R1, R1, R2 |
0110 | l(41190001): SUB R1, R1, 1H |
0111 | m(82E00004): LDR R2, SP, 4H |
0112 | m(D107764C): BLEQ MT [trap=4, pos=1910] |
0113 | n(8220000C): LDR R2, R2, CH |
0114 | n(83E00008): LDR R3, SP, 8H |
0115 | n(02280003): ADD R2, R2, R3 |
0116 | o(43000001): MOV R3, R0, 1H |
0117 | p(84E0000C): LDR R4, SP, CH |
0118 | q(45000000): MOV R5, R0, 0H |
0119 | r .FIXUP P |
0119 | r(F720F012): BL MOD2 [Display] PROC15 |
| Display.ReplConst(FrameColor,s V.Xt + 1,u V.Yv + V.Hw -x 1,y V.Wz - 2,a 1,b Display.replace)c |
011A | s(40000001): MOV R0, R0, 1H |
011B | t(81E00004): LDR R1, SP, 4H |
011C | t(D107BF4C): BLEQ MT [trap=4, pos=1983] |
011D | u(81100008): LDR R1, R1, 8H |
011E | u(41180001): ADD R1, R1, 1H |
011F | v(82E00004): LDR R2, SP, 4H |
0120 | v(D107C84C): BLEQ MT [trap=4, pos=1992] |
0121 | w(83E00004): LDR R3, SP, 4H |
0122 | w(D107CE4C): BLEQ MT [trap=4, pos=1998] |
0123 | x(8220000C): LDR R2, R2, CH |
0124 | x(83300014): LDR R3, R3, 14H |
0125 | x(02280003): ADD R2, R2, R3 |
0126 | y(42290001): SUB R2, R2, 1H |
0127 | z(83E00004): LDR R3, SP, 4H |
0128 | z(D107D74C): BLEQ MT [trap=4, pos=2007] |
0129 | a(83300010): LDR R3, R3, 10H |
012A | a(43390002): SUB R3, R3, 2H |
012B | b(44000001): MOV R4, R0, 1H |
012C | c(45000000): MOV R5, R0, 0H |
| ENDd |
012D | d .FIXUP P |
012D | d(F720F014): BL MOD2 [Display] PROC15 |
| ENDe Grow; |
012E | e(8FE00000): LDR LNK, SP, 0H |
012F | e(4EE80010): ADD SP, SP, 10H |
0130 | e(C700000F): B LNK |
| |
| PROCEDURE Shrink (V: Viewer; newH: INTEGER); |
| BEGINf Display.ReplConst(FrameColor,g V.Xh + 1,i V.Yj + newH -k 1,l V.Wm - 2,n 1,o Display.replace)p |
0131 | f(4EE9000C): SUB SP, SP, CH |
0132 | f(AFE00000): STR LNK, SP, 0H |
0133 | f(A0E00004): STR R0, SP, 4H |
0134 | f(A1E00008): STR R1, SP, 8H |
0135 | g(40000001): MOV R0, R0, 1H |
0136 | h(81E00004): LDR R1, SP, 4H |
0137 | h(D1085E4C): BLEQ MT [trap=4, pos=2142] |
0138 | i(81100008): LDR R1, R1, 8H |
0139 | i(41180001): ADD R1, R1, 1H |
013A | j(82E00004): LDR R2, SP, 4H |
013B | j(D108674C): BLEQ MT [trap=4, pos=2151] |
013C | k(8220000C): LDR R2, R2, CH |
013D | k(83E00008): LDR R3, SP, 8H |
013E | k(02280003): ADD R2, R2, R3 |
013F | l(42290001): SUB R2, R2, 1H |
0140 | m(83E00004): LDR R3, SP, 4H |
0141 | m(D108774C): BLEQ MT [trap=4, pos=2167] |
0142 | n(83300010): LDR R3, R3, 10H |
0143 | n(43390002): SUB R3, R3, 2H |
0144 | o(44000001): MOV R4, R0, 1H |
0145 | p(45000000): MOV R5, R0, 0H |
| ENDq Shrink; |
0146 | q .FIXUP P |
0146 | q(F720F019): BL MOD2 [Display] PROC15 |
0147 | q(8FE00000): LDR LNK, SP, 0H |
0148 | q(4EE8000C): ADD SP, SP, CH |
0149 | q(C700000F): B LNK |
| |
| PROCEDURE Adjust (F: Display.Frame; id, dY, Y, H: INTEGER); |
| VAR M: ModifyMsg; |
| BEGINr M.id := id;s M.dY := dY;t M.Y := Y;u M.H := H;v F.handlew(Fx,y M)z;a F.Yb := Y;c F.Hd := H |
014A | r(4EE90028): SUB SP, SP, 28H |
014B | r(AFE00000): STR LNK, SP, 0H |
014C | r(A0E00004): STR R0, SP, 4H |
014D | r(A1E00008): STR R1, SP, 8H |
014E | r(A2E0000C): STR R2, SP, CH |
014F | r(A3E00010): STR R3, SP, 10H |
0150 | r(A4E00014): STR R4, SP, 14H |
0151 | s(80E00008): LDR R0, SP, 8H |
0152 | s(A0E00018): STR R0, SP, 18H |
0153 | t(80E0000C): LDR R0, SP, CH |
0154 | t(A0E0001C): STR R0, SP, 1CH |
0155 | u(80E00010): LDR R0, SP, 10H |
0156 | u(A0E00020): STR R0, SP, 20H |
0157 | v(80E00014): LDR R0, SP, 14H |
0158 | v(A0E00024): STR R0, SP, 24H |
0159 | w(80E00004): LDR R0, SP, 4H |
015A | w(D109304C): BLEQ MT [trap=4, pos=2352] |
015B | x(80000018): LDR R0, R0, 18H |
015C | x(4EE90004): SUB SP, SP, 4H |
015D | x(A0E00000): STR R0, SP, 0H |
015E | y(80E00008): LDR R0, SP, 8H |
015F | z(41E8001C): ADD R1, SP, 1CH |
0160 | z .FIXUP D |
0160 | z(8D000120): LDR SB, MT, MOD0 [MenuViewers] |
0161 | z(42D80024): ADD R2, SB, 24H [data] |
0162 | a(83E00000): LDR R3, SP, 0H |
0163 | a(4EE80004): ADD SP, SP, 4H |
0164 | a(D109375C): BLEQ MT [trap=5, pos=2359] |
0165 | a(D7000003): BL R3 |
0166 | b(80E00004): LDR R0, SP, 4H |
0167 | b(D1093B4C): BLEQ MT [trap=4, pos=2363] |
0168 | c(81E00010): LDR R1, SP, 10H |
0169 | c(A100000C): STR R1, R0, CH |
016A | d(80E00004): LDR R0, SP, 4H |
016B | d(D109454C): BLEQ MT [trap=4, pos=2373] |
| ENDe Adjust; |
016C | e(81E00014): LDR R1, SP, 14H |
016D | e(A1000014): STR R1, R0, 14H |
016E | e(8FE00000): LDR LNK, SP, 0H |
016F | e(4EE80028): ADD SP, SP, 28H |
0170 | e(C700000F): B LNK |
| |
| PROCEDURE Restore (V: Viewer); |
| VAR Menu, Main: Display.Frame; |
| BEGINf Menu := V.dscg;h Main := V.dsci.nextj;k |
0171 | f(4EE90010): SUB SP, SP, 10H |
0172 | f(AFE00000): STR LNK, SP, 0H |
0173 | f(A0E00004): STR R0, SP, 4H |
0174 | g(80E00004): LDR R0, SP, 4H |
0175 | g(D109B34C): BLEQ MT [trap=4, pos=2483] |
0176 | h(80000004): LDR R0, R0, 4H |
0177 | h(A0E00008): STR R0, SP, 8H |
0178 | i(80E00004): LDR R0, SP, 4H |
0179 | i(D109C24C): BLEQ MT [trap=4, pos=2498] |
017A | j(80000004): LDR R0, R0, 4H |
017B | j(D109C74C): BLEQ MT [trap=4, pos=2503] |
017C | k(80000000): LDR R0, R0, 0H |
017D | k(A0E0000C): STR R0, SP, CH |
| Oberon.RemoveMarks(V.Xl,m V.Yn,o V.Wp,q V.Hr)s;t |
017E | l(80E00004): LDR R0, SP, 4H |
017F | l(D109E34C): BLEQ MT [trap=4, pos=2531] |
0180 | m(80000008): LDR R0, R0, 8H |
0181 | n(81E00004): LDR R1, SP, 4H |
0182 | n(D109E84C): BLEQ MT [trap=4, pos=2536] |
0183 | o(8110000C): LDR R1, R1, CH |
0184 | p(82E00004): LDR R2, SP, 4H |
0185 | p(D109ED4C): BLEQ MT [trap=4, pos=2541] |
0186 | q(82200010): LDR R2, R2, 10H |
0187 | r(83E00004): LDR R3, SP, 4H |
0188 | r(D109F24C): BLEQ MT [trap=4, pos=2546] |
0189 | s(83300014): LDR R3, R3, 14H |
018A | t .FIXUP P |
018A | t(F741B044): BL MOD4 [Oberon] PROC27 |
| Draw(V)u;v |
018B | u(80E00004): LDR R0, SP, 4H |
018C | v(F7FFFEC3): BL -317 [0050H] |
| Menu.Xw := V.Xx + 1;y Menu.Yz := V.Ya + V.Hb -c 1;d Menu.We := V.Wf - 2;g Menu.Hh := 0;i |
018D | w(80E00008): LDR R0, SP, 8H |
018E | w(D10A0C4C): BLEQ MT [trap=4, pos=2572] |
018F | x(81E00004): LDR R1, SP, 4H |
0190 | x(D10A134C): BLEQ MT [trap=4, pos=2579] |
0191 | y(81100008): LDR R1, R1, 8H |
0192 | y(41180001): ADD R1, R1, 1H |
0193 | y(A1000008): STR R1, R0, 8H |
0194 | z(80E00008): LDR R0, SP, 8H |
0195 | z(D10A1F4C): BLEQ MT [trap=4, pos=2591] |
0196 | a(81E00004): LDR R1, SP, 4H |
0197 | a(D10A264C): BLEQ MT [trap=4, pos=2598] |
0198 | b(82E00004): LDR R2, SP, 4H |
0199 | b(D10A2C4C): BLEQ MT [trap=4, pos=2604] |
019A | c(8110000C): LDR R1, R1, CH |
019B | c(82200014): LDR R2, R2, 14H |
019C | c(01180002): ADD R1, R1, R2 |
019D | d(41190001): SUB R1, R1, 1H |
019E | d(A100000C): STR R1, R0, CH |
019F | e(80E00008): LDR R0, SP, 8H |
01A0 | e(D10A384C): BLEQ MT [trap=4, pos=2616] |
01A1 | f(81E00004): LDR R1, SP, 4H |
01A2 | f(D10A3F4C): BLEQ MT [trap=4, pos=2623] |
01A3 | g(81100010): LDR R1, R1, 10H |
01A4 | g(41190002): SUB R1, R1, 2H |
01A5 | g(A1000010): STR R1, R0, 10H |
01A6 | h(80E00008): LDR R0, SP, 8H |
01A7 | h(D10A4B4C): BLEQ MT [trap=4, pos=2635] |
01A8 | i(41000000): MOV R1, R0, 0H |
01A9 | i(A1000014): STR R1, R0, 14H |
| Main.Xj := V.Xk + 1;l Main.Ym := V.Yn + V.Ho -p V.menuHq;r Main.Ws := V.Wt - 2;u Main.Hv := 0;w |
01AA | j(80E0000C): LDR R0, SP, CH |
01AB | j(D10A5C4C): BLEQ MT [trap=4, pos=2652] |
01AC | k(81E00004): LDR R1, SP, 4H |
01AD | k(D10A634C): BLEQ MT [trap=4, pos=2659] |
01AE | l(81100008): LDR R1, R1, 8H |
01AF | l(41180001): ADD R1, R1, 1H |
01B0 | l(A1000008): STR R1, R0, 8H |
01B1 | m(80E0000C): LDR R0, SP, CH |
01B2 | m(D10A6F4C): BLEQ MT [trap=4, pos=2671] |
01B3 | n(81E00004): LDR R1, SP, 4H |
01B4 | n(D10A764C): BLEQ MT [trap=4, pos=2678] |
01B5 | o(82E00004): LDR R2, SP, 4H |
01B6 | o(D10A7C4C): BLEQ MT [trap=4, pos=2684] |
01B7 | p(8110000C): LDR R1, R1, CH |
01B8 | p(82200014): LDR R2, R2, 14H |
01B9 | p(01180002): ADD R1, R1, R2 |
01BA | q(82E00004): LDR R2, SP, 4H |
01BB | q(D10A864C): BLEQ MT [trap=4, pos=2694] |
01BC | r(82200020): LDR R2, R2, 20H |
01BD | r(01190002): SUB R1, R1, R2 |
01BE | r(A100000C): STR R1, R0, CH |
01BF | s(80E0000C): LDR R0, SP, CH |
01C0 | s(D10A8E4C): BLEQ MT [trap=4, pos=2702] |
01C1 | t(81E00004): LDR R1, SP, 4H |
01C2 | t(D10A954C): BLEQ MT [trap=4, pos=2709] |
01C3 | u(81100010): LDR R1, R1, 10H |
01C4 | u(41190002): SUB R1, R1, 2H |
01C5 | u(A1000010): STR R1, R0, 10H |
01C6 | v(80E0000C): LDR R0, SP, CH |
01C7 | v(D10AA14C): BLEQ MT [trap=4, pos=2721] |
01C8 | w(41000000): MOV R1, R0, 0H |
01C9 | w(A1000014): STR R1, R0, 14H |
| IF V.Hx > V.menuHy + 1 THENz |
01CA | x(80E00004): LDR R0, SP, 4H |
01CB | x(D10AB24C): BLEQ MT [trap=4, pos=2738] |
01CC | y(81E00004): LDR R1, SP, 4H |
01CD | y(D10ABC4C): BLEQ MT [trap=4, pos=2748] |
01CE | z(81100020): LDR R1, R1, 20H |
01CF | z(41180001): ADD R1, R1, 1H |
01D0 | z(80000014): LDR R0, R0, 14H |
01D1 | z(00090001): SUB R0, R0, R1 |
01D2 | z(E6000024): BLE 36 [01F7H] |
| Adjust(Menu,a extend,b 0,c V.Yd + V.He -f V.menuHg,h V.menuHi - 1)j;k |
01D3 | a(80E00008): LDR R0, SP, 8H |
01D4 | b(41000000): MOV R1, R0, 0H |
01D5 | c(42000000): MOV R2, R0, 0H |
01D6 | d(83E00004): LDR R3, SP, 4H |
01D7 | d(D10AE74C): BLEQ MT [trap=4, pos=2791] |
01D8 | e(84E00004): LDR R4, SP, 4H |
01D9 | e(D10AED4C): BLEQ MT [trap=4, pos=2797] |
01DA | f(8330000C): LDR R3, R3, CH |
01DB | f(84400014): LDR R4, R4, 14H |
01DC | f(03380004): ADD R3, R3, R4 |
01DD | g(84E00004): LDR R4, SP, 4H |
01DE | g(D10AF74C): BLEQ MT [trap=4, pos=2807] |
01DF | h(84400020): LDR R4, R4, 20H |
01E0 | h(03390004): SUB R3, R3, R4 |
01E1 | i(84E00004): LDR R4, SP, 4H |
01E2 | i(D10B004C): BLEQ MT [trap=4, pos=2816] |
01E3 | j(84400020): LDR R4, R4, 20H |
01E4 | j(44490001): SUB R4, R4, 1H |
01E5 | k(F7FFFF64): BL -156 [014AH] |
| Adjust(Main,l extend,m 0,n V.Yo + 1,p V.Hq - V.menuHr -s 1)t |
01E6 | l(80E0000C): LDR R0, SP, CH |
01E7 | m(41000000): MOV R1, R0, 0H |
01E8 | n(42000000): MOV R2, R0, 0H |
01E9 | o(83E00004): LDR R3, SP, 4H |
01EA | o(D10B284C): BLEQ MT [trap=4, pos=2856] |
01EB | p(8330000C): LDR R3, R3, CH |
01EC | p(43380001): ADD R3, R3, 1H |
01ED | q(84E00004): LDR R4, SP, 4H |
01EE | q(D10B314C): BLEQ MT [trap=4, pos=2865] |
01EF | r(85E00004): LDR R5, SP, 4H |
01F0 | r(D10B3B4C): BLEQ MT [trap=4, pos=2875] |
01F1 | s(84400014): LDR R4, R4, 14H |
01F2 | s(85500020): LDR R5, R5, 20H |
01F3 | s(04490005): SUB R4, R4, R5 |
01F4 | t(44490001): SUB R4, R4, 1H |
| ELSEu Adjustv(Menu,w extend,x 0,y V.Yz + 1,a V.Hb - 2)c |
01F5 | u(F7FFFF54): BL -172 [014AH] |
01F6 | v(E700000C): B 12 [0203H] |
01F7 | w(80E00008): LDR R0, SP, 8H |
01F8 | x(41000000): MOV R1, R0, 0H |
01F9 | y(42000000): MOV R2, R0, 0H |
01FA | z(83E00004): LDR R3, SP, 4H |
01FB | z(D10B654C): BLEQ MT [trap=4, pos=2917] |
01FC | a(8330000C): LDR R3, R3, CH |
01FD | a(43380001): ADD R3, R3, 1H |
01FE | b(84E00004): LDR R4, SP, 4H |
01FF | b(D10B6E4C): BLEQ MT [trap=4, pos=2926] |
0200 | c(84400014): LDR R4, R4, 14H |
0201 | c(44490002): SUB R4, R4, 2H |
| ENDd |
0202 | d(F7FFFF47): BL -185 [014AH] |
| ENDe Restore; |
0203 | e(8FE00000): LDR LNK, SP, 0H |
0204 | e(4EE80010): ADD SP, SP, 10H |
0205 | e(C700000F): B LNK |
| |
| PROCEDURE Modify (V: Viewer; Y, H: INTEGER); |
| VAR Menu, Main: Display.Frame; |
| BEGINf Menu := V.dscg;h Main := V.dsci.nextj;k |
0206 | f(4EE90018): SUB SP, SP, 18H |
0207 | f(AFE00000): STR LNK, SP, 0H |
0208 | f(A0E00004): STR R0, SP, 4H |
0209 | f(A1E00008): STR R1, SP, 8H |
020A | f(A2E0000C): STR R2, SP, CH |
020B | g(80E00004): LDR R0, SP, 4H |
020C | g(D10BF34C): BLEQ MT [trap=4, pos=3059] |
020D | h(80000004): LDR R0, R0, 4H |
020E | h(A0E00010): STR R0, SP, 10H |
020F | i(80E00004): LDR R0, SP, 4H |
0210 | i(D10C024C): BLEQ MT [trap=4, pos=3074] |
0211 | j(80000004): LDR R0, R0, 4H |
0212 | j(D10C074C): BLEQ MT [trap=4, pos=3079] |
0213 | k(80000000): LDR R0, R0, 0H |
0214 | k(A0E00014): STR R0, SP, 14H |
| IF Y < V.Yl THENm (*extend*) |
0215 | l(80E00004): LDR R0, SP, 4H |
0216 | l(D10C174C): BLEQ MT [trap=4, pos=3095] |
0217 | m(81E00008): LDR R1, SP, 8H |
0218 | m(8000000C): LDR R0, R0, CH |
0219 | m(01190000): SUB R1, R1, R0 |
021A | m(ED00003C): BGE 60 [0257H] |
| Oberon.RemoveMarks(V.Xn,o Y,p V.Wq,r V.Ys - Y)t;u |
021B | n(80E00004): LDR R0, SP, 4H |
021C | n(D10C444C): BLEQ MT [trap=4, pos=3140] |
021D | o(80000008): LDR R0, R0, 8H |
021E | p(81E00008): LDR R1, SP, 8H |
021F | q(82E00004): LDR R2, SP, 4H |
0220 | q(D10C4C4C): BLEQ MT [trap=4, pos=3148] |
0221 | r(82200010): LDR R2, R2, 10H |
0222 | s(83E00004): LDR R3, SP, 4H |
0223 | s(D10C514C): BLEQ MT [trap=4, pos=3153] |
0224 | t(8330000C): LDR R3, R3, CH |
0225 | t(84E00008): LDR R4, SP, 8H |
0226 | t(03390004): SUB R3, R3, R4 |
0227 | u .FIXUP P |
0227 | u(F741B09D): BL MOD4 [Oberon] PROC27 |
| Extend(V,v Y)w;x |
0228 | v(80E00004): LDR R0, SP, 4H |
0229 | w(81E00008): LDR R1, SP, 8H |
022A | x(F7FFFE6D): BL -403 [0098H] |
| IF H > V.menuHy + 1 THENz |
022B | y(80E00004): LDR R0, SP, 4H |
022C | y(D10C804C): BLEQ MT [trap=4, pos=3200] |
022D | z(80000020): LDR R0, R0, 20H |
022E | z(40080001): ADD R0, R0, 1H |
022F | z(81E0000C): LDR R1, SP, CH |
0230 | z(01190000): SUB R1, R1, R0 |
0231 | z(E600001C): BLE 28 [024EH] |
| Adjust(Menu,a extend,b 0,c Y + H -d V.menuHe,f V.menuHg - 1)h;i |
0232 | a(80E00010): LDR R0, SP, 10H |
0233 | b(41000000): MOV R1, R0, 0H |
0234 | c(42000000): MOV R2, R0, 0H |
0235 | d(83E00008): LDR R3, SP, 8H |
0236 | d(84E0000C): LDR R4, SP, CH |
0237 | d(03380004): ADD R3, R3, R4 |
0238 | e(84E00004): LDR R4, SP, 4H |
0239 | e(D10CB94C): BLEQ MT [trap=4, pos=3257] |
023A | f(84400020): LDR R4, R4, 20H |
023B | f(03390004): SUB R3, R3, R4 |
023C | g(84E00004): LDR R4, SP, 4H |
023D | g(D10CC24C): BLEQ MT [trap=4, pos=3266] |
023E | h(84400020): LDR R4, R4, 20H |
023F | h(44490001): SUB R4, R4, 1H |
0240 | i(F7FFFF09): BL -247 [014AH] |
| Adjust(Main,j extend,k 0,l Y + 1,m H - V.menuHn -o 1)p |
0241 | j(80E00014): LDR R0, SP, 14H |
0242 | k(41000000): MOV R1, R0, 0H |
0243 | l(42000000): MOV R2, R0, 0H |
0244 | m(83E00008): LDR R3, SP, 8H |
0245 | m(43380001): ADD R3, R3, 1H |
0246 | n(84E00004): LDR R4, SP, 4H |
0247 | n(D10CFB4C): BLEQ MT [trap=4, pos=3323] |
0248 | o(85E0000C): LDR R5, SP, CH |
0249 | o(84400020): LDR R4, R4, 20H |
024A | o(04590004): SUB R4, R5, R4 |
024B | p(44490001): SUB R4, R4, 1H |
| ELSEq Adjustr(Menu,s extend,t 0,u Y + 1,v H - 2)w |
024C | q(F7FFFEFD): BL -259 [014AH] |
024D | r(E7000008): B 8 [0256H] |
024E | s(80E00010): LDR R0, SP, 10H |
024F | t(41000000): MOV R1, R0, 0H |
0250 | u(42000000): MOV R2, R0, 0H |
0251 | v(83E00008): LDR R3, SP, 8H |
0252 | v(43380001): ADD R3, R3, 1H |
0253 | w(84E0000C): LDR R4, SP, CH |
0254 | w(44490002): SUB R4, R4, 2H |
| ENDx |
0255 | x(F7FFFEF4): BL -268 [014AH] |
| ELSIF Yy > V.Yz THENa (*reduce*) |
0256 | y(E700004D): B 77 [02A4H] |
0257 | z(80E00004): LDR R0, SP, 4H |
0258 | z(D10D4D4C): BLEQ MT [trap=4, pos=3405] |
0259 | a(81E00008): LDR R1, SP, 8H |
025A | a(8000000C): LDR R0, R0, CH |
025B | a(01190000): SUB R1, R1, R0 |
025C | a(E6000047): BLE 71 [02A4H] |
| Oberon.RemoveMarks(V.Xb,c V.Yd,e V.Wf,g V.Hh)i;j |
025D | b(80E00004): LDR R0, SP, 4H |
025E | b(D10D7A4C): BLEQ MT [trap=4, pos=3450] |
025F | c(80000008): LDR R0, R0, 8H |
0260 | d(81E00004): LDR R1, SP, 4H |
0261 | d(D10D7F4C): BLEQ MT [trap=4, pos=3455] |
0262 | e(8110000C): LDR R1, R1, CH |
0263 | f(82E00004): LDR R2, SP, 4H |
0264 | f(D10D844C): BLEQ MT [trap=4, pos=3460] |
0265 | g(82200010): LDR R2, R2, 10H |
0266 | h(83E00004): LDR R3, SP, 4H |
0267 | h(D10D894C): BLEQ MT [trap=4, pos=3465] |
0268 | i(83300014): LDR R3, R3, 14H |
0269 | j .FIXUP P |
0269 | j(F741B042): BL MOD4 [Oberon] PROC27 |
| IF H > V.menuHk + 1 THENl |
026A | k(80E00004): LDR R0, SP, 4H |
026B | k(D10DA04C): BLEQ MT [trap=4, pos=3488] |
026C | l(80000020): LDR R0, R0, 20H |
026D | l(40080001): ADD R0, R0, 1H |
026E | l(81E0000C): LDR R1, SP, CH |
026F | l(01190000): SUB R1, R1, R0 |
0270 | l(E600001C): BLE 28 [028DH] |
| Adjust(Main,m reduce,n 0,o Y + 1,p H - V.menuHq -r 1)s;t |
0271 | m(80E00014): LDR R0, SP, 14H |
0272 | n(41000001): MOV R1, R0, 1H |
0273 | o(42000000): MOV R2, R0, 0H |
0274 | p(83E00008): LDR R3, SP, 8H |
0275 | p(43380001): ADD R3, R3, 1H |
0276 | q(84E00004): LDR R4, SP, 4H |
0277 | q(D10DDC4C): BLEQ MT [trap=4, pos=3548] |
0278 | r(85E0000C): LDR R5, SP, CH |
0279 | r(84400020): LDR R4, R4, 20H |
027A | r(04590004): SUB R4, R5, R4 |
027B | s(44490001): SUB R4, R4, 1H |
027C | t(F7FFFECD): BL -307 [014AH] |
| Adjust(Menu,u reduce,v 0,w Y + H -x V.menuHy,z V.menuHa - 1)b |
027D | u(80E00010): LDR R0, SP, 10H |
027E | v(41000001): MOV R1, R0, 1H |
027F | w(42000000): MOV R2, R0, 0H |
0280 | x(83E00008): LDR R3, SP, 8H |
0281 | x(84E0000C): LDR R4, SP, CH |
0282 | x(03380004): ADD R3, R3, R4 |
0283 | y(84E00004): LDR R4, SP, 4H |
0284 | y(D10E124C): BLEQ MT [trap=4, pos=3602] |
0285 | z(84400020): LDR R4, R4, 20H |
0286 | z(03390004): SUB R3, R3, R4 |
0287 | a(84E00004): LDR R4, SP, 4H |
0288 | a(D10E1B4C): BLEQ MT [trap=4, pos=3611] |
0289 | b(84400020): LDR R4, R4, 20H |
028A | b(44490001): SUB R4, R4, 1H |
| ELSEc |
028B | c(F7FFFEBE): BL -322 [014AH] |
| Adjustd(Main,e reduce,f 0,g Y + H -h V.menuHi,j 0)k;l |
028C | d(E7000014): B 20 [02A1H] |
028D | e(80E00014): LDR R0, SP, 14H |
028E | f(41000001): MOV R1, R0, 1H |
028F | g(42000000): MOV R2, R0, 0H |
0290 | h(83E00008): LDR R3, SP, 8H |
0291 | h(84E0000C): LDR R4, SP, CH |
0292 | h(03380004): ADD R3, R3, R4 |
0293 | i(84E00004): LDR R4, SP, 4H |
0294 | i(D10E5B4C): BLEQ MT [trap=4, pos=3675] |
0295 | j(84400020): LDR R4, R4, 20H |
0296 | j(03390004): SUB R3, R3, R4 |
0297 | k(44000000): MOV R4, R0, 0H |
0298 | l(F7FFFEB1): BL -335 [014AH] |
| Adjust(Menu,m reduce,n 0,o Y + 1,p H - 2)q |
0299 | m(80E00010): LDR R0, SP, 10H |
029A | n(41000001): MOV R1, R0, 1H |
029B | o(42000000): MOV R2, R0, 0H |
029C | p(83E00008): LDR R3, SP, 8H |
029D | p(43380001): ADD R3, R3, 1H |
029E | q(84E0000C): LDR R4, SP, CH |
029F | q(44490002): SUB R4, R4, 2H |
| ENDr; |
02A0 | r(F7FFFEA9): BL -343 [014AH] |
| Reduce(V,s Y)t |
02A1 | s(80E00004): LDR R0, SP, 4H |
02A2 | t(81E00008): LDR R1, SP, 8H |
| ENDu |
02A3 | u(F7FFFE36): BL -458 [00DAH] |
| ENDv Modify; |
02A4 | v(8FE00000): LDR LNK, SP, 0H |
02A5 | v(4EE80018): ADD SP, SP, 18H |
02A6 | v(C700000F): B LNK |
| |
| PROCEDURE Change (V: Viewer; X, Y: INTEGER; Keys: SET); |
| VAR Menu, Main: Display.Frame; |
| V1: Viewers.Viewer; |
| keysum: SET; Y0, dY, H: INTEGER; |
| BEGINw (*Keys # {}*) |
02A7 | w(4EE90030): SUB SP, SP, 30H |
02A8 | w(AFE00000): STR LNK, SP, 0H |
02A9 | w(A0E00004): STR R0, SP, 4H |
02AA | w(A1E00008): STR R1, SP, 8H |
02AB | w(A2E0000C): STR R2, SP, CH |
02AC | w(A3E00010): STR R3, SP, 10H |
| Menu := V.dscx;y Main := V.dscz.nexta;b |
02AD | x(80E00004): LDR R0, SP, 4H |
02AE | x(D10F894C): BLEQ MT [trap=4, pos=3977] |
02AF | y(80000004): LDR R0, R0, 4H |
02B0 | y(A0E00014): STR R0, SP, 14H |
02B1 | z(80E00004): LDR R0, SP, 4H |
02B2 | z(D10F984C): BLEQ MT [trap=4, pos=3992] |
02B3 | a(80000004): LDR R0, R0, 4H |
02B4 | a(D10F9D4C): BLEQ MT [trap=4, pos=3997] |
02B5 | b(80000000): LDR R0, R0, 0H |
02B6 | b(A0E00018): STR R0, SP, 18H |
| Oberon.DrawMouseArrow(X,c Y)d;e |
02B7 | c(80E00008): LDR R0, SP, 8H |
02B8 | d(81E0000C): LDR R1, SP, CH |
02B9 | e .FIXUP P |
02B9 | e(F7418050): BL MOD4 [Oberon] PROC24 |
| Display.ReplConst(Display.white,f V.Xg + 1,h V.Yi + V.Hj -k 1 -l V.dscm.Hn,o V.Wp - 2,q V.dscr.Hs,t Display.invert)u;v |
02BA | f(40000001): MOV R0, R0, 1H |
02BB | g(81E00004): LDR R1, SP, 4H |
02BC | g(D10FE84C): BLEQ MT [trap=4, pos=4072] |
02BD | h(81100008): LDR R1, R1, 8H |
02BE | h(41180001): ADD R1, R1, 1H |
02BF | i(82E00004): LDR R2, SP, 4H |
02C0 | i(D10FF14C): BLEQ MT [trap=4, pos=4081] |
02C1 | j(83E00004): LDR R3, SP, 4H |
02C2 | j(D10FF74C): BLEQ MT [trap=4, pos=4087] |
02C3 | k(8220000C): LDR R2, R2, CH |
02C4 | k(83300014): LDR R3, R3, 14H |
02C5 | k(02280003): ADD R2, R2, R3 |
02C6 | l(42290001): SUB R2, R2, 1H |
02C7 | m(83E00004): LDR R3, SP, 4H |
02C8 | m(D110034C): BLEQ MT [trap=4, pos=4099] |
02C9 | n(83300004): LDR R3, R3, 4H |
02CA | n(D110054C): BLEQ MT [trap=4, pos=4101] |
02CB | o(83300014): LDR R3, R3, 14H |
02CC | o(02290003): SUB R2, R2, R3 |
02CD | p(83E00004): LDR R3, SP, 4H |
02CE | p(D1100A4C): BLEQ MT [trap=4, pos=4106] |
02CF | q(83300010): LDR R3, R3, 10H |
02D0 | q(43390002): SUB R3, R3, 2H |
02D1 | r(84E00004): LDR R4, SP, 4H |
02D2 | r(D110154C): BLEQ MT [trap=4, pos=4117] |
02D3 | s(84400004): LDR R4, R4, 4H |
02D4 | s(D110174C): BLEQ MT [trap=4, pos=4119] |
02D5 | t(84400014): LDR R4, R4, 14H |
02D6 | u(45000002): MOV R5, R0, 2H |
02D7 | v .FIXUP P |
02D7 | v(F720F01E): BL MOD2 [Display] PROC15 |
| Y0 := Y;w keysum := Keys;x Input.Mouse(Keys,y X,z Y)a;b |
02D8 | w(80E0000C): LDR R0, SP, CH |
02D9 | w(A0E00024): STR R0, SP, 24H |
02DA | x(80E00010): LDR R0, SP, 10H |
02DB | x(A0E00020): STR R0, SP, 20H |
02DC | y(40E80010): ADD R0, SP, 10H |
02DD | z(41E80008): ADD R1, SP, 8H |
02DE | a(42E8000C): ADD R2, SP, CH |
02DF | b .FIXUP P |
02DF | b(F7103008): BL MOD1 [Input] PROC3 |
| WHILE Keys # {} DOc |
02E0 | c(80E00010): LDR R0, SP, 10H |
02E1 | c(E100000C): BEQ 12 [02EEH] |
| keysum := keysum + Keys;d |
02E2 | d(80E00020): LDR R0, SP, 20H |
02E3 | d(81E00010): LDR R1, SP, 10H |
02E4 | d(00060001): IOR R0, R0, R1 |
02E5 | d(A0E00020): STR R0, SP, 20H |
| Oberon.DrawMouseArrow(X,e Y)f;g Input.Mouse(Keys,h X,i Y)j |
02E6 | e(80E00008): LDR R0, SP, 8H |
02E7 | f(81E0000C): LDR R1, SP, CH |
02E8 | g .FIXUP P |
02E8 | g(F7418009): BL MOD4 [Oberon] PROC24 |
02E9 | h(40E80010): ADD R0, SP, 10H |
02EA | i(41E80008): ADD R1, SP, 8H |
02EB | j(42E8000C): ADD R2, SP, CH |
| ENDk; |
02EC | k .FIXUP P |
02EC | k(F7103004): BL MOD1 [Input] PROC3 |
02ED | k(E7FFFFF2): B -14 [02E0H] |
| Display.ReplConst(Display.white,l V.Xm + 1,n V.Yo + V.Hp -q 1 -r V.dscs.Ht,u V.Wv - 2,w V.dscx.Hy,z Display.invert)a;b |
02EE | l(40000001): MOV R0, R0, 1H |
02EF | m(81E00004): LDR R1, SP, 4H |
02F0 | m(D111024C): BLEQ MT [trap=4, pos=4354] |
02F1 | n(81100008): LDR R1, R1, 8H |
02F2 | n(41180001): ADD R1, R1, 1H |
02F3 | o(82E00004): LDR R2, SP, 4H |
02F4 | o(D1110B4C): BLEQ MT [trap=4, pos=4363] |
02F5 | p(83E00004): LDR R3, SP, 4H |
02F6 | p(D111114C): BLEQ MT [trap=4, pos=4369] |
02F7 | q(8220000C): LDR R2, R2, CH |
02F8 | q(83300014): LDR R3, R3, 14H |
02F9 | q(02280003): ADD R2, R2, R3 |
02FA | r(42290001): SUB R2, R2, 1H |
02FB | s(83E00004): LDR R3, SP, 4H |
02FC | s(D1111D4C): BLEQ MT [trap=4, pos=4381] |
02FD | t(83300004): LDR R3, R3, 4H |
02FE | t(D1111F4C): BLEQ MT [trap=4, pos=4383] |
02FF | u(83300014): LDR R3, R3, 14H |
0300 | u(02290003): SUB R2, R2, R3 |
0301 | v(83E00004): LDR R3, SP, 4H |
0302 | v(D111244C): BLEQ MT [trap=4, pos=4388] |
0303 | w(83300010): LDR R3, R3, 10H |
0304 | w(43390002): SUB R3, R3, 2H |
0305 | x(84E00004): LDR R4, SP, 4H |
0306 | x(D1112F4C): BLEQ MT [trap=4, pos=4399] |
0307 | y(84400004): LDR R4, R4, 4H |
0308 | y(D111314C): BLEQ MT [trap=4, pos=4401] |
0309 | z(84400014): LDR R4, R4, 14H |
030A | a(45000002): MOV R5, R0, 2H |
030B | b .FIXUP P |
030B | b(F720F01F): BL MOD2 [Display] PROC15 |
| IF ~(0 IN keysum)c THENd |
030C | c(80E00020): LDR R0, SP, 20H |
030D | c(40030001): ROR R0, R0, 1H |
030E | d(E0000165): BMI 357 [0474H] |
| IF 1 IN keysum THENe V1 := Viewers.This(X,f Y)g;h |
030F | e(80E00020): LDR R0, SP, 20H |
0310 | e(40030002): ROR R0, R0, 2H |
0311 | e(E8000046): BPL 70 [0358H] |
0312 | f(80E00008): LDR R0, SP, 8H |
0313 | g(81E0000C): LDR R1, SP, CH |
0314 | h .FIXUP P |
0314 | h(F7309009): BL MOD3 [Viewers] PROC9 |
0315 | h(A0E0001C): STR R0, SP, 1CH |
| IF (V1 IS Viewer)i & (jY > V1.Yk + V1.Hl -m V1(Viewer)n.menuH -o 2)p THENq Y := V1.Yr + V1.Hs ENDt; |
0316 | i(80E0001C): LDR R0, SP, 1CH |
0317 | i(E1000005): BEQ 5 [031DH] |
0318 | i(810FFFF8): LDR R1, R0, FFFFFFF8H |
0319 | i(81100008): LDR R1, R1, 8H |
031A | i .FIXUP D |
031A | i(8D0001BA): LDR SB, MT, MOD0 [MenuViewers] |
031B | i(42D80000): ADD R2, SB, 0H [data] |
031C | i(02290001): SUB R2, R2, R1 |
031D | j(E900001D): BNE 29 [033BH] |
031E | k(80E0001C): LDR R0, SP, 1CH |
031F | k(D111B84C): BLEQ MT [trap=4, pos=4536] |
0320 | l(81E0001C): LDR R1, SP, 1CH |
0321 | l(D111BF4C): BLEQ MT [trap=4, pos=4543] |
0322 | m(8000000C): LDR R0, R0, CH |
0323 | m(81100014): LDR R1, R1, 14H |
0324 | m(00080001): ADD R0, R0, R1 |
0325 | n(81E0001C): LDR R1, SP, 1CH |
0326 | n(E1000005): BEQ 5 [032CH] |
0327 | n(821FFFF8): LDR R2, R1, FFFFFFF8H |
0328 | n(82200008): LDR R2, R2, 8H |
0329 | n .FIXUP D |
0329 | n(8D00000F): LDR SB, MT, MOD0 [MenuViewers] |
032A | n(43D80000): ADD R3, SB, 0H [data] |
032B | n(03390002): SUB R3, R3, R2 |
032C | n(D911CC2C): BLNE MT [trap=2, pos=4556] |
032D | o(81100020): LDR R1, R1, 20H |
032E | o(00090001): SUB R0, R0, R1 |
032F | p(40090002): SUB R0, R0, 2H |
0330 | p(81E0000C): LDR R1, SP, CH |
0331 | p(01190000): SUB R1, R1, R0 |
0332 | q(E6000008): BLE 8 [033BH] |
0333 | r(80E0001C): LDR R0, SP, 1CH |
0334 | r(D111E64C): BLEQ MT [trap=4, pos=4582] |
0335 | s(81E0001C): LDR R1, SP, 1CH |
0336 | s(D111ED4C): BLEQ MT [trap=4, pos=4589] |
0337 | t(8000000C): LDR R0, R0, CH |
0338 | t(81100014): LDR R1, R1, 14H |
0339 | t(00080001): ADD R0, R0, R1 |
033A | t(A0E0000C): STR R0, SP, CH |
| IF Y < V1.Yu + V.menuHv +w 2 THENx Y := V1.Yy + V.menuHz +a 2 ENDb; |
033B | u(80E0001C): LDR R0, SP, 1CH |
033C | u(D112064C): BLEQ MT [trap=4, pos=4614] |
033D | v(81E00004): LDR R1, SP, 4H |
033E | v(D112104C): BLEQ MT [trap=4, pos=4624] |
033F | w(8000000C): LDR R0, R0, CH |
0340 | w(81100020): LDR R1, R1, 20H |
0341 | w(00080001): ADD R0, R0, R1 |
0342 | x(40080002): ADD R0, R0, 2H |
0343 | x(81E0000C): LDR R1, SP, CH |
0344 | x(01190000): SUB R1, R1, R0 |
0345 | x(ED000009): BGE 9 [034FH] |
0346 | y(80E0001C): LDR R0, SP, 1CH |
0347 | y(D112234C): BLEQ MT [trap=4, pos=4643] |
0348 | z(81E00004): LDR R1, SP, 4H |
0349 | z(D1122D4C): BLEQ MT [trap=4, pos=4653] |
034A | a(8000000C): LDR R0, R0, CH |
034B | a(81100020): LDR R1, R1, 20H |
034C | a(00080001): ADD R0, R0, R1 |
034D | b(40080002): ADD R0, R0, 2H |
034E | b(A0E0000C): STR R0, SP, CH |
| Viewers.Close(V)c;d Viewers.Open(V,e X,f Y)g;h Restore(V)i |
034F | c(80E00004): LDR R0, SP, 4H |
0350 | d .FIXUP P |
0350 | d(F730703C): BL MOD3 [Viewers] PROC7 |
0351 | e(80E00004): LDR R0, SP, 4H |
0352 | f(81E00008): LDR R1, SP, 8H |
0353 | g(82E0000C): LDR R2, SP, CH |
0354 | h .FIXUP P |
0354 | h(F7305004): BL MOD3 [Viewers] PROC5 |
0355 | i(80E00004): LDR R0, SP, 4H |
| ELSEj |
0356 | j(F7FFFE1A): BL -486 [0171H] |
| IFk Y > Y0 THENl (*extend*) dY := Y - Y0;m |
0357 | k(E700011C): B 284 [0474H] |
0358 | l(80E0000C): LDR R0, SP, CH |
0359 | l(81E00024): LDR R1, SP, 24H |
035A | l(00090001): SUB R0, R0, R1 |
035B | l(E60000B7): BLE 183 [0413H] |
035C | m(80E0000C): LDR R0, SP, CH |
035D | m(81E00024): LDR R1, SP, 24H |
035E | m(00090001): SUB R0, R0, R1 |
035F | m(A0E00028): STR R0, SP, 28H |
| V1 := Viewers.Next(V)n;o |
0360 | n(80E00004): LDR R0, SP, 4H |
0361 | o .FIXUP P |
0361 | o(F730A00D): BL MOD3 [Viewers] PROC10 |
0362 | o(A0E0001C): STR R0, SP, 1CH |
| IF V1.statep > 1 THENq |
0363 | p(80E0001C): LDR R0, SP, 1CH |
0364 | p(D112E44C): BLEQ MT [trap=4, pos=4836] |
0365 | q(8000001C): LDR R0, R0, 1CH |
0366 | q(40090001): SUB R0, R0, 1H |
0367 | q(E6000038): BLE 56 [03A0H] |
| CASE V1 OF |
| Viewer:r |
0368 | r(80E0001C): LDR R0, SP, 1CH |
0369 | r(E1000005): BEQ 5 [036FH] |
036A | r(810FFFF8): LDR R1, R0, FFFFFFF8H |
036B | r(81100008): LDR R1, R1, 8H |
036C | r .FIXUP D |
036C | r(8D000043): LDR SB, MT, MOD0 [MenuViewers] |
036D | r(42D80000): ADD R2, SB, 0H [data] |
036E | r(02290001): SUB R2, R2, R1 |
036F | r(E9000021): BNE 33 [0391H] |
| IF V1.Hs < V1.menuHt + 2 THENu dY := 0 |
0370 | s(80E0001C): LDR R0, SP, 1CH |
0371 | s(D1132E4C): BLEQ MT [trap=4, pos=4910] |
0372 | t(81E0001C): LDR R1, SP, 1CH |
0373 | t(D113394C): BLEQ MT [trap=4, pos=4921] |
0374 | u(81100020): LDR R1, R1, 20H |
0375 | u(41180002): ADD R1, R1, 2H |
0376 | u(80000014): LDR R0, R0, 14H |
0377 | u(00090001): SUB R0, R0, R1 |
0378 | u(ED000003): BGE 3 [037CH] |
| ELSIFv V1w.Hx < V1.menuHy + 2 +z dY THENa dY := V1.Hb - V1.menuHc -d 2 |
0379 | v(40000000): MOV R0, R0, 0H |
037A | v(A0E00028): STR R0, SP, 28H |
037B | w(E7000014): B 20 [0390H] |
037C | x(80E0001C): LDR R0, SP, 1CH |
037D | x(D113634C): BLEQ MT [trap=4, pos=4963] |
037E | y(81E0001C): LDR R1, SP, 1CH |
037F | y(D1136E4C): BLEQ MT [trap=4, pos=4974] |
0380 | z(81100020): LDR R1, R1, 20H |
0381 | z(41180002): ADD R1, R1, 2H |
0382 | a(82E00028): LDR R2, SP, 28H |
0383 | a(01180002): ADD R1, R1, R2 |
0384 | a(80000014): LDR R0, R0, 14H |
0385 | a(00090001): SUB R0, R0, R1 |
0386 | a(ED000009): BGE 9 [0390H] |
0387 | b(80E0001C): LDR R0, SP, 1CH |
0388 | b(D113874C): BLEQ MT [trap=4, pos=4999] |
0389 | c(81E0001C): LDR R1, SP, 1CH |
038A | c(D113924C): BLEQ MT [trap=4, pos=5010] |
038B | d(80000014): LDR R0, R0, 14H |
038C | d(81100020): LDR R1, R1, 20H |
038D | d(00090001): SUB R0, R0, R1 |
| ENDe | |
038E | e(40090002): SUB R0, R0, 2H |
038F | e(A0E00028): STR R0, SP, 28H |
| Viewersf.Viewer:g IF V1.Hh < 1 + dY THENi dY := V1.Hj - 1 ENDk |
0390 | f(E700000E): B 14 [039FH] |
0391 | g(EF00000D): BNO 13 [039FH] |
0392 | h(80E0001C): LDR R0, SP, 1CH |
0393 | h(D113CE4C): BLEQ MT [trap=4, pos=5070] |
0394 | i(41000001): MOV R1, R0, 1H |
0395 | i(82E00028): LDR R2, SP, 28H |
0396 | i(01180002): ADD R1, R1, R2 |
0397 | i(80000014): LDR R0, R0, 14H |
0398 | i(00090001): SUB R0, R0, R1 |
0399 | i(ED000005): BGE 5 [039FH] |
039A | j(80E0001C): LDR R0, SP, 1CH |
039B | j(D113E74C): BLEQ MT [trap=4, pos=5095] |
039C | k(80000014): LDR R0, R0, 14H |
039D | k(40090001): SUB R0, R0, 1H |
039E | k(A0E00028): STR R0, SP, 28H |
| END |
| ELSIF V1l.Hm < dY THENn dY := V1.Ho |
039F | l(E700000A): B 10 [03AAH] |
03A0 | m(80E0001C): LDR R0, SP, 1CH |
03A1 | m(D114144C): BLEQ MT [trap=4, pos=5140] |
03A2 | n(80000014): LDR R0, R0, 14H |
03A3 | n(81E00028): LDR R1, SP, 28H |
03A4 | n(00090001): SUB R0, R0, R1 |
03A5 | n(ED000004): BGE 4 [03AAH] |
03A6 | o(80E0001C): LDR R0, SP, 1CH |
03A7 | o(D114294C): BLEQ MT [trap=4, pos=5161] |
| ENDp; |
03A8 | p(80000014): LDR R0, R0, 14H |
03A9 | p(A0E00028): STR R0, SP, 28H |
| Viewers.Change(V,q V.Yr + V.Hs +t dY)u;v |
03AA | q(80E00004): LDR R0, SP, 4H |
03AB | r(81E00004): LDR R1, SP, 4H |
03AC | r(D114584C): BLEQ MT [trap=4, pos=5208] |
03AD | s(82E00004): LDR R2, SP, 4H |
03AE | s(D1145E4C): BLEQ MT [trap=4, pos=5214] |
03AF | t(8110000C): LDR R1, R1, CH |
03B0 | t(82200014): LDR R2, R2, 14H |
03B1 | t(01180002): ADD R1, R1, R2 |
03B2 | u(82E00028): LDR R2, SP, 28H |
03B3 | u(01180002): ADD R1, R1, R2 |
03B4 | v .FIXUP P |
03B4 | v(F7306053): BL MOD3 [Viewers] PROC6 |
| Oberon.RemoveMarks(V.Xw,x V.Yy,z V.Wa,b V.Hc)d;e |
03B5 | w(80E00004): LDR R0, SP, 4H |
03B6 | w(D114864C): BLEQ MT [trap=4, pos=5254] |
03B7 | x(80000008): LDR R0, R0, 8H |
03B8 | y(81E00004): LDR R1, SP, 4H |
03B9 | y(D1148B4C): BLEQ MT [trap=4, pos=5259] |
03BA | z(8110000C): LDR R1, R1, CH |
03BB | a(82E00004): LDR R2, SP, 4H |
03BC | a(D114904C): BLEQ MT [trap=4, pos=5264] |
03BD | b(82200010): LDR R2, R2, 10H |
03BE | c(83E00004): LDR R3, SP, 4H |
03BF | c(D114954C): BLEQ MT [trap=4, pos=5269] |
03C0 | d(83300014): LDR R3, R3, 14H |
03C1 | e .FIXUP P |
03C1 | e(F741B00D): BL MOD4 [Oberon] PROC27 |
| Grow(V,f V.Hg - dY)h;i |
03C2 | f(80E00004): LDR R0, SP, 4H |
03C3 | g(81E00004): LDR R1, SP, 4H |
03C4 | g(D114AD4C): BLEQ MT [trap=4, pos=5293] |
03C5 | h(81100014): LDR R1, R1, 14H |
03C6 | h(82E00028): LDR R2, SP, 28H |
03C7 | h(01190002): SUB R1, R1, R2 |
03C8 | i(F7FFFD25): BL -731 [00EEH] |
| IF V.Hj > V.menuHk + 1 THENl |
03C9 | j(80E00004): LDR R0, SP, 4H |
03CA | j(D114C54C): BLEQ MT [trap=4, pos=5317] |
03CB | k(81E00004): LDR R1, SP, 4H |
03CC | k(D114CF4C): BLEQ MT [trap=4, pos=5327] |
03CD | l(81100020): LDR R1, R1, 20H |
03CE | l(41180001): ADD R1, R1, 1H |
03CF | l(80000014): LDR R0, R0, 14H |
03D0 | l(00090001): SUB R0, R0, R1 |
03D1 | l(E6000024): BLE 36 [03F6H] |
| Adjust(Menu,m extend,n dY,o V.Yp + V.Hq -r V.menuHs,t V.menuHu - 1)v;w |
03D2 | m(80E00014): LDR R0, SP, 14H |
03D3 | n(41000000): MOV R1, R0, 0H |
03D4 | o(82E00028): LDR R2, SP, 28H |
03D5 | p(83E00004): LDR R3, SP, 4H |
03D6 | p(D115014C): BLEQ MT [trap=4, pos=5377] |
03D7 | q(84E00004): LDR R4, SP, 4H |
03D8 | q(D115074C): BLEQ MT [trap=4, pos=5383] |
03D9 | r(8330000C): LDR R3, R3, CH |
03DA | r(84400014): LDR R4, R4, 14H |
03DB | r(03380004): ADD R3, R3, R4 |
03DC | s(84E00004): LDR R4, SP, 4H |
03DD | s(D115114C): BLEQ MT [trap=4, pos=5393] |
03DE | t(84400020): LDR R4, R4, 20H |
03DF | t(03390004): SUB R3, R3, R4 |
03E0 | u(84E00004): LDR R4, SP, 4H |
03E1 | u(D1151A4C): BLEQ MT [trap=4, pos=5402] |
03E2 | v(84400020): LDR R4, R4, 20H |
03E3 | v(44490001): SUB R4, R4, 1H |
03E4 | w(F7FFFD65): BL -667 [014AH] |
| Adjust(Main,x extend,y dY,z V.Ya + 1,b V.Hc - V.menuHd -e 1)f |
03E5 | x(80E00018): LDR R0, SP, 18H |
03E6 | y(41000000): MOV R1, R0, 0H |
03E7 | z(82E00028): LDR R2, SP, 28H |
03E8 | a(83E00004): LDR R3, SP, 4H |
03E9 | a(D115494C): BLEQ MT [trap=4, pos=5449] |
03EA | b(8330000C): LDR R3, R3, CH |
03EB | b(43380001): ADD R3, R3, 1H |
03EC | c(84E00004): LDR R4, SP, 4H |
03ED | c(D115524C): BLEQ MT [trap=4, pos=5458] |
03EE | d(85E00004): LDR R5, SP, 4H |
03EF | d(D1155C4C): BLEQ MT [trap=4, pos=5468] |
03F0 | e(84400014): LDR R4, R4, 14H |
03F1 | e(85500020): LDR R5, R5, 20H |
03F2 | e(04490005): SUB R4, R4, R5 |
03F3 | f(44490001): SUB R4, R4, 1H |
| ELSEg (*V.H > 1*) |
03F4 | g(F7FFFD55): BL -683 [014AH] |
| Adjusth(Menu,i extend,j dY,k V.Yl + 1,m V.Hn - 2)o;p |
03F5 | h(E700001C): B 28 [0412H] |
03F6 | i(80E00014): LDR R0, SP, 14H |
03F7 | j(41000000): MOV R1, R0, 0H |
03F8 | k(82E00028): LDR R2, SP, 28H |
03F9 | l(83E00004): LDR R3, SP, 4H |
03FA | l(D115A54C): BLEQ MT [trap=4, pos=5541] |
03FB | m(8330000C): LDR R3, R3, CH |
03FC | m(43380001): ADD R3, R3, 1H |
03FD | n(84E00004): LDR R4, SP, 4H |
03FE | n(D115AE4C): BLEQ MT [trap=4, pos=5550] |
03FF | o(84400014): LDR R4, R4, 14H |
0400 | o(44490002): SUB R4, R4, 2H |
0401 | p(F7FFFD48): BL -696 [014AH] |
| Adjust(Main,q extend,r dY,s V.Yt + V.Hu -v V.menuHw,x 0)y |
0402 | q(80E00018): LDR R0, SP, 18H |
0403 | r(41000000): MOV R1, R0, 0H |
0404 | s(82E00028): LDR R2, SP, 28H |
0405 | t(83E00004): LDR R3, SP, 4H |
0406 | t(D115DD4C): BLEQ MT [trap=4, pos=5597] |
0407 | u(84E00004): LDR R4, SP, 4H |
0408 | u(D115E34C): BLEQ MT [trap=4, pos=5603] |
0409 | v(8330000C): LDR R3, R3, CH |
040A | v(84400014): LDR R4, R4, 14H |
040B | v(03380004): ADD R3, R3, R4 |
040C | w(84E00004): LDR R4, SP, 4H |
040D | w(D115ED4C): BLEQ MT [trap=4, pos=5613] |
040E | x(84400020): LDR R4, R4, 20H |
040F | x(03390004): SUB R3, R3, R4 |
0410 | y(44000000): MOV R4, R0, 0H |
| ENDz |
0411 | z(F7FFFD38): BL -712 [014AH] |
| ELSIF Ya < Y0 THENb (*reduce*) dY := Y0 - Y;c |
0412 | a(E7000061): B 97 [0474H] |
0413 | b(80E0000C): LDR R0, SP, CH |
0414 | b(81E00024): LDR R1, SP, 24H |
0415 | b(00090001): SUB R0, R0, R1 |
0416 | b(ED00005D): BGE 93 [0474H] |
0417 | c(80E00024): LDR R0, SP, 24H |
0418 | c(81E0000C): LDR R1, SP, CH |
0419 | c(00090001): SUB R0, R0, R1 |
041A | c(A0E00028): STR R0, SP, 28H |
| IF V.Hd >= V.menuHe + 2 THENf |
041B | d(80E00004): LDR R0, SP, 4H |
041C | d(D116434C): BLEQ MT [trap=4, pos=5699] |
041D | e(81E00004): LDR R1, SP, 4H |
041E | e(D1164E4C): BLEQ MT [trap=4, pos=5710] |
041F | f(81100020): LDR R1, R1, 20H |
0420 | f(41180002): ADD R1, R1, 2H |
0421 | f(80000014): LDR R0, R0, 14H |
0422 | f(00090001): SUB R0, R0, R1 |
0423 | f(E5000050): BLT 80 [0474H] |
| IF V.Hg < V.menuHh + 2 +i dY THENj dY := V.Hk - V.menuHl -m 2 ENDn; |
0424 | g(80E00004): LDR R0, SP, 4H |
0425 | g(D1166A4C): BLEQ MT [trap=4, pos=5738] |
0426 | h(81E00004): LDR R1, SP, 4H |
0427 | h(D116744C): BLEQ MT [trap=4, pos=5748] |
0428 | i(81100020): LDR R1, R1, 20H |
0429 | i(41180002): ADD R1, R1, 2H |
042A | j(82E00028): LDR R2, SP, 28H |
042B | j(01180002): ADD R1, R1, R2 |
042C | j(80000014): LDR R0, R0, 14H |
042D | j(00090001): SUB R0, R0, R1 |
042E | j(ED000009): BGE 9 [0438H] |
042F | k(80E00004): LDR R0, SP, 4H |
0430 | k(D1168C4C): BLEQ MT [trap=4, pos=5772] |
0431 | l(81E00004): LDR R1, SP, 4H |
0432 | l(D116964C): BLEQ MT [trap=4, pos=5782] |
0433 | m(80000014): LDR R0, R0, 14H |
0434 | m(81100020): LDR R1, R1, 20H |
0435 | m(00090001): SUB R0, R0, R1 |
0436 | n(40090002): SUB R0, R0, 2H |
0437 | n(A0E00028): STR R0, SP, 28H |
| Oberon.RemoveMarks(V.Xo,p V.Yq,r V.Ws,t V.Hu)v;w |
0438 | o(80E00004): LDR R0, SP, 4H |
0439 | o(D116C24C): BLEQ MT [trap=4, pos=5826] |
043A | p(80000008): LDR R0, R0, 8H |
043B | q(81E00004): LDR R1, SP, 4H |
043C | q(D116C74C): BLEQ MT [trap=4, pos=5831] |
043D | r(8110000C): LDR R1, R1, CH |
043E | s(82E00004): LDR R2, SP, 4H |
043F | s(D116CC4C): BLEQ MT [trap=4, pos=5836] |
0440 | t(82200010): LDR R2, R2, 10H |
0441 | u(83E00004): LDR R3, SP, 4H |
0442 | u(D116D14C): BLEQ MT [trap=4, pos=5841] |
0443 | v(83300014): LDR R3, R3, 14H |
0444 | w .FIXUP P |
0444 | w(F741B083): BL MOD4 [Oberon] PROC27 |
| H := V.Hx - dY;y |
0445 | x(80E00004): LDR R0, SP, 4H |
0446 | x(D116E84C): BLEQ MT [trap=4, pos=5864] |
0447 | y(80000014): LDR R0, R0, 14H |
0448 | y(81E00028): LDR R1, SP, 28H |
0449 | y(00090001): SUB R0, R0, R1 |
044A | y(A0E0002C): STR R0, SP, 2CH |
| Adjust(Main,z reduce,a dY,b V.Yc + 1,d H - V.menuHe -f 1)g;h |
044B | z(80E00018): LDR R0, SP, 18H |
044C | a(41000001): MOV R1, R0, 1H |
044D | b(82E00028): LDR R2, SP, 28H |
044E | c(83E00004): LDR R3, SP, 4H |
044F | c(D117174C): BLEQ MT [trap=4, pos=5911] |
0450 | d(8330000C): LDR R3, R3, CH |
0451 | d(43380001): ADD R3, R3, 1H |
0452 | e(84E00004): LDR R4, SP, 4H |
0453 | e(D117284C): BLEQ MT [trap=4, pos=5928] |
0454 | f(85E0002C): LDR R5, SP, 2CH |
0455 | f(84400020): LDR R4, R4, 20H |
0456 | f(04590004): SUB R4, R5, R4 |
0457 | g(44490001): SUB R4, R4, 1H |
0458 | h(F7FFFCF1): BL -783 [014AH] |
| Adjust(Menu,i reduce,j dY,k V.Yl + H -m V.menuHn,o V.menuHp - 1)q;r |
0459 | i(80E00014): LDR R0, SP, 14H |
045A | j(41000001): MOV R1, R0, 1H |
045B | k(82E00028): LDR R2, SP, 28H |
045C | l(83E00004): LDR R3, SP, 4H |
045D | l(D117574C): BLEQ MT [trap=4, pos=5975] |
045E | m(8330000C): LDR R3, R3, CH |
045F | m(84E0002C): LDR R4, SP, 2CH |
0460 | m(03380004): ADD R3, R3, R4 |
0461 | n(84E00004): LDR R4, SP, 4H |
0462 | n(D117654C): BLEQ MT [trap=4, pos=5989] |
0463 | o(84400020): LDR R4, R4, 20H |
0464 | o(03390004): SUB R3, R3, R4 |
0465 | p(84E00004): LDR R4, SP, 4H |
0466 | p(D1176E4C): BLEQ MT [trap=4, pos=5998] |
0467 | q(84400020): LDR R4, R4, 20H |
0468 | q(44490001): SUB R4, R4, 1H |
0469 | r(F7FFFCE0): BL -800 [014AH] |
| Shrink(V,s H)t;u Viewers.Change(V,v V.Yw + H)x |
046A | s(80E00004): LDR R0, SP, 4H |
046B | t(81E0002C): LDR R1, SP, 2CH |
046C | u(F7FFFCC4): BL -828 [0131H] |
046D | v(80E00004): LDR R0, SP, 4H |
046E | w(81E00004): LDR R1, SP, 4H |
046F | w(D117A44C): BLEQ MT [trap=4, pos=6052] |
0470 | x(8110000C): LDR R1, R1, CH |
0471 | x(82E0002C): LDR R2, SP, 2CH |
0472 | x(01180002): ADD R1, R1, R2 |
| ENDy |
0473 | y .FIXUP P |
0473 | y(F730602F): BL MOD3 [Viewers] PROC6 |
| END |
| END |
| END |
| ENDz Change; |
0474 | z(8FE00000): LDR LNK, SP, 0H |
0475 | z(4EE80030): ADD SP, SP, 30H |
0476 | z(C700000F): B LNK |
| |
| PROCEDURE Suspend (V: Viewer); |
| VAR Menu, Main: Display.Frame; |
| BEGINa Menu := V.dscb;c Main := V.dscd.nexte;f |
0477 | a(4EE90010): SUB SP, SP, 10H |
0478 | a(AFE00000): STR LNK, SP, 0H |
0479 | a(A0E00004): STR R0, SP, 4H |
047A | b(80E00004): LDR R0, SP, 4H |
047B | b(D1183E4C): BLEQ MT [trap=4, pos=6206] |
047C | c(80000004): LDR R0, R0, 4H |
047D | c(A0E00008): STR R0, SP, 8H |
047E | d(80E00004): LDR R0, SP, 4H |
047F | d(D1184D4C): BLEQ MT [trap=4, pos=6221] |
0480 | e(80000004): LDR R0, R0, 4H |
0481 | e(D118524C): BLEQ MT [trap=4, pos=6226] |
0482 | f(80000000): LDR R0, R0, 0H |
0483 | f(A0E0000C): STR R0, SP, CH |
| Adjust(Main,g reduce,h 0,i V.Yj + V.Hk -l V.menuHm,n 0)o;p |
0484 | g(80E0000C): LDR R0, SP, CH |
0485 | h(41000001): MOV R1, R0, 1H |
0486 | i(42000000): MOV R2, R0, 0H |
0487 | j(83E00004): LDR R3, SP, 4H |
0488 | j(D118734C): BLEQ MT [trap=4, pos=6259] |
0489 | k(84E00004): LDR R4, SP, 4H |
048A | k(D118794C): BLEQ MT [trap=4, pos=6265] |
048B | l(8330000C): LDR R3, R3, CH |
048C | l(84400014): LDR R4, R4, 14H |
048D | l(03380004): ADD R3, R3, R4 |
048E | m(84E00004): LDR R4, SP, 4H |
048F | m(D118834C): BLEQ MT [trap=4, pos=6275] |
0490 | n(84400020): LDR R4, R4, 20H |
0491 | n(03390004): SUB R3, R3, R4 |
0492 | o(44000000): MOV R4, R0, 0H |
0493 | p(F7FFFCB6): BL -842 [014AH] |
| Adjust(Menu,q reduce,r 0,s V.Yt + V.Hu -v 1,w 0)x |
0494 | q(80E00008): LDR R0, SP, 8H |
0495 | r(41000001): MOV R1, R0, 1H |
0496 | s(42000000): MOV R2, R0, 0H |
0497 | t(83E00004): LDR R3, SP, 4H |
0498 | t(D118A84C): BLEQ MT [trap=4, pos=6312] |
0499 | u(84E00004): LDR R4, SP, 4H |
049A | u(D118AE4C): BLEQ MT [trap=4, pos=6318] |
049B | v(8330000C): LDR R3, R3, CH |
049C | v(84400014): LDR R4, R4, 14H |
049D | v(03380004): ADD R3, R3, R4 |
049E | w(43390001): SUB R3, R3, 1H |
049F | x(44000000): MOV R4, R0, 0H |
| ENDy Suspend; |
04A0 | y(F7FFFCA9): BL -855 [014AH] |
04A1 | y(8FE00000): LDR LNK, SP, 0H |
04A2 | y(4EE80010): ADD SP, SP, 10H |
04A3 | y(C700000F): B LNK |
| |
| PROCEDURE Handle* (V: Display.Frame; VAR M: Display.FrameMsg); |
| VAR X, Y: INTEGER; |
| Menu, Main: Display.Frame; V1: Viewer; |
| BEGINz Menu := V.dsca;b Main := V.dscc.nextd;e |
04A4 | z .PROC 3 |
04A4 | z(4EE90024): SUB SP, SP, 24H |
04A5 | z(AFE00000): STR LNK, SP, 0H |
04A6 | z(A0E00004): STR R0, SP, 4H |
04A7 | z(A1E00008): STR R1, SP, 8H |
04A8 | z(A2E0000C): STR R2, SP, CH |
04A9 | a(80E00004): LDR R0, SP, 4H |
04AA | a(D119614C): BLEQ MT [trap=4, pos=6497] |
04AB | b(80000004): LDR R0, R0, 4H |
04AC | b(A0E00018): STR R0, SP, 18H |
04AD | c(80E00004): LDR R0, SP, 4H |
04AE | c(D119704C): BLEQ MT [trap=4, pos=6512] |
04AF | d(80000004): LDR R0, R0, 4H |
04B0 | d(D119754C): BLEQ MT [trap=4, pos=6517] |
04B1 | e(80000000): LDR R0, R0, 0H |
04B2 | e(A0E0001C): STR R0, SP, 1CH |
| CASE M OF |
| Oberon.InputMsg:f |
04B3 | f(80E0000C): LDR R0, SP, CH |
04B4 | f(80000004): LDR R0, R0, 4H |
04B5 | f .FIXUP D |
04B5 | f(8D400149): LDR SB, MT, MOD4 [Oberon] |
04B6 | f(41D80003): ADD R1, SB, VAR3 |
04B7 | f(01190000): SUB R1, R1, R0 |
04B8 | f(E900009F): BNE 159 [0558H] |
| IF M.id = Oberon.track THENg |
04B9 | g(80E00008): LDR R0, SP, 8H |
04BA | g(80000000): LDR R0, R0, 0H |
04BB | g(40090001): SUB R0, R0, 1H |
04BC | g(E9000082): BNE 130 [053FH] |
| X := M.X;h Y := M.Y;i |
04BD | h(80E00008): LDR R0, SP, 8H |
04BE | h(80000008): LDR R0, R0, 8H |
04BF | h(A0E00010): STR R0, SP, 10H |
04C0 | i(80E00008): LDR R0, SP, 8H |
04C1 | i(8000000C): LDR R0, R0, CH |
04C2 | i(A0E00014): STR R0, SP, 14H |
| IF Y < V.Yj + 1 THENk Oberon.DrawMouseArrow(X,l Y)m |
04C3 | j(80E00004): LDR R0, SP, 4H |
04C4 | j(D119F44C): BLEQ MT [trap=4, pos=6644] |
04C5 | k(8000000C): LDR R0, R0, CH |
04C6 | k(40080001): ADD R0, R0, 1H |
04C7 | k(81E00014): LDR R1, SP, 14H |
04C8 | k(01190000): SUB R1, R1, R0 |
04C9 | k(ED000004): BGE 4 [04CEH] |
04CA | l(80E00010): LDR R0, SP, 10H |
04CB | m(81E00014): LDR R1, SP, 14H |
| ELSIFn Yo < V.Yp + V.Hq -r V(Viewer)s.menuH THENt Main.handleu(Mainv,w M)x |
04CC | n .FIXUP P |
04CC | n(F7418059): BL MOD4 [Oberon] PROC24 |
04CD | o(E7000070): B 112 [053EH] |
04CE | p(80E00004): LDR R0, SP, 4H |
04CF | p(D11A314C): BLEQ MT [trap=4, pos=6705] |
04D0 | q(81E00004): LDR R1, SP, 4H |
04D1 | q(D11A374C): BLEQ MT [trap=4, pos=6711] |
04D2 | r(8000000C): LDR R0, R0, CH |
04D3 | r(81100014): LDR R1, R1, 14H |
04D4 | r(00080001): ADD R0, R0, R1 |
04D5 | s(81E00004): LDR R1, SP, 4H |
04D6 | s(E1000005): BEQ 5 [04DCH] |
04D7 | s(821FFFF8): LDR R2, R1, FFFFFFF8H |
04D8 | s(82200008): LDR R2, R2, 8H |
04D9 | s .FIXUP D |
04D9 | s(8D000024): LDR SB, MT, MOD0 [MenuViewers] |
04DA | s(43D80000): ADD R3, SB, 0H [data] |
04DB | s(03390002): SUB R3, R3, R2 |
04DC | s(D91A432C): BLNE MT [trap=2, pos=6723] |
04DD | t(81100020): LDR R1, R1, 20H |
04DE | t(00090001): SUB R0, R0, R1 |
04DF | t(81E00014): LDR R1, SP, 14H |
04E0 | t(01190000): SUB R1, R1, R0 |
04E1 | t(ED00000D): BGE 13 [04EFH] |
04E2 | u(80E0001C): LDR R0, SP, 1CH |
04E3 | u(D11A5A4C): BLEQ MT [trap=4, pos=6746] |
04E4 | v(80000018): LDR R0, R0, 18H |
04E5 | v(4EE90004): SUB SP, SP, 4H |
04E6 | v(A0E00000): STR R0, SP, 0H |
04E7 | w(80E00020): LDR R0, SP, 20H |
04E8 | x(81E0000C): LDR R1, SP, CH |
04E9 | x(82E00010): LDR R2, SP, 10H |
| ELSIFy Yz < V.Ya + V.Hb -c V(Viewer)d.menuH +e 2 THENf Menu.handleg(Menuh,i M)j |
04EA | y(83E00000): LDR R3, SP, 0H |
04EB | y(4EE80004): ADD SP, SP, 4H |
04EC | y(D11A735C): BLEQ MT [trap=5, pos=6771] |
04ED | y(D7000003): BL R3 |
04EE | z(E700004F): B 79 [053EH] |
04EF | a(80E00004): LDR R0, SP, 4H |
04F0 | a(D11A7B4C): BLEQ MT [trap=4, pos=6779] |
04F1 | b(81E00004): LDR R1, SP, 4H |
04F2 | b(D11A814C): BLEQ MT [trap=4, pos=6785] |
04F3 | c(8000000C): LDR R0, R0, CH |
04F4 | c(81100014): LDR R1, R1, 14H |
04F5 | c(00080001): ADD R0, R0, R1 |
04F6 | d(81E00004): LDR R1, SP, 4H |
04F7 | d(E1000005): BEQ 5 [04FDH] |
04F8 | d(821FFFF8): LDR R2, R1, FFFFFFF8H |
04F9 | d(82200008): LDR R2, R2, 8H |
04FA | d .FIXUP D |
04FA | d(8D000021): LDR SB, MT, MOD0 [MenuViewers] |
04FB | d(43D80000): ADD R3, SB, 0H [data] |
04FC | d(03390002): SUB R3, R3, R2 |
04FD | d(D91A8D2C): BLNE MT [trap=2, pos=6797] |
04FE | e(81100020): LDR R1, R1, 20H |
04FF | e(00090001): SUB R0, R0, R1 |
0500 | f(40080002): ADD R0, R0, 2H |
0501 | f(81E00014): LDR R1, SP, 14H |
0502 | f(01190000): SUB R1, R1, R0 |
0503 | f(ED00000D): BGE 13 [0511H] |
0504 | g(80E00018): LDR R0, SP, 18H |
0505 | g(D11AA84C): BLEQ MT [trap=4, pos=6824] |
0506 | h(80000018): LDR R0, R0, 18H |
0507 | h(4EE90004): SUB SP, SP, 4H |
0508 | h(A0E00000): STR R0, SP, 0H |
0509 | i(80E0001C): LDR R0, SP, 1CH |
050A | j(81E0000C): LDR R1, SP, CH |
050B | j(82E00010): LDR R2, SP, 10H |
| ELSIFk Yl < V.Ym + V.Hn -o 1 THENp |
050C | k(83E00000): LDR R3, SP, 0H |
050D | k(4EE80004): ADD SP, SP, 4H |
050E | k(D11AC15C): BLEQ MT [trap=5, pos=6849] |
050F | k(D7000003): BL R3 |
0510 | l(E700002D): B 45 [053EH] |
0511 | m(80E00004): LDR R0, SP, 4H |
0512 | m(D11AC94C): BLEQ MT [trap=4, pos=6857] |
0513 | n(81E00004): LDR R1, SP, 4H |
0514 | n(D11ACF4C): BLEQ MT [trap=4, pos=6863] |
0515 | o(8000000C): LDR R0, R0, CH |
0516 | o(81100014): LDR R1, R1, 14H |
0517 | o(00080001): ADD R0, R0, R1 |
0518 | p(40090001): SUB R0, R0, 1H |
0519 | p(81E00014): LDR R1, SP, 14H |
051A | p(01190000): SUB R1, R1, R0 |
051B | p(ED00001F): BGE 31 [053BH] |
| IF 2 IN M.keys THENq Change(V(Viewer)r, X,s Y,t M.keys)u ELSEv Menuw.handlex(Menuy,z M)a ENDb |
051C | q(80E00008): LDR R0, SP, 8H |
051D | q(80000004): LDR R0, R0, 4H |
051E | q(40030003): ROR R0, R0, 3H |
051F | q(E800000E): BPL 14 [052EH] |
0520 | r(80E00004): LDR R0, SP, 4H |
0521 | r(E1000005): BEQ 5 [0527H] |
0522 | r(810FFFF8): LDR R1, R0, FFFFFFF8H |
0523 | r(81100008): LDR R1, R1, 8H |
0524 | r .FIXUP D |
0524 | r(8D00002A): LDR SB, MT, MOD0 [MenuViewers] |
0525 | r(42D80000): ADD R2, SB, 0H [data] |
0526 | r(02290001): SUB R2, R2, R1 |
0527 | r(D91B092C): BLNE MT [trap=2, pos=6921] |
0528 | s(81E00010): LDR R1, SP, 10H |
0529 | t(82E00014): LDR R2, SP, 14H |
052A | u(83E00008): LDR R3, SP, 8H |
052B | u(83300004): LDR R3, R3, 4H |
052C | v(F7FFFD7A): BL -646 [02A7H] |
052D | w(E700000C): B 12 [053AH] |
052E | x(80E00018): LDR R0, SP, 18H |
052F | x(D11B294C): BLEQ MT [trap=4, pos=6953] |
0530 | y(80000018): LDR R0, R0, 18H |
0531 | y(4EE90004): SUB SP, SP, 4H |
0532 | y(A0E00000): STR R0, SP, 0H |
0533 | z(80E0001C): LDR R0, SP, 1CH |
0534 | a(81E0000C): LDR R1, SP, CH |
0535 | a(82E00010): LDR R2, SP, 10H |
0536 | b(83E00000): LDR R3, SP, 0H |
0537 | b(4EE80004): ADD SP, SP, 4H |
0538 | b(D11B365C): BLEQ MT [trap=5, pos=6966] |
0539 | b(D7000003): BL R3 |
| ELSE Oberonc.DrawMouseArrow(X,d Y)e |
053A | c(E7000003): B 3 [053EH] |
053B | d(80E00010): LDR R0, SP, 10H |
053C | e(81E00014): LDR R1, SP, 14H |
| ENDf |
053D | f .FIXUP P |
053D | f(F7418071): BL MOD4 [Oberon] PROC24 |
| ELSE Menug.handleh(Menui,j M)k;l Main.handlem(Mainn,o M)p |
053E | g(E7000018): B 24 [0557H] |
053F | h(80E00018): LDR R0, SP, 18H |
0540 | h(D11B884C): BLEQ MT [trap=4, pos=7048] |
0541 | i(80000018): LDR R0, R0, 18H |
0542 | i(4EE90004): SUB SP, SP, 4H |
0543 | i(A0E00000): STR R0, SP, 0H |
0544 | j(80E0001C): LDR R0, SP, 1CH |
0545 | k(81E0000C): LDR R1, SP, CH |
0546 | k(82E00010): LDR R2, SP, 10H |
0547 | l(83E00000): LDR R3, SP, 0H |
0548 | l(4EE80004): ADD SP, SP, 4H |
0549 | l(D11B925C): BLEQ MT [trap=5, pos=7058] |
054A | l(D7000003): BL R3 |
054B | m(80E0001C): LDR R0, SP, 1CH |
054C | m(D11B9E4C): BLEQ MT [trap=4, pos=7070] |
054D | n(80000018): LDR R0, R0, 18H |
054E | n(4EE90004): SUB SP, SP, 4H |
054F | n(A0E00000): STR R0, SP, 0H |
0550 | o(80E00020): LDR R0, SP, 20H |
0551 | p(81E0000C): LDR R1, SP, CH |
0552 | p(82E00010): LDR R2, SP, 10H |
| ENDq | |
0553 | q(83E00000): LDR R3, SP, 0H |
0554 | q(4EE80004): ADD SP, SP, 4H |
0555 | q(D11BB35C): BLEQ MT [trap=5, pos=7091] |
0556 | q(D7000003): BL R3 |
| Oberonr.ControlMsg:s |
0557 | r(E7000090): B 144 [05E8H] |
0558 | s(80E0000C): LDR R0, SP, CH |
0559 | s(80000004): LDR R0, R0, 4H |
055A | s .FIXUP D |
055A | s(8D400036): LDR SB, MT, MOD4 [Oberon] |
055B | s(41D80005): ADD R1, SB, VAR5 |
055C | s(01190000): SUB R1, R1, R0 |
055D | s(E900002A): BNE 42 [0588H] |
| IF M.id = Oberon.mark THENt |
055E | t(80E00008): LDR R0, SP, 8H |
055F | t(80000000): LDR R0, R0, 0H |
0560 | t(40090002): SUB R0, R0, 2H |
0561 | t(E900000D): BNE 13 [056FH] |
| X := M.X;u Y := M.Y;v Oberon.DrawMouseArrow(X,w Y)x;y Oberon.DrawPointer(X,z Y)a |
0562 | u(80E00008): LDR R0, SP, 8H |
0563 | u(80000004): LDR R0, R0, 4H |
0564 | u(A0E00010): STR R0, SP, 10H |
0565 | v(80E00008): LDR R0, SP, 8H |
0566 | v(80000008): LDR R0, R0, 8H |
0567 | v(A0E00014): STR R0, SP, 14H |
0568 | w(80E00010): LDR R0, SP, 10H |
0569 | x(81E00014): LDR R1, SP, 14H |
056A | y .FIXUP P |
056A | y(F741802D): BL MOD4 [Oberon] PROC24 |
056B | z(80E00010): LDR R0, SP, 10H |
056C | a(81E00014): LDR R1, SP, 14H |
| ELSEb Menuc.handled(Menue,f M)g;h Main.handlei(Mainj,k M)l |
056D | b .FIXUP P |
056D | b(F741A003): BL MOD4 [Oberon] PROC26 |
056E | c(E7000018): B 24 [0587H] |
056F | d(80E00018): LDR R0, SP, 18H |
0570 | d(D11C5E4C): BLEQ MT [trap=4, pos=7262] |
0571 | e(80000018): LDR R0, R0, 18H |
0572 | e(4EE90004): SUB SP, SP, 4H |
0573 | e(A0E00000): STR R0, SP, 0H |
0574 | f(80E0001C): LDR R0, SP, 1CH |
0575 | g(81E0000C): LDR R1, SP, CH |
0576 | g(82E00010): LDR R2, SP, 10H |
0577 | h(83E00000): LDR R3, SP, 0H |
0578 | h(4EE80004): ADD SP, SP, 4H |
0579 | h(D11C685C): BLEQ MT [trap=5, pos=7272] |
057A | h(D7000003): BL R3 |
057B | i(80E0001C): LDR R0, SP, 1CH |
057C | i(D11C744C): BLEQ MT [trap=4, pos=7284] |
057D | j(80000018): LDR R0, R0, 18H |
057E | j(4EE90004): SUB SP, SP, 4H |
057F | j(A0E00000): STR R0, SP, 0H |
0580 | k(80E00020): LDR R0, SP, 20H |
0581 | l(81E0000C): LDR R1, SP, CH |
0582 | l(82E00010): LDR R2, SP, 10H |
| ENDm | |
0583 | m(83E00000): LDR R3, SP, 0H |
0584 | m(4EE80004): ADD SP, SP, 4H |
0585 | m(D11C895C): BLEQ MT [trap=5, pos=7305] |
0586 | m(D7000003): BL R3 |
| Oberonn.CopyMsg:o |
0587 | n(E7000060): B 96 [05E8H] |
0588 | o(80E0000C): LDR R0, SP, CH |
0589 | o(80000004): LDR R0, R0, 4H |
058A | o .FIXUP D |
058A | o(8D400030): LDR SB, MT, MOD4 [Oberon] |
058B | o(41D80006): ADD R1, SB, VAR6 |
058C | o(01190000): SUB R1, R1, R0 |
058D | o(E900000E): BNE 14 [059CH] |
| Copy(V(Viewer)p, V1)q;r M.F := V1 |s |
058E | p(80E00004): LDR R0, SP, 4H |
058F | p(E1000005): BEQ 5 [0595H] |
0590 | p(810FFFF8): LDR R1, R0, FFFFFFF8H |
0591 | p(81100008): LDR R1, R1, 8H |
0592 | p .FIXUP D |
0592 | p(8D000008): LDR SB, MT, MOD0 [MenuViewers] |
0593 | p(42D80000): ADD R2, SB, 0H [data] |
0594 | p(02290001): SUB R2, R2, R1 |
0595 | p(D91CB82C): BLNE MT [trap=2, pos=7352] |
0596 | q(41E80020): ADD R1, SP, 20H |
0597 | r(F7FFFA68): BL -1432 [0000H] |
0598 | s(80E00020): LDR R0, SP, 20H |
0599 | s(81E00008): LDR R1, SP, 8H |
059A | s(A0100000): STR R0, R1, 0H |
| Viewerst.ViewerMsg:u |
059B | t(E700004C): B 76 [05E8H] |
059C | u(80E0000C): LDR R0, SP, CH |
059D | u(80000004): LDR R0, R0, 4H |
059E | u .FIXUP D |
059E | u(8D30000C): LDR SB, MT, MOD3 [Viewers] |
059F | u(41D80002): ADD R1, SB, VAR2 |
05A0 | u(01190000): SUB R1, R1, R0 |
05A1 | u(E900002D): BNE 45 [05CFH] |
| IF M.id = Viewers.restore THENv Restore(V(Viewer)w) |
05A2 | v(80E00008): LDR R0, SP, 8H |
05A3 | v(80000000): LDR R0, R0, 0H |
05A4 | v(E900000A): BNE 10 [05AFH] |
05A5 | w(80E00004): LDR R0, SP, 4H |
05A6 | w(E1000005): BEQ 5 [05ACH] |
05A7 | w(810FFFF8): LDR R1, R0, FFFFFFF8H |
05A8 | w(81100008): LDR R1, R1, 8H |
05A9 | w .FIXUP D |
05A9 | w(8D00000B): LDR SB, MT, MOD0 [MenuViewers] |
05AA | w(42D80000): ADD R2, SB, 0H [data] |
05AB | w(02290001): SUB R2, R2, R1 |
05AC | w(D91D1C2C): BLNE MT [trap=2, pos=7452] |
| ELSIFx My.id = Viewers.modify THENz Modify(V(Viewer)a, M.Y,b M.H)c |
05AD | x(F7FFFBC3): BL -1085 [0171H] |
05AE | y(E700001F): B 31 [05CEH] |
05AF | z(80E00008): LDR R0, SP, 8H |
05B0 | z(80000000): LDR R0, R0, 0H |
05B1 | z(40090001): SUB R0, R0, 1H |
05B2 | z(E900000E): BNE 14 [05C1H] |
05B3 | a(80E00004): LDR R0, SP, 4H |
05B4 | a(E1000005): BEQ 5 [05BAH] |
05B5 | a(810FFFF8): LDR R1, R0, FFFFFFF8H |
05B6 | a(81100008): LDR R1, R1, 8H |
05B7 | a .FIXUP D |
05B7 | a(8D00000E): LDR SB, MT, MOD0 [MenuViewers] |
05B8 | a(42D80000): ADD R2, SB, 0H [data] |
05B9 | a(02290001): SUB R2, R2, R1 |
05BA | a(D91D572C): BLNE MT [trap=2, pos=7511] |
05BB | b(81E00008): LDR R1, SP, 8H |
05BC | b(81100008): LDR R1, R1, 8H |
05BD | c(82E00008): LDR R2, SP, 8H |
05BE | c(82200010): LDR R2, R2, 10H |
| ELSIFd Me.id = Viewers.suspend THENf Suspend(V(Viewer)g) |
05BF | d(F7FFFC46): BL -954 [0206H] |
05C0 | e(E700000D): B 13 [05CEH] |
05C1 | f(80E00008): LDR R0, SP, 8H |
05C2 | f(80000000): LDR R0, R0, 0H |
05C3 | f(40090002): SUB R0, R0, 2H |
05C4 | f(E9000009): BNE 9 [05CEH] |
05C5 | g(80E00004): LDR R0, SP, 4H |
05C6 | g(E1000005): BEQ 5 [05CCH] |
05C7 | g(810FFFF8): LDR R1, R0, FFFFFFF8H |
05C8 | g(81100008): LDR R1, R1, 8H |
05C9 | g .FIXUP D |
05C9 | g(8D000012): LDR SB, MT, MOD0 [MenuViewers] |
05CA | g(42D80000): ADD R2, SB, 0H [data] |
05CB | g(02290001): SUB R2, R2, R1 |
05CC | g(D91D9E2C): BLNE MT [trap=2, pos=7582] |
| ENDh | |
05CD | h(F7FFFEA9): BL -343 [0477H] |
| Displayi.FrameMsg:j Menu.handlek(Menul,m M)n;o Main.handlep(Mainq,r M)s |
05CE | i(E7000019): B 25 [05E8H] |
05CF | j(EF000018): BNO 24 [05E8H] |
05D0 | k(80E00018): LDR R0, SP, 18H |
05D1 | k(D11DD14C): BLEQ MT [trap=4, pos=7633] |
05D2 | l(80000018): LDR R0, R0, 18H |
05D3 | l(4EE90004): SUB SP, SP, 4H |
05D4 | l(A0E00000): STR R0, SP, 0H |
05D5 | m(80E0001C): LDR R0, SP, 1CH |
05D6 | n(81E0000C): LDR R1, SP, CH |
05D7 | n(82E00010): LDR R2, SP, 10H |
05D8 | o(83E00000): LDR R3, SP, 0H |
05D9 | o(4EE80004): ADD SP, SP, 4H |
05DA | o(D11DDB5C): BLEQ MT [trap=5, pos=7643] |
05DB | o(D7000003): BL R3 |
05DC | p(80E0001C): LDR R0, SP, 1CH |
05DD | p(D11DE74C): BLEQ MT [trap=4, pos=7655] |
05DE | q(80000018): LDR R0, R0, 18H |
05DF | q(4EE90004): SUB SP, SP, 4H |
05E0 | q(A0E00000): STR R0, SP, 0H |
05E1 | r(80E00020): LDR R0, SP, 20H |
05E2 | s(81E0000C): LDR R1, SP, CH |
05E3 | s(82E00010): LDR R2, SP, 10H |
| ENDt |
05E4 | t(83E00000): LDR R3, SP, 0H |
05E5 | t(4EE80004): ADD SP, SP, 4H |
05E6 | t(D11DFA5C): BLEQ MT [trap=5, pos=7674] |
05E7 | t(D7000003): BL R3 |
| ENDu Handle; |
05E8 | u(8FE00000): LDR LNK, SP, 0H |
05E9 | u(4EE80024): ADD SP, SP, 24H |
05EA | u(C700000F): B LNK |
| |
| PROCEDURE New* (Menu, Main: Display.Frame; menuH, X, Y: INTEGER): Viewer; |
| VAR V: Viewer; |
| BEGINv NEW(V);w |
05EB | v .PROC 4 |
05EB | v(4EE9001C): SUB SP, SP, 1CH |
05EC | v(AFE00000): STR LNK, SP, 0H |
05ED | v(A0E00004): STR R0, SP, 4H |
05EE | v(A1E00008): STR R1, SP, 8H |
05EF | v(A2E0000C): STR R2, SP, CH |
05F0 | v(A3E00010): STR R3, SP, 10H |
05F1 | v(A4E00014): STR R4, SP, 14H |
05F2 | w(40E80018): ADD R0, SP, 18H |
05F3 | w .FIXUP D |
05F3 | w(8D00002A): LDR SB, MT, MOD0 [MenuViewers] |
05F4 | w(41D80000): ADD R1, SB, 0H [data] |
05F5 | w(D71E790C): BL MT [trap=0, pos=7801] |
| V.handlex := Handle;y V.dscz := Menu;a V.dscb.nextc := Main;d V.menuHe := menuH;f |
05F6 | x(80E00018): LDR R0, SP, 18H |
05F7 | x(D11E864C): BLEQ MT [trap=4, pos=7814] |
05F8 | y(F7000000): BL 0 [05F9H] |
05F9 | y(41F90554): SUB R1, LNK, 554H |
05FA | y(A1000018): STR R1, R0, 18H |
05FB | z(80E00018): LDR R0, SP, 18H |
05FC | z(D11E974C): BLEQ MT [trap=4, pos=7831] |
05FD | a(81E00004): LDR R1, SP, 4H |
05FE | a(A1000004): STR R1, R0, 4H |
05FF | b(80E00018): LDR R0, SP, 18H |
0600 | b(D11EA64C): BLEQ MT [trap=4, pos=7846] |
0601 | c(80000004): LDR R0, R0, 4H |
0602 | c(D11EAB4C): BLEQ MT [trap=4, pos=7851] |
0603 | d(81E00008): LDR R1, SP, 8H |
0604 | d(A1000000): STR R1, R0, 0H |
0605 | e(80E00018): LDR R0, SP, 18H |
0606 | e(D11EBC4C): BLEQ MT [trap=4, pos=7868] |
0607 | f(81E0000C): LDR R1, SP, CH |
0608 | f(A1000020): STR R1, R0, 20H |
| Viewers.Open(V,g X,h Y)i;j Restore(V)k;l RETURN V |
0609 | g(80E00018): LDR R0, SP, 18H |
060A | h(81E00010): LDR R1, SP, 10H |
060B | i(82E00014): LDR R2, SP, 14H |
060C | j .FIXUP P |
060C | j(F730509F): BL MOD3 [Viewers] PROC5 |
060D | k(80E00018): LDR R0, SP, 18H |
060E | l(F7FFFB62): BL -1182 [0171H] |
| ENDm New; |
060F | m(80E00018): LDR R0, SP, 18H |
0610 | m(8FE00000): LDR LNK, SP, 0H |
0611 | m(4EE8001C): ADD SP, SP, 1CH |
0612 | m(C700000F): B LNK |
| |
| ENDn MenuViewers.o |
0613 | n .PROC 0 |
0613 | n .ENTRYPOINT |
0613 | n(4EE90004): SUB SP, SP, 4H |
0614 | n(AFE00000): STR LNK, SP, 0H |
0615 | o(8FE00000): LDR LNK, SP, 0H |
0616 | o(4EE80004): ADD SP, SP, 4H |
0617 | o(C700000F): B LNK |