MenuViewers

Used Exports

BUILTINS: INTEGER NEW SET
Display: Frame FrameDesc.H FrameDesc.W FrameDesc.X FrameDesc.Y FrameDesc.dsc FrameDesc.handle FrameDesc.next FrameMsg ReplConst black invert replace white
Input: Mouse
Oberon: ControlMsg ControlMsg.X ControlMsg.Y ControlMsg.id CopyMsg CopyMsg.F DrawMouseArrow DrawPointer InputMsg InputMsg.X InputMsg.Y InputMsg.id InputMsg.keys RemoveMarks mark track
Viewers: Change Close Next Open This Viewer ViewerDesc ViewerDesc.state ViewerMsg ViewerMsg.H ViewerMsg.Y ViewerMsg.id modify restore suspend

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
0000a .PROC 1
0000a(4EE90018): SUB SP, SP, 18H
0001a(AFE00000): STR LNK, SP, 0H
0002a(A0E00004): STR R0, SP, 4H
0003a(A1E00008): STR R1, SP, 8H
0004b(80E00004): LDR R0, SP, 4H
0005b(D101FA4C): BLEQ MT [trap=4, pos=506]
0006c(80000004): LDR R0, R0, 4H
0007c(A0E0000C): STR R0, SP, CH
0008d(80E00004): LDR R0, SP, 4H
0009d .PROC 2
0009d(D102094C): BLEQ MT [trap=4, pos=521]
000Ae(80000004): LDR R0, R0, 4H
000Be(D1020E4C): BLEQ MT [trap=4, pos=526]
000Cf(80000000): LDR R0, R0, 0H
000Df(A0E00010): STR R0, SP, 10H
NEW(V1);g V1^ :=h V^;i V1.statej := 0;k
000Eg(80E00008): LDR R0, SP, 8H
000Fg .FIXUP D
000Fg(8D00000F): LDR SB, MT, MOD0 [MenuViewers]
0010g(41D80000): ADD R1, SB, 0H [data]
0011g(D7021C0C): BL MT [trap=0, pos=540]
0012h(80E00008): LDR R0, SP, 8H
0013h(80000000): LDR R0, R0, 0H
0014h(D102234C): BLEQ MT [trap=4, pos=547]
0015i(81E00004): LDR R1, SP, 4H
0016i(D102274C): BLEQ MT [trap=4, pos=551]
0017i(42000009): MOV R2, R0, 9H
0018i(83100000): LDR R3, R1, 0H
0019i(41180004): ADD R1, R1, 4H
001Ai(A3000000): STR R3, R0, 0H
001Bi(40080004): ADD R0, R0, 4H
001Ci(42290001): SUB R2, R2, 1H
001Di(E9FFFFFA): BNE -6 [0018H]
001Ej(80E00008): LDR R0, SP, 8H
001Fj(80000000): LDR R0, R0, 0H
0020j(D102304C): BLEQ MT [trap=4, pos=560]
0021k(41000000): MOV R1, R0, 0H
0022k(A100001C): STR R1, R0, 1CH
M.F := NIL;l Menu.handlem(Menun,o M)p;q V1.dscr := M.F;s
0023l(40000000): MOV R0, R0, 0H
0024l(A0E00014): STR R0, SP, 14H
0025m(80E0000C): LDR R0, SP, CH
0026m(D102524C): BLEQ MT [trap=4, pos=594]
0027n(80000018): LDR R0, R0, 18H
0028n(4EE90004): SUB SP, SP, 4H
0029n(A0E00000): STR R0, SP, 0H
002Ao(80E00010): LDR R0, SP, 10H
002Bp(41E80018): ADD R1, SP, 18H
002Cp .FIXUP D
002Cp(8D40001D): LDR SB, MT, MOD4 [Oberon]
002Dp(42D80006): ADD R2, SB, VAR6
002Eq(83E00000): LDR R3, SP, 0H
002Fq(4EE80004): ADD SP, SP, 4H
0030q(D1025C5C): BLEQ MT [trap=5, pos=604]
0031q(D7000003): BL R3
0032r(80E00008): LDR R0, SP, 8H
0033r(80000000): LDR R0, R0, 0H
0034r(D102634C): BLEQ MT [trap=4, pos=611]
0035s(81E00014): LDR R1, SP, 14H
0036s(A1000004): STR R1, R0, 4H
M.F := NIL;t Main.handleu(Mainv,w M)x;y V1.dscz.nexta := M.F
0037t(40000000): MOV R0, R0, 0H
0038t(A0E00014): STR R0, SP, 14H
0039u(80E00010): LDR R0, SP, 10H
003Au(D102874C): BLEQ MT [trap=4, pos=647]
003Bv(80000018): LDR R0, R0, 18H
003Cv(4EE90004): SUB SP, SP, 4H
003Dv(A0E00000): STR R0, SP, 0H
003Ew(80E00014): LDR R0, SP, 14H
003Fx(41E80018): ADD R1, SP, 18H
0040x .FIXUP D
0040x(8D400014): LDR SB, MT, MOD4 [Oberon]
0041x(42D80006): ADD R2, SB, VAR6
0042y(83E00000): LDR R3, SP, 0H
0043y(4EE80004): ADD SP, SP, 4H
0044y(D102915C): BLEQ MT [trap=5, pos=657]
0045y(D7000003): BL R3
0046z(80E00008): LDR R0, SP, 8H
0047z(80000000): LDR R0, R0, 0H
0048z(D102984C): BLEQ MT [trap=4, pos=664]
0049a(80000004): LDR R0, R0, 4H
004Aa(D1029D4C): BLEQ MT [trap=4, pos=669]
ENDb Copy;
004Bb(81E00014): LDR R1, SP, 14H
004Cb(A1000000): STR R1, R0, 0H
004Db(8FE00000): LDR LNK, SP, 0H
004Eb(4EE80018): ADD SP, SP, 18H
004Fb(C700000F): B LNK
PROCEDURE Draw (V: Viewers.Viewer);
BEGINc
0050c(4EE90008): SUB SP, SP, 8H
0051c(AFE00000): STR LNK, SP, 0H
0052c(A0E00004): STR R0, SP, 4H
Display.ReplConst(FrameColor,d V.Xe,f V.Yg,h 1,i V.Hj,k Display.replace)l;m
0053d(40000001): MOV R0, R0, 1H
0054e(81E00004): LDR R1, SP, 4H
0055e(D103054C): BLEQ MT [trap=4, pos=773]
0056f(81100008): LDR R1, R1, 8H
0057g(82E00004): LDR R2, SP, 4H
0058g(D1030A4C): BLEQ MT [trap=4, pos=778]
0059h(8220000C): LDR R2, R2, CH
005Ai(43000001): MOV R3, R0, 1H
005Bj(84E00004): LDR R4, SP, 4H
005Cj(D103124C): BLEQ MT [trap=4, pos=786]
005Dk(84400014): LDR R4, R4, 14H
005El(45000000): MOV R5, R0, 0H
005Fm .FIXUP P
005Fm(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
0060n(40000001): MOV R0, R0, 1H
0061o(81E00004): LDR R1, SP, 4H
0062o(D1034B4C): BLEQ MT [trap=4, pos=843]
0063p(82E00004): LDR R2, SP, 4H
0064p(D103514C): BLEQ MT [trap=4, pos=849]
0065q(81100008): LDR R1, R1, 8H
0066q(82200010): LDR R2, R2, 10H
0067q(01180002): ADD R1, R1, R2
0068r(41190001): SUB R1, R1, 1H
0069s(82E00004): LDR R2, SP, 4H
006As(D1035A4C): BLEQ MT [trap=4, pos=858]
006Bt(8220000C): LDR R2, R2, CH
006Cu(43000001): MOV R3, R0, 1H
006Dv(84E00004): LDR R4, SP, 4H
006Ev(D103624C): BLEQ MT [trap=4, pos=866]
006Fw(84400014): LDR R4, R4, 14H
0070x(45000000): MOV R5, R0, 0H
0071y .FIXUP P
0071y(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
0072z(40000001): MOV R0, R0, 1H
0073a(81E00004): LDR R1, SP, 4H
0074a(D1039B4C): BLEQ MT [trap=4, pos=923]
0075b(81100008): LDR R1, R1, 8H
0076b(41180001): ADD R1, R1, 1H
0077c(82E00004): LDR R2, SP, 4H
0078c(D103A44C): BLEQ MT [trap=4, pos=932]
0079d(8220000C): LDR R2, R2, CH
007Ae(83E00004): LDR R3, SP, 4H
007Be(D103A94C): BLEQ MT [trap=4, pos=937]
007Cf(83300010): LDR R3, R3, 10H
007Df(43390002): SUB R3, R3, 2H
007Eg(44000001): MOV R4, R0, 1H
007Fh(45000000): MOV R5, R0, 0H
0080i .FIXUP P
0080i(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
0081j(40000001): MOV R0, R0, 1H
0082k(81E00004): LDR R1, SP, 4H
0083k(D103E94C): BLEQ MT [trap=4, pos=1001]
0084l(81100008): LDR R1, R1, 8H
0085l(41180001): ADD R1, R1, 1H
0086m(82E00004): LDR R2, SP, 4H
0087m(D103F24C): BLEQ MT [trap=4, pos=1010]
0088n(83E00004): LDR R3, SP, 4H
0089n(D103F84C): BLEQ MT [trap=4, pos=1016]
008Ao(8220000C): LDR R2, R2, CH
008Bo(83300014): LDR R3, R3, 14H
008Co(02280003): ADD R2, R2, R3
008Dp(42290001): SUB R2, R2, 1H
008Eq(83E00004): LDR R3, SP, 4H
008Fq(D104014C): BLEQ MT [trap=4, pos=1025]
0090r(83300010): LDR R3, R3, 10H
0091r(43390002): SUB R3, R3, 2H
0092s(44000001): MOV R4, R0, 1H
0093t(45000000): MOV R5, R0, 0H
ENDu Draw;
0094u .FIXUP P
0094u(F720F014): BL MOD2 [Display] PROC15
0095u(8FE00000): LDR LNK, SP, 0H
0096u(4EE80008): ADD SP, SP, 8H
0097u(C700000F): B LNK
PROCEDURE Extend (V: Viewer; newY: INTEGER);
VAR dH: INTEGER;
BEGINv dH := V.Yw - newY;x
0098v(4EE90010): SUB SP, SP, 10H
0099v(AFE00000): STR LNK, SP, 0H
009Av(A0E00004): STR R0, SP, 4H
009Bv(A1E00008): STR R1, SP, 8H
009Cw(80E00004): LDR R0, SP, 4H
009Dw(D1047D4C): BLEQ MT [trap=4, pos=1149]
009Ex(8000000C): LDR R0, R0, CH
009Fx(81E00008): LDR R1, SP, 8H
00A0x(00090001): SUB R0, R0, R1
00A1x(A0E0000C): STR R0, SP, CH
IF dH > 0 THENy
00A2y(80E0000C): LDR R0, SP, CH
00A3y(40090000): SUB R0, R0, 0H
00A4y(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
00A5z(40000000): MOV R0, R0, 0H
00A6a(81E00004): LDR R1, SP, 4H
00A7a(D104C34C): BLEQ MT [trap=4, pos=1219]
00A8b(81100008): LDR R1, R1, 8H
00A9b(41180001): ADD R1, R1, 1H
00AAc(82E00008): LDR R2, SP, 8H
00ABc(42280001): ADD R2, R2, 1H
00ACd(83E00004): LDR R3, SP, 4H
00ADd(D104D64C): BLEQ MT [trap=4, pos=1238]
00AEe(83300010): LDR R3, R3, 10H
00AFe(43390002): SUB R3, R3, 2H
00B0f(84E0000C): LDR R4, SP, CH
00B1g(45000000): MOV R5, R0, 0H
00B2h .FIXUP P
00B2h(F720F01E): BL MOD2 [Display] PROC15
Display.ReplConst(FrameColor,i V.Xj,k newY,l 1,m dH,n Display.replace)o;p
00B3i(40000001): MOV R0, R0, 1H
00B4j(81E00004): LDR R1, SP, 4H
00B5j(D105194C): BLEQ MT [trap=4, pos=1305]
00B6k(81100008): LDR R1, R1, 8H
00B7l(82E00008): LDR R2, SP, 8H
00B8m(43000001): MOV R3, R0, 1H
00B9n(84E0000C): LDR R4, SP, CH
00BAo(45000000): MOV R5, R0, 0H
00BBp .FIXUP P
00BBp(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
00BCq(40000001): MOV R0, R0, 1H
00BDr(81E00004): LDR R1, SP, 4H
00BEr(D105614C): BLEQ MT [trap=4, pos=1377]
00BFs(82E00004): LDR R2, SP, 4H
00C0s(D105674C): BLEQ MT [trap=4, pos=1383]
00C1t(81100008): LDR R1, R1, 8H
00C2t(82200010): LDR R2, R2, 10H
00C3t(01180002): ADD R1, R1, R2
00C4u(41190001): SUB R1, R1, 1H
00C5v(82E00008): LDR R2, SP, 8H
00C6w(43000001): MOV R3, R0, 1H
00C7x(84E0000C): LDR R4, SP, CH
00C8y(45000000): MOV R5, R0, 0H
00C9z .FIXUP P
00C9z(F720F00E): BL MOD2 [Display] PROC15
Display.ReplConst(FrameColor,a V.Xb + 1,c newY,d V.We - 2,f 1,g Display.replace)h
00CAa(40000001): MOV R0, R0, 1H
00CBb(81E00004): LDR R1, SP, 4H
00CCb(D105B34C): BLEQ MT [trap=4, pos=1459]
00CDc(81100008): LDR R1, R1, 8H
00CEc(41180001): ADD R1, R1, 1H
00CFd(82E00008): LDR R2, SP, 8H
00D0e(83E00004): LDR R3, SP, 4H
00D1e(D105C24C): BLEQ MT [trap=4, pos=1474]
00D2f(83300010): LDR R3, R3, 10H
00D3f(43390002): SUB R3, R3, 2H
00D4g(44000001): MOV R4, R0, 1H
00D5h(45000000): MOV R5, R0, 0H
ENDi
00D6i .FIXUP P
00D6i(F720F00D): BL MOD2 [Display] PROC15
ENDj Extend;
00D7j(8FE00000): LDR LNK, SP, 0H
00D8j(4EE80010): ADD SP, SP, 10H
00D9j(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
00DAk(4EE9000C): SUB SP, SP, CH
00DBk(AFE00000): STR LNK, SP, 0H
00DCk(A0E00004): STR R0, SP, 4H
00DDk(A1E00008): STR R1, SP, 8H
00DEl(40000001): MOV R0, R0, 1H
00DFm(81E00004): LDR R1, SP, 4H
00E0m(D1064B4C): BLEQ MT [trap=4, pos=1611]
00E1n(81100008): LDR R1, R1, 8H
00E2n(41180001): ADD R1, R1, 1H
00E3o(82E00008): LDR R2, SP, 8H
00E4p(83E00004): LDR R3, SP, 4H
00E5p(D1065A4C): BLEQ MT [trap=4, pos=1626]
00E6q(83300010): LDR R3, R3, 10H
00E7q(43390002): SUB R3, R3, 2H
00E8r(44000001): MOV R4, R0, 1H
00E9s(45000000): MOV R5, R0, 0H
ENDt Reduce;
00EAt .FIXUP P
00EAt(F720F014): BL MOD2 [Display] PROC15
00EBt(8FE00000): LDR LNK, SP, 0H
00ECt(4EE8000C): ADD SP, SP, CH
00EDt(C700000F): B LNK
PROCEDURE Grow (V: Viewer; oldH: INTEGER);
VAR dH: INTEGER;
BEGINu dH := V.Hv - oldH;w
00EEu(4EE90010): SUB SP, SP, 10H
00EFu(AFE00000): STR LNK, SP, 0H
00F0u(A0E00004): STR R0, SP, 4H
00F1u(A1E00008): STR R1, SP, 8H
00F2v(80E00004): LDR R0, SP, 4H
00F3v(D106D64C): BLEQ MT [trap=4, pos=1750]
00F4w(80000014): LDR R0, R0, 14H
00F5w(81E00008): LDR R1, SP, 8H
00F6w(00090001): SUB R0, R0, R1
00F7w(A0E0000C): STR R0, SP, CH
IF dH > 0 THENx
00F8x(80E0000C): LDR R0, SP, CH
00F9x(40090000): SUB R0, R0, 0H
00FAx(E6000033): BLE 51 [012EH]
Display.ReplConst(FrameColor,y V.Xz,a V.Yb + oldH,c 1,d dH,e Display.replace)f;g
00FBy(40000001): MOV R0, R0, 1H
00FCz(81E00004): LDR R1, SP, 4H
00FDz(D107194C): BLEQ MT [trap=4, pos=1817]
00FEa(81100008): LDR R1, R1, 8H
00FFb(82E00004): LDR R2, SP, 4H
0100b(D1071E4C): BLEQ MT [trap=4, pos=1822]
0101c(8220000C): LDR R2, R2, CH
0102c(83E00008): LDR R3, SP, 8H
0103c(02280003): ADD R2, R2, R3
0104d(43000001): MOV R3, R0, 1H
0105e(84E0000C): LDR R4, SP, CH
0106f(45000000): MOV R5, R0, 0H
0107g .FIXUP P
0107g(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
0108h(40000001): MOV R0, R0, 1H
0109i(81E00004): LDR R1, SP, 4H
010Ai(D107674C): BLEQ MT [trap=4, pos=1895]
010Bj(82E00004): LDR R2, SP, 4H
010Cj(D1076D4C): BLEQ MT [trap=4, pos=1901]
010Dk(81100008): LDR R1, R1, 8H
010Ek(82200010): LDR R2, R2, 10H
010Fk(01180002): ADD R1, R1, R2
0110l(41190001): SUB R1, R1, 1H
0111m(82E00004): LDR R2, SP, 4H
0112m(D107764C): BLEQ MT [trap=4, pos=1910]
0113n(8220000C): LDR R2, R2, CH
0114n(83E00008): LDR R3, SP, 8H
0115n(02280003): ADD R2, R2, R3
0116o(43000001): MOV R3, R0, 1H
0117p(84E0000C): LDR R4, SP, CH
0118q(45000000): MOV R5, R0, 0H
0119r .FIXUP P
0119r(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
011As(40000001): MOV R0, R0, 1H
011Bt(81E00004): LDR R1, SP, 4H
011Ct(D107BF4C): BLEQ MT [trap=4, pos=1983]
011Du(81100008): LDR R1, R1, 8H
011Eu(41180001): ADD R1, R1, 1H
011Fv(82E00004): LDR R2, SP, 4H
0120v(D107C84C): BLEQ MT [trap=4, pos=1992]
0121w(83E00004): LDR R3, SP, 4H
0122w(D107CE4C): BLEQ MT [trap=4, pos=1998]
0123x(8220000C): LDR R2, R2, CH
0124x(83300014): LDR R3, R3, 14H
0125x(02280003): ADD R2, R2, R3
0126y(42290001): SUB R2, R2, 1H
0127z(83E00004): LDR R3, SP, 4H
0128z(D107D74C): BLEQ MT [trap=4, pos=2007]
0129a(83300010): LDR R3, R3, 10H
012Aa(43390002): SUB R3, R3, 2H
012Bb(44000001): MOV R4, R0, 1H
012Cc(45000000): MOV R5, R0, 0H
ENDd
012Dd .FIXUP P
012Dd(F720F014): BL MOD2 [Display] PROC15
ENDe Grow;
012Ee(8FE00000): LDR LNK, SP, 0H
012Fe(4EE80010): ADD SP, SP, 10H
0130e(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
0131f(4EE9000C): SUB SP, SP, CH
0132f(AFE00000): STR LNK, SP, 0H
0133f(A0E00004): STR R0, SP, 4H
0134f(A1E00008): STR R1, SP, 8H
0135g(40000001): MOV R0, R0, 1H
0136h(81E00004): LDR R1, SP, 4H
0137h(D1085E4C): BLEQ MT [trap=4, pos=2142]
0138i(81100008): LDR R1, R1, 8H
0139i(41180001): ADD R1, R1, 1H
013Aj(82E00004): LDR R2, SP, 4H
013Bj(D108674C): BLEQ MT [trap=4, pos=2151]
013Ck(8220000C): LDR R2, R2, CH
013Dk(83E00008): LDR R3, SP, 8H
013Ek(02280003): ADD R2, R2, R3
013Fl(42290001): SUB R2, R2, 1H
0140m(83E00004): LDR R3, SP, 4H
0141m(D108774C): BLEQ MT [trap=4, pos=2167]
0142n(83300010): LDR R3, R3, 10H
0143n(43390002): SUB R3, R3, 2H
0144o(44000001): MOV R4, R0, 1H
0145p(45000000): MOV R5, R0, 0H
ENDq Shrink;
0146q .FIXUP P
0146q(F720F019): BL MOD2 [Display] PROC15
0147q(8FE00000): LDR LNK, SP, 0H
0148q(4EE8000C): ADD SP, SP, CH
0149q(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
014Ar(4EE90028): SUB SP, SP, 28H
014Br(AFE00000): STR LNK, SP, 0H
014Cr(A0E00004): STR R0, SP, 4H
014Dr(A1E00008): STR R1, SP, 8H
014Er(A2E0000C): STR R2, SP, CH
014Fr(A3E00010): STR R3, SP, 10H
0150r(A4E00014): STR R4, SP, 14H
0151s(80E00008): LDR R0, SP, 8H
0152s(A0E00018): STR R0, SP, 18H
0153t(80E0000C): LDR R0, SP, CH
0154t(A0E0001C): STR R0, SP, 1CH
0155u(80E00010): LDR R0, SP, 10H
0156u(A0E00020): STR R0, SP, 20H
0157v(80E00014): LDR R0, SP, 14H
0158v(A0E00024): STR R0, SP, 24H
0159w(80E00004): LDR R0, SP, 4H
015Aw(D109304C): BLEQ MT [trap=4, pos=2352]
015Bx(80000018): LDR R0, R0, 18H
015Cx(4EE90004): SUB SP, SP, 4H
015Dx(A0E00000): STR R0, SP, 0H
015Ey(80E00008): LDR R0, SP, 8H
015Fz(41E8001C): ADD R1, SP, 1CH
0160z .FIXUP D
0160z(8D000120): LDR SB, MT, MOD0 [MenuViewers]
0161z(42D80024): ADD R2, SB, 24H [data]
0162a(83E00000): LDR R3, SP, 0H
0163a(4EE80004): ADD SP, SP, 4H
0164a(D109375C): BLEQ MT [trap=5, pos=2359]
0165a(D7000003): BL R3
0166b(80E00004): LDR R0, SP, 4H
0167b(D1093B4C): BLEQ MT [trap=4, pos=2363]
0168c(81E00010): LDR R1, SP, 10H
0169c(A100000C): STR R1, R0, CH
016Ad(80E00004): LDR R0, SP, 4H
016Bd(D109454C): BLEQ MT [trap=4, pos=2373]
ENDe Adjust;
016Ce(81E00014): LDR R1, SP, 14H
016De(A1000014): STR R1, R0, 14H
016Ee(8FE00000): LDR LNK, SP, 0H
016Fe(4EE80028): ADD SP, SP, 28H
0170e(C700000F): B LNK
PROCEDURE Restore (V: Viewer);
VAR Menu, Main: Display.Frame;
BEGINf Menu := V.dscg;h Main := V.dsci.nextj;k
0171f(4EE90010): SUB SP, SP, 10H
0172f(AFE00000): STR LNK, SP, 0H
0173f(A0E00004): STR R0, SP, 4H
0174g(80E00004): LDR R0, SP, 4H
0175g(D109B34C): BLEQ MT [trap=4, pos=2483]
0176h(80000004): LDR R0, R0, 4H
0177h(A0E00008): STR R0, SP, 8H
0178i(80E00004): LDR R0, SP, 4H
0179i(D109C24C): BLEQ MT [trap=4, pos=2498]
017Aj(80000004): LDR R0, R0, 4H
017Bj(D109C74C): BLEQ MT [trap=4, pos=2503]
017Ck(80000000): LDR R0, R0, 0H
017Dk(A0E0000C): STR R0, SP, CH
Oberon.RemoveMarks(V.Xl,m V.Yn,o V.Wp,q V.Hr)s;t
017El(80E00004): LDR R0, SP, 4H
017Fl(D109E34C): BLEQ MT [trap=4, pos=2531]
0180m(80000008): LDR R0, R0, 8H
0181n(81E00004): LDR R1, SP, 4H
0182n(D109E84C): BLEQ MT [trap=4, pos=2536]
0183o(8110000C): LDR R1, R1, CH
0184p(82E00004): LDR R2, SP, 4H
0185p(D109ED4C): BLEQ MT [trap=4, pos=2541]
0186q(82200010): LDR R2, R2, 10H
0187r(83E00004): LDR R3, SP, 4H
0188r(D109F24C): BLEQ MT [trap=4, pos=2546]
0189s(83300014): LDR R3, R3, 14H
018At .FIXUP P
018At(F741B044): BL MOD4 [Oberon] PROC27
Draw(V)u;v
018Bu(80E00004): LDR R0, SP, 4H
018Cv(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
018Dw(80E00008): LDR R0, SP, 8H
018Ew(D10A0C4C): BLEQ MT [trap=4, pos=2572]
018Fx(81E00004): LDR R1, SP, 4H
0190x(D10A134C): BLEQ MT [trap=4, pos=2579]
0191y(81100008): LDR R1, R1, 8H
0192y(41180001): ADD R1, R1, 1H
0193y(A1000008): STR R1, R0, 8H
0194z(80E00008): LDR R0, SP, 8H
0195z(D10A1F4C): BLEQ MT [trap=4, pos=2591]
0196a(81E00004): LDR R1, SP, 4H
0197a(D10A264C): BLEQ MT [trap=4, pos=2598]
0198b(82E00004): LDR R2, SP, 4H
0199b(D10A2C4C): BLEQ MT [trap=4, pos=2604]
019Ac(8110000C): LDR R1, R1, CH
019Bc(82200014): LDR R2, R2, 14H
019Cc(01180002): ADD R1, R1, R2
019Dd(41190001): SUB R1, R1, 1H
019Ed(A100000C): STR R1, R0, CH
019Fe(80E00008): LDR R0, SP, 8H
01A0e(D10A384C): BLEQ MT [trap=4, pos=2616]
01A1f(81E00004): LDR R1, SP, 4H
01A2f(D10A3F4C): BLEQ MT [trap=4, pos=2623]
01A3g(81100010): LDR R1, R1, 10H
01A4g(41190002): SUB R1, R1, 2H
01A5g(A1000010): STR R1, R0, 10H
01A6h(80E00008): LDR R0, SP, 8H
01A7h(D10A4B4C): BLEQ MT [trap=4, pos=2635]
01A8i(41000000): MOV R1, R0, 0H
01A9i(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
01AAj(80E0000C): LDR R0, SP, CH
01ABj(D10A5C4C): BLEQ MT [trap=4, pos=2652]
01ACk(81E00004): LDR R1, SP, 4H
01ADk(D10A634C): BLEQ MT [trap=4, pos=2659]
01AEl(81100008): LDR R1, R1, 8H
01AFl(41180001): ADD R1, R1, 1H
01B0l(A1000008): STR R1, R0, 8H
01B1m(80E0000C): LDR R0, SP, CH
01B2m(D10A6F4C): BLEQ MT [trap=4, pos=2671]
01B3n(81E00004): LDR R1, SP, 4H
01B4n(D10A764C): BLEQ MT [trap=4, pos=2678]
01B5o(82E00004): LDR R2, SP, 4H
01B6o(D10A7C4C): BLEQ MT [trap=4, pos=2684]
01B7p(8110000C): LDR R1, R1, CH
01B8p(82200014): LDR R2, R2, 14H
01B9p(01180002): ADD R1, R1, R2
01BAq(82E00004): LDR R2, SP, 4H
01BBq(D10A864C): BLEQ MT [trap=4, pos=2694]
01BCr(82200020): LDR R2, R2, 20H
01BDr(01190002): SUB R1, R1, R2
01BEr(A100000C): STR R1, R0, CH
01BFs(80E0000C): LDR R0, SP, CH
01C0s(D10A8E4C): BLEQ MT [trap=4, pos=2702]
01C1t(81E00004): LDR R1, SP, 4H
01C2t(D10A954C): BLEQ MT [trap=4, pos=2709]
01C3u(81100010): LDR R1, R1, 10H
01C4u(41190002): SUB R1, R1, 2H
01C5u(A1000010): STR R1, R0, 10H
01C6v(80E0000C): LDR R0, SP, CH
01C7v(D10AA14C): BLEQ MT [trap=4, pos=2721]
01C8w(41000000): MOV R1, R0, 0H
01C9w(A1000014): STR R1, R0, 14H
IF V.Hx > V.menuHy + 1 THENz
01CAx(80E00004): LDR R0, SP, 4H
01CBx(D10AB24C): BLEQ MT [trap=4, pos=2738]
01CCy(81E00004): LDR R1, SP, 4H
01CDy(D10ABC4C): BLEQ MT [trap=4, pos=2748]
01CEz(81100020): LDR R1, R1, 20H
01CFz(41180001): ADD R1, R1, 1H
01D0z(80000014): LDR R0, R0, 14H
01D1z(00090001): SUB R0, R0, R1
01D2z(E6000024): BLE 36 [01F7H]
Adjust(Menu,a extend,b 0,c V.Yd + V.He -f V.menuHg,h V.menuHi - 1)j;k
01D3a(80E00008): LDR R0, SP, 8H
01D4b(41000000): MOV R1, R0, 0H
01D5c(42000000): MOV R2, R0, 0H
01D6d(83E00004): LDR R3, SP, 4H
01D7d(D10AE74C): BLEQ MT [trap=4, pos=2791]
01D8e(84E00004): LDR R4, SP, 4H
01D9e(D10AED4C): BLEQ MT [trap=4, pos=2797]
01DAf(8330000C): LDR R3, R3, CH
01DBf(84400014): LDR R4, R4, 14H
01DCf(03380004): ADD R3, R3, R4
01DDg(84E00004): LDR R4, SP, 4H
01DEg(D10AF74C): BLEQ MT [trap=4, pos=2807]
01DFh(84400020): LDR R4, R4, 20H
01E0h(03390004): SUB R3, R3, R4
01E1i(84E00004): LDR R4, SP, 4H
01E2i(D10B004C): BLEQ MT [trap=4, pos=2816]
01E3j(84400020): LDR R4, R4, 20H
01E4j(44490001): SUB R4, R4, 1H
01E5k(F7FFFF64): BL -156 [014AH]
Adjust(Main,l extend,m 0,n V.Yo + 1,p V.Hq - V.menuHr -s 1)t
01E6l(80E0000C): LDR R0, SP, CH
01E7m(41000000): MOV R1, R0, 0H
01E8n(42000000): MOV R2, R0, 0H
01E9o(83E00004): LDR R3, SP, 4H
01EAo(D10B284C): BLEQ MT [trap=4, pos=2856]
01EBp(8330000C): LDR R3, R3, CH
01ECp(43380001): ADD R3, R3, 1H
01EDq(84E00004): LDR R4, SP, 4H
01EEq(D10B314C): BLEQ MT [trap=4, pos=2865]
01EFr(85E00004): LDR R5, SP, 4H
01F0r(D10B3B4C): BLEQ MT [trap=4, pos=2875]
01F1s(84400014): LDR R4, R4, 14H
01F2s(85500020): LDR R5, R5, 20H
01F3s(04490005): SUB R4, R4, R5
01F4t(44490001): SUB R4, R4, 1H
ELSEu Adjustv(Menu,w extend,x 0,y V.Yz + 1,a V.Hb - 2)c
01F5u(F7FFFF54): BL -172 [014AH]
01F6v(E700000C): B 12 [0203H]
01F7w(80E00008): LDR R0, SP, 8H
01F8x(41000000): MOV R1, R0, 0H
01F9y(42000000): MOV R2, R0, 0H
01FAz(83E00004): LDR R3, SP, 4H
01FBz(D10B654C): BLEQ MT [trap=4, pos=2917]
01FCa(8330000C): LDR R3, R3, CH
01FDa(43380001): ADD R3, R3, 1H
01FEb(84E00004): LDR R4, SP, 4H
01FFb(D10B6E4C): BLEQ MT [trap=4, pos=2926]
0200c(84400014): LDR R4, R4, 14H
0201c(44490002): SUB R4, R4, 2H
ENDd
0202d(F7FFFF47): BL -185 [014AH]
ENDe Restore;
0203e(8FE00000): LDR LNK, SP, 0H
0204e(4EE80010): ADD SP, SP, 10H
0205e(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
0206f(4EE90018): SUB SP, SP, 18H
0207f(AFE00000): STR LNK, SP, 0H
0208f(A0E00004): STR R0, SP, 4H
0209f(A1E00008): STR R1, SP, 8H
020Af(A2E0000C): STR R2, SP, CH
020Bg(80E00004): LDR R0, SP, 4H
020Cg(D10BF34C): BLEQ MT [trap=4, pos=3059]
020Dh(80000004): LDR R0, R0, 4H
020Eh(A0E00010): STR R0, SP, 10H
020Fi(80E00004): LDR R0, SP, 4H
0210i(D10C024C): BLEQ MT [trap=4, pos=3074]
0211j(80000004): LDR R0, R0, 4H
0212j(D10C074C): BLEQ MT [trap=4, pos=3079]
0213k(80000000): LDR R0, R0, 0H
0214k(A0E00014): STR R0, SP, 14H
IF Y < V.Yl THENm (*extend*)
0215l(80E00004): LDR R0, SP, 4H
0216l(D10C174C): BLEQ MT [trap=4, pos=3095]
0217m(81E00008): LDR R1, SP, 8H
0218m(8000000C): LDR R0, R0, CH
0219m(01190000): SUB R1, R1, R0
021Am(ED00003C): BGE 60 [0257H]
Oberon.RemoveMarks(V.Xn,o Y,p V.Wq,r V.Ys - Y)t;u
021Bn(80E00004): LDR R0, SP, 4H
021Cn(D10C444C): BLEQ MT [trap=4, pos=3140]
021Do(80000008): LDR R0, R0, 8H
021Ep(81E00008): LDR R1, SP, 8H
021Fq(82E00004): LDR R2, SP, 4H
0220q(D10C4C4C): BLEQ MT [trap=4, pos=3148]
0221r(82200010): LDR R2, R2, 10H
0222s(83E00004): LDR R3, SP, 4H
0223s(D10C514C): BLEQ MT [trap=4, pos=3153]
0224t(8330000C): LDR R3, R3, CH
0225t(84E00008): LDR R4, SP, 8H
0226t(03390004): SUB R3, R3, R4
0227u .FIXUP P
0227u(F741B09D): BL MOD4 [Oberon] PROC27
Extend(V,v Y)w;x
0228v(80E00004): LDR R0, SP, 4H
0229w(81E00008): LDR R1, SP, 8H
022Ax(F7FFFE6D): BL -403 [0098H]
IF H > V.menuHy + 1 THENz
022By(80E00004): LDR R0, SP, 4H
022Cy(D10C804C): BLEQ MT [trap=4, pos=3200]
022Dz(80000020): LDR R0, R0, 20H
022Ez(40080001): ADD R0, R0, 1H
022Fz(81E0000C): LDR R1, SP, CH
0230z(01190000): SUB R1, R1, R0
0231z(E600001C): BLE 28 [024EH]
Adjust(Menu,a extend,b 0,c Y + H -d V.menuHe,f V.menuHg - 1)h;i
0232a(80E00010): LDR R0, SP, 10H
0233b(41000000): MOV R1, R0, 0H
0234c(42000000): MOV R2, R0, 0H
0235d(83E00008): LDR R3, SP, 8H
0236d(84E0000C): LDR R4, SP, CH
0237d(03380004): ADD R3, R3, R4
0238e(84E00004): LDR R4, SP, 4H
0239e(D10CB94C): BLEQ MT [trap=4, pos=3257]
023Af(84400020): LDR R4, R4, 20H
023Bf(03390004): SUB R3, R3, R4
023Cg(84E00004): LDR R4, SP, 4H
023Dg(D10CC24C): BLEQ MT [trap=4, pos=3266]
023Eh(84400020): LDR R4, R4, 20H
023Fh(44490001): SUB R4, R4, 1H
0240i(F7FFFF09): BL -247 [014AH]
Adjust(Main,j extend,k 0,l Y + 1,m H - V.menuHn -o 1)p
0241j(80E00014): LDR R0, SP, 14H
0242k(41000000): MOV R1, R0, 0H
0243l(42000000): MOV R2, R0, 0H
0244m(83E00008): LDR R3, SP, 8H
0245m(43380001): ADD R3, R3, 1H
0246n(84E00004): LDR R4, SP, 4H
0247n(D10CFB4C): BLEQ MT [trap=4, pos=3323]
0248o(85E0000C): LDR R5, SP, CH
0249o(84400020): LDR R4, R4, 20H
024Ao(04590004): SUB R4, R5, R4
024Bp(44490001): SUB R4, R4, 1H
ELSEq Adjustr(Menu,s extend,t 0,u Y + 1,v H - 2)w
024Cq(F7FFFEFD): BL -259 [014AH]
024Dr(E7000008): B 8 [0256H]
024Es(80E00010): LDR R0, SP, 10H
024Ft(41000000): MOV R1, R0, 0H
0250u(42000000): MOV R2, R0, 0H
0251v(83E00008): LDR R3, SP, 8H
0252v(43380001): ADD R3, R3, 1H
0253w(84E0000C): LDR R4, SP, CH
0254w(44490002): SUB R4, R4, 2H
ENDx
0255x(F7FFFEF4): BL -268 [014AH]
ELSIF Yy > V.Yz THENa (*reduce*)
0256y(E700004D): B 77 [02A4H]
0257z(80E00004): LDR R0, SP, 4H
0258z(D10D4D4C): BLEQ MT [trap=4, pos=3405]
0259a(81E00008): LDR R1, SP, 8H
025Aa(8000000C): LDR R0, R0, CH
025Ba(01190000): SUB R1, R1, R0
025Ca(E6000047): BLE 71 [02A4H]
Oberon.RemoveMarks(V.Xb,c V.Yd,e V.Wf,g V.Hh)i;j
025Db(80E00004): LDR R0, SP, 4H
025Eb(D10D7A4C): BLEQ MT [trap=4, pos=3450]
025Fc(80000008): LDR R0, R0, 8H
0260d(81E00004): LDR R1, SP, 4H
0261d(D10D7F4C): BLEQ MT [trap=4, pos=3455]
0262e(8110000C): LDR R1, R1, CH
0263f(82E00004): LDR R2, SP, 4H
0264f(D10D844C): BLEQ MT [trap=4, pos=3460]
0265g(82200010): LDR R2, R2, 10H
0266h(83E00004): LDR R3, SP, 4H
0267h(D10D894C): BLEQ MT [trap=4, pos=3465]
0268i(83300014): LDR R3, R3, 14H
0269j .FIXUP P
0269j(F741B042): BL MOD4 [Oberon] PROC27
IF H > V.menuHk + 1 THENl
026Ak(80E00004): LDR R0, SP, 4H
026Bk(D10DA04C): BLEQ MT [trap=4, pos=3488]
026Cl(80000020): LDR R0, R0, 20H
026Dl(40080001): ADD R0, R0, 1H
026El(81E0000C): LDR R1, SP, CH
026Fl(01190000): SUB R1, R1, R0
0270l(E600001C): BLE 28 [028DH]
Adjust(Main,m reduce,n 0,o Y + 1,p H - V.menuHq -r 1)s;t
0271m(80E00014): LDR R0, SP, 14H
0272n(41000001): MOV R1, R0, 1H
0273o(42000000): MOV R2, R0, 0H
0274p(83E00008): LDR R3, SP, 8H
0275p(43380001): ADD R3, R3, 1H
0276q(84E00004): LDR R4, SP, 4H
0277q(D10DDC4C): BLEQ MT [trap=4, pos=3548]
0278r(85E0000C): LDR R5, SP, CH
0279r(84400020): LDR R4, R4, 20H
027Ar(04590004): SUB R4, R5, R4
027Bs(44490001): SUB R4, R4, 1H
027Ct(F7FFFECD): BL -307 [014AH]
Adjust(Menu,u reduce,v 0,w Y + H -x V.menuHy,z V.menuHa - 1)b
027Du(80E00010): LDR R0, SP, 10H
027Ev(41000001): MOV R1, R0, 1H
027Fw(42000000): MOV R2, R0, 0H
0280x(83E00008): LDR R3, SP, 8H
0281x(84E0000C): LDR R4, SP, CH
0282x(03380004): ADD R3, R3, R4
0283y(84E00004): LDR R4, SP, 4H
0284y(D10E124C): BLEQ MT [trap=4, pos=3602]
0285z(84400020): LDR R4, R4, 20H
0286z(03390004): SUB R3, R3, R4
0287a(84E00004): LDR R4, SP, 4H
0288a(D10E1B4C): BLEQ MT [trap=4, pos=3611]
0289b(84400020): LDR R4, R4, 20H
028Ab(44490001): SUB R4, R4, 1H
ELSEc
028Bc(F7FFFEBE): BL -322 [014AH]
Adjustd(Main,e reduce,f 0,g Y + H -h V.menuHi,j 0)k;l
028Cd(E7000014): B 20 [02A1H]
028De(80E00014): LDR R0, SP, 14H
028Ef(41000001): MOV R1, R0, 1H
028Fg(42000000): MOV R2, R0, 0H
0290h(83E00008): LDR R3, SP, 8H
0291h(84E0000C): LDR R4, SP, CH
0292h(03380004): ADD R3, R3, R4
0293i(84E00004): LDR R4, SP, 4H
0294i(D10E5B4C): BLEQ MT [trap=4, pos=3675]
0295j(84400020): LDR R4, R4, 20H
0296j(03390004): SUB R3, R3, R4
0297k(44000000): MOV R4, R0, 0H
0298l(F7FFFEB1): BL -335 [014AH]
Adjust(Menu,m reduce,n 0,o Y + 1,p H - 2)q
0299m(80E00010): LDR R0, SP, 10H
029An(41000001): MOV R1, R0, 1H
029Bo(42000000): MOV R2, R0, 0H
029Cp(83E00008): LDR R3, SP, 8H
029Dp(43380001): ADD R3, R3, 1H
029Eq(84E0000C): LDR R4, SP, CH
029Fq(44490002): SUB R4, R4, 2H
ENDr;
02A0r(F7FFFEA9): BL -343 [014AH]
Reduce(V,s Y)t
02A1s(80E00004): LDR R0, SP, 4H
02A2t(81E00008): LDR R1, SP, 8H
ENDu
02A3u(F7FFFE36): BL -458 [00DAH]
ENDv Modify;
02A4v(8FE00000): LDR LNK, SP, 0H
02A5v(4EE80018): ADD SP, SP, 18H
02A6v(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 # {}*)
02A7w(4EE90030): SUB SP, SP, 30H
02A8w(AFE00000): STR LNK, SP, 0H
02A9w(A0E00004): STR R0, SP, 4H
02AAw(A1E00008): STR R1, SP, 8H
02ABw(A2E0000C): STR R2, SP, CH
02ACw(A3E00010): STR R3, SP, 10H
Menu := V.dscx;y Main := V.dscz.nexta;b
02ADx(80E00004): LDR R0, SP, 4H
02AEx(D10F894C): BLEQ MT [trap=4, pos=3977]
02AFy(80000004): LDR R0, R0, 4H
02B0y(A0E00014): STR R0, SP, 14H
02B1z(80E00004): LDR R0, SP, 4H
02B2z(D10F984C): BLEQ MT [trap=4, pos=3992]
02B3a(80000004): LDR R0, R0, 4H
02B4a(D10F9D4C): BLEQ MT [trap=4, pos=3997]
02B5b(80000000): LDR R0, R0, 0H
02B6b(A0E00018): STR R0, SP, 18H
Oberon.DrawMouseArrow(X,c Y)d;e
02B7c(80E00008): LDR R0, SP, 8H
02B8d(81E0000C): LDR R1, SP, CH
02B9e .FIXUP P
02B9e(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
02BAf(40000001): MOV R0, R0, 1H
02BBg(81E00004): LDR R1, SP, 4H
02BCg(D10FE84C): BLEQ MT [trap=4, pos=4072]
02BDh(81100008): LDR R1, R1, 8H
02BEh(41180001): ADD R1, R1, 1H
02BFi(82E00004): LDR R2, SP, 4H
02C0i(D10FF14C): BLEQ MT [trap=4, pos=4081]
02C1j(83E00004): LDR R3, SP, 4H
02C2j(D10FF74C): BLEQ MT [trap=4, pos=4087]
02C3k(8220000C): LDR R2, R2, CH
02C4k(83300014): LDR R3, R3, 14H
02C5k(02280003): ADD R2, R2, R3
02C6l(42290001): SUB R2, R2, 1H
02C7m(83E00004): LDR R3, SP, 4H
02C8m(D110034C): BLEQ MT [trap=4, pos=4099]
02C9n(83300004): LDR R3, R3, 4H
02CAn(D110054C): BLEQ MT [trap=4, pos=4101]
02CBo(83300014): LDR R3, R3, 14H
02CCo(02290003): SUB R2, R2, R3
02CDp(83E00004): LDR R3, SP, 4H
02CEp(D1100A4C): BLEQ MT [trap=4, pos=4106]
02CFq(83300010): LDR R3, R3, 10H
02D0q(43390002): SUB R3, R3, 2H
02D1r(84E00004): LDR R4, SP, 4H
02D2r(D110154C): BLEQ MT [trap=4, pos=4117]
02D3s(84400004): LDR R4, R4, 4H
02D4s(D110174C): BLEQ MT [trap=4, pos=4119]
02D5t(84400014): LDR R4, R4, 14H
02D6u(45000002): MOV R5, R0, 2H
02D7v .FIXUP P
02D7v(F720F01E): BL MOD2 [Display] PROC15
Y0 := Y;w keysum := Keys;x Input.Mouse(Keys,y X,z Y)a;b
02D8w(80E0000C): LDR R0, SP, CH
02D9w(A0E00024): STR R0, SP, 24H
02DAx(80E00010): LDR R0, SP, 10H
02DBx(A0E00020): STR R0, SP, 20H
02DCy(40E80010): ADD R0, SP, 10H
02DDz(41E80008): ADD R1, SP, 8H
02DEa(42E8000C): ADD R2, SP, CH
02DFb .FIXUP P
02DFb(F7103008): BL MOD1 [Input] PROC3
WHILE Keys # {} DOc
02E0c(80E00010): LDR R0, SP, 10H
02E1c(E100000C): BEQ 12 [02EEH]
keysum := keysum + Keys;d
02E2d(80E00020): LDR R0, SP, 20H
02E3d(81E00010): LDR R1, SP, 10H
02E4d(00060001): IOR R0, R0, R1
02E5d(A0E00020): STR R0, SP, 20H
Oberon.DrawMouseArrow(X,e Y)f;g Input.Mouse(Keys,h X,i Y)j
02E6e(80E00008): LDR R0, SP, 8H
02E7f(81E0000C): LDR R1, SP, CH
02E8g .FIXUP P
02E8g(F7418009): BL MOD4 [Oberon] PROC24
02E9h(40E80010): ADD R0, SP, 10H
02EAi(41E80008): ADD R1, SP, 8H
02EBj(42E8000C): ADD R2, SP, CH
ENDk;
02ECk .FIXUP P
02ECk(F7103004): BL MOD1 [Input] PROC3
02EDk(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
02EEl(40000001): MOV R0, R0, 1H
02EFm(81E00004): LDR R1, SP, 4H
02F0m(D111024C): BLEQ MT [trap=4, pos=4354]
02F1n(81100008): LDR R1, R1, 8H
02F2n(41180001): ADD R1, R1, 1H
02F3o(82E00004): LDR R2, SP, 4H
02F4o(D1110B4C): BLEQ MT [trap=4, pos=4363]
02F5p(83E00004): LDR R3, SP, 4H
02F6p(D111114C): BLEQ MT [trap=4, pos=4369]
02F7q(8220000C): LDR R2, R2, CH
02F8q(83300014): LDR R3, R3, 14H
02F9q(02280003): ADD R2, R2, R3
02FAr(42290001): SUB R2, R2, 1H
02FBs(83E00004): LDR R3, SP, 4H
02FCs(D1111D4C): BLEQ MT [trap=4, pos=4381]
02FDt(83300004): LDR R3, R3, 4H
02FEt(D1111F4C): BLEQ MT [trap=4, pos=4383]
02FFu(83300014): LDR R3, R3, 14H
0300u(02290003): SUB R2, R2, R3
0301v(83E00004): LDR R3, SP, 4H
0302v(D111244C): BLEQ MT [trap=4, pos=4388]
0303w(83300010): LDR R3, R3, 10H
0304w(43390002): SUB R3, R3, 2H
0305x(84E00004): LDR R4, SP, 4H
0306x(D1112F4C): BLEQ MT [trap=4, pos=4399]
0307y(84400004): LDR R4, R4, 4H
0308y(D111314C): BLEQ MT [trap=4, pos=4401]
0309z(84400014): LDR R4, R4, 14H
030Aa(45000002): MOV R5, R0, 2H
030Bb .FIXUP P
030Bb(F720F01F): BL MOD2 [Display] PROC15
IF ~(0 IN keysum)c THENd
030Cc(80E00020): LDR R0, SP, 20H
030Dc(40030001): ROR R0, R0, 1H
030Ed(E0000165): BMI 357 [0474H]
IF 1 IN keysum THENe V1 := Viewers.This(X,f Y)g;h
030Fe(80E00020): LDR R0, SP, 20H
0310e(40030002): ROR R0, R0, 2H
0311e(E8000046): BPL 70 [0358H]
0312f(80E00008): LDR R0, SP, 8H
0313g(81E0000C): LDR R1, SP, CH
0314h .FIXUP P
0314h(F7309009): BL MOD3 [Viewers] PROC9
0315h(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;
0316i(80E0001C): LDR R0, SP, 1CH
0317i(E1000005): BEQ 5 [031DH]
0318i(810FFFF8): LDR R1, R0, FFFFFFF8H
0319i(81100008): LDR R1, R1, 8H
031Ai .FIXUP D
031Ai(8D0001BA): LDR SB, MT, MOD0 [MenuViewers]
031Bi(42D80000): ADD R2, SB, 0H [data]
031Ci(02290001): SUB R2, R2, R1
031Dj(E900001D): BNE 29 [033BH]
031Ek(80E0001C): LDR R0, SP, 1CH
031Fk(D111B84C): BLEQ MT [trap=4, pos=4536]
0320l(81E0001C): LDR R1, SP, 1CH
0321l(D111BF4C): BLEQ MT [trap=4, pos=4543]
0322m(8000000C): LDR R0, R0, CH
0323m(81100014): LDR R1, R1, 14H
0324m(00080001): ADD R0, R0, R1
0325n(81E0001C): LDR R1, SP, 1CH
0326n(E1000005): BEQ 5 [032CH]
0327n(821FFFF8): LDR R2, R1, FFFFFFF8H
0328n(82200008): LDR R2, R2, 8H
0329n .FIXUP D
0329n(8D00000F): LDR SB, MT, MOD0 [MenuViewers]
032An(43D80000): ADD R3, SB, 0H [data]
032Bn(03390002): SUB R3, R3, R2
032Cn(D911CC2C): BLNE MT [trap=2, pos=4556]
032Do(81100020): LDR R1, R1, 20H
032Eo(00090001): SUB R0, R0, R1
032Fp(40090002): SUB R0, R0, 2H
0330p(81E0000C): LDR R1, SP, CH
0331p(01190000): SUB R1, R1, R0
0332q(E6000008): BLE 8 [033BH]
0333r(80E0001C): LDR R0, SP, 1CH
0334r(D111E64C): BLEQ MT [trap=4, pos=4582]
0335s(81E0001C): LDR R1, SP, 1CH
0336s(D111ED4C): BLEQ MT [trap=4, pos=4589]
0337t(8000000C): LDR R0, R0, CH
0338t(81100014): LDR R1, R1, 14H
0339t(00080001): ADD R0, R0, R1
033At(A0E0000C): STR R0, SP, CH
IF Y < V1.Yu + V.menuHv +w 2 THENx Y := V1.Yy + V.menuHz +a 2 ENDb;
033Bu(80E0001C): LDR R0, SP, 1CH
033Cu(D112064C): BLEQ MT [trap=4, pos=4614]
033Dv(81E00004): LDR R1, SP, 4H
033Ev(D112104C): BLEQ MT [trap=4, pos=4624]
033Fw(8000000C): LDR R0, R0, CH
0340w(81100020): LDR R1, R1, 20H
0341w(00080001): ADD R0, R0, R1
0342x(40080002): ADD R0, R0, 2H
0343x(81E0000C): LDR R1, SP, CH
0344x(01190000): SUB R1, R1, R0
0345x(ED000009): BGE 9 [034FH]
0346y(80E0001C): LDR R0, SP, 1CH
0347y(D112234C): BLEQ MT [trap=4, pos=4643]
0348z(81E00004): LDR R1, SP, 4H
0349z(D1122D4C): BLEQ MT [trap=4, pos=4653]
034Aa(8000000C): LDR R0, R0, CH
034Ba(81100020): LDR R1, R1, 20H
034Ca(00080001): ADD R0, R0, R1
034Db(40080002): ADD R0, R0, 2H
034Eb(A0E0000C): STR R0, SP, CH
Viewers.Close(V)c;d Viewers.Open(V,e X,f Y)g;h Restore(V)i
034Fc(80E00004): LDR R0, SP, 4H
0350d .FIXUP P
0350d(F730703C): BL MOD3 [Viewers] PROC7
0351e(80E00004): LDR R0, SP, 4H
0352f(81E00008): LDR R1, SP, 8H
0353g(82E0000C): LDR R2, SP, CH
0354h .FIXUP P
0354h(F7305004): BL MOD3 [Viewers] PROC5
0355i(80E00004): LDR R0, SP, 4H
ELSEj
0356j(F7FFFE1A): BL -486 [0171H]
IFk Y > Y0 THENl (*extend*) dY := Y - Y0;m
0357k(E700011C): B 284 [0474H]
0358l(80E0000C): LDR R0, SP, CH
0359l(81E00024): LDR R1, SP, 24H
035Al(00090001): SUB R0, R0, R1
035Bl(E60000B7): BLE 183 [0413H]
035Cm(80E0000C): LDR R0, SP, CH
035Dm(81E00024): LDR R1, SP, 24H
035Em(00090001): SUB R0, R0, R1
035Fm(A0E00028): STR R0, SP, 28H
V1 := Viewers.Next(V)n;o
0360n(80E00004): LDR R0, SP, 4H
0361o .FIXUP P
0361o(F730A00D): BL MOD3 [Viewers] PROC10
0362o(A0E0001C): STR R0, SP, 1CH
IF V1.statep > 1 THENq
0363p(80E0001C): LDR R0, SP, 1CH
0364p(D112E44C): BLEQ MT [trap=4, pos=4836]
0365q(8000001C): LDR R0, R0, 1CH
0366q(40090001): SUB R0, R0, 1H
0367q(E6000038): BLE 56 [03A0H]
CASE V1 OF
Viewer:r
0368r(80E0001C): LDR R0, SP, 1CH
0369r(E1000005): BEQ 5 [036FH]
036Ar(810FFFF8): LDR R1, R0, FFFFFFF8H
036Br(81100008): LDR R1, R1, 8H
036Cr .FIXUP D
036Cr(8D000043): LDR SB, MT, MOD0 [MenuViewers]
036Dr(42D80000): ADD R2, SB, 0H [data]
036Er(02290001): SUB R2, R2, R1
036Fr(E9000021): BNE 33 [0391H]
IF V1.Hs < V1.menuHt + 2 THENu dY := 0
0370s(80E0001C): LDR R0, SP, 1CH
0371s(D1132E4C): BLEQ MT [trap=4, pos=4910]
0372t(81E0001C): LDR R1, SP, 1CH
0373t(D113394C): BLEQ MT [trap=4, pos=4921]
0374u(81100020): LDR R1, R1, 20H
0375u(41180002): ADD R1, R1, 2H
0376u(80000014): LDR R0, R0, 14H
0377u(00090001): SUB R0, R0, R1
0378u(ED000003): BGE 3 [037CH]
ELSIFv V1w.Hx < V1.menuHy + 2 +z dY THENa dY := V1.Hb - V1.menuHc -d 2
0379v(40000000): MOV R0, R0, 0H
037Av(A0E00028): STR R0, SP, 28H
037Bw(E7000014): B 20 [0390H]
037Cx(80E0001C): LDR R0, SP, 1CH
037Dx(D113634C): BLEQ MT [trap=4, pos=4963]
037Ey(81E0001C): LDR R1, SP, 1CH
037Fy(D1136E4C): BLEQ MT [trap=4, pos=4974]
0380z(81100020): LDR R1, R1, 20H
0381z(41180002): ADD R1, R1, 2H
0382a(82E00028): LDR R2, SP, 28H
0383a(01180002): ADD R1, R1, R2
0384a(80000014): LDR R0, R0, 14H
0385a(00090001): SUB R0, R0, R1
0386a(ED000009): BGE 9 [0390H]
0387b(80E0001C): LDR R0, SP, 1CH
0388b(D113874C): BLEQ MT [trap=4, pos=4999]
0389c(81E0001C): LDR R1, SP, 1CH
038Ac(D113924C): BLEQ MT [trap=4, pos=5010]
038Bd(80000014): LDR R0, R0, 14H
038Cd(81100020): LDR R1, R1, 20H
038Dd(00090001): SUB R0, R0, R1
ENDe |
038Ee(40090002): SUB R0, R0, 2H
038Fe(A0E00028): STR R0, SP, 28H
Viewersf.Viewer:g IF V1.Hh < 1 + dY THENi dY := V1.Hj - 1 ENDk
0390f(E700000E): B 14 [039FH]
0391g(EF00000D): BNO 13 [039FH]
0392h(80E0001C): LDR R0, SP, 1CH
0393h(D113CE4C): BLEQ MT [trap=4, pos=5070]
0394i(41000001): MOV R1, R0, 1H
0395i(82E00028): LDR R2, SP, 28H
0396i(01180002): ADD R1, R1, R2
0397i(80000014): LDR R0, R0, 14H
0398i(00090001): SUB R0, R0, R1
0399i(ED000005): BGE 5 [039FH]
039Aj(80E0001C): LDR R0, SP, 1CH
039Bj(D113E74C): BLEQ MT [trap=4, pos=5095]
039Ck(80000014): LDR R0, R0, 14H
039Dk(40090001): SUB R0, R0, 1H
039Ek(A0E00028): STR R0, SP, 28H
END
ELSIF V1l.Hm < dY THENn dY := V1.Ho
039Fl(E700000A): B 10 [03AAH]
03A0m(80E0001C): LDR R0, SP, 1CH
03A1m(D114144C): BLEQ MT [trap=4, pos=5140]
03A2n(80000014): LDR R0, R0, 14H
03A3n(81E00028): LDR R1, SP, 28H
03A4n(00090001): SUB R0, R0, R1
03A5n(ED000004): BGE 4 [03AAH]
03A6o(80E0001C): LDR R0, SP, 1CH
03A7o(D114294C): BLEQ MT [trap=4, pos=5161]
ENDp;
03A8p(80000014): LDR R0, R0, 14H
03A9p(A0E00028): STR R0, SP, 28H
Viewers.Change(V,q V.Yr + V.Hs +t dY)u;v
03AAq(80E00004): LDR R0, SP, 4H
03ABr(81E00004): LDR R1, SP, 4H
03ACr(D114584C): BLEQ MT [trap=4, pos=5208]
03ADs(82E00004): LDR R2, SP, 4H
03AEs(D1145E4C): BLEQ MT [trap=4, pos=5214]
03AFt(8110000C): LDR R1, R1, CH
03B0t(82200014): LDR R2, R2, 14H
03B1t(01180002): ADD R1, R1, R2
03B2u(82E00028): LDR R2, SP, 28H
03B3u(01180002): ADD R1, R1, R2
03B4v .FIXUP P
03B4v(F7306053): BL MOD3 [Viewers] PROC6
Oberon.RemoveMarks(V.Xw,x V.Yy,z V.Wa,b V.Hc)d;e
03B5w(80E00004): LDR R0, SP, 4H
03B6w(D114864C): BLEQ MT [trap=4, pos=5254]
03B7x(80000008): LDR R0, R0, 8H
03B8y(81E00004): LDR R1, SP, 4H
03B9y(D1148B4C): BLEQ MT [trap=4, pos=5259]
03BAz(8110000C): LDR R1, R1, CH
03BBa(82E00004): LDR R2, SP, 4H
03BCa(D114904C): BLEQ MT [trap=4, pos=5264]
03BDb(82200010): LDR R2, R2, 10H
03BEc(83E00004): LDR R3, SP, 4H
03BFc(D114954C): BLEQ MT [trap=4, pos=5269]
03C0d(83300014): LDR R3, R3, 14H
03C1e .FIXUP P
03C1e(F741B00D): BL MOD4 [Oberon] PROC27
Grow(V,f V.Hg - dY)h;i
03C2f(80E00004): LDR R0, SP, 4H
03C3g(81E00004): LDR R1, SP, 4H
03C4g(D114AD4C): BLEQ MT [trap=4, pos=5293]
03C5h(81100014): LDR R1, R1, 14H
03C6h(82E00028): LDR R2, SP, 28H
03C7h(01190002): SUB R1, R1, R2
03C8i(F7FFFD25): BL -731 [00EEH]
IF V.Hj > V.menuHk + 1 THENl
03C9j(80E00004): LDR R0, SP, 4H
03CAj(D114C54C): BLEQ MT [trap=4, pos=5317]
03CBk(81E00004): LDR R1, SP, 4H
03CCk(D114CF4C): BLEQ MT [trap=4, pos=5327]
03CDl(81100020): LDR R1, R1, 20H
03CEl(41180001): ADD R1, R1, 1H
03CFl(80000014): LDR R0, R0, 14H
03D0l(00090001): SUB R0, R0, R1
03D1l(E6000024): BLE 36 [03F6H]
Adjust(Menu,m extend,n dY,o V.Yp + V.Hq -r V.menuHs,t V.menuHu - 1)v;w
03D2m(80E00014): LDR R0, SP, 14H
03D3n(41000000): MOV R1, R0, 0H
03D4o(82E00028): LDR R2, SP, 28H
03D5p(83E00004): LDR R3, SP, 4H
03D6p(D115014C): BLEQ MT [trap=4, pos=5377]
03D7q(84E00004): LDR R4, SP, 4H
03D8q(D115074C): BLEQ MT [trap=4, pos=5383]
03D9r(8330000C): LDR R3, R3, CH
03DAr(84400014): LDR R4, R4, 14H
03DBr(03380004): ADD R3, R3, R4
03DCs(84E00004): LDR R4, SP, 4H
03DDs(D115114C): BLEQ MT [trap=4, pos=5393]
03DEt(84400020): LDR R4, R4, 20H
03DFt(03390004): SUB R3, R3, R4
03E0u(84E00004): LDR R4, SP, 4H
03E1u(D1151A4C): BLEQ MT [trap=4, pos=5402]
03E2v(84400020): LDR R4, R4, 20H
03E3v(44490001): SUB R4, R4, 1H
03E4w(F7FFFD65): BL -667 [014AH]
Adjust(Main,x extend,y dY,z V.Ya + 1,b V.Hc - V.menuHd -e 1)f
03E5x(80E00018): LDR R0, SP, 18H
03E6y(41000000): MOV R1, R0, 0H
03E7z(82E00028): LDR R2, SP, 28H
03E8a(83E00004): LDR R3, SP, 4H
03E9a(D115494C): BLEQ MT [trap=4, pos=5449]
03EAb(8330000C): LDR R3, R3, CH
03EBb(43380001): ADD R3, R3, 1H
03ECc(84E00004): LDR R4, SP, 4H
03EDc(D115524C): BLEQ MT [trap=4, pos=5458]
03EEd(85E00004): LDR R5, SP, 4H
03EFd(D1155C4C): BLEQ MT [trap=4, pos=5468]
03F0e(84400014): LDR R4, R4, 14H
03F1e(85500020): LDR R5, R5, 20H
03F2e(04490005): SUB R4, R4, R5
03F3f(44490001): SUB R4, R4, 1H
ELSEg (*V.H > 1*)
03F4g(F7FFFD55): BL -683 [014AH]
Adjusth(Menu,i extend,j dY,k V.Yl + 1,m V.Hn - 2)o;p
03F5h(E700001C): B 28 [0412H]
03F6i(80E00014): LDR R0, SP, 14H
03F7j(41000000): MOV R1, R0, 0H
03F8k(82E00028): LDR R2, SP, 28H
03F9l(83E00004): LDR R3, SP, 4H
03FAl(D115A54C): BLEQ MT [trap=4, pos=5541]
03FBm(8330000C): LDR R3, R3, CH
03FCm(43380001): ADD R3, R3, 1H
03FDn(84E00004): LDR R4, SP, 4H
03FEn(D115AE4C): BLEQ MT [trap=4, pos=5550]
03FFo(84400014): LDR R4, R4, 14H
0400o(44490002): SUB R4, R4, 2H
0401p(F7FFFD48): BL -696 [014AH]
Adjust(Main,q extend,r dY,s V.Yt + V.Hu -v V.menuHw,x 0)y
0402q(80E00018): LDR R0, SP, 18H
0403r(41000000): MOV R1, R0, 0H
0404s(82E00028): LDR R2, SP, 28H
0405t(83E00004): LDR R3, SP, 4H
0406t(D115DD4C): BLEQ MT [trap=4, pos=5597]
0407u(84E00004): LDR R4, SP, 4H
0408u(D115E34C): BLEQ MT [trap=4, pos=5603]
0409v(8330000C): LDR R3, R3, CH
040Av(84400014): LDR R4, R4, 14H
040Bv(03380004): ADD R3, R3, R4
040Cw(84E00004): LDR R4, SP, 4H
040Dw(D115ED4C): BLEQ MT [trap=4, pos=5613]
040Ex(84400020): LDR R4, R4, 20H
040Fx(03390004): SUB R3, R3, R4
0410y(44000000): MOV R4, R0, 0H
ENDz
0411z(F7FFFD38): BL -712 [014AH]
ELSIF Ya < Y0 THENb (*reduce*) dY := Y0 - Y;c
0412a(E7000061): B 97 [0474H]
0413b(80E0000C): LDR R0, SP, CH
0414b(81E00024): LDR R1, SP, 24H
0415b(00090001): SUB R0, R0, R1
0416b(ED00005D): BGE 93 [0474H]
0417c(80E00024): LDR R0, SP, 24H
0418c(81E0000C): LDR R1, SP, CH
0419c(00090001): SUB R0, R0, R1
041Ac(A0E00028): STR R0, SP, 28H
IF V.Hd >= V.menuHe + 2 THENf
041Bd(80E00004): LDR R0, SP, 4H
041Cd(D116434C): BLEQ MT [trap=4, pos=5699]
041De(81E00004): LDR R1, SP, 4H
041Ee(D1164E4C): BLEQ MT [trap=4, pos=5710]
041Ff(81100020): LDR R1, R1, 20H
0420f(41180002): ADD R1, R1, 2H
0421f(80000014): LDR R0, R0, 14H
0422f(00090001): SUB R0, R0, R1
0423f(E5000050): BLT 80 [0474H]
IF V.Hg < V.menuHh + 2 +i dY THENj dY := V.Hk - V.menuHl -m 2 ENDn;
0424g(80E00004): LDR R0, SP, 4H
0425g(D1166A4C): BLEQ MT [trap=4, pos=5738]
0426h(81E00004): LDR R1, SP, 4H
0427h(D116744C): BLEQ MT [trap=4, pos=5748]
0428i(81100020): LDR R1, R1, 20H
0429i(41180002): ADD R1, R1, 2H
042Aj(82E00028): LDR R2, SP, 28H
042Bj(01180002): ADD R1, R1, R2
042Cj(80000014): LDR R0, R0, 14H
042Dj(00090001): SUB R0, R0, R1
042Ej(ED000009): BGE 9 [0438H]
042Fk(80E00004): LDR R0, SP, 4H
0430k(D1168C4C): BLEQ MT [trap=4, pos=5772]
0431l(81E00004): LDR R1, SP, 4H
0432l(D116964C): BLEQ MT [trap=4, pos=5782]
0433m(80000014): LDR R0, R0, 14H
0434m(81100020): LDR R1, R1, 20H
0435m(00090001): SUB R0, R0, R1
0436n(40090002): SUB R0, R0, 2H
0437n(A0E00028): STR R0, SP, 28H
Oberon.RemoveMarks(V.Xo,p V.Yq,r V.Ws,t V.Hu)v;w
0438o(80E00004): LDR R0, SP, 4H
0439o(D116C24C): BLEQ MT [trap=4, pos=5826]
043Ap(80000008): LDR R0, R0, 8H
043Bq(81E00004): LDR R1, SP, 4H
043Cq(D116C74C): BLEQ MT [trap=4, pos=5831]
043Dr(8110000C): LDR R1, R1, CH
043Es(82E00004): LDR R2, SP, 4H
043Fs(D116CC4C): BLEQ MT [trap=4, pos=5836]
0440t(82200010): LDR R2, R2, 10H
0441u(83E00004): LDR R3, SP, 4H
0442u(D116D14C): BLEQ MT [trap=4, pos=5841]
0443v(83300014): LDR R3, R3, 14H
0444w .FIXUP P
0444w(F741B083): BL MOD4 [Oberon] PROC27
H := V.Hx - dY;y
0445x(80E00004): LDR R0, SP, 4H
0446x(D116E84C): BLEQ MT [trap=4, pos=5864]
0447y(80000014): LDR R0, R0, 14H
0448y(81E00028): LDR R1, SP, 28H
0449y(00090001): SUB R0, R0, R1
044Ay(A0E0002C): STR R0, SP, 2CH
Adjust(Main,z reduce,a dY,b V.Yc + 1,d H - V.menuHe -f 1)g;h
044Bz(80E00018): LDR R0, SP, 18H
044Ca(41000001): MOV R1, R0, 1H
044Db(82E00028): LDR R2, SP, 28H
044Ec(83E00004): LDR R3, SP, 4H
044Fc(D117174C): BLEQ MT [trap=4, pos=5911]
0450d(8330000C): LDR R3, R3, CH
0451d(43380001): ADD R3, R3, 1H
0452e(84E00004): LDR R4, SP, 4H
0453e(D117284C): BLEQ MT [trap=4, pos=5928]
0454f(85E0002C): LDR R5, SP, 2CH
0455f(84400020): LDR R4, R4, 20H
0456f(04590004): SUB R4, R5, R4
0457g(44490001): SUB R4, R4, 1H
0458h(F7FFFCF1): BL -783 [014AH]
Adjust(Menu,i reduce,j dY,k V.Yl + H -m V.menuHn,o V.menuHp - 1)q;r
0459i(80E00014): LDR R0, SP, 14H
045Aj(41000001): MOV R1, R0, 1H
045Bk(82E00028): LDR R2, SP, 28H
045Cl(83E00004): LDR R3, SP, 4H
045Dl(D117574C): BLEQ MT [trap=4, pos=5975]
045Em(8330000C): LDR R3, R3, CH
045Fm(84E0002C): LDR R4, SP, 2CH
0460m(03380004): ADD R3, R3, R4
0461n(84E00004): LDR R4, SP, 4H
0462n(D117654C): BLEQ MT [trap=4, pos=5989]
0463o(84400020): LDR R4, R4, 20H
0464o(03390004): SUB R3, R3, R4
0465p(84E00004): LDR R4, SP, 4H
0466p(D1176E4C): BLEQ MT [trap=4, pos=5998]
0467q(84400020): LDR R4, R4, 20H
0468q(44490001): SUB R4, R4, 1H
0469r(F7FFFCE0): BL -800 [014AH]
Shrink(V,s H)t;u Viewers.Change(V,v V.Yw + H)x
046As(80E00004): LDR R0, SP, 4H
046Bt(81E0002C): LDR R1, SP, 2CH
046Cu(F7FFFCC4): BL -828 [0131H]
046Dv(80E00004): LDR R0, SP, 4H
046Ew(81E00004): LDR R1, SP, 4H
046Fw(D117A44C): BLEQ MT [trap=4, pos=6052]
0470x(8110000C): LDR R1, R1, CH
0471x(82E0002C): LDR R2, SP, 2CH
0472x(01180002): ADD R1, R1, R2
ENDy
0473y .FIXUP P
0473y(F730602F): BL MOD3 [Viewers] PROC6
END
END
END
ENDz Change;
0474z(8FE00000): LDR LNK, SP, 0H
0475z(4EE80030): ADD SP, SP, 30H
0476z(C700000F): B LNK
PROCEDURE Suspend (V: Viewer);
VAR Menu, Main: Display.Frame;
BEGINa Menu := V.dscb;c Main := V.dscd.nexte;f
0477a(4EE90010): SUB SP, SP, 10H
0478a(AFE00000): STR LNK, SP, 0H
0479a(A0E00004): STR R0, SP, 4H
047Ab(80E00004): LDR R0, SP, 4H
047Bb(D1183E4C): BLEQ MT [trap=4, pos=6206]
047Cc(80000004): LDR R0, R0, 4H
047Dc(A0E00008): STR R0, SP, 8H
047Ed(80E00004): LDR R0, SP, 4H
047Fd(D1184D4C): BLEQ MT [trap=4, pos=6221]
0480e(80000004): LDR R0, R0, 4H
0481e(D118524C): BLEQ MT [trap=4, pos=6226]
0482f(80000000): LDR R0, R0, 0H
0483f(A0E0000C): STR R0, SP, CH
Adjust(Main,g reduce,h 0,i V.Yj + V.Hk -l V.menuHm,n 0)o;p
0484g(80E0000C): LDR R0, SP, CH
0485h(41000001): MOV R1, R0, 1H
0486i(42000000): MOV R2, R0, 0H
0487j(83E00004): LDR R3, SP, 4H
0488j(D118734C): BLEQ MT [trap=4, pos=6259]
0489k(84E00004): LDR R4, SP, 4H
048Ak(D118794C): BLEQ MT [trap=4, pos=6265]
048Bl(8330000C): LDR R3, R3, CH
048Cl(84400014): LDR R4, R4, 14H
048Dl(03380004): ADD R3, R3, R4
048Em(84E00004): LDR R4, SP, 4H
048Fm(D118834C): BLEQ MT [trap=4, pos=6275]
0490n(84400020): LDR R4, R4, 20H
0491n(03390004): SUB R3, R3, R4
0492o(44000000): MOV R4, R0, 0H
0493p(F7FFFCB6): BL -842 [014AH]
Adjust(Menu,q reduce,r 0,s V.Yt + V.Hu -v 1,w 0)x
0494q(80E00008): LDR R0, SP, 8H
0495r(41000001): MOV R1, R0, 1H
0496s(42000000): MOV R2, R0, 0H
0497t(83E00004): LDR R3, SP, 4H
0498t(D118A84C): BLEQ MT [trap=4, pos=6312]
0499u(84E00004): LDR R4, SP, 4H
049Au(D118AE4C): BLEQ MT [trap=4, pos=6318]
049Bv(8330000C): LDR R3, R3, CH
049Cv(84400014): LDR R4, R4, 14H
049Dv(03380004): ADD R3, R3, R4
049Ew(43390001): SUB R3, R3, 1H
049Fx(44000000): MOV R4, R0, 0H
ENDy Suspend;
04A0y(F7FFFCA9): BL -855 [014AH]
04A1y(8FE00000): LDR LNK, SP, 0H
04A2y(4EE80010): ADD SP, SP, 10H
04A3y(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
04A4z .PROC 3
04A4z(4EE90024): SUB SP, SP, 24H
04A5z(AFE00000): STR LNK, SP, 0H
04A6z(A0E00004): STR R0, SP, 4H
04A7z(A1E00008): STR R1, SP, 8H
04A8z(A2E0000C): STR R2, SP, CH
04A9a(80E00004): LDR R0, SP, 4H
04AAa(D119614C): BLEQ MT [trap=4, pos=6497]
04ABb(80000004): LDR R0, R0, 4H
04ACb(A0E00018): STR R0, SP, 18H
04ADc(80E00004): LDR R0, SP, 4H
04AEc(D119704C): BLEQ MT [trap=4, pos=6512]
04AFd(80000004): LDR R0, R0, 4H
04B0d(D119754C): BLEQ MT [trap=4, pos=6517]
04B1e(80000000): LDR R0, R0, 0H
04B2e(A0E0001C): STR R0, SP, 1CH
CASE M OF
Oberon.InputMsg:f
04B3f(80E0000C): LDR R0, SP, CH
04B4f(80000004): LDR R0, R0, 4H
04B5f .FIXUP D
04B5f(8D400149): LDR SB, MT, MOD4 [Oberon]
04B6f(41D80003): ADD R1, SB, VAR3
04B7f(01190000): SUB R1, R1, R0
04B8f(E900009F): BNE 159 [0558H]
IF M.id = Oberon.track THENg
04B9g(80E00008): LDR R0, SP, 8H
04BAg(80000000): LDR R0, R0, 0H
04BBg(40090001): SUB R0, R0, 1H
04BCg(E9000082): BNE 130 [053FH]
X := M.X;h Y := M.Y;i
04BDh(80E00008): LDR R0, SP, 8H
04BEh(80000008): LDR R0, R0, 8H
04BFh(A0E00010): STR R0, SP, 10H
04C0i(80E00008): LDR R0, SP, 8H
04C1i(8000000C): LDR R0, R0, CH
04C2i(A0E00014): STR R0, SP, 14H
IF Y < V.Yj + 1 THENk Oberon.DrawMouseArrow(X,l Y)m
04C3j(80E00004): LDR R0, SP, 4H
04C4j(D119F44C): BLEQ MT [trap=4, pos=6644]
04C5k(8000000C): LDR R0, R0, CH
04C6k(40080001): ADD R0, R0, 1H
04C7k(81E00014): LDR R1, SP, 14H
04C8k(01190000): SUB R1, R1, R0
04C9k(ED000004): BGE 4 [04CEH]
04CAl(80E00010): LDR R0, SP, 10H
04CBm(81E00014): LDR R1, SP, 14H
ELSIFn Yo < V.Yp + V.Hq -r V(Viewer)s.menuH THENt Main.handleu(Mainv,w M)x
04CCn .FIXUP P
04CCn(F7418059): BL MOD4 [Oberon] PROC24
04CDo(E7000070): B 112 [053EH]
04CEp(80E00004): LDR R0, SP, 4H
04CFp(D11A314C): BLEQ MT [trap=4, pos=6705]
04D0q(81E00004): LDR R1, SP, 4H
04D1q(D11A374C): BLEQ MT [trap=4, pos=6711]
04D2r(8000000C): LDR R0, R0, CH
04D3r(81100014): LDR R1, R1, 14H
04D4r(00080001): ADD R0, R0, R1
04D5s(81E00004): LDR R1, SP, 4H
04D6s(E1000005): BEQ 5 [04DCH]
04D7s(821FFFF8): LDR R2, R1, FFFFFFF8H
04D8s(82200008): LDR R2, R2, 8H
04D9s .FIXUP D
04D9s(8D000024): LDR SB, MT, MOD0 [MenuViewers]
04DAs(43D80000): ADD R3, SB, 0H [data]
04DBs(03390002): SUB R3, R3, R2
04DCs(D91A432C): BLNE MT [trap=2, pos=6723]
04DDt(81100020): LDR R1, R1, 20H
04DEt(00090001): SUB R0, R0, R1
04DFt(81E00014): LDR R1, SP, 14H
04E0t(01190000): SUB R1, R1, R0
04E1t(ED00000D): BGE 13 [04EFH]
04E2u(80E0001C): LDR R0, SP, 1CH
04E3u(D11A5A4C): BLEQ MT [trap=4, pos=6746]
04E4v(80000018): LDR R0, R0, 18H
04E5v(4EE90004): SUB SP, SP, 4H
04E6v(A0E00000): STR R0, SP, 0H
04E7w(80E00020): LDR R0, SP, 20H
04E8x(81E0000C): LDR R1, SP, CH
04E9x(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
04EAy(83E00000): LDR R3, SP, 0H
04EBy(4EE80004): ADD SP, SP, 4H
04ECy(D11A735C): BLEQ MT [trap=5, pos=6771]
04EDy(D7000003): BL R3
04EEz(E700004F): B 79 [053EH]
04EFa(80E00004): LDR R0, SP, 4H
04F0a(D11A7B4C): BLEQ MT [trap=4, pos=6779]
04F1b(81E00004): LDR R1, SP, 4H
04F2b(D11A814C): BLEQ MT [trap=4, pos=6785]
04F3c(8000000C): LDR R0, R0, CH
04F4c(81100014): LDR R1, R1, 14H
04F5c(00080001): ADD R0, R0, R1
04F6d(81E00004): LDR R1, SP, 4H
04F7d(E1000005): BEQ 5 [04FDH]
04F8d(821FFFF8): LDR R2, R1, FFFFFFF8H
04F9d(82200008): LDR R2, R2, 8H
04FAd .FIXUP D
04FAd(8D000021): LDR SB, MT, MOD0 [MenuViewers]
04FBd(43D80000): ADD R3, SB, 0H [data]
04FCd(03390002): SUB R3, R3, R2
04FDd(D91A8D2C): BLNE MT [trap=2, pos=6797]
04FEe(81100020): LDR R1, R1, 20H
04FFe(00090001): SUB R0, R0, R1
0500f(40080002): ADD R0, R0, 2H
0501f(81E00014): LDR R1, SP, 14H
0502f(01190000): SUB R1, R1, R0
0503f(ED00000D): BGE 13 [0511H]
0504g(80E00018): LDR R0, SP, 18H
0505g(D11AA84C): BLEQ MT [trap=4, pos=6824]
0506h(80000018): LDR R0, R0, 18H
0507h(4EE90004): SUB SP, SP, 4H
0508h(A0E00000): STR R0, SP, 0H
0509i(80E0001C): LDR R0, SP, 1CH
050Aj(81E0000C): LDR R1, SP, CH
050Bj(82E00010): LDR R2, SP, 10H
ELSIFk Yl < V.Ym + V.Hn -o 1 THENp
050Ck(83E00000): LDR R3, SP, 0H
050Dk(4EE80004): ADD SP, SP, 4H
050Ek(D11AC15C): BLEQ MT [trap=5, pos=6849]
050Fk(D7000003): BL R3
0510l(E700002D): B 45 [053EH]
0511m(80E00004): LDR R0, SP, 4H
0512m(D11AC94C): BLEQ MT [trap=4, pos=6857]
0513n(81E00004): LDR R1, SP, 4H
0514n(D11ACF4C): BLEQ MT [trap=4, pos=6863]
0515o(8000000C): LDR R0, R0, CH
0516o(81100014): LDR R1, R1, 14H
0517o(00080001): ADD R0, R0, R1
0518p(40090001): SUB R0, R0, 1H
0519p(81E00014): LDR R1, SP, 14H
051Ap(01190000): SUB R1, R1, R0
051Bp(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
051Cq(80E00008): LDR R0, SP, 8H
051Dq(80000004): LDR R0, R0, 4H
051Eq(40030003): ROR R0, R0, 3H
051Fq(E800000E): BPL 14 [052EH]
0520r(80E00004): LDR R0, SP, 4H
0521r(E1000005): BEQ 5 [0527H]
0522r(810FFFF8): LDR R1, R0, FFFFFFF8H
0523r(81100008): LDR R1, R1, 8H
0524r .FIXUP D
0524r(8D00002A): LDR SB, MT, MOD0 [MenuViewers]
0525r(42D80000): ADD R2, SB, 0H [data]
0526r(02290001): SUB R2, R2, R1
0527r(D91B092C): BLNE MT [trap=2, pos=6921]
0528s(81E00010): LDR R1, SP, 10H
0529t(82E00014): LDR R2, SP, 14H
052Au(83E00008): LDR R3, SP, 8H
052Bu(83300004): LDR R3, R3, 4H
052Cv(F7FFFD7A): BL -646 [02A7H]
052Dw(E700000C): B 12 [053AH]
052Ex(80E00018): LDR R0, SP, 18H
052Fx(D11B294C): BLEQ MT [trap=4, pos=6953]
0530y(80000018): LDR R0, R0, 18H
0531y(4EE90004): SUB SP, SP, 4H
0532y(A0E00000): STR R0, SP, 0H
0533z(80E0001C): LDR R0, SP, 1CH
0534a(81E0000C): LDR R1, SP, CH
0535a(82E00010): LDR R2, SP, 10H
0536b(83E00000): LDR R3, SP, 0H
0537b(4EE80004): ADD SP, SP, 4H
0538b(D11B365C): BLEQ MT [trap=5, pos=6966]
0539b(D7000003): BL R3
ELSE Oberonc.DrawMouseArrow(X,d Y)e
053Ac(E7000003): B 3 [053EH]
053Bd(80E00010): LDR R0, SP, 10H
053Ce(81E00014): LDR R1, SP, 14H
ENDf
053Df .FIXUP P
053Df(F7418071): BL MOD4 [Oberon] PROC24
ELSE Menug.handleh(Menui,j M)k;l Main.handlem(Mainn,o M)p
053Eg(E7000018): B 24 [0557H]
053Fh(80E00018): LDR R0, SP, 18H
0540h(D11B884C): BLEQ MT [trap=4, pos=7048]
0541i(80000018): LDR R0, R0, 18H
0542i(4EE90004): SUB SP, SP, 4H
0543i(A0E00000): STR R0, SP, 0H
0544j(80E0001C): LDR R0, SP, 1CH
0545k(81E0000C): LDR R1, SP, CH
0546k(82E00010): LDR R2, SP, 10H
0547l(83E00000): LDR R3, SP, 0H
0548l(4EE80004): ADD SP, SP, 4H
0549l(D11B925C): BLEQ MT [trap=5, pos=7058]
054Al(D7000003): BL R3
054Bm(80E0001C): LDR R0, SP, 1CH
054Cm(D11B9E4C): BLEQ MT [trap=4, pos=7070]
054Dn(80000018): LDR R0, R0, 18H
054En(4EE90004): SUB SP, SP, 4H
054Fn(A0E00000): STR R0, SP, 0H
0550o(80E00020): LDR R0, SP, 20H
0551p(81E0000C): LDR R1, SP, CH
0552p(82E00010): LDR R2, SP, 10H
ENDq |
0553q(83E00000): LDR R3, SP, 0H
0554q(4EE80004): ADD SP, SP, 4H
0555q(D11BB35C): BLEQ MT [trap=5, pos=7091]
0556q(D7000003): BL R3
Oberonr.ControlMsg:s
0557r(E7000090): B 144 [05E8H]
0558s(80E0000C): LDR R0, SP, CH
0559s(80000004): LDR R0, R0, 4H
055As .FIXUP D
055As(8D400036): LDR SB, MT, MOD4 [Oberon]
055Bs(41D80005): ADD R1, SB, VAR5
055Cs(01190000): SUB R1, R1, R0
055Ds(E900002A): BNE 42 [0588H]
IF M.id = Oberon.mark THENt
055Et(80E00008): LDR R0, SP, 8H
055Ft(80000000): LDR R0, R0, 0H
0560t(40090002): SUB R0, R0, 2H
0561t(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
0562u(80E00008): LDR R0, SP, 8H
0563u(80000004): LDR R0, R0, 4H
0564u(A0E00010): STR R0, SP, 10H
0565v(80E00008): LDR R0, SP, 8H
0566v(80000008): LDR R0, R0, 8H
0567v(A0E00014): STR R0, SP, 14H
0568w(80E00010): LDR R0, SP, 10H
0569x(81E00014): LDR R1, SP, 14H
056Ay .FIXUP P
056Ay(F741802D): BL MOD4 [Oberon] PROC24
056Bz(80E00010): LDR R0, SP, 10H
056Ca(81E00014): LDR R1, SP, 14H
ELSEb Menuc.handled(Menue,f M)g;h Main.handlei(Mainj,k M)l
056Db .FIXUP P
056Db(F741A003): BL MOD4 [Oberon] PROC26
056Ec(E7000018): B 24 [0587H]
056Fd(80E00018): LDR R0, SP, 18H
0570d(D11C5E4C): BLEQ MT [trap=4, pos=7262]
0571e(80000018): LDR R0, R0, 18H
0572e(4EE90004): SUB SP, SP, 4H
0573e(A0E00000): STR R0, SP, 0H
0574f(80E0001C): LDR R0, SP, 1CH
0575g(81E0000C): LDR R1, SP, CH
0576g(82E00010): LDR R2, SP, 10H
0577h(83E00000): LDR R3, SP, 0H
0578h(4EE80004): ADD SP, SP, 4H
0579h(D11C685C): BLEQ MT [trap=5, pos=7272]
057Ah(D7000003): BL R3
057Bi(80E0001C): LDR R0, SP, 1CH
057Ci(D11C744C): BLEQ MT [trap=4, pos=7284]
057Dj(80000018): LDR R0, R0, 18H
057Ej(4EE90004): SUB SP, SP, 4H
057Fj(A0E00000): STR R0, SP, 0H
0580k(80E00020): LDR R0, SP, 20H
0581l(81E0000C): LDR R1, SP, CH
0582l(82E00010): LDR R2, SP, 10H
ENDm |
0583m(83E00000): LDR R3, SP, 0H
0584m(4EE80004): ADD SP, SP, 4H
0585m(D11C895C): BLEQ MT [trap=5, pos=7305]
0586m(D7000003): BL R3
Oberonn.CopyMsg:o
0587n(E7000060): B 96 [05E8H]
0588o(80E0000C): LDR R0, SP, CH
0589o(80000004): LDR R0, R0, 4H
058Ao .FIXUP D
058Ao(8D400030): LDR SB, MT, MOD4 [Oberon]
058Bo(41D80006): ADD R1, SB, VAR6
058Co(01190000): SUB R1, R1, R0
058Do(E900000E): BNE 14 [059CH]
Copy(V(Viewer)p, V1)q;r M.F := V1 |s
058Ep(80E00004): LDR R0, SP, 4H
058Fp(E1000005): BEQ 5 [0595H]
0590p(810FFFF8): LDR R1, R0, FFFFFFF8H
0591p(81100008): LDR R1, R1, 8H
0592p .FIXUP D
0592p(8D000008): LDR SB, MT, MOD0 [MenuViewers]
0593p(42D80000): ADD R2, SB, 0H [data]
0594p(02290001): SUB R2, R2, R1
0595p(D91CB82C): BLNE MT [trap=2, pos=7352]
0596q(41E80020): ADD R1, SP, 20H
0597r(F7FFFA68): BL -1432 [0000H]
0598s(80E00020): LDR R0, SP, 20H
0599s(81E00008): LDR R1, SP, 8H
059As(A0100000): STR R0, R1, 0H
Viewerst.ViewerMsg:u
059Bt(E700004C): B 76 [05E8H]
059Cu(80E0000C): LDR R0, SP, CH
059Du(80000004): LDR R0, R0, 4H
059Eu .FIXUP D
059Eu(8D30000C): LDR SB, MT, MOD3 [Viewers]
059Fu(41D80002): ADD R1, SB, VAR2
05A0u(01190000): SUB R1, R1, R0
05A1u(E900002D): BNE 45 [05CFH]
IF M.id = Viewers.restore THENv Restore(V(Viewer)w)
05A2v(80E00008): LDR R0, SP, 8H
05A3v(80000000): LDR R0, R0, 0H
05A4v(E900000A): BNE 10 [05AFH]
05A5w(80E00004): LDR R0, SP, 4H
05A6w(E1000005): BEQ 5 [05ACH]
05A7w(810FFFF8): LDR R1, R0, FFFFFFF8H
05A8w(81100008): LDR R1, R1, 8H
05A9w .FIXUP D
05A9w(8D00000B): LDR SB, MT, MOD0 [MenuViewers]
05AAw(42D80000): ADD R2, SB, 0H [data]
05ABw(02290001): SUB R2, R2, R1
05ACw(D91D1C2C): BLNE MT [trap=2, pos=7452]
ELSIFx My.id = Viewers.modify THENz Modify(V(Viewer)a, M.Y,b M.H)c
05ADx(F7FFFBC3): BL -1085 [0171H]
05AEy(E700001F): B 31 [05CEH]
05AFz(80E00008): LDR R0, SP, 8H
05B0z(80000000): LDR R0, R0, 0H
05B1z(40090001): SUB R0, R0, 1H
05B2z(E900000E): BNE 14 [05C1H]
05B3a(80E00004): LDR R0, SP, 4H
05B4a(E1000005): BEQ 5 [05BAH]
05B5a(810FFFF8): LDR R1, R0, FFFFFFF8H
05B6a(81100008): LDR R1, R1, 8H
05B7a .FIXUP D
05B7a(8D00000E): LDR SB, MT, MOD0 [MenuViewers]
05B8a(42D80000): ADD R2, SB, 0H [data]
05B9a(02290001): SUB R2, R2, R1
05BAa(D91D572C): BLNE MT [trap=2, pos=7511]
05BBb(81E00008): LDR R1, SP, 8H
05BCb(81100008): LDR R1, R1, 8H
05BDc(82E00008): LDR R2, SP, 8H
05BEc(82200010): LDR R2, R2, 10H
ELSIFd Me.id = Viewers.suspend THENf Suspend(V(Viewer)g)
05BFd(F7FFFC46): BL -954 [0206H]
05C0e(E700000D): B 13 [05CEH]
05C1f(80E00008): LDR R0, SP, 8H
05C2f(80000000): LDR R0, R0, 0H
05C3f(40090002): SUB R0, R0, 2H
05C4f(E9000009): BNE 9 [05CEH]
05C5g(80E00004): LDR R0, SP, 4H
05C6g(E1000005): BEQ 5 [05CCH]
05C7g(810FFFF8): LDR R1, R0, FFFFFFF8H
05C8g(81100008): LDR R1, R1, 8H
05C9g .FIXUP D
05C9g(8D000012): LDR SB, MT, MOD0 [MenuViewers]
05CAg(42D80000): ADD R2, SB, 0H [data]
05CBg(02290001): SUB R2, R2, R1
05CCg(D91D9E2C): BLNE MT [trap=2, pos=7582]
ENDh |
05CDh(F7FFFEA9): BL -343 [0477H]
Displayi.FrameMsg:j Menu.handlek(Menul,m M)n;o Main.handlep(Mainq,r M)s
05CEi(E7000019): B 25 [05E8H]
05CFj(EF000018): BNO 24 [05E8H]
05D0k(80E00018): LDR R0, SP, 18H
05D1k(D11DD14C): BLEQ MT [trap=4, pos=7633]
05D2l(80000018): LDR R0, R0, 18H
05D3l(4EE90004): SUB SP, SP, 4H
05D4l(A0E00000): STR R0, SP, 0H
05D5m(80E0001C): LDR R0, SP, 1CH
05D6n(81E0000C): LDR R1, SP, CH
05D7n(82E00010): LDR R2, SP, 10H
05D8o(83E00000): LDR R3, SP, 0H
05D9o(4EE80004): ADD SP, SP, 4H
05DAo(D11DDB5C): BLEQ MT [trap=5, pos=7643]
05DBo(D7000003): BL R3
05DCp(80E0001C): LDR R0, SP, 1CH
05DDp(D11DE74C): BLEQ MT [trap=4, pos=7655]
05DEq(80000018): LDR R0, R0, 18H
05DFq(4EE90004): SUB SP, SP, 4H
05E0q(A0E00000): STR R0, SP, 0H
05E1r(80E00020): LDR R0, SP, 20H
05E2s(81E0000C): LDR R1, SP, CH
05E3s(82E00010): LDR R2, SP, 10H
ENDt
05E4t(83E00000): LDR R3, SP, 0H
05E5t(4EE80004): ADD SP, SP, 4H
05E6t(D11DFA5C): BLEQ MT [trap=5, pos=7674]
05E7t(D7000003): BL R3
ENDu Handle;
05E8u(8FE00000): LDR LNK, SP, 0H
05E9u(4EE80024): ADD SP, SP, 24H
05EAu(C700000F): B LNK
PROCEDURE New* (Menu, Main: Display.Frame; menuH, X, Y: INTEGER): Viewer;
VAR V: Viewer;
BEGINv NEW(V);w
05EBv .PROC 4
05EBv(4EE9001C): SUB SP, SP, 1CH
05ECv(AFE00000): STR LNK, SP, 0H
05EDv(A0E00004): STR R0, SP, 4H
05EEv(A1E00008): STR R1, SP, 8H
05EFv(A2E0000C): STR R2, SP, CH
05F0v(A3E00010): STR R3, SP, 10H
05F1v(A4E00014): STR R4, SP, 14H
05F2w(40E80018): ADD R0, SP, 18H
05F3w .FIXUP D
05F3w(8D00002A): LDR SB, MT, MOD0 [MenuViewers]
05F4w(41D80000): ADD R1, SB, 0H [data]
05F5w(D71E790C): BL MT [trap=0, pos=7801]
V.handlex := Handle;y V.dscz := Menu;a V.dscb.nextc := Main;d V.menuHe := menuH;f
05F6x(80E00018): LDR R0, SP, 18H
05F7x(D11E864C): BLEQ MT [trap=4, pos=7814]
05F8y(F7000000): BL 0 [05F9H]
05F9y(41F90554): SUB R1, LNK, 554H
05FAy(A1000018): STR R1, R0, 18H
05FBz(80E00018): LDR R0, SP, 18H
05FCz(D11E974C): BLEQ MT [trap=4, pos=7831]
05FDa(81E00004): LDR R1, SP, 4H
05FEa(A1000004): STR R1, R0, 4H
05FFb(80E00018): LDR R0, SP, 18H
0600b(D11EA64C): BLEQ MT [trap=4, pos=7846]
0601c(80000004): LDR R0, R0, 4H
0602c(D11EAB4C): BLEQ MT [trap=4, pos=7851]
0603d(81E00008): LDR R1, SP, 8H
0604d(A1000000): STR R1, R0, 0H
0605e(80E00018): LDR R0, SP, 18H
0606e(D11EBC4C): BLEQ MT [trap=4, pos=7868]
0607f(81E0000C): LDR R1, SP, CH
0608f(A1000020): STR R1, R0, 20H
Viewers.Open(V,g X,h Y)i;j Restore(V)k;l RETURN V
0609g(80E00018): LDR R0, SP, 18H
060Ah(81E00010): LDR R1, SP, 10H
060Bi(82E00014): LDR R2, SP, 14H
060Cj .FIXUP P
060Cj(F730509F): BL MOD3 [Viewers] PROC5
060Dk(80E00018): LDR R0, SP, 18H
060El(F7FFFB62): BL -1182 [0171H]
ENDm New;
060Fm(80E00018): LDR R0, SP, 18H
0610m(8FE00000): LDR LNK, SP, 0H
0611m(4EE8001C): ADD SP, SP, 1CH
0612m(C700000F): B LNK
ENDn MenuViewers.o
0613n .PROC 0
0613n .ENTRYPOINT
0613n(4EE90004): SUB SP, SP, 4H
0614n(AFE00000): STR LNK, SP, 0H
0615o(8FE00000): LDR LNK, SP, 0H
0616o(4EE80004): ADD SP, SP, 4H
0617o(C700000F): B LNK