| MODULE Viewers; (*JG 14.9.90 / NW 15.9.2013*) |
| | .MODULE Viewers (KEY 25ABF199, VERSION 1, SIZE 00001620) |
| | .IMPORT Display (KEY 4C08D3EA) |
| | .TYPEDESC 00000040 00000001 FFFFFFFF FFFFFFFF 00000000 00000004 FFFFFFFF 00000020 0001C007 FFFFFFFF FFFFFFFF FFFFFFFF 00000040 00000005 00030001 FFFFFFFF 00000020 00000000 00000004 FFFFFFFF |
| | .DATA 18H |
| | .POINTER_REFERENCES 5CH 60H 64H |
| | .FIXUP T EH |
| IMPORT Display; |
| |
| CONST restore* = 0; modify* = 1; suspend* = 2; (*message ids*) |
| inf = 65535; |
| |
| TYPE Viewer* = POINTER TO ViewerDesc; |
| ViewerDesc* = RECORD (Display.FrameDesc) state*: INTEGER END; |
| |
| (*state > 1: displayed; state = 1: filler; state = 0: closed; state < 0: suspended*) |
| |
| ViewerMsg* = RECORD (Display.FrameMsg) |
| id*: INTEGER; |
| X*, Y*, W*, H*: INTEGER; |
| state*: INTEGER |
| END; |
| |
| Track = POINTER TO TrackDesc; |
| TrackDesc = RECORD (ViewerDesc) under: Display.Frame END; |
| |
| VAR curW*, minH*, DH: INTEGER; |
| FillerTrack: Track; FillerViewer, |
| backup: Viewer; (*last closed viewer*) |
| |
| PROCEDURE Open* (V: Viewer; X, Y: INTEGER); |
| VAR T, u, v: Display.Frame; M: ViewerMsg; |
| BEGINa |
| 0000 | a .PROC 1 |
| 0000 | a .PROC 5 |
| 0000 | a(4EE90034): SUB SP, SP, 34H |
| 0001 | a(AFE00000): STR LNK, SP, 0H |
| 0002 | a(A0E00004): STR R0, SP, 4H |
| 0003 | a(A1E00008): STR R1, SP, 8H |
| 0004 | a(A2E0000C): STR R2, SP, CH |
| IF (V.stateb = 0)c & (dX < inf)e THENf |
| 0005 | b(80E00004): LDR R0, SP, 4H |
| 0006 | b(D103264C): BLEQ MT [trap=4, pos=806] |
| 0007 | c .PROC 2 |
| 0007 | c(8000001C): LDR R0, R0, 1CH |
| 0008 | d(E90000E6): BNE 230 [00EFH] |
| 0009 | e(80E00008): LDR R0, SP, 8H |
| 000A | e(4009FFFF): SUB R0, R0, FFFFFFFFH |
| 000B | f(ED0000E3): BGE 227 [00EFH] |
| IF Y > DH THENg Y := DH ENDh; |
| 000C | g(80E0000C): LDR R0, SP, CH |
| 000D | g .FIXUP D |
| 000D | g(8D00000D): LDR SB, MT, MOD0 [Viewers] |
| 000E | g(81D00058): LDR R1, SB, 58H [data] |
| 000F | g(00090001): SUB R0, R0, R1 |
| 0010 | g(E6000003): BLE 3 [0014H] |
| 0011 | h .FIXUP D |
| 0011 | h(8D000004): LDR SB, MT, MOD0 [Viewers] |
| 0012 | h(80D00058): LDR R0, SB, 58H [data] |
| 0013 | h(A0E0000C): STR R0, SP, CH |
| T := FillerTrack.nexti;j |
| 0014 | i .PROC 3 |
| 0014 | i .FIXUP D |
| 0014 | i(8D000003): LDR SB, MT, MOD0 [Viewers] |
| 0015 | i .PROC 4 |
| 0015 | i(80D0005C): LDR R0, SB, 5CH [data] |
| 0016 | i(D1037A4C): BLEQ MT [trap=4, pos=890] |
| 0017 | j(80000000): LDR R0, R0, 0H |
| 0018 | j(A0E00010): STR R0, SP, 10H |
| WHILE X >= T.Xk + T.Wl DOm T := T.nextn ENDo; |
| 0019 | k(80E00010): LDR R0, SP, 10H |
| 001A | k(D103904C): BLEQ MT [trap=4, pos=912] |
| 001B | l(81E00010): LDR R1, SP, 10H |
| 001C | l(D103964C): BLEQ MT [trap=4, pos=918] |
| 001D | m(80000008): LDR R0, R0, 8H |
| 001E | m(81100010): LDR R1, R1, 10H |
| 001F | m(00080001): ADD R0, R0, R1 |
| 0020 | m(81E00008): LDR R1, SP, 8H |
| 0021 | m(01190000): SUB R1, R1, R0 |
| 0022 | m(E5000005): BLT 5 [0028H] |
| 0023 | n(80E00010): LDR R0, SP, 10H |
| 0024 | n(D103A54C): BLEQ MT [trap=4, pos=933] |
| 0025 | o(80000000): LDR R0, R0, 0H |
| 0026 | o(A0E00010): STR R0, SP, 10H |
| 0027 | o(E7FFFFF1): B -15 [0019H] |
| u := T.dscp;q v := u.nextr;s |
| 0028 | p(80E00010): LDR R0, SP, 10H |
| 0029 | p(D103BB4C): BLEQ MT [trap=4, pos=955] |
| 002A | q(80000004): LDR R0, R0, 4H |
| 002B | q(A0E00014): STR R0, SP, 14H |
| 002C | r(80E00014): LDR R0, SP, 14H |
| 002D | r(D103C84C): BLEQ MT [trap=4, pos=968] |
| 002E | s(80000000): LDR R0, R0, 0H |
| 002F | s(A0E00018): STR R0, SP, 18H |
| WHILE Y > v.Yt + v.Hu DOv u := v;w v := u.nextx ENDy; |
| 0030 | t(80E00018): LDR R0, SP, 18H |
| 0031 | t(D103DD4C): BLEQ MT [trap=4, pos=989] |
| 0032 | u(81E00018): LDR R1, SP, 18H |
| 0033 | u(D103E34C): BLEQ MT [trap=4, pos=995] |
| 0034 | v(8000000C): LDR R0, R0, CH |
| 0035 | v(81100014): LDR R1, R1, 14H |
| 0036 | v(00080001): ADD R0, R0, R1 |
| 0037 | v(81E0000C): LDR R1, SP, CH |
| 0038 | v(01190000): SUB R1, R1, R0 |
| 0039 | v(E6000007): BLE 7 [0041H] |
| 003A | w(80E00018): LDR R0, SP, 18H |
| 003B | w(A0E00014): STR R0, SP, 14H |
| 003C | x(80E00014): LDR R0, SP, 14H |
| 003D | x(D103FA4C): BLEQ MT [trap=4, pos=1018] |
| 003E | y(80000000): LDR R0, R0, 0H |
| 003F | y(A0E00018): STR R0, SP, 18H |
| 0040 | y(E7FFFFEF): B -17 [0030H] |
| IF Y < v.Yz + minH THENa Y := v.Yb + minH ENDc; |
| 0041 | z(80E00018): LDR R0, SP, 18H |
| 0042 | z(D104104C): BLEQ MT [trap=4, pos=1040] |
| 0043 | a(8000000C): LDR R0, R0, CH |
| 0044 | a .FIXUP D |
| 0044 | a(8D000030): LDR SB, MT, MOD0 [Viewers] |
| 0045 | a(81D00054): LDR R1, SB, 54H [data] |
| 0046 | a(00080001): ADD R0, R0, R1 |
| 0047 | a(81E0000C): LDR R1, SP, CH |
| 0048 | a(01190000): SUB R1, R1, R0 |
| 0049 | a(ED000007): BGE 7 [0051H] |
| 004A | b(80E00018): LDR R0, SP, 18H |
| 004B | b(D104254C): BLEQ MT [trap=4, pos=1061] |
| 004C | c(8000000C): LDR R0, R0, CH |
| 004D | c .FIXUP D |
| 004D | c(8D000009): LDR SB, MT, MOD0 [Viewers] |
| 004E | c(81D00054): LDR R1, SB, 54H [data] |
| 004F | c(00080001): ADD R0, R0, R1 |
| 0050 | c(A0E0000C): STR R0, SP, CH |
| IF (v.nextd.Ye # 0)f & (gY > v.Yh + v.Hi -j minH)k THENl |
| 0051 | d(80E00018): LDR R0, SP, 18H |
| 0052 | d(D104424C): BLEQ MT [trap=4, pos=1090] |
| 0053 | e(80000000): LDR R0, R0, 0H |
| 0054 | e(D104444C): BLEQ MT [trap=4, pos=1092] |
| 0055 | f(8000000C): LDR R0, R0, CH |
| 0056 | g(E100004F): BEQ 79 [00A6H] |
| 0057 | h(80E00018): LDR R0, SP, 18H |
| 0058 | h(D104544C): BLEQ MT [trap=4, pos=1108] |
| 0059 | i(81E00018): LDR R1, SP, 18H |
| 005A | i(D1045A4C): BLEQ MT [trap=4, pos=1114] |
| 005B | j(8000000C): LDR R0, R0, CH |
| 005C | j(81100014): LDR R1, R1, 14H |
| 005D | j(00080001): ADD R0, R0, R1 |
| 005E | k .FIXUP D |
| 005E | k(8D000011): LDR SB, MT, MOD0 [Viewers] |
| 005F | k(81D00054): LDR R1, SB, 54H [data] |
| 0060 | k(00090001): SUB R0, R0, R1 |
| 0061 | k(81E0000C): LDR R1, SP, CH |
| 0062 | k(01190000): SUB R1, R1, R0 |
| 0063 | l(E6000042): BLE 66 [00A6H] |
| V.Xm := T.Xn;o V.Wp := T.Wq;r V.Ys := v.Yt;u V.Hv := v.Hw;x |
| 0064 | m(80E00004): LDR R0, SP, 4H |
| 0065 | m(D104734C): BLEQ MT [trap=4, pos=1139] |
| 0066 | n(81E00010): LDR R1, SP, 10H |
| 0067 | n(D1047A4C): BLEQ MT [trap=4, pos=1146] |
| 0068 | o(81100008): LDR R1, R1, 8H |
| 0069 | o(A1000008): STR R1, R0, 8H |
| 006A | p(80E00004): LDR R0, SP, 4H |
| 006B | p(D1047F4C): BLEQ MT [trap=4, pos=1151] |
| 006C | q(81E00010): LDR R1, SP, 10H |
| 006D | q(D104864C): BLEQ MT [trap=4, pos=1158] |
| 006E | r(81100010): LDR R1, R1, 10H |
| 006F | r(A1000010): STR R1, R0, 10H |
| 0070 | s(80E00004): LDR R0, SP, 4H |
| 0071 | s(D1048B4C): BLEQ MT [trap=4, pos=1163] |
| 0072 | t(81E00018): LDR R1, SP, 18H |
| 0073 | t(D104924C): BLEQ MT [trap=4, pos=1170] |
| 0074 | u(8110000C): LDR R1, R1, CH |
| 0075 | u(A100000C): STR R1, R0, CH |
| 0076 | v(80E00004): LDR R0, SP, 4H |
| 0077 | v(D104974C): BLEQ MT [trap=4, pos=1175] |
| 0078 | w(81E00018): LDR R1, SP, 18H |
| 0079 | w(D1049E4C): BLEQ MT [trap=4, pos=1182] |
| 007A | x(81100014): LDR R1, R1, 14H |
| 007B | x(A1000014): STR R1, R0, 14H |
| M.id := suspend;y M.state := 0;z |
| 007C | y(40000002): MOV R0, R0, 2H |
| 007D | y(A0E0001C): STR R0, SP, 1CH |
| 007E | z(40000000): MOV R0, R0, 0H |
| 007F | z(A0E00030): STR R0, SP, 30H |
| v.handlea(vb,c M)d;e v(Viewer)f.state := 0;g |
| 0080 | a(80E00018): LDR R0, SP, 18H |
| 0081 | a(D104D74C): BLEQ MT [trap=4, pos=1239] |
| 0082 | b(80000018): LDR R0, R0, 18H |
| 0083 | b(4EE90004): SUB SP, SP, 4H |
| 0084 | b(A0E00000): STR R0, SP, 0H |
| 0085 | c(80E0001C): LDR R0, SP, 1CH |
| 0086 | d(41E80020): ADD R1, SP, 20H |
| 0087 | d .FIXUP D |
| 0087 | d(8D000029): LDR SB, MT, MOD0 [Viewers] |
| 0088 | d(42D8001C): ADD R2, SB, 1CH [data] |
| 0089 | e(83E00000): LDR R3, SP, 0H |
| 008A | e(4EE80004): ADD SP, SP, 4H |
| 008B | e(D104DE5C): BLEQ MT [trap=5, pos=1246] |
| 008C | e(D7000003): BL R3 |
| 008D | f(80E00018): LDR R0, SP, 18H |
| 008E | f(E1000005): BEQ 5 [0094H] |
| 008F | f(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 0090 | f(81100004): LDR R1, R1, 4H |
| 0091 | f .FIXUP D |
| 0091 | f(8D00000A): LDR SB, MT, MOD0 [Viewers] |
| 0092 | f(42D80000): ADD R2, SB, 0H [data] |
| 0093 | f(02290001): SUB R2, R2, R1 |
| 0094 | f(D904E82C): BLNE MT [trap=2, pos=1256] |
| 0095 | g(41000000): MOV R1, R0, 0H |
| 0096 | g(A100001C): STR R1, R0, 1CH |
| V.nexth := v.nexti;j u.nextk := V;l V.statem := 2 |
| 0097 | h(80E00004): LDR R0, SP, 4H |
| 0098 | h(D105034C): BLEQ MT [trap=4, pos=1283] |
| 0099 | i(81E00018): LDR R1, SP, 18H |
| 009A | i(D1050D4C): BLEQ MT [trap=4, pos=1293] |
| 009B | j(81100000): LDR R1, R1, 0H |
| 009C | j(A1000000): STR R1, R0, 0H |
| 009D | k(80E00014): LDR R0, SP, 14H |
| 009E | k(D105154C): BLEQ MT [trap=4, pos=1301] |
| 009F | l(81E00004): LDR R1, SP, 4H |
| 00A0 | l(A1000000): STR R1, R0, 0H |
| 00A1 | m(80E00004): LDR R0, SP, 4H |
| 00A2 | m(D105234C): BLEQ MT [trap=4, pos=1315] |
| ELSEn Vo.Xp := T.Xq;r V.Ws := T.Wt;u V.Yv := v.Yw;x V.Hy := Y - v.Yz;a |
| 00A3 | n(41000002): MOV R1, R0, 2H |
| 00A4 | n(A100001C): STR R1, R0, 1CH |
| 00A5 | o(E7000049): B 73 [00EFH] |
| 00A6 | p(80E00004): LDR R0, SP, 4H |
| 00A7 | p(D105374C): BLEQ MT [trap=4, pos=1335] |
| 00A8 | q(81E00010): LDR R1, SP, 10H |
| 00A9 | q(D1053E4C): BLEQ MT [trap=4, pos=1342] |
| 00AA | r(81100008): LDR R1, R1, 8H |
| 00AB | r(A1000008): STR R1, R0, 8H |
| 00AC | s(80E00004): LDR R0, SP, 4H |
| 00AD | s(D105434C): BLEQ MT [trap=4, pos=1347] |
| 00AE | t(81E00010): LDR R1, SP, 10H |
| 00AF | t(D1054A4C): BLEQ MT [trap=4, pos=1354] |
| 00B0 | u(81100010): LDR R1, R1, 10H |
| 00B1 | u(A1000010): STR R1, R0, 10H |
| 00B2 | v(80E00004): LDR R0, SP, 4H |
| 00B3 | v(D1054F4C): BLEQ MT [trap=4, pos=1359] |
| 00B4 | w(81E00018): LDR R1, SP, 18H |
| 00B5 | w(D105564C): BLEQ MT [trap=4, pos=1366] |
| 00B6 | x(8110000C): LDR R1, R1, CH |
| 00B7 | x(A100000C): STR R1, R0, CH |
| 00B8 | y(80E00004): LDR R0, SP, 4H |
| 00B9 | y(D1055B4C): BLEQ MT [trap=4, pos=1371] |
| 00BA | z(81E00018): LDR R1, SP, 18H |
| 00BB | z(D105664C): BLEQ MT [trap=4, pos=1382] |
| 00BC | a(82E0000C): LDR R2, SP, CH |
| 00BD | a(8110000C): LDR R1, R1, CH |
| 00BE | a(01290001): SUB R1, R2, R1 |
| 00BF | a(A1000014): STR R1, R0, 14H |
| M.id := modify;b M.Y := Y;c M.H := v.Yd + v.He -f Y;g |
| 00C0 | b(40000001): MOV R0, R0, 1H |
| 00C1 | b(A0E0001C): STR R0, SP, 1CH |
| 00C2 | c(80E0000C): LDR R0, SP, CH |
| 00C3 | c(A0E00024): STR R0, SP, 24H |
| 00C4 | d(80E00018): LDR R0, SP, 18H |
| 00C5 | d(D105944C): BLEQ MT [trap=4, pos=1428] |
| 00C6 | e(81E00018): LDR R1, SP, 18H |
| 00C7 | e(D1059A4C): BLEQ MT [trap=4, pos=1434] |
| 00C8 | f(8000000C): LDR R0, R0, CH |
| 00C9 | f(81100014): LDR R1, R1, 14H |
| 00CA | f(00080001): ADD R0, R0, R1 |
| 00CB | g(81E0000C): LDR R1, SP, CH |
| 00CC | g(00090001): SUB R0, R0, R1 |
| 00CD | g(A0E0002C): STR R0, SP, 2CH |
| v.handleh(vi,j M)k;l v.Ym := M.Y;n v.Ho := M.H;p |
| 00CE | h(80E00018): LDR R0, SP, 18H |
| 00CF | h(D105B04C): BLEQ MT [trap=4, pos=1456] |
| 00D0 | i(80000018): LDR R0, R0, 18H |
| 00D1 | i(4EE90004): SUB SP, SP, 4H |
| 00D2 | i(A0E00000): STR R0, SP, 0H |
| 00D3 | j(80E0001C): LDR R0, SP, 1CH |
| 00D4 | k(41E80020): ADD R1, SP, 20H |
| 00D5 | k .FIXUP D |
| 00D5 | k(8D000044): LDR SB, MT, MOD0 [Viewers] |
| 00D6 | k(42D8001C): ADD R2, SB, 1CH [data] |
| 00D7 | l(83E00000): LDR R3, SP, 0H |
| 00D8 | l(4EE80004): ADD SP, SP, 4H |
| 00D9 | l(D105B75C): BLEQ MT [trap=5, pos=1463] |
| 00DA | l(D7000003): BL R3 |
| 00DB | m(80E00018): LDR R0, SP, 18H |
| 00DC | m(D105BB4C): BLEQ MT [trap=4, pos=1467] |
| 00DD | n(81E00024): LDR R1, SP, 24H |
| 00DE | n(A100000C): STR R1, R0, CH |
| 00DF | o(80E00018): LDR R0, SP, 18H |
| 00E0 | o(D105C74C): BLEQ MT [trap=4, pos=1479] |
| 00E1 | p(81E0002C): LDR R1, SP, 2CH |
| 00E2 | p(A1000014): STR R1, R0, 14H |
| V.nextq := v;r u.nexts := V;t V.stateu := 2 |
| 00E3 | q(80E00004): LDR R0, SP, 4H |
| 00E4 | q(D105DE4C): BLEQ MT [trap=4, pos=1502] |
| 00E5 | r(81E00018): LDR R1, SP, 18H |
| 00E6 | r(A1000000): STR R1, R0, 0H |
| 00E7 | s(80E00014): LDR R0, SP, 14H |
| 00E8 | s(D105EB4C): BLEQ MT [trap=4, pos=1515] |
| 00E9 | t(81E00004): LDR R1, SP, 4H |
| 00EA | t(A1000000): STR R1, R0, 0H |
| 00EB | u(80E00004): LDR R0, SP, 4H |
| 00EC | u(D105F94C): BLEQ MT [trap=4, pos=1529] |
| ENDv |
| 00ED | v(41000002): MOV R1, R0, 2H |
| 00EE | v(A100001C): STR R1, R0, 1CH |
| END |
| ENDw Open; |
| 00EF | w(8FE00000): LDR LNK, SP, 0H |
| 00F0 | w(4EE80034): ADD SP, SP, 34H |
| 00F1 | w(C700000F): B LNK |
| |
| PROCEDURE Change* (V: Viewer; Y: INTEGER); |
| VAR v: Display.Frame; M: ViewerMsg; |
| BEGINx |
| 00F2 | x .PROC 6 |
| 00F2 | x(4EE90028): SUB SP, SP, 28H |
| 00F3 | x(AFE00000): STR LNK, SP, 0H |
| 00F4 | x(A0E00004): STR R0, SP, 4H |
| 00F5 | x(A1E00008): STR R1, SP, 8H |
| IF V.statey > 1 THENz |
| 00F6 | y(80E00004): LDR R0, SP, 4H |
| 00F7 | y(D106894C): BLEQ MT [trap=4, pos=1673] |
| 00F8 | z(8000001C): LDR R0, R0, 1CH |
| 00F9 | z(40090001): SUB R0, R0, 1H |
| 00FA | z(E600005E): BLE 94 [0159H] |
| IF Y > DH THENa Y := DH ENDb; |
| 00FB | a(80E00008): LDR R0, SP, 8H |
| 00FC | a .FIXUP D |
| 00FC | a(8D000027): LDR SB, MT, MOD0 [Viewers] |
| 00FD | a(81D00058): LDR R1, SB, 58H [data] |
| 00FE | a(00090001): SUB R0, R0, R1 |
| 00FF | a(E6000003): BLE 3 [0103H] |
| 0100 | b .FIXUP D |
| 0100 | b(8D000004): LDR SB, MT, MOD0 [Viewers] |
| 0101 | b(80D00058): LDR R0, SB, 58H [data] |
| 0102 | b(A0E00008): STR R0, SP, 8H |
| v := V.nextc;d |
| 0103 | c(80E00004): LDR R0, SP, 4H |
| 0104 | c(D106C64C): BLEQ MT [trap=4, pos=1734] |
| 0105 | d(80000000): LDR R0, R0, 0H |
| 0106 | d(A0E0000C): STR R0, SP, CH |
| IF (v.nexte.Yf # 0)g & (hY > v.Yi + v.Hj -k minH)l THENm Y := v.Yn + v.Ho -p minH ENDq; |
| 0107 | e(80E0000C): LDR R0, SP, CH |
| 0108 | e(D106D84C): BLEQ MT [trap=4, pos=1752] |
| 0109 | f(80000000): LDR R0, R0, 0H |
| 010A | f(D106DA4C): BLEQ MT [trap=4, pos=1754] |
| 010B | g(8000000C): LDR R0, R0, CH |
| 010C | h(E1000018): BEQ 24 [0125H] |
| 010D | i(80E0000C): LDR R0, SP, CH |
| 010E | i(D106EA4C): BLEQ MT [trap=4, pos=1770] |
| 010F | j(81E0000C): LDR R1, SP, CH |
| 0110 | j(D106F04C): BLEQ MT [trap=4, pos=1776] |
| 0111 | k(8000000C): LDR R0, R0, CH |
| 0112 | k(81100014): LDR R1, R1, 14H |
| 0113 | k(00080001): ADD R0, R0, R1 |
| 0114 | l .FIXUP D |
| 0114 | l(8D000014): LDR SB, MT, MOD0 [Viewers] |
| 0115 | l(81D00054): LDR R1, SB, 54H [data] |
| 0116 | l(00090001): SUB R0, R0, R1 |
| 0117 | l(81E00008): LDR R1, SP, 8H |
| 0118 | l(01190000): SUB R1, R1, R0 |
| 0119 | m(E600000B): BLE 11 [0125H] |
| 011A | n(80E0000C): LDR R0, SP, CH |
| 011B | n(D107064C): BLEQ MT [trap=4, pos=1798] |
| 011C | o(81E0000C): LDR R1, SP, CH |
| 011D | o(D1070C4C): BLEQ MT [trap=4, pos=1804] |
| 011E | p(8000000C): LDR R0, R0, CH |
| 011F | p(81100014): LDR R1, R1, 14H |
| 0120 | p(00080001): ADD R0, R0, R1 |
| 0121 | q .FIXUP D |
| 0121 | q(8D00000D): LDR SB, MT, MOD0 [Viewers] |
| 0122 | q(81D00054): LDR R1, SB, 54H [data] |
| 0123 | q(00090001): SUB R0, R0, R1 |
| 0124 | q(A0E00008): STR R0, SP, 8H |
| IF Y >= V.Yr + minH THENs |
| 0125 | r(80E00004): LDR R0, SP, 4H |
| 0126 | r(D1072A4C): BLEQ MT [trap=4, pos=1834] |
| 0127 | s(8000000C): LDR R0, R0, CH |
| 0128 | s .FIXUP D |
| 0128 | s(8D000007): LDR SB, MT, MOD0 [Viewers] |
| 0129 | s(81D00054): LDR R1, SB, 54H [data] |
| 012A | s(00080001): ADD R0, R0, R1 |
| 012B | s(81E00008): LDR R1, SP, 8H |
| 012C | s(01190000): SUB R1, R1, R0 |
| 012D | s(E500002B): BLT 43 [0159H] |
| M.id := modify;t M.Y := Y;u M.H := v.Yv + v.Hw -x Y;y |
| 012E | t(40000001): MOV R0, R0, 1H |
| 012F | t(A0E00010): STR R0, SP, 10H |
| 0130 | u(80E00008): LDR R0, SP, 8H |
| 0131 | u(A0E00018): STR R0, SP, 18H |
| 0132 | v(80E0000C): LDR R0, SP, CH |
| 0133 | v(D107634C): BLEQ MT [trap=4, pos=1891] |
| 0134 | w(81E0000C): LDR R1, SP, CH |
| 0135 | w(D107694C): BLEQ MT [trap=4, pos=1897] |
| 0136 | x(8000000C): LDR R0, R0, CH |
| 0137 | x(81100014): LDR R1, R1, 14H |
| 0138 | x(00080001): ADD R0, R0, R1 |
| 0139 | y(81E00008): LDR R1, SP, 8H |
| 013A | y(00090001): SUB R0, R0, R1 |
| 013B | y(A0E00020): STR R0, SP, 20H |
| v.handlez(va,b M)c;d v.Ye := M.Y;f v.Hg := M.H;h V.Hi := Y - V.Yj |
| 013C | z(80E0000C): LDR R0, SP, CH |
| 013D | z(D1077F4C): BLEQ MT [trap=4, pos=1919] |
| 013E | a(80000018): LDR R0, R0, 18H |
| 013F | a(4EE90004): SUB SP, SP, 4H |
| 0140 | a(A0E00000): STR R0, SP, 0H |
| 0141 | b(80E00010): LDR R0, SP, 10H |
| 0142 | c(41E80014): ADD R1, SP, 14H |
| 0143 | c .FIXUP D |
| 0143 | c(8D00001B): LDR SB, MT, MOD0 [Viewers] |
| 0144 | c(42D8001C): ADD R2, SB, 1CH [data] |
| 0145 | d(83E00000): LDR R3, SP, 0H |
| 0146 | d(4EE80004): ADD SP, SP, 4H |
| 0147 | d(D107865C): BLEQ MT [trap=5, pos=1926] |
| 0148 | d(D7000003): BL R3 |
| 0149 | e(80E0000C): LDR R0, SP, CH |
| 014A | e(D1078A4C): BLEQ MT [trap=4, pos=1930] |
| 014B | f(81E00018): LDR R1, SP, 18H |
| 014C | f(A100000C): STR R1, R0, CH |
| 014D | g(80E0000C): LDR R0, SP, CH |
| 014E | g(D107964C): BLEQ MT [trap=4, pos=1942] |
| 014F | h(81E00020): LDR R1, SP, 20H |
| 0150 | h(A1000014): STR R1, R0, 14H |
| 0151 | i(80E00004): LDR R0, SP, 4H |
| 0152 | i(D107A24C): BLEQ MT [trap=4, pos=1954] |
| 0153 | j(81E00004): LDR R1, SP, 4H |
| 0154 | j(D107AD4C): BLEQ MT [trap=4, pos=1965] |
| ENDk |
| 0155 | k(82E00008): LDR R2, SP, 8H |
| 0156 | k(8110000C): LDR R1, R1, CH |
| 0157 | k(01290001): SUB R1, R2, R1 |
| 0158 | k(A1000014): STR R1, R0, 14H |
| END |
| ENDl Change; |
| 0159 | l(8FE00000): LDR LNK, SP, 0H |
| 015A | l(4EE80028): ADD SP, SP, 28H |
| 015B | l(C700000F): B LNK |
| |
| PROCEDURE RestoreTrack (S: Display.Frame); |
| VAR T, t, v: Display.Frame; M: ViewerMsg; |
| BEGINm t := S.nextn;o |
| 015C | m(4EE9002C): SUB SP, SP, 2CH |
| 015D | m(AFE00000): STR LNK, SP, 0H |
| 015E | m(A0E00004): STR R0, SP, 4H |
| 015F | n(80E00004): LDR R0, SP, 4H |
| 0160 | n(D1083D4C): BLEQ MT [trap=4, pos=2109] |
| 0161 | o(80000000): LDR R0, R0, 0H |
| 0162 | o(A0E0000C): STR R0, SP, CH |
| WHILE t.nextp # S DOq t := t.nextr ENDs; |
| 0163 | p(80E0000C): LDR R0, SP, CH |
| 0164 | p(D1084F4C): BLEQ MT [trap=4, pos=2127] |
| 0165 | q(80000000): LDR R0, R0, 0H |
| 0166 | q(81E00004): LDR R1, SP, 4H |
| 0167 | q(00090001): SUB R0, R0, R1 |
| 0168 | q(E1000005): BEQ 5 [016EH] |
| 0169 | r(80E0000C): LDR R0, SP, CH |
| 016A | r(D108624C): BLEQ MT [trap=4, pos=2146] |
| 016B | s(80000000): LDR R0, R0, 0H |
| 016C | s(A0E0000C): STR R0, SP, CH |
| 016D | s(E7FFFFF5): B -11 [0163H] |
| T := S(Track)t.under;u |
| 016E | t(80E00004): LDR R0, SP, 4H |
| 016F | t(E1000005): BEQ 5 [0175H] |
| 0170 | t(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 0171 | t(81100008): LDR R1, R1, 8H |
| 0172 | t .FIXUP D |
| 0172 | t(8D00002F): LDR SB, MT, MOD0 [Viewers] |
| 0173 | t(42D80030): ADD R2, SB, 30H [data] |
| 0174 | t(02290001): SUB R2, R2, R1 |
| 0175 | t(D908792C): BLNE MT [trap=2, pos=2169] |
| 0176 | u(80000020): LDR R0, R0, 20H |
| 0177 | u(A0E00008): STR R0, SP, 8H |
| WHILE T.nextv # NIL DOw T := T.nextx ENDy; |
| 0178 | v(80E00008): LDR R0, SP, 8H |
| 0179 | v(D108914C): BLEQ MT [trap=4, pos=2193] |
| 017A | w(80000000): LDR R0, R0, 0H |
| 017B | w(E1000005): BEQ 5 [0181H] |
| 017C | x(80E00008): LDR R0, SP, 8H |
| 017D | x(D108A64C): BLEQ MT [trap=4, pos=2214] |
| 017E | y(80000000): LDR R0, R0, 0H |
| 017F | y(A0E00008): STR R0, SP, 8H |
| 0180 | y(E7FFFFF7): B -9 [0178H] |
| t.nextz := S(Track)a.under;b T.nextc := S.nextd;e M.id := restore;f |
| 0181 | z(80E0000C): LDR R0, SP, CH |
| 0182 | z(D108B64C): BLEQ MT [trap=4, pos=2230] |
| 0183 | a(81E00004): LDR R1, SP, 4H |
| 0184 | a(E1000005): BEQ 5 [018AH] |
| 0185 | a(821FFFF8): LDR R2, R1, FFFFFFF8H |
| 0186 | a(82200008): LDR R2, R2, 8H |
| 0187 | a .FIXUP D |
| 0187 | a(8D000015): LDR SB, MT, MOD0 [Viewers] |
| 0188 | a(43D80030): ADD R3, SB, 30H [data] |
| 0189 | a(03390002): SUB R3, R3, R2 |
| 018A | a(D908C22C): BLNE MT [trap=2, pos=2242] |
| 018B | b(81100020): LDR R1, R1, 20H |
| 018C | b(A1000000): STR R1, R0, 0H |
| 018D | c(80E00008): LDR R0, SP, 8H |
| 018E | c(D108D04C): BLEQ MT [trap=4, pos=2256] |
| 018F | d(81E00004): LDR R1, SP, 4H |
| 0190 | d(D108DA4C): BLEQ MT [trap=4, pos=2266] |
| 0191 | e(81100000): LDR R1, R1, 0H |
| 0192 | e(A1000000): STR R1, R0, 0H |
| 0193 | f(40000000): MOV R0, R0, 0H |
| 0194 | f(A0E00014): STR R0, SP, 14H |
| REPEAT t := t.nextg;h v := t.dsci;j |
| 0195 | g(80E0000C): LDR R0, SP, CH |
| 0196 | g(D109034C): BLEQ MT [trap=4, pos=2307] |
| 0197 | h(80000000): LDR R0, R0, 0H |
| 0198 | h(A0E0000C): STR R0, SP, CH |
| 0199 | i(80E0000C): LDR R0, SP, CH |
| 019A | i(D1090F4C): BLEQ MT [trap=4, pos=2319] |
| 019B | j(80000004): LDR R0, R0, 4H |
| 019C | j(A0E00010): STR R0, SP, 10H |
| REPEAT v := v.nextk;l v.handlem(vn,o M)p;q v(Viewer)r.state := - v(Viewer)s.state |
| 019D | k(80E00010): LDR R0, SP, 10H |
| 019E | k(D109294C): BLEQ MT [trap=4, pos=2345] |
| 019F | l(80000000): LDR R0, R0, 0H |
| 01A0 | l(A0E00010): STR R0, SP, 10H |
| 01A1 | m(80E00010): LDR R0, SP, 10H |
| 01A2 | m(D109334C): BLEQ MT [trap=4, pos=2355] |
| 01A3 | n(80000018): LDR R0, R0, 18H |
| 01A4 | n(4EE90004): SUB SP, SP, 4H |
| 01A5 | n(A0E00000): STR R0, SP, 0H |
| 01A6 | o(80E00014): LDR R0, SP, 14H |
| 01A7 | p(41E80018): ADD R1, SP, 18H |
| 01A8 | p .FIXUP D |
| 01A8 | p(8D000021): LDR SB, MT, MOD0 [Viewers] |
| 01A9 | p(42D8001C): ADD R2, SB, 1CH [data] |
| 01AA | q(83E00000): LDR R3, SP, 0H |
| 01AB | q(4EE80004): ADD SP, SP, 4H |
| 01AC | q(D1093A5C): BLEQ MT [trap=5, pos=2362] |
| 01AD | q(D7000003): BL R3 |
| 01AE | r(80E00010): LDR R0, SP, 10H |
| 01AF | r(E1000005): BEQ 5 [01B5H] |
| 01B0 | r(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 01B1 | r(81100004): LDR R1, R1, 4H |
| 01B2 | r .FIXUP D |
| 01B2 | r(8D00000A): LDR SB, MT, MOD0 [Viewers] |
| 01B3 | r(42D80000): ADD R2, SB, 0H [data] |
| 01B4 | r(02290001): SUB R2, R2, R1 |
| 01B5 | r(D909442C): BLNE MT [trap=2, pos=2372] |
| 01B6 | s(81E00010): LDR R1, SP, 10H |
| 01B7 | s(E1000004): BEQ 4 [01BCH] |
| 01B8 | s(821FFFF8): LDR R2, R1, FFFFFFF8H |
| 01B9 | s(82200004): LDR R2, R2, 4H |
| 01BA | s(43D80000): ADD R3, SB, 0H |
| 01BB | s(03390002): SUB R3, R3, R2 |
| 01BC | s(D909592C): BLNE MT [trap=2, pos=2393] |
| UNTILt v = t.dscu |
| 01BD | t(8110001C): LDR R1, R1, 1CH |
| 01BE | t(42000000): MOV R2, R0, 0H |
| 01BF | t(01290001): SUB R1, R2, R1 |
| 01C0 | t(A100001C): STR R1, R0, 1CH |
| 01C1 | u(80E0000C): LDR R0, SP, CH |
| 01C2 | u(D109754C): BLEQ MT [trap=4, pos=2421] |
| UNTILv t = T |
| 01C3 | v(81E00010): LDR R1, SP, 10H |
| 01C4 | v(80000004): LDR R0, R0, 4H |
| 01C5 | v(01190000): SUB R1, R1, R0 |
| 01C6 | v(E9FFFFD6): BNE -42 [019DH] |
| ENDw RestoreTrack; |
| 01C7 | w(80E0000C): LDR R0, SP, CH |
| 01C8 | w(81E00008): LDR R1, SP, 8H |
| 01C9 | w(00090001): SUB R0, R0, R1 |
| 01CA | w(E9FFFFCA): BNE -54 [0195H] |
| 01CB | w(8FE00000): LDR LNK, SP, 0H |
| 01CC | w(4EE8002C): ADD SP, SP, 2CH |
| 01CD | w(C700000F): B LNK |
| |
| PROCEDURE Close* (V: Viewer); |
| VAR T, U: Display.Frame; M: ViewerMsg; |
| BEGINx |
| 01CE | x .PROC 7 |
| 01CE | x(4EE90028): SUB SP, SP, 28H |
| 01CF | x(AFE00000): STR LNK, SP, 0H |
| 01D0 | x(A0E00004): STR R0, SP, 4H |
| IF V.statey > 1 THENz |
| 01D1 | y(80E00004): LDR R0, SP, 4H |
| 01D2 | y(D109FC4C): BLEQ MT [trap=4, pos=2556] |
| 01D3 | z(8000001C): LDR R0, R0, 1CH |
| 01D4 | z(40090001): SUB R0, R0, 1H |
| 01D5 | z(E60000A3): BLE 163 [0279H] |
| U := V.nexta;b T := FillerTrack;c |
| 01D6 | a(80E00004): LDR R0, SP, 4H |
| 01D7 | a(D10A174C): BLEQ MT [trap=4, pos=2583] |
| 01D8 | b(80000000): LDR R0, R0, 0H |
| 01D9 | b(A0E0000C): STR R0, SP, CH |
| 01DA | c .FIXUP D |
| 01DA | c(8D000028): LDR SB, MT, MOD0 [Viewers] |
| 01DB | c(80D0005C): LDR R0, SB, 5CH [data] |
| 01DC | c(A0E00008): STR R0, SP, 8H |
| REPEAT T := T.nextd UNTILe V.Xf < T.Xg + T.Wh;i |
| 01DD | d(80E00008): LDR R0, SP, 8H |
| 01DE | d(D10A434C): BLEQ MT [trap=4, pos=2627] |
| 01DF | e(80000000): LDR R0, R0, 0H |
| 01E0 | e(A0E00008): STR R0, SP, 8H |
| 01E1 | f(80E00004): LDR R0, SP, 4H |
| 01E2 | f(D10A4D4C): BLEQ MT [trap=4, pos=2637] |
| 01E3 | g(81E00008): LDR R1, SP, 8H |
| 01E4 | g(D10A534C): BLEQ MT [trap=4, pos=2643] |
| 01E5 | h(82E00008): LDR R2, SP, 8H |
| 01E6 | h(D10A594C): BLEQ MT [trap=4, pos=2649] |
| 01E7 | i(81100008): LDR R1, R1, 8H |
| 01E8 | i(82200010): LDR R2, R2, 10H |
| 01E9 | i(01180002): ADD R1, R1, R2 |
| 01EA | i(80000008): LDR R0, R0, 8H |
| 01EB | i(00090001): SUB R0, R0, R1 |
| 01EC | i(EDFFFFF0): BGE -16 [01DDH] |
| IF (T(Track)j.under = NIL)k OR (lU.nextm # V)n THENo |
| 01ED | j(80E00008): LDR R0, SP, 8H |
| 01EE | j(E1000005): BEQ 5 [01F4H] |
| 01EF | j(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 01F0 | j(81100008): LDR R1, R1, 8H |
| 01F1 | j .FIXUP D |
| 01F1 | j(8D000017): LDR SB, MT, MOD0 [Viewers] |
| 01F2 | j(42D80030): ADD R2, SB, 30H [data] |
| 01F3 | j(02290001): SUB R2, R2, R1 |
| 01F4 | j(D90A6D2C): BLNE MT [trap=2, pos=2669] |
| 01F5 | k(80000020): LDR R0, R0, 20H |
| 01F6 | l(E1000006): BEQ 6 [01FDH] |
| 01F7 | m(80E0000C): LDR R0, SP, CH |
| 01F8 | m(D10A854C): BLEQ MT [trap=4, pos=2693] |
| 01F9 | n(80000000): LDR R0, R0, 0H |
| 01FA | n(81E00004): LDR R1, SP, 4H |
| 01FB | n(00090001): SUB R0, R0, R1 |
| 01FC | o(E100004C): BEQ 76 [0249H] |
| M.id := suspend;p M.state := 0;q |
| 01FD | p(40000002): MOV R0, R0, 2H |
| 01FE | p(A0E00010): STR R0, SP, 10H |
| 01FF | q(40000000): MOV R0, R0, 0H |
| 0200 | q(A0E00024): STR R0, SP, 24H |
| V.handler(Vs,t M)u;v V.statew := 0;x backup := V;y |
| 0201 | r(80E00004): LDR R0, SP, 4H |
| 0202 | r(D10AC74C): BLEQ MT [trap=4, pos=2759] |
| 0203 | s(80000018): LDR R0, R0, 18H |
| 0204 | s(4EE90004): SUB SP, SP, 4H |
| 0205 | s(A0E00000): STR R0, SP, 0H |
| 0206 | t(80E00008): LDR R0, SP, 8H |
| 0207 | u(41E80014): ADD R1, SP, 14H |
| 0208 | u .FIXUP D |
| 0208 | u(8D000017): LDR SB, MT, MOD0 [Viewers] |
| 0209 | u(42D8001C): ADD R2, SB, 1CH [data] |
| 020A | v(83E00000): LDR R3, SP, 0H |
| 020B | v(4EE80004): ADD SP, SP, 4H |
| 020C | v(D10ACE5C): BLEQ MT [trap=5, pos=2766] |
| 020D | v(D7000003): BL R3 |
| 020E | w(80E00004): LDR R0, SP, 4H |
| 020F | w(D10AD64C): BLEQ MT [trap=4, pos=2774] |
| 0210 | x(41000000): MOV R1, R0, 0H |
| 0211 | x(A100001C): STR R1, R0, 1CH |
| 0212 | y(80E00004): LDR R0, SP, 4H |
| 0213 | y .FIXUP D |
| 0213 | y(8D00000B): LDR SB, MT, MOD0 [Viewers] |
| 0214 | y(A0D00064): STR R0, SB, 64H [data] |
| M.id := modify;z M.Y := V.Ya;b M.H := V.Hc + U.Hd;e |
| 0215 | z(40000001): MOV R0, R0, 1H |
| 0216 | z(A0E00010): STR R0, SP, 10H |
| 0217 | a(80E00004): LDR R0, SP, 4H |
| 0218 | a(D10B0C4C): BLEQ MT [trap=4, pos=2828] |
| 0219 | b(8000000C): LDR R0, R0, CH |
| 021A | b(A0E00018): STR R0, SP, 18H |
| 021B | c(80E00004): LDR R0, SP, 4H |
| 021C | c(D10B184C): BLEQ MT [trap=4, pos=2840] |
| 021D | d(81E0000C): LDR R1, SP, CH |
| 021E | d(D10B1E4C): BLEQ MT [trap=4, pos=2846] |
| 021F | e(80000014): LDR R0, R0, 14H |
| 0220 | e(81100014): LDR R1, R1, 14H |
| 0221 | e(00080001): ADD R0, R0, R1 |
| 0222 | e(A0E00020): STR R0, SP, 20H |
| U.handlef(Ug,h M)i;j U.Yk := M.Y;l U.Hm := M.H;n |
| 0223 | f(80E0000C): LDR R0, SP, CH |
| 0224 | f(D10B304C): BLEQ MT [trap=4, pos=2864] |
| 0225 | g(80000018): LDR R0, R0, 18H |
| 0226 | g(4EE90004): SUB SP, SP, 4H |
| 0227 | g(A0E00000): STR R0, SP, 0H |
| 0228 | h(80E00010): LDR R0, SP, 10H |
| 0229 | i(41E80014): ADD R1, SP, 14H |
| 022A | i(42D8001C): ADD R2, SB, 1CH |
| 022B | j(83E00000): LDR R3, SP, 0H |
| 022C | j(4EE80004): ADD SP, SP, 4H |
| 022D | j(D10B375C): BLEQ MT [trap=5, pos=2871] |
| 022E | j(D7000003): BL R3 |
| 022F | k(80E0000C): LDR R0, SP, CH |
| 0230 | k(D10B3B4C): BLEQ MT [trap=4, pos=2875] |
| 0231 | l(81E00018): LDR R1, SP, 18H |
| 0232 | l(A100000C): STR R1, R0, CH |
| 0233 | m(80E0000C): LDR R0, SP, CH |
| 0234 | m(D10B474C): BLEQ MT [trap=4, pos=2887] |
| 0235 | n(81E00020): LDR R1, SP, 20H |
| 0236 | n(A1000014): STR R1, R0, 14H |
| WHILE U.nexto # V DOp U := U.nextq ENDr; |
| 0237 | o(80E0000C): LDR R0, SP, CH |
| 0238 | o(D10B644C): BLEQ MT [trap=4, pos=2916] |
| 0239 | p(80000000): LDR R0, R0, 0H |
| 023A | p(81E00004): LDR R1, SP, 4H |
| 023B | p(00090001): SUB R0, R0, R1 |
| 023C | p(E1000005): BEQ 5 [0242H] |
| 023D | q(80E0000C): LDR R0, SP, CH |
| 023E | q(D10B774C): BLEQ MT [trap=4, pos=2935] |
| 023F | r(80000000): LDR R0, R0, 0H |
| 0240 | r(A0E0000C): STR R0, SP, CH |
| 0241 | r(E7FFFFF5): B -11 [0237H] |
| U.nexts := V.nextt |
| 0242 | s(80E0000C): LDR R0, SP, CH |
| 0243 | s(D10B8B4C): BLEQ MT [trap=4, pos=2955] |
| 0244 | t(81E00004): LDR R1, SP, 4H |
| 0245 | t(D10B954C): BLEQ MT [trap=4, pos=2965] |
| ELSEu (*close track*) |
| 0246 | u(81100000): LDR R1, R1, 0H |
| 0247 | u(A1000000): STR R1, R0, 0H |
| Mv.id := suspend;w M.state := 0;x |
| 0248 | v(E7000030): B 48 [0279H] |
| 0249 | w(40000002): MOV R0, R0, 2H |
| 024A | w(A0E00010): STR R0, SP, 10H |
| 024B | x(40000000): MOV R0, R0, 0H |
| 024C | x(A0E00024): STR R0, SP, 24H |
| V.handley(Vz,a M)b;c V.stated := 0;e backup := V;f |
| 024D | y(80E00004): LDR R0, SP, 4H |
| 024E | y(D10BE84C): BLEQ MT [trap=4, pos=3048] |
| 024F | z(80000018): LDR R0, R0, 18H |
| 0250 | z(4EE90004): SUB SP, SP, 4H |
| 0251 | z(A0E00000): STR R0, SP, 0H |
| 0252 | a(80E00008): LDR R0, SP, 8H |
| 0253 | b(41E80014): ADD R1, SP, 14H |
| 0254 | b .FIXUP D |
| 0254 | b(8D000041): LDR SB, MT, MOD0 [Viewers] |
| 0255 | b(42D8001C): ADD R2, SB, 1CH [data] |
| 0256 | c(83E00000): LDR R3, SP, 0H |
| 0257 | c(4EE80004): ADD SP, SP, 4H |
| 0258 | c(D10BEF5C): BLEQ MT [trap=5, pos=3055] |
| 0259 | c(D7000003): BL R3 |
| 025A | d(80E00004): LDR R0, SP, 4H |
| 025B | d(D10BF74C): BLEQ MT [trap=4, pos=3063] |
| 025C | e(41000000): MOV R1, R0, 0H |
| 025D | e(A100001C): STR R1, R0, 1CH |
| 025E | f(80E00004): LDR R0, SP, 4H |
| 025F | f .FIXUP D |
| 025F | f(8D00000B): LDR SB, MT, MOD0 [Viewers] |
| 0260 | f(A0D00064): STR R0, SB, 64H [data] |
| U.handleg(Uh,i M)j;k U(Viewer)l.state := 0;m |
| 0261 | g(80E0000C): LDR R0, SP, CH |
| 0262 | g(D10C1B4C): BLEQ MT [trap=4, pos=3099] |
| 0263 | h(80000018): LDR R0, R0, 18H |
| 0264 | h(4EE90004): SUB SP, SP, 4H |
| 0265 | h(A0E00000): STR R0, SP, 0H |
| 0266 | i(80E00010): LDR R0, SP, 10H |
| 0267 | j(41E80014): ADD R1, SP, 14H |
| 0268 | j(42D8001C): ADD R2, SB, 1CH |
| 0269 | k(83E00000): LDR R3, SP, 0H |
| 026A | k(4EE80004): ADD SP, SP, 4H |
| 026B | k(D10C225C): BLEQ MT [trap=5, pos=3106] |
| 026C | k(D7000003): BL R3 |
| 026D | l(80E0000C): LDR R0, SP, CH |
| 026E | l(E1000005): BEQ 5 [0274H] |
| 026F | l(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 0270 | l(81100004): LDR R1, R1, 4H |
| 0271 | l .FIXUP D |
| 0271 | l(8D000012): LDR SB, MT, MOD0 [Viewers] |
| 0272 | l(42D80000): ADD R2, SB, 0H [data] |
| 0273 | l(02290001): SUB R2, R2, R1 |
| 0274 | l(D90C2C2C): BLNE MT [trap=2, pos=3116] |
| 0275 | m(41000000): MOV R1, R0, 0H |
| 0276 | m(A100001C): STR R1, R0, 1CH |
| RestoreTrack(T)n |
| 0277 | n(80E00008): LDR R0, SP, 8H |
| ENDo |
| 0278 | o(F7FFFEE3): BL -285 [015CH] |
| END |
| ENDp Close; |
| 0279 | p(8FE00000): LDR LNK, SP, 0H |
| 027A | p(4EE80028): ADD SP, SP, 28H |
| 027B | p(C700000F): B LNK |
| |
| PROCEDURE Recall* (VAR V: Viewer); |
| BEGINq V := backup |
| 027C | q .PROC 8 |
| 027C | q(4EE90008): SUB SP, SP, 8H |
| 027D | q(AFE00000): STR LNK, SP, 0H |
| 027E | q(A0E00004): STR R0, SP, 4H |
| ENDr Recall; |
| 027F | r .FIXUP D |
| 027F | r(8D00000E): LDR SB, MT, MOD0 [Viewers] |
| 0280 | r(80D00064): LDR R0, SB, 64H [data] |
| 0281 | r(81E00004): LDR R1, SP, 4H |
| 0282 | r(A0100000): STR R0, R1, 0H |
| 0283 | r(8FE00000): LDR LNK, SP, 0H |
| 0284 | r(4EE80008): ADD SP, SP, 8H |
| 0285 | r(C700000F): B LNK |
| |
| PROCEDURE This* (X, Y: INTEGER): Viewer; |
| VAR T, V: Display.Frame; |
| BEGINs |
| 0286 | s .PROC 9 |
| 0286 | s(4EE90014): SUB SP, SP, 14H |
| 0287 | s(AFE00000): STR LNK, SP, 0H |
| 0288 | s(A0E00004): STR R0, SP, 4H |
| 0289 | s(A1E00008): STR R1, SP, 8H |
| IF (X < inf)t & (uY < DH)v THENw |
| 028A | t(80E00004): LDR R0, SP, 4H |
| 028B | t(4009FFFF): SUB R0, R0, FFFFFFFFH |
| 028C | u(ED000029): BGE 41 [02B6H] |
| 028D | v(80E00008): LDR R0, SP, 8H |
| 028E | v .FIXUP D |
| 028E | v(8D00000F): LDR SB, MT, MOD0 [Viewers] |
| 028F | v(81D00058): LDR R1, SB, 58H [data] |
| 0290 | v(00090001): SUB R0, R0, R1 |
| 0291 | w(ED000024): BGE 36 [02B6H] |
| T := FillerTrack;x |
| 0292 | x .FIXUP D |
| 0292 | x(8D000004): LDR SB, MT, MOD0 [Viewers] |
| 0293 | x(80D0005C): LDR R0, SB, 5CH [data] |
| 0294 | x(A0E0000C): STR R0, SP, CH |
| REPEAT T := T.nexty UNTILz X < T.Xa + T.Wb;c |
| 0295 | y(80E0000C): LDR R0, SP, CH |
| 0296 | y(D10D5A4C): BLEQ MT [trap=4, pos=3418] |
| 0297 | z(80000000): LDR R0, R0, 0H |
| 0298 | z(A0E0000C): STR R0, SP, CH |
| 0299 | a(80E0000C): LDR R0, SP, CH |
| 029A | a(D10D684C): BLEQ MT [trap=4, pos=3432] |
| 029B | b(81E0000C): LDR R1, SP, CH |
| 029C | b(D10D6E4C): BLEQ MT [trap=4, pos=3438] |
| 029D | c(80000008): LDR R0, R0, 8H |
| 029E | c(81100010): LDR R1, R1, 10H |
| 029F | c(00080001): ADD R0, R0, R1 |
| 02A0 | c(81E00004): LDR R1, SP, 4H |
| 02A1 | c(01190000): SUB R1, R1, R0 |
| 02A2 | c(EDFFFFF2): BGE -14 [0295H] |
| V := T.dscd;e |
| 02A3 | d(80E0000C): LDR R0, SP, CH |
| 02A4 | d(D10D804C): BLEQ MT [trap=4, pos=3456] |
| 02A5 | e(80000004): LDR R0, R0, 4H |
| 02A6 | e(A0E00010): STR R0, SP, 10H |
| REPEAT V := V.nextf UNTILg Y < V.Yh + V.Hi |
| 02A7 | f(80E00010): LDR R0, SP, 10H |
| 02A8 | f(D10D9A4C): BLEQ MT [trap=4, pos=3482] |
| 02A9 | g(80000000): LDR R0, R0, 0H |
| 02AA | g(A0E00010): STR R0, SP, 10H |
| 02AB | h(80E00010): LDR R0, SP, 10H |
| 02AC | h(D10DA84C): BLEQ MT [trap=4, pos=3496] |
| 02AD | i(81E00010): LDR R1, SP, 10H |
| 02AE | i(D10DAE4C): BLEQ MT [trap=4, pos=3502] |
| ELSEj Vk := NIL |
| 02AF | j(8000000C): LDR R0, R0, CH |
| 02B0 | j(81100014): LDR R1, R1, 14H |
| 02B1 | j(00080001): ADD R0, R0, R1 |
| 02B2 | j(81E00008): LDR R1, SP, 8H |
| 02B3 | j(01190000): SUB R1, R1, R0 |
| 02B4 | j(EDFFFFF2): BGE -14 [02A7H] |
| 02B5 | k(E7000002): B 2 [02B8H] |
| ENDl ; |
| 02B6 | l(40000000): MOV R0, R0, 0H |
| 02B7 | l(A0E00010): STR R0, SP, 10H |
| RETURN V(Viewer)m |
| 02B8 | m(80E00010): LDR R0, SP, 10H |
| 02B9 | m(E1000005): BEQ 5 [02BFH] |
| 02BA | m(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 02BB | m(81100004): LDR R1, R1, 4H |
| 02BC | m .FIXUP D |
| 02BC | m(8D00002A): LDR SB, MT, MOD0 [Viewers] |
| 02BD | m(42D80000): ADD R2, SB, 0H [data] |
| 02BE | m(02290001): SUB R2, R2, R1 |
| 02BF | m(D90DDF2C): BLNE MT [trap=2, pos=3551] |
| ENDn This; |
| 02C0 | n(8FE00000): LDR LNK, SP, 0H |
| 02C1 | n(4EE80014): ADD SP, SP, 14H |
| 02C2 | n(C700000F): B LNK |
| |
| PROCEDURE Next* (V: Viewer): Viewer; |
| BEGINo RETURN V.nextp(Viewer)q |
| 02C3 | o .PROC 10 |
| 02C3 | o(4EE90008): SUB SP, SP, 8H |
| 02C4 | o(AFE00000): STR LNK, SP, 0H |
| 02C5 | o(A0E00004): STR R0, SP, 4H |
| 02C6 | p(80E00004): LDR R0, SP, 4H |
| 02C7 | p(D10E294C): BLEQ MT [trap=4, pos=3625] |
| 02C8 | q(80000000): LDR R0, R0, 0H |
| 02C9 | q(E1000005): BEQ 5 [02CFH] |
| 02CA | q(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 02CB | q(81100004): LDR R1, R1, 4H |
| 02CC | q .FIXUP D |
| 02CC | q(8D000010): LDR SB, MT, MOD0 [Viewers] |
| 02CD | q(42D80000): ADD R2, SB, 0H [data] |
| 02CE | q(02290001): SUB R2, R2, R1 |
| 02CF | q(D90E312C): BLNE MT [trap=2, pos=3633] |
| ENDr Next; |
| 02D0 | r(8FE00000): LDR LNK, SP, 0H |
| 02D1 | r(4EE80008): ADD SP, SP, 8H |
| 02D2 | r(C700000F): B LNK |
| |
| PROCEDURE Locate* (X, H: INTEGER; VAR fil, bot, alt, max: Display.Frame); |
| VAR T, V: Display.Frame; |
| BEGINs |
| 02D3 | s .PROC 11 |
| 02D3 | s(4EE90024): SUB SP, SP, 24H |
| 02D4 | s(AFE00000): STR LNK, SP, 0H |
| 02D5 | s(A0E00004): STR R0, SP, 4H |
| 02D6 | s(A1E00008): STR R1, SP, 8H |
| 02D7 | s(A2E0000C): STR R2, SP, CH |
| 02D8 | s(A3E00010): STR R3, SP, 10H |
| 02D9 | s(A4E00014): STR R4, SP, 14H |
| 02DA | s(A5E00018): STR R5, SP, 18H |
| IF X < inf THENt |
| 02DB | t(80E00004): LDR R0, SP, 4H |
| 02DC | t(4009FFFF): SUB R0, R0, FFFFFFFFH |
| 02DD | t(ED000071): BGE 113 [034FH] |
| T := FillerTrack;u |
| 02DE | u .FIXUP D |
| 02DE | u(8D000012): LDR SB, MT, MOD0 [Viewers] |
| 02DF | u(80D0005C): LDR R0, SB, 5CH [data] |
| 02E0 | u(A0E0001C): STR R0, SP, 1CH |
| REPEAT T := T.nextv UNTILw X < T.Xx + T.Wy;z |
| 02E1 | v(80E0001C): LDR R0, SP, 1CH |
| 02E2 | v(D10EF44C): BLEQ MT [trap=4, pos=3828] |
| 02E3 | w(80000000): LDR R0, R0, 0H |
| 02E4 | w(A0E0001C): STR R0, SP, 1CH |
| 02E5 | x(80E0001C): LDR R0, SP, 1CH |
| 02E6 | x(D10F024C): BLEQ MT [trap=4, pos=3842] |
| 02E7 | y(81E0001C): LDR R1, SP, 1CH |
| 02E8 | y(D10F084C): BLEQ MT [trap=4, pos=3848] |
| 02E9 | z(80000008): LDR R0, R0, 8H |
| 02EA | z(81100010): LDR R1, R1, 10H |
| 02EB | z(00080001): ADD R0, R0, R1 |
| 02EC | z(81E00004): LDR R1, SP, 4H |
| 02ED | z(01190000): SUB R1, R1, R0 |
| 02EE | z(EDFFFFF2): BGE -14 [02E1H] |
| fil := T.dsca;b bot := fil.nextc;d |
| 02EF | a(80E0001C): LDR R0, SP, 1CH |
| 02F0 | a(D10F1C4C): BLEQ MT [trap=4, pos=3868] |
| 02F1 | b(80000004): LDR R0, R0, 4H |
| 02F2 | b(81E0000C): LDR R1, SP, CH |
| 02F3 | b(A0100000): STR R0, R1, 0H |
| 02F4 | c(80E0000C): LDR R0, SP, CH |
| 02F5 | c(80000000): LDR R0, R0, 0H |
| 02F6 | c(D10F2D4C): BLEQ MT [trap=4, pos=3885] |
| 02F7 | d(80000000): LDR R0, R0, 0H |
| 02F8 | d(81E00010): LDR R1, SP, 10H |
| 02F9 | d(A0100000): STR R0, R1, 0H |
| IF bot.nexte # fil THENf |
| 02FA | e(80E00010): LDR R0, SP, 10H |
| 02FB | e(80000000): LDR R0, R0, 0H |
| 02FC | e(D10F404C): BLEQ MT [trap=4, pos=3904] |
| 02FD | f(80000000): LDR R0, R0, 0H |
| 02FE | f(81E0000C): LDR R1, SP, CH |
| 02FF | f(81100000): LDR R1, R1, 0H |
| 0300 | f(00090001): SUB R0, R0, R1 |
| 0301 | f(E1000029): BEQ 41 [032BH] |
| alt := bot.nextg;h V := alt.nexti;j |
| 0302 | g(80E00010): LDR R0, SP, 10H |
| 0303 | g(80000000): LDR R0, R0, 0H |
| 0304 | g(D10F634C): BLEQ MT [trap=4, pos=3939] |
| 0305 | h(80000000): LDR R0, R0, 0H |
| 0306 | h(81E00014): LDR R1, SP, 14H |
| 0307 | h(A0100000): STR R0, R1, 0H |
| 0308 | i(80E00014): LDR R0, SP, 14H |
| 0309 | i(80000000): LDR R0, R0, 0H |
| 030A | i(D10F724C): BLEQ MT [trap=4, pos=3954] |
| 030B | j(80000000): LDR R0, R0, 0H |
| 030C | j(A0E00020): STR R0, SP, 20H |
| WHILE (V # fil)k & (lalt.Hm < H)n DOo |
| 030D | k(80E00020): LDR R0, SP, 20H |
| 030E | k(81E0000C): LDR R1, SP, CH |
| 030F | k(81100000): LDR R1, R1, 0H |
| 0310 | k(00090001): SUB R0, R0, R1 |
| 0311 | l(E1000018): BEQ 24 [032AH] |
| 0312 | m(80E00014): LDR R0, SP, 14H |
| 0313 | m(80000000): LDR R0, R0, 0H |
| 0314 | m(D10F944C): BLEQ MT [trap=4, pos=3988] |
| 0315 | n(80000014): LDR R0, R0, 14H |
| 0316 | n(81E00008): LDR R1, SP, 8H |
| 0317 | n(00090001): SUB R0, R0, R1 |
| 0318 | o(ED000011): BGE 17 [032AH] |
| IF V.Hp > alt.Hq THENr alt := V ENDs; |
| 0319 | p(80E00020): LDR R0, SP, 20H |
| 031A | p(D10FAD4C): BLEQ MT [trap=4, pos=4013] |
| 031B | q(81E00014): LDR R1, SP, 14H |
| 031C | q(81100000): LDR R1, R1, 0H |
| 031D | q(D10FB54C): BLEQ MT [trap=4, pos=4021] |
| 031E | r(80000014): LDR R0, R0, 14H |
| 031F | r(81100014): LDR R1, R1, 14H |
| 0320 | r(00090001): SUB R0, R0, R1 |
| 0321 | r(E6000003): BLE 3 [0325H] |
| 0322 | s(80E00020): LDR R0, SP, 20H |
| 0323 | s(81E00014): LDR R1, SP, 14H |
| 0324 | s(A0100000): STR R0, R1, 0H |
| V := V.nextt |
| 0325 | t(80E00020): LDR R0, SP, 20H |
| 0326 | t(D10FDE4C): BLEQ MT [trap=4, pos=4062] |
| ENDu |
| 0327 | u(80000000): LDR R0, R0, 0H |
| 0328 | u(A0E00020): STR R0, SP, 20H |
| 0329 | u(E7FFFFE3): B -29 [030DH] |
| ELSE altv := bot |
| 032A | v(E7000004): B 4 [032FH] |
| ENDw; |
| 032B | w(80E00010): LDR R0, SP, 10H |
| 032C | w(80000000): LDR R0, R0, 0H |
| 032D | w(81E00014): LDR R1, SP, 14H |
| 032E | w(A0100000): STR R0, R1, 0H |
| max := T.dscx;y V := max.nextz;a |
| 032F | x(80E0001C): LDR R0, SP, 1CH |
| 0330 | x(D1101E4C): BLEQ MT [trap=4, pos=4126] |
| 0331 | y(80000004): LDR R0, R0, 4H |
| 0332 | y(81E00018): LDR R1, SP, 18H |
| 0333 | y(A0100000): STR R0, R1, 0H |
| 0334 | z(80E00018): LDR R0, SP, 18H |
| 0335 | z(80000000): LDR R0, R0, 0H |
| 0336 | z(D1102D4C): BLEQ MT [trap=4, pos=4141] |
| 0337 | a(80000000): LDR R0, R0, 0H |
| 0338 | a(A0E00020): STR R0, SP, 20H |
| WHILE V # fil DOb |
| 0339 | b(80E00020): LDR R0, SP, 20H |
| 033A | b(81E0000C): LDR R1, SP, CH |
| 033B | b(81100000): LDR R1, R1, 0H |
| 033C | b(00090001): SUB R0, R0, R1 |
| 033D | b(E1000011): BEQ 17 [034FH] |
| IF V.Hc > max.Hd THENe max := V ENDf; |
| 033E | c(80E00020): LDR R0, SP, 20H |
| 033F | c(D110544C): BLEQ MT [trap=4, pos=4180] |
| 0340 | d(81E00018): LDR R1, SP, 18H |
| 0341 | d(81100000): LDR R1, R1, 0H |
| 0342 | d(D1105C4C): BLEQ MT [trap=4, pos=4188] |
| 0343 | e(80000014): LDR R0, R0, 14H |
| 0344 | e(81100014): LDR R1, R1, 14H |
| 0345 | e(00090001): SUB R0, R0, R1 |
| 0346 | e(E6000003): BLE 3 [034AH] |
| 0347 | f(80E00020): LDR R0, SP, 20H |
| 0348 | f(81E00018): LDR R1, SP, 18H |
| 0349 | f(A0100000): STR R0, R1, 0H |
| V := V.nextg |
| 034A | g(80E00020): LDR R0, SP, 20H |
| 034B | g(D110834C): BLEQ MT [trap=4, pos=4227] |
| ENDh |
| 034C | h(80000000): LDR R0, R0, 0H |
| 034D | h(A0E00020): STR R0, SP, 20H |
| 034E | h(E7FFFFEA): B -22 [0339H] |
| END |
| ENDi Locate; |
| 034F | i(8FE00000): LDR LNK, SP, 0H |
| 0350 | i(4EE80024): ADD SP, SP, 24H |
| 0351 | i(C700000F): B LNK |
| |
| PROCEDURE InitTrack* (W, H: INTEGER; Filler: Viewer); |
| VAR S: Display.Frame; T: Track; |
| BEGINj |
| 0352 | j .PROC 12 |
| 0352 | j(4EE90018): SUB SP, SP, 18H |
| 0353 | j(AFE00000): STR LNK, SP, 0H |
| 0354 | j(A0E00004): STR R0, SP, 4H |
| 0355 | j(A1E00008): STR R1, SP, 8H |
| 0356 | j(A2E0000C): STR R2, SP, CH |
| IF Filler.statek = 0 THENl |
| 0357 | k(80E0000C): LDR R0, SP, CH |
| 0358 | k(D1111C4C): BLEQ MT [trap=4, pos=4380] |
| 0359 | l(8000001C): LDR R0, R0, 1CH |
| 035A | l(E900006A): BNE 106 [03C5H] |
| Filler.Xm := curW;n Filler.Wo := W;p Filler.Yq := 0;r Filler.Hs := H;t |
| 035B | m(80E0000C): LDR R0, SP, CH |
| 035C | m(D111344C): BLEQ MT [trap=4, pos=4404] |
| 035D | n .FIXUP D |
| 035D | n(8D00007F): LDR SB, MT, MOD0 [Viewers] |
| 035E | n(81D00050): LDR R1, SB, 50H [data] |
| 035F | n(A1000008): STR R1, R0, 8H |
| 0360 | o(80E0000C): LDR R0, SP, CH |
| 0361 | o(D111464C): BLEQ MT [trap=4, pos=4422] |
| 0362 | p(81E00004): LDR R1, SP, 4H |
| 0363 | p(A1000010): STR R1, R0, 10H |
| 0364 | q(80E0000C): LDR R0, SP, CH |
| 0365 | q(D111554C): BLEQ MT [trap=4, pos=4437] |
| 0366 | r(41000000): MOV R1, R0, 0H |
| 0367 | r(A100000C): STR R1, R0, CH |
| 0368 | s(80E0000C): LDR R0, SP, CH |
| 0369 | s(D111644C): BLEQ MT [trap=4, pos=4452] |
| 036A | t(81E00008): LDR R1, SP, 8H |
| 036B | t(A1000014): STR R1, R0, 14H |
| Filler.stateu := 1;v Filler.nextw := Filler;x |
| 036C | u(80E0000C): LDR R0, SP, CH |
| 036D | u(D1117D4C): BLEQ MT [trap=4, pos=4477] |
| 036E | v(41000001): MOV R1, R0, 1H |
| 036F | v(A100001C): STR R1, R0, 1CH |
| 0370 | w(80E0000C): LDR R0, SP, CH |
| 0371 | w(D1118F4C): BLEQ MT [trap=4, pos=4495] |
| 0372 | x(81E0000C): LDR R1, SP, CH |
| 0373 | x(A1000000): STR R1, R0, 0H |
| NEW(T);y T.Xz := curW;a T.Wb := W;c T.Yd := 0;e T.Hf := H;g T.dsch := Filler;i T.underj := NIL;k |
| 0374 | y(40E80014): ADD R0, SP, 14H |
| 0375 | y(41D80030): ADD R1, SB, 30H |
| 0376 | y(D711A80C): BL MT [trap=0, pos=4520] |
| 0377 | z(80E00014): LDR R0, SP, 14H |
| 0378 | z(D111AC4C): BLEQ MT [trap=4, pos=4524] |
| 0379 | a .FIXUP D |
| 0379 | a(8D00001C): LDR SB, MT, MOD0 [Viewers] |
| 037A | a(81D00050): LDR R1, SB, 50H [data] |
| 037B | a(A1000008): STR R1, R0, 8H |
| 037C | b(80E00014): LDR R0, SP, 14H |
| 037D | b(D111B94C): BLEQ MT [trap=4, pos=4537] |
| 037E | c(81E00004): LDR R1, SP, 4H |
| 037F | c(A1000010): STR R1, R0, 10H |
| 0380 | d(80E00014): LDR R0, SP, 14H |
| 0381 | d(D111C34C): BLEQ MT [trap=4, pos=4547] |
| 0382 | e(41000000): MOV R1, R0, 0H |
| 0383 | e(A100000C): STR R1, R0, CH |
| 0384 | f(80E00014): LDR R0, SP, 14H |
| 0385 | f(D111CD4C): BLEQ MT [trap=4, pos=4557] |
| 0386 | g(81E00008): LDR R1, SP, 8H |
| 0387 | g(A1000014): STR R1, R0, 14H |
| 0388 | h(80E00014): LDR R0, SP, 14H |
| 0389 | h(D111D94C): BLEQ MT [trap=4, pos=4569] |
| 038A | i(81E0000C): LDR R1, SP, CH |
| 038B | i(A1000004): STR R1, R0, 4H |
| 038C | j(80E00014): LDR R0, SP, 14H |
| 038D | j(D111EC4C): BLEQ MT [trap=4, pos=4588] |
| 038E | k(41000000): MOV R1, R0, 0H |
| 038F | k(A1000020): STR R1, R0, 20H |
| FillerViewer.Xl := curW + W;m FillerViewer.Wn := inf - FillerViewer.Xo;p |
| 0390 | l(80D00060): LDR R0, SB, 60H |
| 0391 | l(D112094C): BLEQ MT [trap=4, pos=4617] |
| 0392 | m(81D00050): LDR R1, SB, 50H |
| 0393 | m(82E00004): LDR R2, SP, 4H |
| 0394 | m(01180002): ADD R1, R1, R2 |
| 0395 | m(A1000008): STR R1, R0, 8H |
| 0396 | n(80D00060): LDR R0, SB, 60H |
| 0397 | n(D112254C): BLEQ MT [trap=4, pos=4645] |
| 0398 | o(81D00060): LDR R1, SB, 60H |
| 0399 | o(D1123D4C): BLEQ MT [trap=4, pos=4669] |
| 039A | p(4200FFFF): MOV R2, R0, FFFFFFFFH |
| 039B | p(81100008): LDR R1, R1, 8H |
| 039C | p(01290001): SUB R1, R2, R1 |
| 039D | p(A1000010): STR R1, R0, 10H |
| FillerTrack.Xq := FillerViewer.Xr;s FillerTrack.Wt := FillerViewer.Wu;v |
| 039E | q(80D0005C): LDR R0, SB, 5CH |
| 039F | q(D112524C): BLEQ MT [trap=4, pos=4690] |
| 03A0 | r(81D00060): LDR R1, SB, 60H |
| 03A1 | r(D112644C): BLEQ MT [trap=4, pos=4708] |
| 03A2 | s(81100008): LDR R1, R1, 8H |
| 03A3 | s(A1000008): STR R1, R0, 8H |
| 03A4 | t(80D0005C): LDR R0, SB, 5CH |
| 03A5 | t(D112734C): BLEQ MT [trap=4, pos=4723] |
| 03A6 | u(81D00060): LDR R1, SB, 60H |
| 03A7 | u(D112854C): BLEQ MT [trap=4, pos=4741] |
| 03A8 | v(81100010): LDR R1, R1, 10H |
| 03A9 | v(A1000010): STR R1, R0, 10H |
| S := FillerTrack;w |
| 03AA | w(80D0005C): LDR R0, SB, 5CH |
| 03AB | w(A0E00010): STR R0, SP, 10H |
| WHILE S.nextx # FillerTrack DOy S := S.nextz ENDa; |
| 03AC | x(80E00010): LDR R0, SP, 10H |
| 03AD | x(D112B14C): BLEQ MT [trap=4, pos=4785] |
| 03AE | y(80000000): LDR R0, R0, 0H |
| 03AF | y .FIXUP D |
| 03AF | y(8D000036): LDR SB, MT, MOD0 [Viewers] |
| 03B0 | y(81D0005C): LDR R1, SB, 5CH [data] |
| 03B1 | y(00090001): SUB R0, R0, R1 |
| 03B2 | y(E1000005): BEQ 5 [03B8H] |
| 03B3 | z(80E00010): LDR R0, SP, 10H |
| 03B4 | z(D112CE4C): BLEQ MT [trap=4, pos=4814] |
| 03B5 | a(80000000): LDR R0, R0, 0H |
| 03B6 | a(A0E00010): STR R0, SP, 10H |
| 03B7 | a(E7FFFFF4): B -12 [03ACH] |
| S.nextb := T;c T.nextd := FillerTrack;e curW := curW + W |
| 03B8 | b(80E00010): LDR R0, SP, 10H |
| 03B9 | b(D112E04C): BLEQ MT [trap=4, pos=4832] |
| 03BA | c(81E00014): LDR R1, SP, 14H |
| 03BB | c(A1000000): STR R1, R0, 0H |
| 03BC | d(80E00014): LDR R0, SP, 14H |
| 03BD | d(D112ED4C): BLEQ MT [trap=4, pos=4845] |
| 03BE | e .FIXUP D |
| 03BE | e(8D00000F): LDR SB, MT, MOD0 [Viewers] |
| 03BF | e(81D0005C): LDR R1, SB, 5CH [data] |
| 03C0 | e(A1000000): STR R1, R0, 0H |
| ENDf |
| 03C1 | f(80D00050): LDR R0, SB, 50H |
| 03C2 | f(81E00004): LDR R1, SP, 4H |
| 03C3 | f(00080001): ADD R0, R0, R1 |
| 03C4 | f(A0D00050): STR R0, SB, 50H |
| ENDg InitTrack; |
| 03C5 | g(8FE00000): LDR LNK, SP, 0H |
| 03C6 | g(4EE80018): ADD SP, SP, 18H |
| 03C7 | g(C700000F): B LNK |
| |
| PROCEDURE OpenTrack* (X, W: INTEGER; Filler: Viewer); |
| VAR newT: Track; S, T, t, v: Display.Frame; M: ViewerMsg; v0: Viewer; |
| BEGINh |
| 03C8 | h .PROC 13 |
| 03C8 | h(4EE90040): SUB SP, SP, 40H |
| 03C9 | h(AFE00000): STR LNK, SP, 0H |
| 03CA | h(A0E00004): STR R0, SP, 4H |
| 03CB | h(A1E00008): STR R1, SP, 8H |
| 03CC | h(A2E0000C): STR R2, SP, CH |
| IF (X < inf)i & (jFiller.statek = 0)l THENm |
| 03CD | i(80E00004): LDR R0, SP, 4H |
| 03CE | i(4009FFFF): SUB R0, R0, FFFFFFFFH |
| 03CF | j(ED0000C2): BGE 194 [0492H] |
| 03D0 | k(80E0000C): LDR R0, SP, CH |
| 03D1 | k(D113D34C): BLEQ MT [trap=4, pos=5075] |
| 03D2 | l(8000001C): LDR R0, R0, 1CH |
| 03D3 | m(E90000BE): BNE 190 [0492H] |
| S := FillerTrack;n T := S.nexto;p |
| 03D4 | n .FIXUP D |
| 03D4 | n(8D000016): LDR SB, MT, MOD0 [Viewers] |
| 03D5 | n(80D0005C): LDR R0, SB, 5CH [data] |
| 03D6 | n(A0E00014): STR R0, SP, 14H |
| 03D7 | o(80E00014): LDR R0, SP, 14H |
| 03D8 | o(D114014C): BLEQ MT [trap=4, pos=5121] |
| 03D9 | p(80000000): LDR R0, R0, 0H |
| 03DA | p(A0E00018): STR R0, SP, 18H |
| WHILE X >= T.Xq + T.Wr DOs S := T;t T := S.nextu ENDv; |
| 03DB | q(80E00018): LDR R0, SP, 18H |
| 03DC | q(D114174C): BLEQ MT [trap=4, pos=5143] |
| 03DD | r(81E00018): LDR R1, SP, 18H |
| 03DE | r(D1141D4C): BLEQ MT [trap=4, pos=5149] |
| 03DF | s(80000008): LDR R0, R0, 8H |
| 03E0 | s(81100010): LDR R1, R1, 10H |
| 03E1 | s(00080001): ADD R0, R0, R1 |
| 03E2 | s(81E00004): LDR R1, SP, 4H |
| 03E3 | s(01190000): SUB R1, R1, R0 |
| 03E4 | s(E5000007): BLT 7 [03ECH] |
| 03E5 | t(80E00018): LDR R0, SP, 18H |
| 03E6 | t(A0E00014): STR R0, SP, 14H |
| 03E7 | u(80E00014): LDR R0, SP, 14H |
| 03E8 | u(D114344C): BLEQ MT [trap=4, pos=5172] |
| 03E9 | v(80000000): LDR R0, R0, 0H |
| 03EA | v(A0E00018): STR R0, SP, 18H |
| 03EB | v(E7FFFFEF): B -17 [03DBH] |
| WHILE X + W >w T.Xx + T.Wy DOz T := T.nexta ENDb; |
| 03EC | w(80E00004): LDR R0, SP, 4H |
| 03ED | w(81E00008): LDR R1, SP, 8H |
| 03EE | w(00080001): ADD R0, R0, R1 |
| 03EF | x(81E00018): LDR R1, SP, 18H |
| 03F0 | x(D114514C): BLEQ MT [trap=4, pos=5201] |
| 03F1 | y(82E00018): LDR R2, SP, 18H |
| 03F2 | y(D114574C): BLEQ MT [trap=4, pos=5207] |
| 03F3 | z(81100008): LDR R1, R1, 8H |
| 03F4 | z(82200010): LDR R2, R2, 10H |
| 03F5 | z(01180002): ADD R1, R1, R2 |
| 03F6 | z(00090001): SUB R0, R0, R1 |
| 03F7 | z(E6000005): BLE 5 [03FDH] |
| 03F8 | a(80E00018): LDR R0, SP, 18H |
| 03F9 | a(D114664C): BLEQ MT [trap=4, pos=5222] |
| 03FA | b(80000000): LDR R0, R0, 0H |
| 03FB | b(A0E00018): STR R0, SP, 18H |
| 03FC | b(E7FFFFEF): B -17 [03ECH] |
| M.id := suspend;c t := S;d |
| 03FD | c(40000002): MOV R0, R0, 2H |
| 03FE | c(A0E00024): STR R0, SP, 24H |
| 03FF | d(80E00014): LDR R0, SP, 14H |
| 0400 | d(A0E0001C): STR R0, SP, 1CH |
| REPEAT t := t.nexte;f v := t.dscg;h |
| 0401 | e(80E0001C): LDR R0, SP, 1CH |
| 0402 | e(D114A34C): BLEQ MT [trap=4, pos=5283] |
| 0403 | f(80000000): LDR R0, R0, 0H |
| 0404 | f(A0E0001C): STR R0, SP, 1CH |
| 0405 | g(80E0001C): LDR R0, SP, 1CH |
| 0406 | g(D114AF4C): BLEQ MT [trap=4, pos=5295] |
| 0407 | h(80000004): LDR R0, R0, 4H |
| 0408 | h(A0E00020): STR R0, SP, 20H |
| REPEAT v := v.nexti;j M.state := -v(Viewer)k.state;l v.handlem(vn,o M)p;q v(Viewer)r.state := M.state |
| 0409 | i(80E00020): LDR R0, SP, 20H |
| 040A | i(D114CB4C): BLEQ MT [trap=4, pos=5323] |
| 040B | j(80000000): LDR R0, R0, 0H |
| 040C | j(A0E00020): STR R0, SP, 20H |
| 040D | k(80E00020): LDR R0, SP, 20H |
| 040E | k(E1000005): BEQ 5 [0414H] |
| 040F | k(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 0410 | k(81100004): LDR R1, R1, 4H |
| 0411 | k .FIXUP D |
| 0411 | k(8D00003D): LDR SB, MT, MOD0 [Viewers] |
| 0412 | k(42D80000): ADD R2, SB, 0H [data] |
| 0413 | k(02290001): SUB R2, R2, R1 |
| 0414 | k(D914E22C): BLNE MT [trap=2, pos=5346] |
| 0415 | l(8000001C): LDR R0, R0, 1CH |
| 0416 | l(41000000): MOV R1, R0, 0H |
| 0417 | l(00190000): SUB R0, R1, R0 |
| 0418 | l(A0E00038): STR R0, SP, 38H |
| 0419 | m(80E00020): LDR R0, SP, 20H |
| 041A | m(D114F24C): BLEQ MT [trap=4, pos=5362] |
| 041B | n(80000018): LDR R0, R0, 18H |
| 041C | n(4EE90004): SUB SP, SP, 4H |
| 041D | n(A0E00000): STR R0, SP, 0H |
| 041E | o(80E00024): LDR R0, SP, 24H |
| 041F | p(41E80028): ADD R1, SP, 28H |
| 0420 | p(42D8001C): ADD R2, SB, 1CH |
| 0421 | q(83E00000): LDR R3, SP, 0H |
| 0422 | q(4EE80004): ADD SP, SP, 4H |
| 0423 | q(D114F95C): BLEQ MT [trap=5, pos=5369] |
| 0424 | q(D7000003): BL R3 |
| 0425 | r(80E00020): LDR R0, SP, 20H |
| 0426 | r(E1000005): BEQ 5 [042CH] |
| 0427 | r(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 0428 | r(81100004): LDR R1, R1, 4H |
| 0429 | r .FIXUP D |
| 0429 | r(8D000018): LDR SB, MT, MOD0 [Viewers] |
| 042A | r(42D80000): ADD R2, SB, 0H [data] |
| 042B | r(02290001): SUB R2, R2, R1 |
| 042C | r(D915032C): BLNE MT [trap=2, pos=5379] |
| UNTILs v = t.dsct |
| 042D | s(81E00038): LDR R1, SP, 38H |
| 042E | s(A100001C): STR R1, R0, 1CH |
| 042F | t(80E0001C): LDR R0, SP, 1CH |
| 0430 | t(D1152C4C): BLEQ MT [trap=4, pos=5420] |
| UNTILu t = T;v |
| 0431 | u(81E00020): LDR R1, SP, 20H |
| 0432 | u(80000004): LDR R0, R0, 4H |
| 0433 | u(01190000): SUB R1, R1, R0 |
| 0434 | u(E9FFFFD4): BNE -44 [0409H] |
| 0435 | v(80E0001C): LDR R0, SP, 1CH |
| 0436 | v(81E00018): LDR R1, SP, 18H |
| 0437 | v(00090001): SUB R0, R0, R1 |
| 0438 | v(E9FFFFC8): BNE -56 [0401H] |
| Filler.Xw := S.nextx.Xy;z Filler.Wa := T.Xb + T.Wc -d S.nexte.Xf;g Filler.Yh := 0;i Filler.Hj := DH;k |
| 0439 | w(80E0000C): LDR R0, SP, CH |
| 043A | w(D1154E4C): BLEQ MT [trap=4, pos=5454] |
| 043B | x(81E00014): LDR R1, SP, 14H |
| 043C | x(D115584C): BLEQ MT [trap=4, pos=5464] |
| 043D | y(81100000): LDR R1, R1, 0H |
| 043E | y(D1155A4C): BLEQ MT [trap=4, pos=5466] |
| 043F | z(81100008): LDR R1, R1, 8H |
| 0440 | z(A1000008): STR R1, R0, 8H |
| 0441 | a(80E0000C): LDR R0, SP, CH |
| 0442 | a(D115644C): BLEQ MT [trap=4, pos=5476] |
| 0443 | b(81E00018): LDR R1, SP, 18H |
| 0444 | b(D1156B4C): BLEQ MT [trap=4, pos=5483] |
| 0445 | c(82E00018): LDR R2, SP, 18H |
| 0446 | c(D115714C): BLEQ MT [trap=4, pos=5489] |
| 0447 | d(81100008): LDR R1, R1, 8H |
| 0448 | d(82200010): LDR R2, R2, 10H |
| 0449 | d(01180002): ADD R1, R1, R2 |
| 044A | e(82E00014): LDR R2, SP, 14H |
| 044B | e(D1157A4C): BLEQ MT [trap=4, pos=5498] |
| 044C | f(82200000): LDR R2, R2, 0H |
| 044D | f(D1157C4C): BLEQ MT [trap=4, pos=5500] |
| 044E | g(82200008): LDR R2, R2, 8H |
| 044F | g(01190002): SUB R1, R1, R2 |
| 0450 | g(A1000010): STR R1, R0, 10H |
| 0451 | h(80E0000C): LDR R0, SP, CH |
| 0452 | h(D115864C): BLEQ MT [trap=4, pos=5510] |
| 0453 | i(41000000): MOV R1, R0, 0H |
| 0454 | i(A100000C): STR R1, R0, CH |
| 0455 | j(80E0000C): LDR R0, SP, CH |
| 0456 | j(D115954C): BLEQ MT [trap=4, pos=5525] |
| 0457 | k .FIXUP D |
| 0457 | k(8D00002E): LDR SB, MT, MOD0 [Viewers] |
| 0458 | k(81D00058): LDR R1, SB, 58H [data] |
| 0459 | k(A1000014): STR R1, R0, 14H |
| Filler.statel := 1;m Filler.nextn := Filler;o |
| 045A | l(80E0000C): LDR R0, SP, CH |
| 045B | l(D115AF4C): BLEQ MT [trap=4, pos=5551] |
| 045C | m(41000001): MOV R1, R0, 1H |
| 045D | m(A100001C): STR R1, R0, 1CH |
| 045E | n(80E0000C): LDR R0, SP, CH |
| 045F | n(D115C14C): BLEQ MT [trap=4, pos=5569] |
| 0460 | o(81E0000C): LDR R1, SP, CH |
| 0461 | o(A1000000): STR R1, R0, 0H |
| NEW(newT);p newT.Xq := Filler.Xr;s newT.Wt := Filler.Wu;v newT.Yw := 0;x newT.Hy := DH;z |
| 0462 | p(40E80010): ADD R0, SP, 10H |
| 0463 | p(41D80030): ADD R1, SB, 30H |
| 0464 | p(D715DD0C): BL MT [trap=0, pos=5597] |
| 0465 | q(80E00010): LDR R0, SP, 10H |
| 0466 | q(D115E44C): BLEQ MT [trap=4, pos=5604] |
| 0467 | r(81E0000C): LDR R1, SP, CH |
| 0468 | r(D115F04C): BLEQ MT [trap=4, pos=5616] |
| 0469 | s(81100008): LDR R1, R1, 8H |
| 046A | s(A1000008): STR R1, R0, 8H |
| 046B | t(80E00010): LDR R0, SP, 10H |
| 046C | t(D115F84C): BLEQ MT [trap=4, pos=5624] |
| 046D | u(81E0000C): LDR R1, SP, CH |
| 046E | u(D116044C): BLEQ MT [trap=4, pos=5636] |
| 046F | v(81100010): LDR R1, R1, 10H |
| 0470 | v(A1000010): STR R1, R0, 10H |
| 0471 | w(80E00010): LDR R0, SP, 10H |
| 0472 | w(D1160C4C): BLEQ MT [trap=4, pos=5644] |
| 0473 | x(41000000): MOV R1, R0, 0H |
| 0474 | x(A100000C): STR R1, R0, CH |
| 0475 | y(80E00010): LDR R0, SP, 10H |
| 0476 | y(D116194C): BLEQ MT [trap=4, pos=5657] |
| 0477 | z .FIXUP D |
| 0477 | z(8D000020): LDR SB, MT, MOD0 [Viewers] |
| 0478 | z(81D00058): LDR R1, SB, 58H [data] |
| 0479 | z(A1000014): STR R1, R0, 14H |
| newT.dsca := Filler;b newT.underc := S.nextd;e S.nextf := newT;g |
| 047A | a(80E00010): LDR R0, SP, 10H |
| 047B | a(D1162F4C): BLEQ MT [trap=4, pos=5679] |
| 047C | b(81E0000C): LDR R1, SP, CH |
| 047D | b(A1000004): STR R1, R0, 4H |
| 047E | c(80E00010): LDR R0, SP, 10H |
| 047F | c(D116454C): BLEQ MT [trap=4, pos=5701] |
| 0480 | d(81E00014): LDR R1, SP, 14H |
| 0481 | d(D1164F4C): BLEQ MT [trap=4, pos=5711] |
| 0482 | e(81100000): LDR R1, R1, 0H |
| 0483 | e(A1000020): STR R1, R0, 20H |
| 0484 | f(80E00014): LDR R0, SP, 14H |
| 0485 | f(D116574C): BLEQ MT [trap=4, pos=5719] |
| 0486 | g(81E00010): LDR R1, SP, 10H |
| 0487 | g(A1000000): STR R1, R0, 0H |
| newT.nexth := T.nexti;j T.nextk := NIL |
| 0488 | h(80E00010): LDR R0, SP, 10H |
| 0489 | h(D116704C): BLEQ MT [trap=4, pos=5744] |
| 048A | i(81E00018): LDR R1, SP, 18H |
| 048B | i(D1167A4C): BLEQ MT [trap=4, pos=5754] |
| 048C | j(81100000): LDR R1, R1, 0H |
| 048D | j(A1000000): STR R1, R0, 0H |
| 048E | k(80E00018): LDR R0, SP, 18H |
| 048F | k(D116824C): BLEQ MT [trap=4, pos=5762] |
| ENDl |
| 0490 | l(41000000): MOV R1, R0, 0H |
| 0491 | l(A1000000): STR R1, R0, 0H |
| ENDm OpenTrack; |
| 0492 | m(8FE00000): LDR LNK, SP, 0H |
| 0493 | m(4EE80040): ADD SP, SP, 40H |
| 0494 | m(C700000F): B LNK |
| |
| PROCEDURE CloseTrack* (X: INTEGER); |
| VAR T, V: Display.Frame; M: ViewerMsg; |
| BEGINn |
| 0495 | n .PROC 14 |
| 0495 | n(4EE90028): SUB SP, SP, 28H |
| 0496 | n(AFE00000): STR LNK, SP, 0H |
| 0497 | n(A0E00004): STR R0, SP, 4H |
| IF X < inf THENo |
| 0498 | o(80E00004): LDR R0, SP, 4H |
| 0499 | o(4009FFFF): SUB R0, R0, FFFFFFFFH |
| 049A | o(ED000046): BGE 70 [04E1H] |
| T := FillerTrack;p |
| 049B | p .FIXUP D |
| 049B | p(8D000024): LDR SB, MT, MOD0 [Viewers] |
| 049C | p(80D0005C): LDR R0, SB, 5CH [data] |
| 049D | p(A0E00008): STR R0, SP, 8H |
| REPEAT T := T.nextq UNTILr X < T.Xs + T.Wt;u |
| 049E | q(80E00008): LDR R0, SP, 8H |
| 049F | q(D117414C): BLEQ MT [trap=4, pos=5953] |
| 04A0 | r(80000000): LDR R0, R0, 0H |
| 04A1 | r(A0E00008): STR R0, SP, 8H |
| 04A2 | s(80E00008): LDR R0, SP, 8H |
| 04A3 | s(D1174F4C): BLEQ MT [trap=4, pos=5967] |
| 04A4 | t(81E00008): LDR R1, SP, 8H |
| 04A5 | t(D117554C): BLEQ MT [trap=4, pos=5973] |
| 04A6 | u(80000008): LDR R0, R0, 8H |
| 04A7 | u(81100010): LDR R1, R1, 10H |
| 04A8 | u(00080001): ADD R0, R0, R1 |
| 04A9 | u(81E00004): LDR R1, SP, 4H |
| 04AA | u(01190000): SUB R1, R1, R0 |
| 04AB | u(EDFFFFF2): BGE -14 [049EH] |
| IF T(Track)v.under # NIL THENw |
| 04AC | v(80E00008): LDR R0, SP, 8H |
| 04AD | v(E1000005): BEQ 5 [04B3H] |
| 04AE | v(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 04AF | v(81100008): LDR R1, R1, 8H |
| 04B0 | v .FIXUP D |
| 04B0 | v(8D000015): LDR SB, MT, MOD0 [Viewers] |
| 04B1 | v(42D80030): ADD R2, SB, 30H [data] |
| 04B2 | v(02290001): SUB R2, R2, R1 |
| 04B3 | v(D917682C): BLNE MT [trap=2, pos=5992] |
| 04B4 | w(80000020): LDR R0, R0, 20H |
| 04B5 | w(E100002B): BEQ 43 [04E1H] |
| M.id := suspend;x M.state := 0;y V := T.dscz;a |
| 04B6 | x(40000002): MOV R0, R0, 2H |
| 04B7 | x(A0E00010): STR R0, SP, 10H |
| 04B8 | y(40000000): MOV R0, R0, 0H |
| 04B9 | y(A0E00024): STR R0, SP, 24H |
| 04BA | z(80E00008): LDR R0, SP, 8H |
| 04BB | z(D117AB4C): BLEQ MT [trap=4, pos=6059] |
| 04BC | a(80000004): LDR R0, R0, 4H |
| 04BD | a(A0E0000C): STR R0, SP, CH |
| REPEAT V := V.nextb;c V.handled(Ve,f M)g;h V(Viewer)i.state := 0 UNTILj V = T.dsck;l |
| 04BE | b(80E0000C): LDR R0, SP, CH |
| 04BF | b(D117C74C): BLEQ MT [trap=4, pos=6087] |
| 04C0 | c(80000000): LDR R0, R0, 0H |
| 04C1 | c(A0E0000C): STR R0, SP, CH |
| 04C2 | d(80E0000C): LDR R0, SP, CH |
| 04C3 | d(D117D14C): BLEQ MT [trap=4, pos=6097] |
| 04C4 | e(80000018): LDR R0, R0, 18H |
| 04C5 | e(4EE90004): SUB SP, SP, 4H |
| 04C6 | e(A0E00000): STR R0, SP, 0H |
| 04C7 | f(80E00010): LDR R0, SP, 10H |
| 04C8 | g(41E80014): ADD R1, SP, 14H |
| 04C9 | g .FIXUP D |
| 04C9 | g(8D000019): LDR SB, MT, MOD0 [Viewers] |
| 04CA | g(42D8001C): ADD R2, SB, 1CH [data] |
| 04CB | h(83E00000): LDR R3, SP, 0H |
| 04CC | h(4EE80004): ADD SP, SP, 4H |
| 04CD | h(D117D85C): BLEQ MT [trap=5, pos=6104] |
| 04CE | h(D7000003): BL R3 |
| 04CF | i(80E0000C): LDR R0, SP, CH |
| 04D0 | i(E1000005): BEQ 5 [04D6H] |
| 04D1 | i(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 04D2 | i(81100004): LDR R1, R1, 4H |
| 04D3 | i .FIXUP D |
| 04D3 | i(8D00000A): LDR SB, MT, MOD0 [Viewers] |
| 04D4 | i(42D80000): ADD R2, SB, 0H [data] |
| 04D5 | i(02290001): SUB R2, R2, R1 |
| 04D6 | i(D917E22C): BLNE MT [trap=2, pos=6114] |
| 04D7 | j(41000000): MOV R1, R0, 0H |
| 04D8 | j(A100001C): STR R1, R0, 1CH |
| 04D9 | k(80E00008): LDR R0, SP, 8H |
| 04DA | k(D117FD4C): BLEQ MT [trap=4, pos=6141] |
| 04DB | l(81E0000C): LDR R1, SP, CH |
| 04DC | l(80000004): LDR R0, R0, 4H |
| 04DD | l(01190000): SUB R1, R1, R0 |
| 04DE | l(E9FFFFDF): BNE -33 [04BEH] |
| RestoreTrack(T)m |
| 04DF | m(80E00008): LDR R0, SP, 8H |
| ENDn |
| 04E0 | n(F7FFFC7B): BL -901 [015CH] |
| END |
| ENDo CloseTrack; |
| 04E1 | o(8FE00000): LDR LNK, SP, 0H |
| 04E2 | o(4EE80028): ADD SP, SP, 28H |
| 04E3 | o(C700000F): B LNK |
| |
| PROCEDURE Broadcast* (VAR M: Display.FrameMsg); |
| VAR T, V: Display.Frame; |
| BEGINp T := FillerTrack.nextq;r |
| 04E4 | p .PROC 15 |
| 04E4 | p(4EE90014): SUB SP, SP, 14H |
| 04E5 | p(AFE00000): STR LNK, SP, 0H |
| 04E6 | p(A0E00004): STR R0, SP, 4H |
| 04E7 | p(A1E00008): STR R1, SP, 8H |
| 04E8 | q .FIXUP D |
| 04E8 | q(8D000015): LDR SB, MT, MOD0 [Viewers] |
| 04E9 | q(80D0005C): LDR R0, SB, 5CH [data] |
| 04EA | q(D118A84C): BLEQ MT [trap=4, pos=6312] |
| 04EB | r(80000000): LDR R0, R0, 0H |
| 04EC | r(A0E0000C): STR R0, SP, CH |
| WHILE T # FillerTrack DOs |
| 04ED | s(80E0000C): LDR R0, SP, CH |
| 04EE | s .FIXUP D |
| 04EE | s(8D000006): LDR SB, MT, MOD0 [Viewers] |
| 04EF | s(81D0005C): LDR R1, SB, 5CH [data] |
| 04F0 | s(00090001): SUB R0, R0, R1 |
| 04F1 | s(E100001F): BEQ 31 [0511H] |
| V := T.dsct;u |
| 04F2 | t(80E0000C): LDR R0, SP, CH |
| 04F3 | t(D118D74C): BLEQ MT [trap=4, pos=6359] |
| 04F4 | u(80000004): LDR R0, R0, 4H |
| 04F5 | u(A0E00010): STR R0, SP, 10H |
| REPEAT V := V.nextv;w V.handlex(Vy,z M)a UNTILb V = T.dscc;d |
| 04F6 | v(80E00010): LDR R0, SP, 10H |
| 04F7 | v(D118F24C): BLEQ MT [trap=4, pos=6386] |
| 04F8 | w(80000000): LDR R0, R0, 0H |
| 04F9 | w(A0E00010): STR R0, SP, 10H |
| 04FA | x(80E00010): LDR R0, SP, 10H |
| 04FB | x(D118FC4C): BLEQ MT [trap=4, pos=6396] |
| 04FC | y(80000018): LDR R0, R0, 18H |
| 04FD | y(4EE90004): SUB SP, SP, 4H |
| 04FE | y(A0E00000): STR R0, SP, 0H |
| 04FF | z(80E00014): LDR R0, SP, 14H |
| 0500 | a(81E00008): LDR R1, SP, 8H |
| 0501 | a(82E0000C): LDR R2, SP, CH |
| 0502 | b(83E00000): LDR R3, SP, 0H |
| 0503 | b(4EE80004): ADD SP, SP, 4H |
| 0504 | b(D119085C): BLEQ MT [trap=5, pos=6408] |
| 0505 | b(D7000003): BL R3 |
| 0506 | c(80E0000C): LDR R0, SP, CH |
| 0507 | c(D119124C): BLEQ MT [trap=4, pos=6418] |
| 0508 | d(81E00010): LDR R1, SP, 10H |
| 0509 | d(80000004): LDR R0, R0, 4H |
| 050A | d(01190000): SUB R1, R1, R0 |
| 050B | d(E9FFFFEA): BNE -22 [04F6H] |
| T := T.nexte |
| 050C | e(80E0000C): LDR R0, SP, CH |
| 050D | e(D119254C): BLEQ MT [trap=4, pos=6437] |
| ENDf |
| 050E | f(80000000): LDR R0, R0, 0H |
| 050F | f(A0E0000C): STR R0, SP, CH |
| 0510 | f(E7FFFFDC): B -36 [04EDH] |
| ENDg Broadcast; |
| 0511 | g(8FE00000): LDR LNK, SP, 0H |
| 0512 | g(4EE80014): ADD SP, SP, 14H |
| 0513 | g(C700000F): B LNK |
| |
| BEGINh backup := NIL;i curW := 0;j minH := 1;k DH := Display.Height;l |
| 0514 | h .PROC 0 |
| 0514 | h .ENTRYPOINT |
| 0514 | h(4EE90004): SUB SP, SP, 4H |
| 0515 | h(AFE00000): STR LNK, SP, 0H |
| 0516 | i(40000000): MOV R0, R0, 0H |
| 0517 | i .FIXUP D |
| 0517 | i(8D000029): LDR SB, MT, MOD0 [Viewers] |
| 0518 | i(A0D00064): STR R0, SB, 64H [data] |
| 0519 | j(40000000): MOV R0, R0, 0H |
| 051A | j(A0D00050): STR R0, SB, 50H |
| 051B | k(40000001): MOV R0, R0, 1H |
| 051C | k(A0D00054): STR R0, SB, 54H |
| 051D | l .FIXUP D |
| 051D | l(8D100006): LDR SB, MT, MOD1 [Display] |
| 051E | l(80D00005): LDR R0, SB, VAR5 |
| 051F | l .FIXUP D |
| 051F | l(8D000002): LDR SB, MT, MOD0 [Viewers] |
| 0520 | l(A0D00058): STR R0, SB, 58H [data] |
| NEW(FillerViewer);m FillerViewer.Xn := 0;o FillerViewer.Wp := inf;q FillerViewer.Yr := 0;s FillerViewer.Ht := DH;u |
| 0521 | m(40D80060): ADD R0, SB, 60H |
| 0522 | m(41D80000): ADD R1, SB, 0H |
| 0523 | m(D719950C): BL MT [trap=0, pos=6549] |
| 0524 | n .FIXUP D |
| 0524 | n(8D000005): LDR SB, MT, MOD0 [Viewers] |
| 0525 | n(80D00060): LDR R0, SB, 60H [data] |
| 0526 | n(D119A44C): BLEQ MT [trap=4, pos=6564] |
| 0527 | o(41000000): MOV R1, R0, 0H |
| 0528 | o(A1000008): STR R1, R0, 8H |
| 0529 | p(80D00060): LDR R0, SB, 60H |
| 052A | p(D119B94C): BLEQ MT [trap=4, pos=6585] |
| 052B | q(4100FFFF): MOV R1, R0, FFFFFFFFH |
| 052C | q(A1000010): STR R1, R0, 10H |
| 052D | r(80D00060): LDR R0, SB, 60H |
| 052E | r(D119D04C): BLEQ MT [trap=4, pos=6608] |
| 052F | s(41000000): MOV R1, R0, 0H |
| 0530 | s(A100000C): STR R1, R0, CH |
| 0531 | t(80D00060): LDR R0, SB, 60H |
| 0532 | t(D119E54C): BLEQ MT [trap=4, pos=6629] |
| 0533 | u(81D00058): LDR R1, SB, 58H |
| 0534 | u(A1000014): STR R1, R0, 14H |
| FillerViewer.nextv := FillerViewer;w |
| 0535 | v(80D00060): LDR R0, SB, 60H |
| 0536 | v(D11A004C): BLEQ MT [trap=4, pos=6656] |
| 0537 | w(81D00060): LDR R1, SB, 60H |
| 0538 | w(A1000000): STR R1, R0, 0H |
| NEW(FillerTrack);x |
| 0539 | x(40D8005C): ADD R0, SB, 5CH |
| 053A | x(41D80030): ADD R1, SB, 30H |
| 053B | x(D71A250C): BL MT [trap=0, pos=6693] |
| FillerTrack.Xy := 0;z FillerTrack.Wa := inf;b FillerTrack.Yc := 0;d FillerTrack.He := DH;f |
| 053C | y .FIXUP D |
| 053C | y(8D000018): LDR SB, MT, MOD0 [Viewers] |
| 053D | y(80D0005C): LDR R0, SB, 5CH [data] |
| 053E | y(D11A354C): BLEQ MT [trap=4, pos=6709] |
| 053F | z(41000000): MOV R1, R0, 0H |
| 0540 | z(A1000008): STR R1, R0, 8H |
| 0541 | a(80D0005C): LDR R0, SB, 5CH |
| 0542 | a(D11A494C): BLEQ MT [trap=4, pos=6729] |
| 0543 | b(4100FFFF): MOV R1, R0, FFFFFFFFH |
| 0544 | b(A1000010): STR R1, R0, 10H |
| 0545 | c(80D0005C): LDR R0, SB, 5CH |
| 0546 | c(D11A5F4C): BLEQ MT [trap=4, pos=6751] |
| 0547 | d(41000000): MOV R1, R0, 0H |
| 0548 | d(A100000C): STR R1, R0, CH |
| 0549 | e(80D0005C): LDR R0, SB, 5CH |
| 054A | e(D11A734C): BLEQ MT [trap=4, pos=6771] |
| 054B | f(81D00058): LDR R1, SB, 58H |
| 054C | f(A1000014): STR R1, R0, 14H |
| FillerTrack.dscg := FillerViewer;h FillerTrack.nexti := FillerTrack |
| 054D | g(80D0005C): LDR R0, SB, 5CH |
| 054E | g(D11A8C4C): BLEQ MT [trap=4, pos=6796] |
| 054F | h(81D00060): LDR R1, SB, 60H |
| 0550 | h(A1000004): STR R1, R0, 4H |
| 0551 | i(80D0005C): LDR R0, SB, 5CH |
| 0552 | i(D11AAE4C): BLEQ MT [trap=4, pos=6830] |
| ENDj Viewers.k |
| 0553 | j(81D0005C): LDR R1, SB, 5CH |
| 0554 | j(A1000000): STR R1, R0, 0H |
| 0555 | k(8FE00000): LDR LNK, SP, 0H |
| 0556 | k(4EE80004): ADD SP, SP, 4H |
| 0557 | k(C700000F): B LNK |