| MODULE Sierpinski; (*NW 15.1.2013*) |
| | .MODULE Sierpinski (KEY 5346819D, VERSION 1, SIZE 00000AA4) |
| | .IMPORT Display (KEY 4C08D3EA) |
| | .IMPORT Viewers (KEY 25ABF199) |
| | .IMPORT Oberon (KEY A89CCEE2) |
| | .IMPORT Fonts (KEY F4C9F557) |
| | .IMPORT Texts (KEY 0B9E9984) |
| | .IMPORT MenuViewers (KEY 245ACC30) |
| | .IMPORT TextFrames (KEY 650813D5) |
| | .DATA 1CH |
| | .STRING 1CH "System.Close System.Copy System.Grow" |
| | .STRING 44H "Sierpinski" |
| | .FIXUP T 0H |
| IMPORT Display, Viewers, Oberon, MenuViewers, TextFrames; |
| |
| CONST Menu = "System.Close System.Copy System.Grow"; |
| |
| VAR x, y, d: INTEGER; |
| A, B, C, D: PROCEDURE (i: INTEGER); |
| |
| PROCEDURE E; |
| BEGINa Display.ReplConst(Display.white,b x,c y,d d,e 1,f Display.paint)g;h INC(x, d) |
| 0000 | a(4EE90004): SUB SP, SP, 4H |
| 0001 | a(AFE00000): STR LNK, SP, 0H |
| 0002 | b(40000001): MOV R0, R0, 1H |
| 0003 | c .FIXUP D |
| 0003 | c(8D000003): LDR SB, MT, MOD0 [Sierpinski] |
| 0004 | c(81D00000): LDR R1, SB, 0H [data] |
| 0005 | d(82D00004): LDR R2, SB, 4H |
| 0006 | e(83D00008): LDR R3, SB, 8H |
| 0007 | f(44000001): MOV R4, R0, 1H |
| 0008 | g(45000001): MOV R5, R0, 1H |
| 0009 | h .FIXUP P |
| 0009 | h(F710F009): BL MOD1 [Display] PROC15 |
| ENDi E; |
| 000A | i .FIXUP D |
| 000A | i(8D000007): LDR SB, MT, MOD0 [Sierpinski] |
| 000B | i(40D80000): ADD R0, SB, 0H [data] |
| 000C | i(81000000): LDR R1, R0, 0H |
| 000D | i(82D00008): LDR R2, SB, 8H |
| 000E | i(01180002): ADD R1, R1, R2 |
| 000F | i(A1000000): STR R1, R0, 0H |
| 0010 | i(8FE00000): LDR LNK, SP, 0H |
| 0011 | i(4EE80004): ADD SP, SP, 4H |
| 0012 | i(C700000F): B LNK |
| |
| PROCEDURE N; |
| BEGINj Display.ReplConst(Display.white,k x,l y,m 1,n d,o Display.paint)p;q INC(y, d) |
| 0013 | j(4EE90004): SUB SP, SP, 4H |
| 0014 | j(AFE00000): STR LNK, SP, 0H |
| 0015 | k(40000001): MOV R0, R0, 1H |
| 0016 | l .FIXUP D |
| 0016 | l(8D00000C): LDR SB, MT, MOD0 [Sierpinski] |
| 0017 | l(81D00000): LDR R1, SB, 0H [data] |
| 0018 | m(82D00004): LDR R2, SB, 4H |
| 0019 | n(43000001): MOV R3, R0, 1H |
| 001A | o(84D00008): LDR R4, SB, 8H |
| 001B | p(45000001): MOV R5, R0, 1H |
| 001C | q .FIXUP P |
| 001C | q(F710F013): BL MOD1 [Display] PROC15 |
| ENDr N; |
| 001D | r .FIXUP D |
| 001D | r(8D000007): LDR SB, MT, MOD0 [Sierpinski] |
| 001E | r(40D80004): ADD R0, SB, 4H [data] |
| 001F | r(81000000): LDR R1, R0, 0H |
| 0020 | r(82D00008): LDR R2, SB, 8H |
| 0021 | r(01180002): ADD R1, R1, R2 |
| 0022 | r(A1000000): STR R1, R0, 0H |
| 0023 | r(8FE00000): LDR LNK, SP, 0H |
| 0024 | r(4EE80004): ADD SP, SP, 4H |
| 0025 | r(C700000F): B LNK |
| |
| PROCEDURE W; |
| BEGINs DEC(x, d);t Display.ReplConst(Display.white,u x,v y,w d,x 1,y Display.paint)z |
| 0026 | s(4EE90004): SUB SP, SP, 4H |
| 0027 | s(AFE00000): STR LNK, SP, 0H |
| 0028 | t .FIXUP D |
| 0028 | t(8D00000B): LDR SB, MT, MOD0 [Sierpinski] |
| 0029 | t(40D80000): ADD R0, SB, 0H [data] |
| 002A | t(81000000): LDR R1, R0, 0H |
| 002B | t(82D00008): LDR R2, SB, 8H |
| 002C | t(01190002): SUB R1, R1, R2 |
| 002D | t(A1000000): STR R1, R0, 0H |
| 002E | u(40000001): MOV R0, R0, 1H |
| 002F | v(81D00000): LDR R1, SB, 0H |
| 0030 | w(82D00004): LDR R2, SB, 4H |
| 0031 | x(83D00008): LDR R3, SB, 8H |
| 0032 | y(44000001): MOV R4, R0, 1H |
| 0033 | z(45000001): MOV R5, R0, 1H |
| ENDa W; |
| 0034 | a .FIXUP P |
| 0034 | a(F710F018): BL MOD1 [Display] PROC15 |
| 0035 | a(8FE00000): LDR LNK, SP, 0H |
| 0036 | a(4EE80004): ADD SP, SP, 4H |
| 0037 | a(C700000F): B LNK |
| |
| PROCEDURE S; |
| BEGINb DEC(y, d);c Display.ReplConst(Display.white,d x,e y,f 1,g d,h Display.paint)i |
| 0038 | b(4EE90004): SUB SP, SP, 4H |
| 0039 | b(AFE00000): STR LNK, SP, 0H |
| 003A | c .FIXUP D |
| 003A | c(8D000012): LDR SB, MT, MOD0 [Sierpinski] |
| 003B | c(40D80004): ADD R0, SB, 4H [data] |
| 003C | c(81000000): LDR R1, R0, 0H |
| 003D | c(82D00008): LDR R2, SB, 8H |
| 003E | c(01190002): SUB R1, R1, R2 |
| 003F | c(A1000000): STR R1, R0, 0H |
| 0040 | d(40000001): MOV R0, R0, 1H |
| 0041 | e(81D00000): LDR R1, SB, 0H |
| 0042 | f(82D00004): LDR R2, SB, 4H |
| 0043 | g(43000001): MOV R3, R0, 1H |
| 0044 | h(84D00008): LDR R4, SB, 8H |
| 0045 | i(45000001): MOV R5, R0, 1H |
| ENDj S; |
| 0046 | j .FIXUP P |
| 0046 | j(F710F012): BL MOD1 [Display] PROC15 |
| 0047 | j(8FE00000): LDR LNK, SP, 0H |
| 0048 | j(4EE80004): ADD SP, SP, 4H |
| 0049 | j(C700000F): B LNK |
| |
| PROCEDURE NE; |
| VAR i: INTEGER; |
| BEGINk i := d;l |
| 004A | k(4EE90008): SUB SP, SP, 8H |
| 004B | k(AFE00000): STR LNK, SP, 0H |
| 004C | l .FIXUP D |
| 004C | l(8D000012): LDR SB, MT, MOD0 [Sierpinski] |
| 004D | l(80D00008): LDR R0, SB, 8H [data] |
| 004E | l(A0E00004): STR R0, SP, 4H |
| REPEAT Display.Dot(Display.white,m x,n y,o Display.paint)p;q INC(x);r INC(y);s DEC(i) UNTILt i = 0 |
| 004F | m(40000001): MOV R0, R0, 1H |
| 0050 | n .FIXUP D |
| 0050 | n(8D000004): LDR SB, MT, MOD0 [Sierpinski] |
| 0051 | n(81D00000): LDR R1, SB, 0H [data] |
| 0052 | o(82D00004): LDR R2, SB, 4H |
| 0053 | p(43000001): MOV R3, R0, 1H |
| 0054 | q .FIXUP P |
| 0054 | q(F710E00E): BL MOD1 [Display] PROC14 |
| 0055 | r .FIXUP D |
| 0055 | r(8D000005): LDR SB, MT, MOD0 [Sierpinski] |
| 0056 | r(40D80000): ADD R0, SB, 0H [data] |
| 0057 | r(81000000): LDR R1, R0, 0H |
| 0058 | r(41180001): ADD R1, R1, 1H |
| 0059 | r(A1000000): STR R1, R0, 0H |
| 005A | s(40D80004): ADD R0, SB, 4H |
| 005B | s(81000000): LDR R1, R0, 0H |
| 005C | s(41180001): ADD R1, R1, 1H |
| 005D | s(A1000000): STR R1, R0, 0H |
| 005E | t(80E00004): LDR R0, SP, 4H |
| 005F | t(40090001): SUB R0, R0, 1H |
| 0060 | t(A0E00004): STR R0, SP, 4H |
| ENDu NE; |
| 0061 | u(80E00004): LDR R0, SP, 4H |
| 0062 | u(E9FFFFEC): BNE -20 [004FH] |
| 0063 | u(8FE00000): LDR LNK, SP, 0H |
| 0064 | u(4EE80008): ADD SP, SP, 8H |
| 0065 | u(C700000F): B LNK |
| |
| PROCEDURE NW; |
| VAR i: INTEGER; |
| BEGINv i := d;w |
| 0066 | v(4EE90008): SUB SP, SP, 8H |
| 0067 | v(AFE00000): STR LNK, SP, 0H |
| 0068 | w .FIXUP D |
| 0068 | w(8D000013): LDR SB, MT, MOD0 [Sierpinski] |
| 0069 | w(80D00008): LDR R0, SB, 8H [data] |
| 006A | w(A0E00004): STR R0, SP, 4H |
| REPEAT Display.Dot(Display.white,x x,y y,z Display.paint)a;b DEC(x);c INC(y);d DEC(i) UNTILe i = 0 |
| 006B | x(40000001): MOV R0, R0, 1H |
| 006C | y .FIXUP D |
| 006C | y(8D000004): LDR SB, MT, MOD0 [Sierpinski] |
| 006D | y(81D00000): LDR R1, SB, 0H [data] |
| 006E | z(82D00004): LDR R2, SB, 4H |
| 006F | a(43000001): MOV R3, R0, 1H |
| 0070 | b .FIXUP P |
| 0070 | b(F710E01C): BL MOD1 [Display] PROC14 |
| 0071 | c .FIXUP D |
| 0071 | c(8D000005): LDR SB, MT, MOD0 [Sierpinski] |
| 0072 | c(40D80000): ADD R0, SB, 0H [data] |
| 0073 | c(81000000): LDR R1, R0, 0H |
| 0074 | c(41190001): SUB R1, R1, 1H |
| 0075 | c(A1000000): STR R1, R0, 0H |
| 0076 | d(40D80004): ADD R0, SB, 4H |
| 0077 | d(81000000): LDR R1, R0, 0H |
| 0078 | d(41180001): ADD R1, R1, 1H |
| 0079 | d(A1000000): STR R1, R0, 0H |
| 007A | e(80E00004): LDR R0, SP, 4H |
| 007B | e(40090001): SUB R0, R0, 1H |
| 007C | e(A0E00004): STR R0, SP, 4H |
| ENDf NW; |
| 007D | f(80E00004): LDR R0, SP, 4H |
| 007E | f(E9FFFFEC): BNE -20 [006BH] |
| 007F | f(8FE00000): LDR LNK, SP, 0H |
| 0080 | f(4EE80008): ADD SP, SP, 8H |
| 0081 | f(C700000F): B LNK |
| |
| PROCEDURE SW; |
| VAR i: INTEGER; |
| BEGINg i := d;h |
| 0082 | g(4EE90008): SUB SP, SP, 8H |
| 0083 | g(AFE00000): STR LNK, SP, 0H |
| 0084 | h .FIXUP D |
| 0084 | h(8D000013): LDR SB, MT, MOD0 [Sierpinski] |
| 0085 | h(80D00008): LDR R0, SB, 8H [data] |
| 0086 | h(A0E00004): STR R0, SP, 4H |
| REPEAT Display.Dot(Display.white,i x,j y,k Display.paint)l;m DEC(x);n DEC(y);o DEC(i) UNTILp i = 0 |
| 0087 | i(40000001): MOV R0, R0, 1H |
| 0088 | j .FIXUP D |
| 0088 | j(8D000004): LDR SB, MT, MOD0 [Sierpinski] |
| 0089 | j(81D00000): LDR R1, SB, 0H [data] |
| 008A | k(82D00004): LDR R2, SB, 4H |
| 008B | l(43000001): MOV R3, R0, 1H |
| 008C | m .FIXUP P |
| 008C | m(F710E01C): BL MOD1 [Display] PROC14 |
| 008D | n .FIXUP D |
| 008D | n(8D000005): LDR SB, MT, MOD0 [Sierpinski] |
| 008E | n(40D80000): ADD R0, SB, 0H [data] |
| 008F | n(81000000): LDR R1, R0, 0H |
| 0090 | n(41190001): SUB R1, R1, 1H |
| 0091 | n(A1000000): STR R1, R0, 0H |
| 0092 | o(40D80004): ADD R0, SB, 4H |
| 0093 | o(81000000): LDR R1, R0, 0H |
| 0094 | o(41190001): SUB R1, R1, 1H |
| 0095 | o(A1000000): STR R1, R0, 0H |
| 0096 | p(80E00004): LDR R0, SP, 4H |
| 0097 | p(40090001): SUB R0, R0, 1H |
| 0098 | p(A0E00004): STR R0, SP, 4H |
| ENDq SW; |
| 0099 | q(80E00004): LDR R0, SP, 4H |
| 009A | q(E9FFFFEC): BNE -20 [0087H] |
| 009B | q(8FE00000): LDR LNK, SP, 0H |
| 009C | q(4EE80008): ADD SP, SP, 8H |
| 009D | q(C700000F): B LNK |
| |
| PROCEDURE SE; |
| VAR i: INTEGER; |
| BEGINr i := d;s |
| 009E | r(4EE90008): SUB SP, SP, 8H |
| 009F | r(AFE00000): STR LNK, SP, 0H |
| 00A0 | s .FIXUP D |
| 00A0 | s(8D000013): LDR SB, MT, MOD0 [Sierpinski] |
| 00A1 | s(80D00008): LDR R0, SB, 8H [data] |
| 00A2 | s(A0E00004): STR R0, SP, 4H |
| REPEAT Display.Dot(Display.white,t x,u y,v Display.paint)w;x INC(x);y DEC(y);z DEC(i) UNTILa i = 0 |
| 00A3 | t(40000001): MOV R0, R0, 1H |
| 00A4 | u .FIXUP D |
| 00A4 | u(8D000004): LDR SB, MT, MOD0 [Sierpinski] |
| 00A5 | u(81D00000): LDR R1, SB, 0H [data] |
| 00A6 | v(82D00004): LDR R2, SB, 4H |
| 00A7 | w(43000001): MOV R3, R0, 1H |
| 00A8 | x .FIXUP P |
| 00A8 | x(F710E01C): BL MOD1 [Display] PROC14 |
| 00A9 | y .FIXUP D |
| 00A9 | y(8D000005): LDR SB, MT, MOD0 [Sierpinski] |
| 00AA | y(40D80000): ADD R0, SB, 0H [data] |
| 00AB | y(81000000): LDR R1, R0, 0H |
| 00AC | y(41180001): ADD R1, R1, 1H |
| 00AD | y(A1000000): STR R1, R0, 0H |
| 00AE | z(40D80004): ADD R0, SB, 4H |
| 00AF | z(81000000): LDR R1, R0, 0H |
| 00B0 | z(41190001): SUB R1, R1, 1H |
| 00B1 | z(A1000000): STR R1, R0, 0H |
| 00B2 | a(80E00004): LDR R0, SP, 4H |
| 00B3 | a(40090001): SUB R0, R0, 1H |
| 00B4 | a(A0E00004): STR R0, SP, 4H |
| ENDb SE; |
| 00B5 | b(80E00004): LDR R0, SP, 4H |
| 00B6 | b(E9FFFFEC): BNE -20 [00A3H] |
| 00B7 | b(8FE00000): LDR LNK, SP, 0H |
| 00B8 | b(4EE80008): ADD SP, SP, 8H |
| 00B9 | b(C700000F): B LNK |
| |
| PROCEDURE SA(i: INTEGER); |
| BEGINc |
| 00BA | c(4EE90008): SUB SP, SP, 8H |
| 00BB | c(AFE00000): STR LNK, SP, 0H |
| 00BC | c(A0E00004): STR R0, SP, 4H |
| IF i > 0 THENd A(i-1)e;f SE;g B(i-1)h;i E;j E;k D(i-1)l;m NE;n A(i-1)o ENDp |
| 00BD | d(80E00004): LDR R0, SP, 4H |
| 00BE | d(40090000): SUB R0, R0, 0H |
| 00BF | d(E600001C): BLE 28 [00DCH] |
| 00C0 | e(80E00004): LDR R0, SP, 4H |
| 00C1 | e(40090001): SUB R0, R0, 1H |
| 00C2 | f .FIXUP D |
| 00C2 | f(8D000019): LDR SB, MT, MOD0 [Sierpinski] |
| 00C3 | f(81D0000C): LDR R1, SB, CH [data] |
| 00C4 | f(D105325C): BLEQ MT [trap=5, pos=1330] |
| 00C5 | f(D7000001): BL R1 |
| 00C6 | g(F7FFFFD7): BL -41 [009EH] |
| 00C7 | h(80E00004): LDR R0, SP, 4H |
| 00C8 | h(40090001): SUB R0, R0, 1H |
| 00C9 | i .FIXUP D |
| 00C9 | i(8D000007): LDR SB, MT, MOD0 [Sierpinski] |
| 00CA | i(81D00010): LDR R1, SB, 10H [data] |
| 00CB | i(D1053E5C): BLEQ MT [trap=5, pos=1342] |
| 00CC | i(D7000001): BL R1 |
| 00CD | j(F7FFFF32): BL -206 [0000H] |
| 00CE | k(F7FFFF31): BL -207 [0000H] |
| 00CF | l(80E00004): LDR R0, SP, 4H |
| 00D0 | l(40090001): SUB R0, R0, 1H |
| 00D1 | m .FIXUP D |
| 00D1 | m(8D000008): LDR SB, MT, MOD0 [Sierpinski] |
| 00D2 | m(81D00018): LDR R1, SB, 18H [data] |
| 00D3 | m(D1054C5C): BLEQ MT [trap=5, pos=1356] |
| 00D4 | m(D7000001): BL R1 |
| 00D5 | n(F7FFFF74): BL -140 [004AH] |
| 00D6 | o(80E00004): LDR R0, SP, 4H |
| 00D7 | o(40090001): SUB R0, R0, 1H |
| 00D8 | p .FIXUP D |
| 00D8 | p(8D000007): LDR SB, MT, MOD0 [Sierpinski] |
| 00D9 | p(81D0000C): LDR R1, SB, CH [data] |
| 00DA | p(D1055B5C): BLEQ MT [trap=5, pos=1371] |
| 00DB | p(D7000001): BL R1 |
| ENDq SA; |
| 00DC | q(8FE00000): LDR LNK, SP, 0H |
| 00DD | q(4EE80008): ADD SP, SP, 8H |
| 00DE | q(C700000F): B LNK |
| |
| PROCEDURE SB(i: INTEGER); |
| BEGINr |
| 00DF | r(4EE90008): SUB SP, SP, 8H |
| 00E0 | r(AFE00000): STR LNK, SP, 0H |
| 00E1 | r(A0E00004): STR R0, SP, 4H |
| IF i > 0 THENs B(i-1)t;u SW;v C(i-1)w;x S;y S;z A(i-1)a;b SE;c B(i-1)d ENDe |
| 00E2 | s(80E00004): LDR R0, SP, 4H |
| 00E3 | s(40090000): SUB R0, R0, 0H |
| 00E4 | s(E600001C): BLE 28 [0101H] |
| 00E5 | t(80E00004): LDR R0, SP, 4H |
| 00E6 | t(40090001): SUB R0, R0, 1H |
| 00E7 | u .FIXUP D |
| 00E7 | u(8D00000F): LDR SB, MT, MOD0 [Sierpinski] |
| 00E8 | u(81D00010): LDR R1, SB, 10H [data] |
| 00E9 | u(D105A45C): BLEQ MT [trap=5, pos=1444] |
| 00EA | u(D7000001): BL R1 |
| 00EB | v(F7FFFF96): BL -106 [0082H] |
| 00EC | w(80E00004): LDR R0, SP, 4H |
| 00ED | w(40090001): SUB R0, R0, 1H |
| 00EE | x .FIXUP D |
| 00EE | x(8D000007): LDR SB, MT, MOD0 [Sierpinski] |
| 00EF | x(81D00014): LDR R1, SB, 14H [data] |
| 00F0 | x(D105B05C): BLEQ MT [trap=5, pos=1456] |
| 00F1 | x(D7000001): BL R1 |
| 00F2 | y(F7FFFF45): BL -187 [0038H] |
| 00F3 | z(F7FFFF44): BL -188 [0038H] |
| 00F4 | a(80E00004): LDR R0, SP, 4H |
| 00F5 | a(40090001): SUB R0, R0, 1H |
| 00F6 | b .FIXUP D |
| 00F6 | b(8D000008): LDR SB, MT, MOD0 [Sierpinski] |
| 00F7 | b(81D0000C): LDR R1, SB, CH [data] |
| 00F8 | b(D105BE5C): BLEQ MT [trap=5, pos=1470] |
| 00F9 | b(D7000001): BL R1 |
| 00FA | c(F7FFFFA3): BL -93 [009EH] |
| 00FB | d(80E00004): LDR R0, SP, 4H |
| 00FC | d(40090001): SUB R0, R0, 1H |
| 00FD | e .FIXUP D |
| 00FD | e(8D000007): LDR SB, MT, MOD0 [Sierpinski] |
| 00FE | e(81D00010): LDR R1, SB, 10H [data] |
| 00FF | e(D105CD5C): BLEQ MT [trap=5, pos=1485] |
| 0100 | e(D7000001): BL R1 |
| ENDf SB; |
| 0101 | f(8FE00000): LDR LNK, SP, 0H |
| 0102 | f(4EE80008): ADD SP, SP, 8H |
| 0103 | f(C700000F): B LNK |
| |
| PROCEDURE SC(i: INTEGER); |
| BEGINg |
| 0104 | g(4EE90008): SUB SP, SP, 8H |
| 0105 | g(AFE00000): STR LNK, SP, 0H |
| 0106 | g(A0E00004): STR R0, SP, 4H |
| IF i > 0 THENh C(i-1)i;j NW;k D(i-1)l;m W;n W;o B(i-1)p;q SW;r C(i-1)s ENDt |
| 0107 | h(80E00004): LDR R0, SP, 4H |
| 0108 | h(40090000): SUB R0, R0, 0H |
| 0109 | h(E600001C): BLE 28 [0126H] |
| 010A | i(80E00004): LDR R0, SP, 4H |
| 010B | i(40090001): SUB R0, R0, 1H |
| 010C | j .FIXUP D |
| 010C | j(8D00000F): LDR SB, MT, MOD0 [Sierpinski] |
| 010D | j(81D00014): LDR R1, SB, 14H [data] |
| 010E | j(D106165C): BLEQ MT [trap=5, pos=1558] |
| 010F | j(D7000001): BL R1 |
| 0110 | k(F7FFFF55): BL -171 [0066H] |
| 0111 | l(80E00004): LDR R0, SP, 4H |
| 0112 | l(40090001): SUB R0, R0, 1H |
| 0113 | m .FIXUP D |
| 0113 | m(8D000007): LDR SB, MT, MOD0 [Sierpinski] |
| 0114 | m(81D00018): LDR R1, SB, 18H [data] |
| 0115 | m(D106225C): BLEQ MT [trap=5, pos=1570] |
| 0116 | m(D7000001): BL R1 |
| 0117 | n(F7FFFF0E): BL -242 [0026H] |
| 0118 | o(F7FFFF0D): BL -243 [0026H] |
| 0119 | p(80E00004): LDR R0, SP, 4H |
| 011A | p(40090001): SUB R0, R0, 1H |
| 011B | q .FIXUP D |
| 011B | q(8D000008): LDR SB, MT, MOD0 [Sierpinski] |
| 011C | q(81D00010): LDR R1, SB, 10H [data] |
| 011D | q(D106305C): BLEQ MT [trap=5, pos=1584] |
| 011E | q(D7000001): BL R1 |
| 011F | r(F7FFFF62): BL -158 [0082H] |
| 0120 | s(80E00004): LDR R0, SP, 4H |
| 0121 | s(40090001): SUB R0, R0, 1H |
| 0122 | t .FIXUP D |
| 0122 | t(8D000007): LDR SB, MT, MOD0 [Sierpinski] |
| 0123 | t(81D00014): LDR R1, SB, 14H [data] |
| 0124 | t(D1063F5C): BLEQ MT [trap=5, pos=1599] |
| 0125 | t(D7000001): BL R1 |
| ENDu SC; |
| 0126 | u(8FE00000): LDR LNK, SP, 0H |
| 0127 | u(4EE80008): ADD SP, SP, 8H |
| 0128 | u(C700000F): B LNK |
| |
| PROCEDURE SD(i: INTEGER); |
| BEGINv |
| 0129 | v(4EE90008): SUB SP, SP, 8H |
| 012A | v(AFE00000): STR LNK, SP, 0H |
| 012B | v(A0E00004): STR R0, SP, 4H |
| IF i > 0 THENw D(i-1)x;y NE;z A(i-1)a;b N;c N;d C(i-1)e;f NW;g D(i-1)h ENDi |
| 012C | w(80E00004): LDR R0, SP, 4H |
| 012D | w(40090000): SUB R0, R0, 0H |
| 012E | w(E600001C): BLE 28 [014BH] |
| 012F | x(80E00004): LDR R0, SP, 4H |
| 0130 | x(40090001): SUB R0, R0, 1H |
| 0131 | y .FIXUP D |
| 0131 | y(8D00000F): LDR SB, MT, MOD0 [Sierpinski] |
| 0132 | y(81D00018): LDR R1, SB, 18H [data] |
| 0133 | y(D106885C): BLEQ MT [trap=5, pos=1672] |
| 0134 | y(D7000001): BL R1 |
| 0135 | z(F7FFFF14): BL -236 [004AH] |
| 0136 | a(80E00004): LDR R0, SP, 4H |
| 0137 | a(40090001): SUB R0, R0, 1H |
| 0138 | b .FIXUP D |
| 0138 | b(8D000007): LDR SB, MT, MOD0 [Sierpinski] |
| 0139 | b(81D0000C): LDR R1, SB, CH [data] |
| 013A | b(D106945C): BLEQ MT [trap=5, pos=1684] |
| 013B | b(D7000001): BL R1 |
| 013C | c(F7FFFED6): BL -298 [0013H] |
| 013D | d(F7FFFED5): BL -299 [0013H] |
| 013E | e(80E00004): LDR R0, SP, 4H |
| 013F | e(40090001): SUB R0, R0, 1H |
| 0140 | f .FIXUP D |
| 0140 | f(8D000008): LDR SB, MT, MOD0 [Sierpinski] |
| 0141 | f(81D00014): LDR R1, SB, 14H [data] |
| 0142 | f(D106A25C): BLEQ MT [trap=5, pos=1698] |
| 0143 | f(D7000001): BL R1 |
| 0144 | g(F7FFFF21): BL -223 [0066H] |
| 0145 | h(80E00004): LDR R0, SP, 4H |
| 0146 | h(40090001): SUB R0, R0, 1H |
| 0147 | i .FIXUP D |
| 0147 | i(8D000007): LDR SB, MT, MOD0 [Sierpinski] |
| 0148 | i(81D00018): LDR R1, SB, 18H [data] |
| 0149 | i(D106B15C): BLEQ MT [trap=5, pos=1713] |
| 014A | i(D7000001): BL R1 |
| ENDj SD; |
| 014B | j(8FE00000): LDR LNK, SP, 0H |
| 014C | j(4EE80008): ADD SP, SP, 8H |
| 014D | j(C700000F): B LNK |
| |
| PROCEDURE DrawSierpinski(F: Display.Frame); |
| VAR k, n, w, x0, y0: INTEGER; |
| BEGINk; k := 0;l d := 4;m |
| 014E | k(4EE9001C): SUB SP, SP, 1CH |
| 014F | k(AFE00000): STR LNK, SP, 0H |
| 0150 | k(A0E00004): STR R0, SP, 4H |
| 0151 | l(40000000): MOV R0, R0, 0H |
| 0152 | l(A0E00008): STR R0, SP, 8H |
| 0153 | m(40000004): MOV R0, R0, 4H |
| 0154 | m .FIXUP D |
| 0154 | m(8D00000D): LDR SB, MT, MOD0 [Sierpinski] |
| 0155 | m(A0D00008): STR R0, SB, 8H [data] |
| IF F.Wn < F.Ho THENp w := F.Wq ELSEr ws := F.Ht ENDu ; |
| 0156 | n(80E00004): LDR R0, SP, 4H |
| 0157 | n(D107304C): BLEQ MT [trap=4, pos=1840] |
| 0158 | o(81E00004): LDR R1, SP, 4H |
| 0159 | o(D107364C): BLEQ MT [trap=4, pos=1846] |
| 015A | p(80000010): LDR R0, R0, 10H |
| 015B | p(81100014): LDR R1, R1, 14H |
| 015C | p(00090001): SUB R0, R0, R1 |
| 015D | p(ED000005): BGE 5 [0163H] |
| 015E | q(80E00004): LDR R0, SP, 4H |
| 015F | q(D107444C): BLEQ MT [trap=4, pos=1860] |
| 0160 | r(80000010): LDR R0, R0, 10H |
| 0161 | r(A0E00010): STR R0, SP, 10H |
| 0162 | s(E7000004): B 4 [0167H] |
| 0163 | t(80E00004): LDR R0, SP, 4H |
| 0164 | t(D107524C): BLEQ MT [trap=4, pos=1874] |
| 0165 | u(80000014): LDR R0, R0, 14H |
| 0166 | u(A0E00010): STR R0, SP, 10H |
| WHILE d*8 <v w DOw d := d*2;x INC(k) ENDy ; |
| 0167 | v .FIXUP D |
| 0167 | v(8D000013): LDR SB, MT, MOD0 [Sierpinski] |
| 0168 | v(80D00008): LDR R0, SB, 8H [data] |
| 0169 | v(40010003): LSL R0, R0, 3H |
| 016A | w(81E00010): LDR R1, SP, 10H |
| 016B | w(00090001): SUB R0, R0, R1 |
| 016C | w(ED000008): BGE 8 [0175H] |
| 016D | x .FIXUP D |
| 016D | x(8D000006): LDR SB, MT, MOD0 [Sierpinski] |
| 016E | x(80D00008): LDR R0, SB, 8H [data] |
| 016F | x(40010001): LSL R0, R0, 1H |
| 0170 | x(A0D00008): STR R0, SB, 8H |
| 0171 | y(80E00008): LDR R0, SP, 8H |
| 0172 | y(40080001): ADD R0, R0, 1H |
| 0173 | y(A0E00008): STR R0, SP, 8H |
| 0174 | y(E7FFFFF2): B -14 [0167H] |
| Display.ReplConst(Display.black,z F.Xa,b F.Yc,d F.We,f F.Hg,h Display.replace)i;j |
| 0175 | z(40000000): MOV R0, R0, 0H |
| 0176 | a(81E00004): LDR R1, SP, 4H |
| 0177 | a(D107AD4C): BLEQ MT [trap=4, pos=1965] |
| 0178 | b(81100008): LDR R1, R1, 8H |
| 0179 | c(82E00004): LDR R2, SP, 4H |
| 017A | c(D107B24C): BLEQ MT [trap=4, pos=1970] |
| 017B | d(8220000C): LDR R2, R2, CH |
| 017C | e(83E00004): LDR R3, SP, 4H |
| 017D | e(D107B74C): BLEQ MT [trap=4, pos=1975] |
| 017E | f(83300010): LDR R3, R3, 10H |
| 017F | g(84E00004): LDR R4, SP, 4H |
| 0180 | g(D107BC4C): BLEQ MT [trap=4, pos=1980] |
| 0181 | h(84400014): LDR R4, R4, 14H |
| 0182 | i(45000000): MOV R5, R0, 0H |
| 0183 | j .FIXUP P |
| 0183 | j(F710F0DB): BL MOD1 [Display] PROC15 |
| x0 := F.Wk DIV 2;l y0 := F.Hm DIV 2 +n d;o n := 0;p |
| 0184 | k(80E00004): LDR R0, SP, 4H |
| 0185 | k(D107DD4C): BLEQ MT [trap=4, pos=2013] |
| 0186 | l(80000010): LDR R0, R0, 10H |
| 0187 | l(40020001): ASR R0, R0, 1H |
| 0188 | l(A0E00014): STR R0, SP, 14H |
| 0189 | m(80E00004): LDR R0, SP, 4H |
| 018A | m(D107EE4C): BLEQ MT [trap=4, pos=2030] |
| 018B | n(80000014): LDR R0, R0, 14H |
| 018C | n(40020001): ASR R0, R0, 1H |
| 018D | o .FIXUP D |
| 018D | o(8D000020): LDR SB, MT, MOD0 [Sierpinski] |
| 018E | o(81D00008): LDR R1, SB, 8H [data] |
| 018F | o(00080001): ADD R0, R0, R1 |
| 0190 | o(A0E00018): STR R0, SP, 18H |
| 0191 | p(40000000): MOV R0, R0, 0H |
| 0192 | p(A0E0000C): STR R0, SP, CH |
| WHILE n < k DOq |
| 0193 | q(80E0000C): LDR R0, SP, CH |
| 0194 | q(81E00008): LDR R1, SP, 8H |
| 0195 | q(00090001): SUB R0, R0, R1 |
| 0196 | q(ED000028): BGE 40 [01BFH] |
| INC(n);r DEC(x0, d);s d := d DIV 2;t INC(y0, d);u |
| 0197 | r(80E0000C): LDR R0, SP, CH |
| 0198 | r(40080001): ADD R0, R0, 1H |
| 0199 | r(A0E0000C): STR R0, SP, CH |
| 019A | s(80E00014): LDR R0, SP, 14H |
| 019B | s .FIXUP D |
| 019B | s(8D00000E): LDR SB, MT, MOD0 [Sierpinski] |
| 019C | s(81D00008): LDR R1, SB, 8H [data] |
| 019D | s(00090001): SUB R0, R0, R1 |
| 019E | s(A0E00014): STR R0, SP, 14H |
| 019F | t(80D00008): LDR R0, SB, 8H |
| 01A0 | t(40020001): ASR R0, R0, 1H |
| 01A1 | t(A0D00008): STR R0, SB, 8H |
| 01A2 | u(80E00018): LDR R0, SP, 18H |
| 01A3 | u(81D00008): LDR R1, SB, 8H |
| 01A4 | u(00080001): ADD R0, R0, R1 |
| 01A5 | u(A0E00018): STR R0, SP, 18H |
| x := F.Xv + x0;w y := F.Yx + y0;y |
| 01A6 | v(80E00004): LDR R0, SP, 4H |
| 01A7 | v(D108574C): BLEQ MT [trap=4, pos=2135] |
| 01A8 | w(80000008): LDR R0, R0, 8H |
| 01A9 | w(81E00014): LDR R1, SP, 14H |
| 01AA | w(00080001): ADD R0, R0, R1 |
| 01AB | w(A0D00000): STR R0, SB, 0H |
| 01AC | x(80E00004): LDR R0, SP, 4H |
| 01AD | x(D108664C): BLEQ MT [trap=4, pos=2150] |
| 01AE | y(8000000C): LDR R0, R0, CH |
| 01AF | y(81E00018): LDR R1, SP, 18H |
| 01B0 | y(00080001): ADD R0, R0, R1 |
| 01B1 | y(A0D00004): STR R0, SB, 4H |
| SA(n)z;a SE;b SB(n)c;d SW;e SC(n)f;g NW;h SD(n)i;j NE |
| 01B2 | z(80E0000C): LDR R0, SP, CH |
| 01B3 | a(F7FFFF06): BL -250 [00BAH] |
| 01B4 | b(F7FFFEE9): BL -279 [009EH] |
| 01B5 | c(80E0000C): LDR R0, SP, CH |
| 01B6 | d(F7FFFF28): BL -216 [00DFH] |
| 01B7 | e(F7FFFECA): BL -310 [0082H] |
| 01B8 | f(80E0000C): LDR R0, SP, CH |
| 01B9 | g(F7FFFF4A): BL -182 [0104H] |
| 01BA | h(F7FFFEAB): BL -341 [0066H] |
| 01BB | i(80E0000C): LDR R0, SP, CH |
| 01BC | j(F7FFFF6C): BL -148 [0129H] |
| ENDk |
| 01BD | k(F7FFFE8C): BL -372 [004AH] |
| 01BE | k(E7FFFFD4): B -44 [0193H] |
| ENDl DrawSierpinski; |
| 01BF | l(8FE00000): LDR LNK, SP, 0H |
| 01C0 | l(4EE8001C): ADD SP, SP, 1CH |
| 01C1 | l(C700000F): B LNK |
| |
| PROCEDURE Handler(F: Display.Frame; VAR M: Display.FrameMsg); |
| VAR F1: Display.Frame; |
| BEGINm |
| 01C2 | m(4EE90014): SUB SP, SP, 14H |
| 01C3 | m(AFE00000): STR LNK, SP, 0H |
| 01C4 | m(A0E00004): STR R0, SP, 4H |
| 01C5 | m(A1E00008): STR R1, SP, 8H |
| 01C6 | m(A2E0000C): STR R2, SP, CH |
| IF M IS Oberon.InputMsg THENn |
| 01C7 | n(80E0000C): LDR R0, SP, CH |
| 01C8 | n(80000004): LDR R0, R0, 4H |
| 01C9 | n .FIXUP D |
| 01C9 | n(8D30002E): LDR SB, MT, MOD3 [Oberon] |
| 01CA | n(41D80003): ADD R1, SB, VAR3 |
| 01CB | n(01190000): SUB R1, R1, R0 |
| 01CC | n(E900001C): BNE 28 [01E9H] |
| IF M(Oberon.InputMsg)o.id = Oberon.track THENp |
| 01CD | o(80E0000C): LDR R0, SP, CH |
| 01CE | o(80000004): LDR R0, R0, 4H |
| 01CF | o .FIXUP D |
| 01CF | o(8D300006): LDR SB, MT, MOD3 [Oberon] |
| 01D0 | o(41D80003): ADD R1, SB, VAR3 |
| 01D1 | o(01190000): SUB R1, R1, R0 |
| 01D2 | o(D9095C2C): BLNE MT [trap=2, pos=2396] |
| 01D3 | p(80E00008): LDR R0, SP, 8H |
| 01D4 | p(80000000): LDR R0, R0, 0H |
| 01D5 | p(40090001): SUB R0, R0, 1H |
| 01D6 | p(E9000011): BNE 17 [01E8H] |
| Oberon.DrawMouseArrow(M(Oberon.InputMsg)q.X,r M(Oberon.InputMsg)s.Y)t |
| 01D7 | q(80E0000C): LDR R0, SP, CH |
| 01D8 | q(80000004): LDR R0, R0, 4H |
| 01D9 | q .FIXUP D |
| 01D9 | q(8D30000A): LDR SB, MT, MOD3 [Oberon] |
| 01DA | q(41D80003): ADD R1, SB, VAR3 |
| 01DB | q(01190000): SUB R1, R1, R0 |
| 01DC | q(D909A42C): BLNE MT [trap=2, pos=2468] |
| 01DD | r(80E00008): LDR R0, SP, 8H |
| 01DE | r(80000008): LDR R0, R0, 8H |
| 01DF | s(81E0000C): LDR R1, SP, CH |
| 01E0 | s(81100004): LDR R1, R1, 4H |
| 01E1 | s .FIXUP D |
| 01E1 | s(8D300008): LDR SB, MT, MOD3 [Oberon] |
| 01E2 | s(42D80003): ADD R2, SB, VAR3 |
| 01E3 | s(02290001): SUB R2, R2, R1 |
| 01E4 | s(D909BA2C): BLNE MT [trap=2, pos=2490] |
| 01E5 | t(81E00008): LDR R1, SP, 8H |
| 01E6 | t(8110000C): LDR R1, R1, CH |
| ENDu |
| 01E7 | u .FIXUP P |
| 01E7 | u(F7318064): BL MOD3 [Oberon] PROC24 |
| ELSIF Mv IS MenuViewers.ModifyMsg THENw |
| 01E8 | v(E700005B): B 91 [0244H] |
| 01E9 | w(80E0000C): LDR R0, SP, CH |
| 01EA | w(80000004): LDR R0, R0, 4H |
| 01EB | w .FIXUP D |
| 01EB | w(8D60000A): LDR SB, MT, MOD6 [MenuViewers] |
| 01EC | w(41D80002): ADD R1, SB, VAR2 |
| 01ED | w(01190000): SUB R1, R1, R0 |
| 01EE | w(E9000019): BNE 25 [0208H] |
| F.Yx := M(MenuViewers.ModifyMsg)y.Y;z F.Ha := M(MenuViewers.ModifyMsg)b.H;c DrawSierpinski(F)d |
| 01EF | x(80E00004): LDR R0, SP, 4H |
| 01F0 | x(D109FB4C): BLEQ MT [trap=4, pos=2555] |
| 01F1 | y(81E0000C): LDR R1, SP, CH |
| 01F2 | y(81100004): LDR R1, R1, 4H |
| 01F3 | y .FIXUP D |
| 01F3 | y(8D600008): LDR SB, MT, MOD6 [MenuViewers] |
| 01F4 | y(42D80002): ADD R2, SB, VAR2 |
| 01F5 | y(02290001): SUB R2, R2, R1 |
| 01F6 | y(D90A172C): BLNE MT [trap=2, pos=2583] |
| 01F7 | z(81E00008): LDR R1, SP, 8H |
| 01F8 | z(81100008): LDR R1, R1, 8H |
| 01F9 | z(A100000C): STR R1, R0, CH |
| 01FA | a(80E00004): LDR R0, SP, 4H |
| 01FB | a(D10A1E4C): BLEQ MT [trap=4, pos=2590] |
| 01FC | b(81E0000C): LDR R1, SP, CH |
| 01FD | b(81100004): LDR R1, R1, 4H |
| 01FE | b .FIXUP D |
| 01FE | b(8D60000B): LDR SB, MT, MOD6 [MenuViewers] |
| 01FF | b(42D80002): ADD R2, SB, VAR2 |
| 0200 | b(02290001): SUB R2, R2, R1 |
| 0201 | b(D90A3A2C): BLNE MT [trap=2, pos=2618] |
| 0202 | c(81E00008): LDR R1, SP, 8H |
| 0203 | c(8110000C): LDR R1, R1, CH |
| 0204 | c(A1000014): STR R1, R0, 14H |
| 0205 | d(80E00004): LDR R0, SP, 4H |
| ELSIFe Mf IS Oberon.ControlMsg THENg |
| 0206 | e(F7FFFF47): BL -185 [014EH] |
| 0207 | f(E700003C): B 60 [0244H] |
| 0208 | g(80E0000C): LDR R0, SP, CH |
| 0209 | g(80000004): LDR R0, R0, 4H |
| 020A | g .FIXUP D |
| 020A | g(8D30000C): LDR SB, MT, MOD3 [Oberon] |
| 020B | g(41D80005): ADD R1, SB, VAR5 |
| 020C | g(01190000): SUB R1, R1, R0 |
| 020D | g(E9000018): BNE 24 [0226H] |
| IF M(Oberon.ControlMsg)h.id = Oberon.neutralize THENi Oberon.RemoveMarks(F.Xj,k F.Yl,m F.Wn,o F.Hp)q ENDr |
| 020E | h(80E0000C): LDR R0, SP, CH |
| 020F | h(80000004): LDR R0, R0, 4H |
| 0210 | h .FIXUP D |
| 0210 | h(8D300006): LDR SB, MT, MOD3 [Oberon] |
| 0211 | h(41D80005): ADD R1, SB, VAR5 |
| 0212 | h(01190000): SUB R1, R1, R0 |
| 0213 | h(D90A932C): BLNE MT [trap=2, pos=2707] |
| 0214 | i(80E00008): LDR R0, SP, 8H |
| 0215 | i(80000000): LDR R0, R0, 0H |
| 0216 | i(40090001): SUB R0, R0, 1H |
| 0217 | i(E900000D): BNE 13 [0225H] |
| 0218 | j(80E00004): LDR R0, SP, 4H |
| 0219 | j(D10AC64C): BLEQ MT [trap=4, pos=2758] |
| 021A | k(80000008): LDR R0, R0, 8H |
| 021B | l(81E00004): LDR R1, SP, 4H |
| 021C | l(D10ACB4C): BLEQ MT [trap=4, pos=2763] |
| 021D | m(8110000C): LDR R1, R1, CH |
| 021E | n(82E00004): LDR R2, SP, 4H |
| 021F | n(D10AD04C): BLEQ MT [trap=4, pos=2768] |
| 0220 | o(82200010): LDR R2, R2, 10H |
| 0221 | p(83E00004): LDR R3, SP, 4H |
| 0222 | p(D10AD54C): BLEQ MT [trap=4, pos=2773] |
| 0223 | q(83300014): LDR R3, R3, 14H |
| 0224 | r .FIXUP P |
| 0224 | r(F731B03D): BL MOD3 [Oberon] PROC27 |
| ELSIF Ms IS Oberon.CopyMsg THENt |
| 0225 | s(E700001E): B 30 [0244H] |
| 0226 | t(80E0000C): LDR R0, SP, CH |
| 0227 | t(80000004): LDR R0, R0, 4H |
| 0228 | t .FIXUP D |
| 0228 | t(8D300018): LDR SB, MT, MOD3 [Oberon] |
| 0229 | t(41D80006): ADD R1, SB, VAR6 |
| 022A | t(01190000): SUB R1, R1, R0 |
| 022B | t(E9000018): BNE 24 [0244H] |
| NEW(F1);u F1^ :=v F^;w M(Oberon.CopyMsg)x.F := F1 |
| 022C | u(40E80010): ADD R0, SP, 10H |
| 022D | u .FIXUP D |
| 022D | u(8D100005): LDR SB, MT, MOD1 [Display] |
| 022E | u(41D80002): ADD R1, SB, VAR2 |
| 022F | u(D70B0D0C): BL MT [trap=0, pos=2829] |
| 0230 | v(80E00010): LDR R0, SP, 10H |
| 0231 | v(D10B144C): BLEQ MT [trap=4, pos=2836] |
| 0232 | w(81E00004): LDR R1, SP, 4H |
| 0233 | w(D10B184C): BLEQ MT [trap=4, pos=2840] |
| 0234 | w(42000007): MOV R2, R0, 7H |
| 0235 | w(83100000): LDR R3, R1, 0H |
| 0236 | w(41180004): ADD R1, R1, 4H |
| 0237 | w(A3000000): STR R3, R0, 0H |
| 0238 | w(40080004): ADD R0, R0, 4H |
| 0239 | w(42290001): SUB R2, R2, 1H |
| 023A | w(E9FFFFFA): BNE -6 [0235H] |
| 023B | x(80E0000C): LDR R0, SP, CH |
| 023C | x(80000004): LDR R0, R0, 4H |
| 023D | x .FIXUP D |
| 023D | x(8D300010): LDR SB, MT, MOD3 [Oberon] |
| 023E | x(41D80006): ADD R1, SB, VAR6 |
| 023F | x(01190000): SUB R1, R1, R0 |
| 0240 | x(D90B2A2C): BLNE MT [trap=2, pos=2858] |
| ENDy |
| 0241 | y(80E00010): LDR R0, SP, 10H |
| 0242 | y(81E00008): LDR R1, SP, 8H |
| 0243 | y(A0100000): STR R0, R1, 0H |
| ENDz Handler; |
| 0244 | z(8FE00000): LDR LNK, SP, 0H |
| 0245 | z(4EE80014): ADD SP, SP, 14H |
| 0246 | z(C700000F): B LNK |
| |
| PROCEDURE New(): Display.Frame; |
| VAR F: Display.Frame; |
| BEGINa NEW(F);b F.handlec := Handler;d RETURN F |
| 0247 | a(4EE90008): SUB SP, SP, 8H |
| 0248 | a(AFE00000): STR LNK, SP, 0H |
| 0249 | b(40E80004): ADD R0, SP, 4H |
| 024A | b .FIXUP D |
| 024A | b(8D10000D): LDR SB, MT, MOD1 [Display] |
| 024B | b(41D80002): ADD R1, SB, VAR2 |
| 024C | b(D70B960C): BL MT [trap=0, pos=2966] |
| 024D | c(80E00004): LDR R0, SP, 4H |
| 024E | c(D10B9F4C): BLEQ MT [trap=4, pos=2975] |
| 024F | d(F7000000): BL 0 [0250H] |
| 0250 | d(41F90238): SUB R1, LNK, 238H |
| 0251 | d(A1000018): STR R1, R0, 18H |
| ENDe New; |
| 0252 | e(80E00004): LDR R0, SP, 4H |
| 0253 | e(8FE00000): LDR LNK, SP, 0H |
| 0254 | e(4EE80008): ADD SP, SP, 8H |
| 0255 | e(C700000F): B LNK |
| |
| PROCEDURE Draw*; |
| VAR V: Viewers.Viewer; X, Y: INTEGER; |
| BEGINf Oberon.AllocateUserViewer(Oberon.Par.vwr.gXh,i X,j Y)k;l |
| 0256 | f .PROC 1 |
| 0256 | f .COMMAND Draw |
| 0256 | f(4EE90010): SUB SP, SP, 10H |
| 0257 | f(AFE00000): STR LNK, SP, 0H |
| 0258 | g .FIXUP D |
| 0258 | g(8D30000E): LDR SB, MT, MOD3 [Oberon] |
| 0259 | g(40D8000E): ADD R0, SB, VAR14 |
| 025A | h(80000000): LDR R0, R0, 0H |
| 025B | h(D10C304C): BLEQ MT [trap=4, pos=3120] |
| 025C | i(80000008): LDR R0, R0, 8H |
| 025D | j(41E80008): ADD R1, SP, 8H |
| 025E | k(42E8000C): ADD R2, SP, CH |
| 025F | l .FIXUP P |
| 025F | l(F732203B): BL MOD3 [Oberon] PROC34 |
| V := MenuViewers.New(TextFrames.NewMenu("Sierpinski",m Menu)n,o New()p,q TextFrames.menuH,r X,s Y)t |
| 0260 | m .FIXUP D |
| 0260 | m(8D000008): LDR SB, MT, MOD0 [Sierpinski] |
| 0261 | m(40D80044): ADD R0, SB, 44H ["Sierpinski"] |
| 0262 | m(4100000B): MOV R1, R0, BH |
| 0263 | n(42D8001C): ADD R2, SB, 1CH |
| 0264 | n(43000027): MOV R3, R0, 27H |
| 0265 | o .FIXUP P |
| 0265 | o(F772C006): BL MOD7 [TextFrames] PROC44 |
| 0266 | p(4EE90004): SUB SP, SP, 4H |
| 0267 | p(A0E00000): STR R0, SP, 0H |
| 0268 | q(F7FFFFDE): BL -34 [0247H] |
| 0269 | q(01000000): MOV R1, R0, R0 |
| 026A | q(80E00000): LDR R0, SP, 0H |
| 026B | q(4EE80004): ADD SP, SP, 4H |
| 026C | r .FIXUP D |
| 026C | r(8D70000C): LDR SB, MT, MOD7 [TextFrames] |
| 026D | r(82D00005): LDR R2, SB, VAR5 |
| 026E | s(83E00008): LDR R3, SP, 8H |
| 026F | t(84E0000C): LDR R4, SP, CH |
| ENDu Draw; |
| 0270 | u .FIXUP P |
| 0270 | u(F760400B): BL MOD6 [MenuViewers] PROC4 |
| 0271 | u(A0E00004): STR R0, SP, 4H |
| 0272 | u(8FE00000): LDR LNK, SP, 0H |
| 0273 | u(4EE80010): ADD SP, SP, 10H |
| 0274 | u(C700000F): B LNK |
| |
| BEGINv A := SA;w B := SB;x C := SC;y D := SD |
| 0275 | v .PROC 0 |
| 0275 | v .ENTRYPOINT |
| 0275 | v(4EE90004): SUB SP, SP, 4H |
| 0276 | v(AFE00000): STR LNK, SP, 0H |
| 0277 | w(F7000000): BL 0 [0278H] |
| 0278 | w(40F906F8): SUB R0, LNK, 6F8H |
| 0279 | w .FIXUP D |
| 0279 | w(8D00000D): LDR SB, MT, MOD0 [Sierpinski] |
| 027A | w(A0D0000C): STR R0, SB, CH [data] |
| 027B | x(F7000000): BL 0 [027CH] |
| 027C | x(40F90674): SUB R0, LNK, 674H |
| 027D | x(A0D00010): STR R0, SB, 10H |
| 027E | y(F7000000): BL 0 [027FH] |
| 027F | y(40F905EC): SUB R0, LNK, 5ECH |
| 0280 | y(A0D00014): STR R0, SB, 14H |
| ENDz Sierpinski.a |
| 0281 | z(F7000000): BL 0 [0282H] |
| 0282 | z(40F90564): SUB R0, LNK, 564H |
| 0283 | z(A0D00018): STR R0, SB, 18H |
| 0284 | a(8FE00000): LDR LNK, SP, 0H |
| 0285 | a(4EE80004): ADD SP, SP, 4H |
| 0286 | a(C700000F): B LNK |