Blink

Used Exports

BUILTINS: INTEGER LED
Oberon: Install NewTask Remove Task

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
0000a .PROC 1
0000a .COMMAND Run
0000a(4EE90004): SUB SP, SP, 4H
0001a(AFE00000): STR LNK, SP, 0H
0002b .FIXUP D
0002b(8D000002): LDR SB, MT, MOD0 [Blink]
0003b(80D00004): LDR R0, SB, 4H [data]
ENDc Run;
0004c .FIXUP P
0004c(F712B004): BL MOD1 [Oberon] PROC43
0005c(8FE00000): LDR LNK, SP, 0H
0006c(4EE80004): ADD SP, SP, 4H
0007c(C700000F): B LNK
PROCEDURE Stop*;
BEGINd Oberon.Remove(T)e
0008d .PROC 2
0008d .COMMAND Stop
0008d(4EE90004): SUB SP, SP, 4H
0009d(AFE00000): STR LNK, SP, 0H
000Ae .FIXUP D
000Ae(8D000008): LDR SB, MT, MOD0 [Blink]
000Be(80D00004): LDR R0, SB, 4H [data]
ENDf Stop;
000Cf .FIXUP P
000Cf(F712C008): BL MOD1 [Oberon] PROC44
000Df(8FE00000): LDR LNK, SP, 0H
000Ef(4EE80004): ADD SP, SP, 4H
000Ff(C700000F): B LNK
PROCEDURE Tick;
BEGINg z := 1-z;h LED(z)
0010g(4EE90004): SUB SP, SP, 4H
0011g(AFE00000): STR LNK, SP, 0H
0012h(40000001): MOV R0, R0, 1H
0013h .FIXUP D
0013h(8D000009): LDR SB, MT, MOD0 [Blink]
0014h(81D00000): LDR R1, SB, 0H [data]
0015h(00090001): SUB R0, R0, R1
0016h(A0D00000): STR R0, SB, 0H
ENDi Tick;
0017i(80D00000): LDR R0, SB, 0H
0018i(5100FFC4): MOV R1, R0, FFFFFFC4H
0019i(A0100000): STR R0, R1, 0H
001Ai(8FE00000): LDR LNK, SP, 0H
001Bi(4EE80004): ADD SP, SP, 4H
001Ci(C700000F): B LNK
BEGINj z := 0;k T := Oberon.NewTask(Tick,l 500)m
001Dj .PROC 0
001Dj .ENTRYPOINT
001Dj(4EE90004): SUB SP, SP, 4H
001Ej(AFE00000): STR LNK, SP, 0H
001Fk(40000000): MOV R0, R0, 0H
0020k .FIXUP D
0020k(8D00000D): LDR SB, MT, MOD0 [Blink]
0021k(A0D00000): STR R0, SB, 0H [data]
0022l(F7000000): BL 0 [0023H]
0023l(40F9004C): SUB R0, LNK, 4CH
0024m(410001F4): MOV R1, R0, 1F4H
ENDn Blink.o
0025n .FIXUP P
0025n(F712A019): BL MOD1 [Oberon] PROC42
0026n .FIXUP D
0026n(8D000006): LDR SB, MT, MOD0 [Blink]
0027n(A0D00004): STR R0, SB, 4H [data]
0028o(8FE00000): LDR LNK, SP, 0H
0029o(4EE80004): ADD SP, SP, 4H
002Ao(C700000F): B LNK