| MODULE Blink; (*NW 30.5.2013*) |
| .MODULE Blink (KEY C5386873, VERSION 1, SIZE 000000F4) |
| .IMPORT Oberon (KEY A89CCEE2) |
| .IMPORT Display (KEY 4C08D3EA) |
| .IMPORT Fonts (KEY F4C9F557) |
| .IMPORT Texts (KEY 0B9E9984) |
| .IMPORT Viewers (KEY 25ABF199) |
| .DATA 8H |
| .POINTER_REFERENCES 4H |
| .FIXUP T 0H |
| IMPORT SYSTEM, Oberon; |
| VAR z: INTEGER; |
| T: Oberon.Task; |
| |
| PROCEDURE Run*; |
| BEGINa Oberon.Install(T)b |
0000 | a .PROC 1 |
0000 | a .COMMAND Run |
0000 | a(4EE90004): SUB SP, SP, 4H |
0001 | a(AFE00000): STR LNK, SP, 0H |
0002 | b .FIXUP D |
0002 | b(8D000002): LDR SB, MT, MOD0 [Blink] |
0003 | b(80D00004): LDR R0, SB, 4H [data] |
| ENDc Run; |
0004 | c .FIXUP P |
0004 | c(F712B004): BL MOD1 [Oberon] PROC43 |
0005 | c(8FE00000): LDR LNK, SP, 0H |
0006 | c(4EE80004): ADD SP, SP, 4H |
0007 | c(C700000F): B LNK |
| |
| PROCEDURE Stop*; |
| BEGINd Oberon.Remove(T)e |
0008 | d .PROC 2 |
0008 | d .COMMAND Stop |
0008 | d(4EE90004): SUB SP, SP, 4H |
0009 | d(AFE00000): STR LNK, SP, 0H |
000A | e .FIXUP D |
000A | e(8D000008): LDR SB, MT, MOD0 [Blink] |
000B | e(80D00004): LDR R0, SB, 4H [data] |
| ENDf Stop; |
000C | f .FIXUP P |
000C | f(F712C008): BL MOD1 [Oberon] PROC44 |
000D | f(8FE00000): LDR LNK, SP, 0H |
000E | f(4EE80004): ADD SP, SP, 4H |
000F | f(C700000F): B LNK |
| |
| PROCEDURE Tick; |
| BEGINg z := 1-z;h LED(z) |
0010 | g(4EE90004): SUB SP, SP, 4H |
0011 | g(AFE00000): STR LNK, SP, 0H |
0012 | h(40000001): MOV R0, R0, 1H |
0013 | h .FIXUP D |
0013 | h(8D000009): LDR SB, MT, MOD0 [Blink] |
0014 | h(81D00000): LDR R1, SB, 0H [data] |
0015 | h(00090001): SUB R0, R0, R1 |
0016 | h(A0D00000): STR R0, SB, 0H |
| ENDi Tick; |
0017 | i(80D00000): LDR R0, SB, 0H |
0018 | i(5100FFC4): MOV R1, R0, FFFFFFC4H |
0019 | i(A0100000): STR R0, R1, 0H |
001A | i(8FE00000): LDR LNK, SP, 0H |
001B | i(4EE80004): ADD SP, SP, 4H |
001C | i(C700000F): B LNK |
| |
| BEGINj z := 0;k T := Oberon.NewTask(Tick,l 500)m |
001D | j .PROC 0 |
001D | j .ENTRYPOINT |
001D | j(4EE90004): SUB SP, SP, 4H |
001E | j(AFE00000): STR LNK, SP, 0H |
001F | k(40000000): MOV R0, R0, 0H |
0020 | k .FIXUP D |
0020 | k(8D00000D): LDR SB, MT, MOD0 [Blink] |
0021 | k(A0D00000): STR R0, SB, 0H [data] |
0022 | l(F7000000): BL 0 [0023H] |
0023 | l(40F9004C): SUB R0, LNK, 4CH |
0024 | m(410001F4): MOV R1, R0, 1F4H |
| ENDn Blink.o |
0025 | n .FIXUP P |
0025 | n(F712A019): BL MOD1 [Oberon] PROC42 |
0026 | n .FIXUP D |
0026 | n(8D000006): LDR SB, MT, MOD0 [Blink] |
0027 | n(A0D00004): STR R0, SB, 4H [data] |
0028 | o(8FE00000): LDR LNK, SP, 0H |
0029 | o(4EE80004): ADD SP, SP, 4H |
002A | o(C700000F): B LNK |