| MODULE Stars; (*NW 15.1.2013, 15.11.2013*) |
| | .MODULE Stars (KEY 0873A1AD, VERSION 1, SIZE 00000B50) |
| | .IMPORT Display (KEY 4C08D3EA) |
| | .IMPORT Viewers (KEY 25ABF199) |
| | .IMPORT Texts (KEY 0B9E9984) |
| | .IMPORT Fonts (KEY F4C9F557) |
| | .IMPORT Files (KEY 73F5D686) |
| | .IMPORT Oberon (KEY A89CCEE2) |
| | .IMPORT MenuViewers (KEY 245ACC30) |
| | .IMPORT TextFrames (KEY 650813D5) |
| | .TYPEDESC 00000020 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000100 00014006 FFFFFFFF FFFFFFFF 00000000 00000004 FFFFFFFF 00000020 00030007 FFFFFFFF FFFFFFFF FFFFFFFF 00000020 00044005 FFFFFFFF FFFFFFFF FFFFFFFF |
| | .DATA 2CH |
| | .STRING 84H "Stars" |
| | .STRING 8CH "Stars.Close System.Grow System.Copy Stars.Step Stars.Run Stars.Stop" |
| | .POINTER_REFERENCES 58H 5CH 60H 80H 74H |
| | .FIXUP T 12H |
| IMPORT SYSTEM, Display, Viewers, Texts, Oberon, MenuViewers, TextFrames; |
| |
| CONST N = 6; (*nof stars*) |
| w = 16; (*width of star*) |
| interval = 200; (*millisec*) |
| |
| TYPE Frame = POINTER TO FrameDesc; |
| Pos = RECORD x, y, dx, dy: INTEGER END ; |
| FrameDesc = RECORD (Display.FrameDesc) s: ARRAY N OF Pos END ; |
| RestoreMsg = RECORD (Display.FrameMsg) END ; |
| StepMsg = RECORD (Display.FrameMsg) END ; |
| |
| VAR T: Oberon.Task; |
| W: Texts.Writer; |
| |
| PROCEDURE Draw(x, y: INTEGER); |
| BEGINa Display.CopyPattern(Display.white,b Display.star,c x,d y,e Display.invert)f |
| 0000 | a(4EE9000C): SUB SP, SP, CH |
| 0001 | a(AFE00000): STR LNK, SP, 0H |
| 0002 | a(A0E00004): STR R0, SP, 4H |
| 0003 | a(A1E00008): STR R1, SP, 8H |
| 0004 | b(40000001): MOV R0, R0, 1H |
| 0005 | c .FIXUP D |
| 0005 | c(8D100005): LDR SB, MT, MOD1 [Display] |
| 0006 | c(81D00007): LDR R1, SB, VAR7 |
| 0007 | d(82E00004): LDR R2, SP, 4H |
| 0008 | e(83E00008): LDR R3, SP, 8H |
| 0009 | f(44000002): MOV R4, R0, 2H |
| ENDg Draw; |
| 000A | g .FIXUP P |
| 000A | g(F711000A): BL MOD1 [Display] PROC16 |
| 000B | g(8FE00000): LDR LNK, SP, 0H |
| 000C | g(4EE8000C): ADD SP, SP, CH |
| 000D | g(C700000F): B LNK |
| |
| PROCEDURE Restore(F: Frame); |
| VAR x0, y0: INTEGER; |
| BEGINh Oberon.RemoveMarks(F.Xi,j F.Yk,l F.Wm,n F.Ho)p;q |
| 000E | h(4EE90010): SUB SP, SP, 10H |
| 000F | h(AFE00000): STR LNK, SP, 0H |
| 0010 | h(A0E00004): STR R0, SP, 4H |
| 0011 | i(80E00004): LDR R0, SP, 4H |
| 0012 | i(D102CE4C): BLEQ MT [trap=4, pos=718] |
| 0013 | j(80000008): LDR R0, R0, 8H |
| 0014 | k(81E00004): LDR R1, SP, 4H |
| 0015 | k(D102D34C): BLEQ MT [trap=4, pos=723] |
| 0016 | l(8110000C): LDR R1, R1, CH |
| 0017 | m(82E00004): LDR R2, SP, 4H |
| 0018 | m(D102D84C): BLEQ MT [trap=4, pos=728] |
| 0019 | n(82200010): LDR R2, R2, 10H |
| 001A | o(83E00004): LDR R3, SP, 4H |
| 001B | o(D102DD4C): BLEQ MT [trap=4, pos=733] |
| 001C | p(83300014): LDR R3, R3, 14H |
| 001D | q .FIXUP P |
| 001D | q(F761B013): BL MOD6 [Oberon] PROC27 |
| Display.ReplConst(0,r F.Xs+1,t F.Yu,v F.Ww-1,x F.Hy,z 0)a;b |
| 001E | r(40000000): MOV R0, R0, 0H |
| 001F | s(81E00004): LDR R1, SP, 4H |
| 0020 | s(D102FC4C): BLEQ MT [trap=4, pos=764] |
| 0021 | t(81100008): LDR R1, R1, 8H |
| 0022 | t(41180001): ADD R1, R1, 1H |
| 0023 | u(82E00004): LDR R2, SP, 4H |
| 0024 | u(D103034C): BLEQ MT [trap=4, pos=771] |
| 0025 | v(8220000C): LDR R2, R2, CH |
| 0026 | w(83E00004): LDR R3, SP, 4H |
| 0027 | w(D103084C): BLEQ MT [trap=4, pos=776] |
| 0028 | x(83300010): LDR R3, R3, 10H |
| 0029 | x(43390001): SUB R3, R3, 1H |
| 002A | y(84E00004): LDR R4, SP, 4H |
| 002B | y(D1030F4C): BLEQ MT [trap=4, pos=783] |
| 002C | z(84400014): LDR R4, R4, 14H |
| 002D | a(45000000): MOV R5, R0, 0H |
| 002E | b .FIXUP P |
| 002E | b(F710F011): BL MOD1 [Display] PROC15 |
| x0 := F.Wc DIV 2 +d F.Xe;f y0 := F.Hg DIV 2 +h F.Yi;j |
| 002F | c(80E00004): LDR R0, SP, 4H |
| 0030 | c(D103224C): BLEQ MT [trap=4, pos=802] |
| 0031 | d(80000010): LDR R0, R0, 10H |
| 0032 | d(40020001): ASR R0, R0, 1H |
| 0033 | e(81E00004): LDR R1, SP, 4H |
| 0034 | e(D1032E4C): BLEQ MT [trap=4, pos=814] |
| 0035 | f(81100008): LDR R1, R1, 8H |
| 0036 | f(00080001): ADD R0, R0, R1 |
| 0037 | f(A0E00008): STR R0, SP, 8H |
| 0038 | g(80E00004): LDR R0, SP, 4H |
| 0039 | g(D103394C): BLEQ MT [trap=4, pos=825] |
| 003A | h(80000014): LDR R0, R0, 14H |
| 003B | h(40020001): ASR R0, R0, 1H |
| 003C | i(81E00004): LDR R1, SP, 4H |
| 003D | i(D103454C): BLEQ MT [trap=4, pos=837] |
| 003E | j(8110000C): LDR R1, R1, CH |
| 003F | j(00080001): ADD R0, R0, R1 |
| 0040 | j(A0E0000C): STR R0, SP, CH |
| F.sk[0].x := x0;l F.sm[0].y := y0;n F.so[0].dx := 2;p F.sq[0].dy := 4;r Draw(F.ss[0].x,t F.su[0].y)v;w |
| 0041 | k(80E00004): LDR R0, SP, 4H |
| 0042 | k(D1034E4C): BLEQ MT [trap=4, pos=846] |
| 0043 | l(81E00008): LDR R1, SP, 8H |
| 0044 | l(A100001C): STR R1, R0, 1CH |
| 0045 | m(80E00004): LDR R0, SP, 4H |
| 0046 | m(D1035E4C): BLEQ MT [trap=4, pos=862] |
| 0047 | n(81E0000C): LDR R1, SP, CH |
| 0048 | n(A1000020): STR R1, R0, 20H |
| 0049 | o(80E00004): LDR R0, SP, 4H |
| 004A | o(D1036E4C): BLEQ MT [trap=4, pos=878] |
| 004B | p(41000002): MOV R1, R0, 2H |
| 004C | p(A1000024): STR R1, R0, 24H |
| 004D | q(80E00004): LDR R0, SP, 4H |
| 004E | q(D1037E4C): BLEQ MT [trap=4, pos=894] |
| 004F | r(41000004): MOV R1, R0, 4H |
| 0050 | r(A1000028): STR R1, R0, 28H |
| 0051 | s(80E00004): LDR R0, SP, 4H |
| 0052 | s(D103934C): BLEQ MT [trap=4, pos=915] |
| 0053 | t(8000001C): LDR R0, R0, 1CH |
| 0054 | u(81E00004): LDR R1, SP, 4H |
| 0055 | u(D1039D4C): BLEQ MT [trap=4, pos=925] |
| 0056 | v(81100020): LDR R1, R1, 20H |
| 0057 | w(F7FFFFA8): BL -88 [0000H] |
| F.sx[1].x := x0;y F.sz[1].y := y0;a F.sb[1].dx := 3;c F.sd[1].dy := 9;e Draw(F.sf[1].x,g F.sh[1].y)i;j |
| 0058 | x(80E00004): LDR R0, SP, 4H |
| 0059 | x(D103AC4C): BLEQ MT [trap=4, pos=940] |
| 005A | y(81E00008): LDR R1, SP, 8H |
| 005B | y(A100002C): STR R1, R0, 2CH |
| 005C | z(80E00004): LDR R0, SP, 4H |
| 005D | z(D103BC4C): BLEQ MT [trap=4, pos=956] |
| 005E | a(81E0000C): LDR R1, SP, CH |
| 005F | a(A1000030): STR R1, R0, 30H |
| 0060 | b(80E00004): LDR R0, SP, 4H |
| 0061 | b(D103CC4C): BLEQ MT [trap=4, pos=972] |
| 0062 | c(41000003): MOV R1, R0, 3H |
| 0063 | c(A1000034): STR R1, R0, 34H |
| 0064 | d(80E00004): LDR R0, SP, 4H |
| 0065 | d(D103DC4C): BLEQ MT [trap=4, pos=988] |
| 0066 | e(41000009): MOV R1, R0, 9H |
| 0067 | e(A1000038): STR R1, R0, 38H |
| 0068 | f(80E00004): LDR R0, SP, 4H |
| 0069 | f(D103F14C): BLEQ MT [trap=4, pos=1009] |
| 006A | g(8000002C): LDR R0, R0, 2CH |
| 006B | h(81E00004): LDR R1, SP, 4H |
| 006C | h(D103FB4C): BLEQ MT [trap=4, pos=1019] |
| 006D | i(81100030): LDR R1, R1, 30H |
| 006E | j(F7FFFF91): BL -111 [0000H] |
| F.sk[2].x := x0;l F.sm[2].y := y0;n F.so[2].dx := -5;p F.sq[2].dy := -2;r Draw(F.ss[2].x,t F.su[2].y)v;w |
| 006F | k(80E00004): LDR R0, SP, 4H |
| 0070 | k(D1040A4C): BLEQ MT [trap=4, pos=1034] |
| 0071 | l(81E00008): LDR R1, SP, 8H |
| 0072 | l(A100003C): STR R1, R0, 3CH |
| 0073 | m(80E00004): LDR R0, SP, 4H |
| 0074 | m(D1041A4C): BLEQ MT [trap=4, pos=1050] |
| 0075 | n(81E0000C): LDR R1, SP, CH |
| 0076 | n(A1000040): STR R1, R0, 40H |
| 0077 | o(80E00004): LDR R0, SP, 4H |
| 0078 | o(D1042A4C): BLEQ MT [trap=4, pos=1066] |
| 0079 | p(5100FFFB): MOV R1, R0, FFFFFFFBH |
| 007A | p(A1000044): STR R1, R0, 44H |
| 007B | q(80E00004): LDR R0, SP, 4H |
| 007C | q(D1043B4C): BLEQ MT [trap=4, pos=1083] |
| 007D | r(5100FFFE): MOV R1, R0, FFFFFFFEH |
| 007E | r(A1000048): STR R1, R0, 48H |
| 007F | s(80E00004): LDR R0, SP, 4H |
| 0080 | s(D104514C): BLEQ MT [trap=4, pos=1105] |
| 0081 | t(8000003C): LDR R0, R0, 3CH |
| 0082 | u(81E00004): LDR R1, SP, 4H |
| 0083 | u(D1045B4C): BLEQ MT [trap=4, pos=1115] |
| 0084 | v(81100040): LDR R1, R1, 40H |
| 0085 | w(F7FFFF7A): BL -134 [0000H] |
| F.sx[3].x := x0;y F.sz[3].y := y0;a F.sb[3].dx := -10;c F.sd[3].dy := 8;e Draw(F.sf[3].x,g F.sh[3].y)i;j |
| 0086 | x(80E00004): LDR R0, SP, 4H |
| 0087 | x(D1046A4C): BLEQ MT [trap=4, pos=1130] |
| 0088 | y(81E00008): LDR R1, SP, 8H |
| 0089 | y(A100004C): STR R1, R0, 4CH |
| 008A | z(80E00004): LDR R0, SP, 4H |
| 008B | z(D1047A4C): BLEQ MT [trap=4, pos=1146] |
| 008C | a(81E0000C): LDR R1, SP, CH |
| 008D | a(A1000050): STR R1, R0, 50H |
| 008E | b(80E00004): LDR R0, SP, 4H |
| 008F | b(D1048A4C): BLEQ MT [trap=4, pos=1162] |
| 0090 | c(5100FFF6): MOV R1, R0, FFFFFFF6H |
| 0091 | c(A1000054): STR R1, R0, 54H |
| 0092 | d(80E00004): LDR R0, SP, 4H |
| 0093 | d(D1049C4C): BLEQ MT [trap=4, pos=1180] |
| 0094 | e(41000008): MOV R1, R0, 8H |
| 0095 | e(A1000058): STR R1, R0, 58H |
| 0096 | f(80E00004): LDR R0, SP, 4H |
| 0097 | f(D104B14C): BLEQ MT [trap=4, pos=1201] |
| 0098 | g(8000004C): LDR R0, R0, 4CH |
| 0099 | h(81E00004): LDR R1, SP, 4H |
| 009A | h(D104BB4C): BLEQ MT [trap=4, pos=1211] |
| 009B | i(81100050): LDR R1, R1, 50H |
| 009C | j(F7FFFF63): BL -157 [0000H] |
| F.sk[4].x := x0;l F.sm[4].y := y0;n F.so[4].dx := -7;p F.sq[4].dy := -4;r Draw(F.ss[4].x,t F.su[4].y)v;w |
| 009D | k(80E00004): LDR R0, SP, 4H |
| 009E | k(D104CA4C): BLEQ MT [trap=4, pos=1226] |
| 009F | l(81E00008): LDR R1, SP, 8H |
| 00A0 | l(A100005C): STR R1, R0, 5CH |
| 00A1 | m(80E00004): LDR R0, SP, 4H |
| 00A2 | m(D104DA4C): BLEQ MT [trap=4, pos=1242] |
| 00A3 | n(81E0000C): LDR R1, SP, CH |
| 00A4 | n(A1000060): STR R1, R0, 60H |
| 00A5 | o(80E00004): LDR R0, SP, 4H |
| 00A6 | o(D104EA4C): BLEQ MT [trap=4, pos=1258] |
| 00A7 | p(5100FFF9): MOV R1, R0, FFFFFFF9H |
| 00A8 | p(A1000064): STR R1, R0, 64H |
| 00A9 | q(80E00004): LDR R0, SP, 4H |
| 00AA | q(D104FB4C): BLEQ MT [trap=4, pos=1275] |
| 00AB | r(5100FFFC): MOV R1, R0, FFFFFFFCH |
| 00AC | r(A1000068): STR R1, R0, 68H |
| 00AD | s(80E00004): LDR R0, SP, 4H |
| 00AE | s(D105114C): BLEQ MT [trap=4, pos=1297] |
| 00AF | t(8000005C): LDR R0, R0, 5CH |
| 00B0 | u(81E00004): LDR R1, SP, 4H |
| 00B1 | u(D1051B4C): BLEQ MT [trap=4, pos=1307] |
| 00B2 | v(81100060): LDR R1, R1, 60H |
| 00B3 | w(F7FFFF4C): BL -180 [0000H] |
| F.sx[5].x := x0;y F.sz[5].y := y0;a F.sb[5].dx := 8;c F.sd[5].dy := -10;e Draw(F.sf[5].x,g F.sh[5].y)i |
| 00B4 | x(80E00004): LDR R0, SP, 4H |
| 00B5 | x(D1052A4C): BLEQ MT [trap=4, pos=1322] |
| 00B6 | y(81E00008): LDR R1, SP, 8H |
| 00B7 | y(A100006C): STR R1, R0, 6CH |
| 00B8 | z(80E00004): LDR R0, SP, 4H |
| 00B9 | z(D1053A4C): BLEQ MT [trap=4, pos=1338] |
| 00BA | a(81E0000C): LDR R1, SP, CH |
| 00BB | a(A1000070): STR R1, R0, 70H |
| 00BC | b(80E00004): LDR R0, SP, 4H |
| 00BD | b(D1054A4C): BLEQ MT [trap=4, pos=1354] |
| 00BE | c(41000008): MOV R1, R0, 8H |
| 00BF | c(A1000074): STR R1, R0, 74H |
| 00C0 | d(80E00004): LDR R0, SP, 4H |
| 00C1 | d(D1055A4C): BLEQ MT [trap=4, pos=1370] |
| 00C2 | e(5100FFF6): MOV R1, R0, FFFFFFF6H |
| 00C3 | e(A1000078): STR R1, R0, 78H |
| 00C4 | f(80E00004): LDR R0, SP, 4H |
| 00C5 | f(D105714C): BLEQ MT [trap=4, pos=1393] |
| 00C6 | g(8000006C): LDR R0, R0, 6CH |
| 00C7 | h(81E00004): LDR R1, SP, 4H |
| 00C8 | h(D1057B4C): BLEQ MT [trap=4, pos=1403] |
| 00C9 | i(81100070): LDR R1, R1, 70H |
| ENDj Restore; |
| 00CA | j(F7FFFF35): BL -203 [0000H] |
| 00CB | j(8FE00000): LDR LNK, SP, 0H |
| 00CC | j(4EE80010): ADD SP, SP, 10H |
| 00CD | j(C700000F): B LNK |
| |
| PROCEDURE Move(F: Frame; VAR p: Pos); |
| VAR X1, Y1: INTEGER; |
| BEGINk X1 := F.Xl + F.Wm -n w;o Y1 := F.Yp + F.Hq -r w;s |
| 00CE | k(4EE90018): SUB SP, SP, 18H |
| 00CF | k(AFE00000): STR LNK, SP, 0H |
| 00D0 | k(A0E00004): STR R0, SP, 4H |
| 00D1 | k(A1E00008): STR R1, SP, 8H |
| 00D2 | k(A2E0000C): STR R2, SP, CH |
| 00D3 | l(80E00004): LDR R0, SP, 4H |
| 00D4 | l(D105E44C): BLEQ MT [trap=4, pos=1508] |
| 00D5 | m(81E00004): LDR R1, SP, 4H |
| 00D6 | m(D105EA4C): BLEQ MT [trap=4, pos=1514] |
| 00D7 | n(80000008): LDR R0, R0, 8H |
| 00D8 | n(81100010): LDR R1, R1, 10H |
| 00D9 | n(00080001): ADD R0, R0, R1 |
| 00DA | o(40090010): SUB R0, R0, 10H |
| 00DB | o(A0E00010): STR R0, SP, 10H |
| 00DC | p(80E00004): LDR R0, SP, 4H |
| 00DD | p(D105F94C): BLEQ MT [trap=4, pos=1529] |
| 00DE | q(81E00004): LDR R1, SP, 4H |
| 00DF | q(D105FF4C): BLEQ MT [trap=4, pos=1535] |
| 00E0 | r(8000000C): LDR R0, R0, CH |
| 00E1 | r(81100014): LDR R1, R1, 14H |
| 00E2 | r(00080001): ADD R0, R0, R1 |
| 00E3 | s(40090010): SUB R0, R0, 10H |
| 00E4 | s(A0E00014): STR R0, SP, 14H |
| Draw(p.x,t p.y)u;v INC(p.x, p.dx);w INC(p.y, p.dy);x |
| 00E5 | t(80E00008): LDR R0, SP, 8H |
| 00E6 | t(80000000): LDR R0, R0, 0H |
| 00E7 | u(81E00008): LDR R1, SP, 8H |
| 00E8 | u(81100004): LDR R1, R1, 4H |
| 00E9 | v(F7FFFF16): BL -234 [0000H] |
| 00EA | w(80E00008): LDR R0, SP, 8H |
| 00EB | w(81000000): LDR R1, R0, 0H |
| 00EC | w(82E00008): LDR R2, SP, 8H |
| 00ED | w(82200008): LDR R2, R2, 8H |
| 00EE | w(01180002): ADD R1, R1, R2 |
| 00EF | w(A1000000): STR R1, R0, 0H |
| 00F0 | x(80E00008): LDR R0, SP, 8H |
| 00F1 | x(40080004): ADD R0, R0, 4H |
| 00F2 | x(81000000): LDR R1, R0, 0H |
| 00F3 | x(82E00008): LDR R2, SP, 8H |
| 00F4 | x(8220000C): LDR R2, R2, CH |
| 00F5 | x(01180002): ADD R1, R1, R2 |
| 00F6 | x(A1000000): STR R1, R0, 0H |
| IF p.x < F.Xy THENz p.x := 2*F.Xa -b p.x;c p.dx := -p.dx ELSIFd pe.x >= X1 THENf p.x := 2*X1 -g p.x;h p.dx := -p.dx ENDi ; |
| 00F7 | y(80E00004): LDR R0, SP, 4H |
| 00F8 | y(D106494C): BLEQ MT [trap=4, pos=1609] |
| 00F9 | z(81E00008): LDR R1, SP, 8H |
| 00FA | z(81100000): LDR R1, R1, 0H |
| 00FB | z(80000008): LDR R0, R0, 8H |
| 00FC | z(01190000): SUB R1, R1, R0 |
| 00FD | z(ED000010): BGE 16 [010EH] |
| 00FE | a(80E00004): LDR R0, SP, 4H |
| 00FF | a(D1065B4C): BLEQ MT [trap=4, pos=1627] |
| 0100 | b(80000008): LDR R0, R0, 8H |
| 0101 | b(40010001): LSL R0, R0, 1H |
| 0102 | c(81E00008): LDR R1, SP, 8H |
| 0103 | c(81100000): LDR R1, R1, 0H |
| 0104 | c(00090001): SUB R0, R0, R1 |
| 0105 | c(81E00008): LDR R1, SP, 8H |
| 0106 | c(A0100000): STR R0, R1, 0H |
| 0107 | d(80E00008): LDR R0, SP, 8H |
| 0108 | d(80000008): LDR R0, R0, 8H |
| 0109 | d(41000000): MOV R1, R0, 0H |
| 010A | d(00190000): SUB R0, R1, R0 |
| 010B | d(81E00008): LDR R1, SP, 8H |
| 010C | d(A0100008): STR R0, R1, 8H |
| 010D | e(E7000012): B 18 [0120H] |
| 010E | f(80E00008): LDR R0, SP, 8H |
| 010F | f(80000000): LDR R0, R0, 0H |
| 0110 | f(81E00010): LDR R1, SP, 10H |
| 0111 | f(00090001): SUB R0, R0, R1 |
| 0112 | f(E500000D): BLT 13 [0120H] |
| 0113 | g(80E00010): LDR R0, SP, 10H |
| 0114 | g(40010001): LSL R0, R0, 1H |
| 0115 | h(81E00008): LDR R1, SP, 8H |
| 0116 | h(81100000): LDR R1, R1, 0H |
| 0117 | h(00090001): SUB R0, R0, R1 |
| 0118 | h(81E00008): LDR R1, SP, 8H |
| 0119 | h(A0100000): STR R0, R1, 0H |
| 011A | i(80E00008): LDR R0, SP, 8H |
| 011B | i(80000008): LDR R0, R0, 8H |
| 011C | i(41000000): MOV R1, R0, 0H |
| 011D | i(00190000): SUB R0, R1, R0 |
| 011E | i(81E00008): LDR R1, SP, 8H |
| 011F | i(A0100008): STR R0, R1, 8H |
| IF p.y < F.Yj THENk p.y := 2*F.Yl -m p.y;n p.dy := -p.dy ELSIFo pp.y >= Y1 THENq p.y := 2*Y1 -r p.y;s p.dy := -p.dy ENDt ; |
| 0120 | j(80E00004): LDR R0, SP, 4H |
| 0121 | j(D106BD4C): BLEQ MT [trap=4, pos=1725] |
| 0122 | k(81E00008): LDR R1, SP, 8H |
| 0123 | k(81100004): LDR R1, R1, 4H |
| 0124 | k(8000000C): LDR R0, R0, CH |
| 0125 | k(01190000): SUB R1, R1, R0 |
| 0126 | k(ED000010): BGE 16 [0137H] |
| 0127 | l(80E00004): LDR R0, SP, 4H |
| 0128 | l(D106CF4C): BLEQ MT [trap=4, pos=1743] |
| 0129 | m(8000000C): LDR R0, R0, CH |
| 012A | m(40010001): LSL R0, R0, 1H |
| 012B | n(81E00008): LDR R1, SP, 8H |
| 012C | n(81100004): LDR R1, R1, 4H |
| 012D | n(00090001): SUB R0, R0, R1 |
| 012E | n(81E00008): LDR R1, SP, 8H |
| 012F | n(A0100004): STR R0, R1, 4H |
| 0130 | o(80E00008): LDR R0, SP, 8H |
| 0131 | o(8000000C): LDR R0, R0, CH |
| 0132 | o(41000000): MOV R1, R0, 0H |
| 0133 | o(00190000): SUB R0, R1, R0 |
| 0134 | o(81E00008): LDR R1, SP, 8H |
| 0135 | o(A010000C): STR R0, R1, CH |
| 0136 | p(E7000012): B 18 [0149H] |
| 0137 | q(80E00008): LDR R0, SP, 8H |
| 0138 | q(80000004): LDR R0, R0, 4H |
| 0139 | q(81E00014): LDR R1, SP, 14H |
| 013A | q(00090001): SUB R0, R0, R1 |
| 013B | q(E500000D): BLT 13 [0149H] |
| 013C | r(80E00014): LDR R0, SP, 14H |
| 013D | r(40010001): LSL R0, R0, 1H |
| 013E | s(81E00008): LDR R1, SP, 8H |
| 013F | s(81100004): LDR R1, R1, 4H |
| 0140 | s(00090001): SUB R0, R0, R1 |
| 0141 | s(81E00008): LDR R1, SP, 8H |
| 0142 | s(A0100004): STR R0, R1, 4H |
| 0143 | t(80E00008): LDR R0, SP, 8H |
| 0144 | t(8000000C): LDR R0, R0, CH |
| 0145 | t(41000000): MOV R1, R0, 0H |
| 0146 | t(00190000): SUB R0, R1, R0 |
| 0147 | t(81E00008): LDR R1, SP, 8H |
| 0148 | t(A010000C): STR R0, R1, CH |
| Draw(p.x,u p.y)v |
| 0149 | u(80E00008): LDR R0, SP, 8H |
| 014A | u(80000000): LDR R0, R0, 0H |
| 014B | v(81E00008): LDR R1, SP, 8H |
| 014C | v(81100004): LDR R1, R1, 4H |
| ENDw Move; |
| 014D | w(F7FFFEB2): BL -334 [0000H] |
| 014E | w(8FE00000): LDR LNK, SP, 0H |
| 014F | w(4EE80018): ADD SP, SP, 18H |
| 0150 | w(C700000F): B LNK |
| |
| PROCEDURE Steps(F: Frame); |
| VAR i: INTEGER; |
| BEGINx i := 0;y |
| 0151 | x(4EE9000C): SUB SP, SP, CH |
| 0152 | x(AFE00000): STR LNK, SP, 0H |
| 0153 | x(A0E00004): STR R0, SP, 4H |
| 0154 | y(40000000): MOV R0, R0, 0H |
| 0155 | y(A0E00008): STR R0, SP, 8H |
| WHILE i < N DOz Move(F,a F.sb[i]c)d;e INC(i) ENDf |
| 0156 | z(80E00008): LDR R0, SP, 8H |
| 0157 | z(40090006): SUB R0, R0, 6H |
| 0158 | z(ED000010): BGE 16 [0169H] |
| 0159 | a(80E00004): LDR R0, SP, 4H |
| 015A | b(81E00004): LDR R1, SP, 4H |
| 015B | b(D107A24C): BLEQ MT [trap=4, pos=1954] |
| 015C | c(82E00008): LDR R2, SP, 8H |
| 015D | c(43290006): SUB R3, R2, 6H |
| 015E | c(DA07A51C): BLCC MT [trap=1, pos=1957] |
| 015F | c(422A0010): MUL R2, R2, 10H |
| 0160 | c(01180002): ADD R1, R1, R2 |
| 0161 | d(4118001C): ADD R1, R1, 1CH |
| 0162 | d .FIXUP D |
| 0162 | d(8D00015D): LDR SB, MT, MOD0 [Stars] |
| 0163 | d(42D80000): ADD R2, SB, 0H [data] |
| 0164 | e(F7FFFF69): BL -151 [00CEH] |
| 0165 | f(80E00008): LDR R0, SP, 8H |
| 0166 | f(40080001): ADD R0, R0, 1H |
| 0167 | f(A0E00008): STR R0, SP, 8H |
| 0168 | f(E7FFFFED): B -19 [0156H] |
| ENDg Steps; |
| 0169 | g(8FE00000): LDR LNK, SP, 0H |
| 016A | g(4EE8000C): ADD SP, SP, CH |
| 016B | g(C700000F): B LNK |
| |
| PROCEDURE Handle(F: Display.Frame; VAR M: Display.FrameMsg); |
| VAR F1: Frame; |
| BEGINh |
| 016C | h(4EE90014): SUB SP, SP, 14H |
| 016D | h(AFE00000): STR LNK, SP, 0H |
| 016E | h(A0E00004): STR R0, SP, 4H |
| 016F | h(A1E00008): STR R1, SP, 8H |
| 0170 | h(A2E0000C): STR R2, SP, CH |
| CASE F OF Frame:i |
| 0171 | i(80E00004): LDR R0, SP, 4H |
| 0172 | i(E1000005): BEQ 5 [0178H] |
| 0173 | i(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 0174 | i(81100004): LDR R1, R1, 4H |
| 0175 | i .FIXUP D |
| 0175 | i(8D000013): LDR SB, MT, MOD0 [Stars] |
| 0176 | i(42D80014): ADD R2, SB, 14H [data] |
| 0177 | i(02290001): SUB R2, R2, R1 |
| 0178 | i(E900005E): BNE 94 [01D7H] |
| CASE M OF |
| Oberon.InputMsg:j |
| 0179 | j(80E0000C): LDR R0, SP, CH |
| 017A | j(80000004): LDR R0, R0, 4H |
| 017B | j .FIXUP D |
| 017B | j(8D600006): LDR SB, MT, MOD6 [Oberon] |
| 017C | j(41D80003): ADD R1, SB, VAR3 |
| 017D | j(01190000): SUB R1, R1, R0 |
| 017E | j(E900000A): BNE 10 [0189H] |
| IF M(Oberon.InputMsg).id = Oberon.track THENk |
| 017F | k(80E00008): LDR R0, SP, 8H |
| 0180 | k(80000000): LDR R0, R0, 0H |
| 0181 | k(40090001): SUB R0, R0, 1H |
| 0182 | k(E9000005): BNE 5 [0188H] |
| Oberon.DrawMouseArrow(M(Oberon.InputMsg).X,l M(Oberon.InputMsg).Y)m |
| 0183 | l(80E00008): LDR R0, SP, 8H |
| 0184 | l(80000008): LDR R0, R0, 8H |
| 0185 | m(81E00008): LDR R1, SP, 8H |
| 0186 | m(8110000C): LDR R1, R1, CH |
| ENDn |
| 0187 | n .FIXUP P |
| 0187 | n(F7618159): BL MOD6 [Oberon] PROC24 |
| | StepMsgo:p Steps(F)q |
| 0188 | o(E700004E): B 78 [01D7H] |
| 0189 | p(80E0000C): LDR R0, SP, CH |
| 018A | p(80000004): LDR R0, R0, 4H |
| 018B | p .FIXUP D |
| 018B | p(8D000010): LDR SB, MT, MOD0 [Stars] |
| 018C | p(41D80044): ADD R1, SB, 44H [data] |
| 018D | p(01190000): SUB R1, R1, R0 |
| 018E | p(E9000003): BNE 3 [0192H] |
| 018F | q(80E00004): LDR R0, SP, 4H |
| |r RestoreMsgs:t Restore(F)u |
| 0190 | r(F7FFFFC0): BL -64 [0151H] |
| 0191 | s(E7000045): B 69 [01D7H] |
| 0192 | t(80E0000C): LDR R0, SP, CH |
| 0193 | t(80000004): LDR R0, R0, 4H |
| 0194 | t .FIXUP D |
| 0194 | t(8D000009): LDR SB, MT, MOD0 [Stars] |
| 0195 | t(41D80030): ADD R1, SB, 30H [data] |
| 0196 | t(01190000): SUB R1, R1, R0 |
| 0197 | t(E9000003): BNE 3 [019BH] |
| 0198 | u(80E00004): LDR R0, SP, 4H |
| |v Oberonw.CopyMsg:x Oberon.Remove(T)y;z NEW(F1);a F1^ :=b F^;c M.F := F1 |
| 0199 | v(F7FFFE74): BL -396 [000EH] |
| 019A | w(E700003C): B 60 [01D7H] |
| 019B | x(80E0000C): LDR R0, SP, CH |
| 019C | x(80000004): LDR R0, R0, 4H |
| 019D | x .FIXUP D |
| 019D | x(8D600009): LDR SB, MT, MOD6 [Oberon] |
| 019E | x(41D80006): ADD R1, SB, VAR6 |
| 019F | x(01190000): SUB R1, R1, R0 |
| 01A0 | x(E9000016): BNE 22 [01B7H] |
| 01A1 | y .FIXUP D |
| 01A1 | y(8D000004): LDR SB, MT, MOD0 [Stars] |
| 01A2 | y(80D00058): LDR R0, SB, 58H [data] |
| 01A3 | z .FIXUP P |
| 01A3 | z(F762C01C): BL MOD6 [Oberon] PROC44 |
| 01A4 | a(40E80010): ADD R0, SP, 10H |
| 01A5 | a .FIXUP D |
| 01A5 | a(8D000004): LDR SB, MT, MOD0 [Stars] |
| 01A6 | a(41D80014): ADD R1, SB, 14H [data] |
| 01A7 | a(D709570C): BL MT [trap=0, pos=2391] |
| 01A8 | b(80E00010): LDR R0, SP, 10H |
| 01A9 | b(D1095E4C): BLEQ MT [trap=4, pos=2398] |
| 01AA | c(81E00004): LDR R1, SP, 4H |
| 01AB | c(D109624C): BLEQ MT [trap=4, pos=2402] |
| 01AC | c(4200001F): MOV R2, R0, 1FH |
| 01AD | c(83100000): LDR R3, R1, 0H |
| 01AE | c(41180004): ADD R1, R1, 4H |
| 01AF | c(A3000000): STR R3, R0, 0H |
| 01B0 | c(40080004): ADD R0, R0, 4H |
| 01B1 | c(42290001): SUB R2, R2, 1H |
| 01B2 | c(E9FFFFFA): BNE -6 [01ADH] |
| |d MenuViewerse.ModifyMsg:f |
| 01B3 | d(80E00010): LDR R0, SP, 10H |
| 01B4 | d(81E00008): LDR R1, SP, 8H |
| 01B5 | d(A0100000): STR R0, R1, 0H |
| 01B6 | e(E7000020): B 32 [01D7H] |
| 01B7 | f(80E0000C): LDR R0, SP, CH |
| 01B8 | f(80000004): LDR R0, R0, 4H |
| 01B9 | f .FIXUP D |
| 01B9 | f(8D700014): LDR SB, MT, MOD7 [MenuViewers] |
| 01BA | f(41D80002): ADD R1, SB, VAR2 |
| 01BB | f(01190000): SUB R1, R1, R0 |
| 01BC | f(E900001A): BNE 26 [01D7H] |
| IF (M.Y # F.Yg)h OR (iM.H # F.Hj)k THENl F.Ym := M.Y;n F.Ho := M.H;p Restore(F)q ENDr |
| 01BD | g(80E00004): LDR R0, SP, 4H |
| 01BE | g(D109A14C): BLEQ MT [trap=4, pos=2465] |
| 01BF | h(81E00008): LDR R1, SP, 8H |
| 01C0 | h(81100008): LDR R1, R1, 8H |
| 01C1 | h(8000000C): LDR R0, R0, CH |
| 01C2 | h(01190000): SUB R1, R1, R0 |
| 01C3 | i(E9000007): BNE 7 [01CBH] |
| 01C4 | j(80E00004): LDR R0, SP, 4H |
| 01C5 | j(D109B04C): BLEQ MT [trap=4, pos=2480] |
| 01C6 | k(81E00008): LDR R1, SP, 8H |
| 01C7 | k(8110000C): LDR R1, R1, CH |
| 01C8 | k(80000014): LDR R0, R0, 14H |
| 01C9 | k(01190000): SUB R1, R1, R0 |
| 01CA | l(E100000C): BEQ 12 [01D7H] |
| 01CB | m(80E00004): LDR R0, SP, 4H |
| 01CC | m(D109BA4C): BLEQ MT [trap=4, pos=2490] |
| 01CD | n(81E00008): LDR R1, SP, 8H |
| 01CE | n(81100008): LDR R1, R1, 8H |
| 01CF | n(A100000C): STR R1, R0, CH |
| 01D0 | o(80E00004): LDR R0, SP, 4H |
| 01D1 | o(D109C64C): BLEQ MT [trap=4, pos=2502] |
| 01D2 | p(81E00008): LDR R1, SP, 8H |
| 01D3 | p(8110000C): LDR R1, R1, CH |
| 01D4 | p(A1000014): STR R1, R0, 14H |
| 01D5 | q(80E00004): LDR R0, SP, 4H |
| 01D6 | r(F7FFFE37): BL -457 [000EH] |
| END |
| END |
| ENDs Handle; |
| 01D7 | s(8FE00000): LDR LNK, SP, 0H |
| 01D8 | s(4EE80014): ADD SP, SP, 14H |
| 01D9 | s(C700000F): B LNK |
| |
| PROCEDURE Step*; |
| VAR k: INTEGER; M: StepMsg; |
| BEGINt |
| 01DA | t .PROC 1 |
| 01DA | t .COMMAND Step |
| 01DA | t(4EE90008): SUB SP, SP, 8H |
| 01DB | t(AFE00000): STR LNK, SP, 0H |
| IF Oberon.Par.vwr.udscv = Oberon.Par.frame THENw Steps(Oberon.Par.frame.xnexty(Frame)z) |
| 01DC | u .FIXUP D |
| 01DC | u(8D600023): LDR SB, MT, MOD6 [Oberon] |
| 01DD | u(40D8000E): ADD R0, SB, VAR14 |
| 01DE | v(80000000): LDR R0, R0, 0H |
| 01DF | v(D10A534C): BLEQ MT [trap=4, pos=2643] |
| 01E0 | w .FIXUP D |
| 01E0 | w(8D600004): LDR SB, MT, MOD6 [Oberon] |
| 01E1 | w(41D8000E): ADD R1, SB, VAR14 |
| 01E2 | w(80000004): LDR R0, R0, 4H |
| 01E3 | w(81100004): LDR R1, R1, 4H |
| 01E4 | w(00090001): SUB R0, R0, R1 |
| 01E5 | w(E900000E): BNE 14 [01F4H] |
| 01E6 | x .FIXUP D |
| 01E6 | x(8D600006): LDR SB, MT, MOD6 [Oberon] |
| 01E7 | x(40D8000E): ADD R0, SB, VAR14 |
| 01E8 | y(80000004): LDR R0, R0, 4H |
| 01E9 | y(D10A874C): BLEQ MT [trap=4, pos=2695] |
| 01EA | z(80000000): LDR R0, R0, 0H |
| 01EB | z(E1000005): BEQ 5 [01F1H] |
| 01EC | z(810FFFF8): LDR R1, R0, FFFFFFF8H |
| 01ED | z(81100004): LDR R1, R1, 4H |
| 01EE | z .FIXUP D |
| 01EE | z(8D000008): LDR SB, MT, MOD0 [Stars] |
| 01EF | z(42D80014): ADD R2, SB, 14H [data] |
| 01F0 | z(02290001): SUB R2, R2, R1 |
| 01F1 | z(D90A8E2C): BLNE MT [trap=2, pos=2702] |
| ELSEa Viewersb.Broadcast(M)c |
| 01F2 | a(F7FFFF5E): BL -162 [0151H] |
| 01F3 | b(E7000004): B 4 [01F8H] |
| 01F4 | c(40E80008): ADD R0, SP, 8H |
| 01F5 | c .FIXUP D |
| 01F5 | c(8D000007): LDR SB, MT, MOD0 [Stars] |
| 01F6 | c(41D80044): ADD R1, SB, 44H [data] |
| ENDd |
| 01F7 | d .FIXUP P |
| 01F7 | d(F720F054): BL MOD2 [Viewers] PROC15 |
| ENDe Step; |
| 01F8 | e(8FE00000): LDR LNK, SP, 0H |
| 01F9 | e(4EE80008): ADD SP, SP, 8H |
| 01FA | e(C700000F): B LNK |
| |
| PROCEDURE Open*; |
| VAR F: Frame; V: Viewers.Viewer; X, Y: INTEGER; |
| BEGINf NEW(F);g F.handleh := Handle;i |
| 01FB | f .PROC 2 |
| 01FB | f .COMMAND Open |
| 01FB | f(4EE90014): SUB SP, SP, 14H |
| 01FC | f(AFE00000): STR LNK, SP, 0H |
| 01FD | g(40E80004): ADD R0, SP, 4H |
| 01FE | g .FIXUP D |
| 01FE | g(8D000009): LDR SB, MT, MOD0 [Stars] |
| 01FF | g(41D80014): ADD R1, SB, 14H [data] |
| 0200 | g(D70B190C): BL MT [trap=0, pos=2841] |
| 0201 | h(80E00004): LDR R0, SP, 4H |
| 0202 | h(D10B224C): BLEQ MT [trap=4, pos=2850] |
| 0203 | i(F7000000): BL 0 [0204H] |
| 0204 | i(41F90260): SUB R1, LNK, 260H |
| 0205 | i(A1000018): STR R1, R0, 18H |
| Oberon.AllocateUserViewer(Oberon.Par.vwr.jXk,l X,m Y)n;o |
| 0206 | j .FIXUP D |
| 0206 | j(8D600008): LDR SB, MT, MOD6 [Oberon] |
| 0207 | j(40D8000E): ADD R0, SB, VAR14 |
| 0208 | k(80000000): LDR R0, R0, 0H |
| 0209 | k(D10B5C4C): BLEQ MT [trap=4, pos=2908] |
| 020A | l(80000008): LDR R0, R0, 8H |
| 020B | m(41E8000C): ADD R1, SP, CH |
| 020C | n(42E80010): ADD R2, SP, 10H |
| 020D | o .FIXUP P |
| 020D | o(F7622016): BL MOD6 [Oberon] PROC34 |
| V := MenuViewers.New( |
| TextFrames.NewMenu("Stars",p "Stars.Close System.Grow System.Copy Stars.Step Stars.Run Stars.Stop")q,r |
| 020E | p .FIXUP D |
| 020E | p(8D000008): LDR SB, MT, MOD0 [Stars] |
| 020F | p(40D80084): ADD R0, SB, 84H ["Stars"] |
| 0210 | p(41000006): MOV R1, R0, 6H |
| 0211 | q(42D8008C): ADD R2, SB, 8CH |
| 0212 | q(43000049): MOV R3, R0, 49H |
| 0213 | r .FIXUP P |
| 0213 | r(F782C006): BL MOD8 [TextFrames] PROC44 |
| F,s TextFrames.menuH,t X,u Y)v |
| 0214 | s(81E00004): LDR R1, SP, 4H |
| 0215 | t .FIXUP D |
| 0215 | t(8D800007): LDR SB, MT, MOD8 [TextFrames] |
| 0216 | t(82D00005): LDR R2, SB, VAR5 |
| 0217 | u(83E0000C): LDR R3, SP, CH |
| 0218 | v(84E00010): LDR R4, SP, 10H |
| ENDw Open; |
| 0219 | w .FIXUP P |
| 0219 | w(F7704006): BL MOD7 [MenuViewers] PROC4 |
| 021A | w(A0E00008): STR R0, SP, 8H |
| 021B | w(8FE00000): LDR LNK, SP, 0H |
| 021C | w(4EE80014): ADD SP, SP, 14H |
| 021D | w(C700000F): B LNK |
| |
| PROCEDURE Run*; |
| BEGINx Oberon.Install(T)y |
| 021E | x .PROC 3 |
| 021E | x .COMMAND Run |
| 021E | x(4EE90004): SUB SP, SP, 4H |
| 021F | x(AFE00000): STR LNK, SP, 0H |
| 0220 | y .FIXUP D |
| 0220 | y(8D00000B): LDR SB, MT, MOD0 [Stars] |
| 0221 | y(80D00058): LDR R0, SB, 58H [data] |
| ENDz Run; |
| 0222 | z .FIXUP P |
| 0222 | z(F762B009): BL MOD6 [Oberon] PROC43 |
| 0223 | z(8FE00000): LDR LNK, SP, 0H |
| 0224 | z(4EE80004): ADD SP, SP, 4H |
| 0225 | z(C700000F): B LNK |
| |
| PROCEDURE Stop*; |
| BEGINa Oberon.Remove(T)b |
| 0226 | a .PROC 4 |
| 0226 | a .COMMAND Stop |
| 0226 | a(4EE90004): SUB SP, SP, 4H |
| 0227 | a(AFE00000): STR LNK, SP, 0H |
| 0228 | b .FIXUP D |
| 0228 | b(8D000008): LDR SB, MT, MOD0 [Stars] |
| 0229 | b(80D00058): LDR R0, SB, 58H [data] |
| ENDc Stop; |
| 022A | c .FIXUP P |
| 022A | c(F762C008): BL MOD6 [Oberon] PROC44 |
| 022B | c(8FE00000): LDR LNK, SP, 0H |
| 022C | c(4EE80004): ADD SP, SP, 4H |
| 022D | c(C700000F): B LNK |
| |
| PROCEDURE Close*; |
| BEGINd |
| 022E | d .PROC 5 |
| 022E | d .COMMAND Close |
| 022E | d(4EE90004): SUB SP, SP, 4H |
| 022F | d(AFE00000): STR LNK, SP, 0H |
| IF Oberon.Par.vwr.edscf = Oberon.Par.frame THENg Stop;h Viewers.Close(Oberon.Par.vwr)i ENDj |
| 0230 | e .FIXUP D |
| 0230 | e(8D600008): LDR SB, MT, MOD6 [Oberon] |
| 0231 | e(40D8000E): ADD R0, SB, VAR14 |
| 0232 | f(80000000): LDR R0, R0, 0H |
| 0233 | f(D10CC24C): BLEQ MT [trap=4, pos=3266] |
| 0234 | g .FIXUP D |
| 0234 | g(8D600004): LDR SB, MT, MOD6 [Oberon] |
| 0235 | g(41D8000E): ADD R1, SB, VAR14 |
| 0236 | g(80000004): LDR R0, R0, 4H |
| 0237 | g(81100004): LDR R1, R1, 4H |
| 0238 | g(00090001): SUB R0, R0, R1 |
| 0239 | g(E9000005): BNE 5 [023FH] |
| 023A | h(F7FFFFEB): BL -21 [0226H] |
| 023B | i .FIXUP D |
| 023B | i(8D600007): LDR SB, MT, MOD6 [Oberon] |
| 023C | i(40D8000E): ADD R0, SB, VAR14 |
| 023D | i(80000000): LDR R0, R0, 0H |
| 023E | j .FIXUP P |
| 023E | j(F7207014): BL MOD2 [Viewers] PROC7 |
| ENDk Close; |
| 023F | k(8FE00000): LDR LNK, SP, 0H |
| 0240 | k(4EE80004): ADD SP, SP, 4H |
| 0241 | k(C700000F): B LNK |
| |
| PROCEDURE Step1; |
| VAR M: StepMsg; |
| BEGINl Viewers.Broadcast(M)m |
| 0242 | l(4EE90004): SUB SP, SP, 4H |
| 0243 | l(AFE00000): STR LNK, SP, 0H |
| 0244 | m(40E80004): ADD R0, SP, 4H |
| 0245 | m .FIXUP D |
| 0245 | m(8D00000A): LDR SB, MT, MOD0 [Stars] |
| 0246 | m(41D80044): ADD R1, SB, 44H [data] |
| ENDn Step1; |
| 0247 | n .FIXUP P |
| 0247 | n(F720F009): BL MOD2 [Viewers] PROC15 |
| 0248 | n(8FE00000): LDR LNK, SP, 0H |
| 0249 | n(4EE80004): ADD SP, SP, 4H |
| 024A | n(C700000F): B LNK |
| |
| PROCEDURE SetPeriod*; |
| VAR S: Texts.Scanner; |
| BEGINo Texts.OpenScanner(S,p Oberon.Par.text,q Oberon.Par.pos)r;s Texts.Scan(S)t;u |
| 024B | o .PROC 6 |
| 024B | o .COMMAND SetPeriod |
| 024B | o(4EE90078): SUB SP, SP, 78H |
| 024C | o(AFE00000): STR LNK, SP, 0H |
| 024D | p(40E80004): ADD R0, SP, 4H |
| 024E | p .FIXUP D |
| 024E | p(8D300009): LDR SB, MT, MOD3 [Texts] |
| 024F | p(41D80003): ADD R1, SB, VAR3 |
| 0250 | q .FIXUP D |
| 0250 | q(8D600002): LDR SB, MT, MOD6 [Oberon] |
| 0251 | q(42D8000E): ADD R2, SB, VAR14 |
| 0252 | q(82200008): LDR R2, R2, 8H |
| 0253 | r .FIXUP D |
| 0253 | r(8D600003): LDR SB, MT, MOD6 [Oberon] |
| 0254 | r(43D8000E): ADD R3, SB, VAR14 |
| 0255 | r(8330000C): LDR R3, R3, CH |
| 0256 | s .FIXUP P |
| 0256 | s(F731500F): BL MOD3 [Texts] PROC21 |
| 0257 | t(40E80004): ADD R0, SP, 4H |
| 0258 | t .FIXUP D |
| 0258 | t(8D300005): LDR SB, MT, MOD3 [Texts] |
| 0259 | t(41D80003): ADD R1, SB, VAR3 |
| 025A | u .FIXUP P |
| 025A | u(F7316004): BL MOD3 [Texts] PROC22 |
| IF S.class = Texts.Int THENv T.periodw := S.i ENDx |
| 025B | v(80E00040): LDR R0, SP, 40H |
| 025C | v(40090003): SUB R0, R0, 3H |
| 025D | v(E9000005): BNE 5 [0263H] |
| 025E | w .FIXUP D |
| 025E | w(8D000006): LDR SB, MT, MOD0 [Stars] |
| 025F | w(80D00058): LDR R0, SB, 58H [data] |
| 0260 | w(D10E0B4C): BLEQ MT [trap=4, pos=3595] |
| 0261 | x(81E00044): LDR R1, SP, 44H |
| 0262 | x(A1000008): STR R1, R0, 8H |
| ENDy SetPeriod; |
| 0263 | y(8FE00000): LDR LNK, SP, 0H |
| 0264 | y(4EE80078): ADD SP, SP, 78H |
| 0265 | y(C700000F): B LNK |
| |
| BEGINz Texts.OpenWriter(W)a;b T := Oberon.NewTask(Step1,c interval)d;e |
| 0266 | z .PROC 0 |
| 0266 | z .ENTRYPOINT |
| 0266 | z(4EE90004): SUB SP, SP, 4H |
| 0267 | z(AFE00000): STR LNK, SP, 0H |
| 0268 | a .FIXUP D |
| 0268 | a(8D00000A): LDR SB, MT, MOD0 [Stars] |
| 0269 | a(40D8005C): ADD R0, SB, 5CH [data] |
| 026A | a .FIXUP D |
| 026A | a(8D300002): LDR SB, MT, MOD3 [Texts] |
| 026B | a(41D80005): ADD R1, SB, VAR5 |
| 026C | b .FIXUP P |
| 026C | b(F7317012): BL MOD3 [Texts] PROC23 |
| 026D | c(F7000000): BL 0 [026EH] |
| 026E | c(40F900B0): SUB R0, LNK, B0H |
| 026F | d(410000C8): MOV R1, R0, C8H |
| 0270 | e .FIXUP P |
| 0270 | e(F762A004): BL MOD6 [Oberon] PROC42 |
| 0271 | e .FIXUP D |
| 0271 | e(8D000007): LDR SB, MT, MOD0 [Stars] |
| 0272 | e(A0D00058): STR R0, SB, 58H [data] |
| END Stars.f |
| 0273 | f(8FE00000): LDR LNK, SP, 0H |
| 0274 | f(4EE80004): ADD SP, SP, 4H |
| 0275 | f(C700000F): B LNK |