Shifter

Used Exports

BUILTINS: ASR INTEGER LED LSL

MODULE* Shifter;
.MODULE Shifter (KEY 00000000, VERSION 0, SIZE 000000F8)
.DATA 10H
.FIXUP T 0H
VARa x, y, z, d: INTEGER;
0000e(E7000007): B 7 [0008H]
0001a(00000000): MOV R0, R0, R0
0002a(00000000): MOV R0, R0, R0
0003a(00000000): MOV R0, R0, R0
0004a(00000000): MOV R0, R0, R0
0005a(00000000): MOV R0, R0, R0
0006a(00000000): MOV R0, R0, R0
0007a(00000000): MOV R0, R0, R0
BEGINb z := 1;c d := 1;d
0008b .PROC 0
0008b .ENTRYPOINT
0008b(4D000000): MOV SB, R0, 0H
0009b(5E00FFC0): MOV SP, R0, FFFFFFC0H
000Ac(40000001): MOV R0, R0, 1H
000Bc(A0D00008): STR R0, SB, 8H
000Cd(40000001): MOV R0, R0, 1H
000Dd(A0D0000C): STR R0, SB, CH
REPEAT eLED(z);f x := 1000;g
000Ef(80D00008): LDR R0, SB, 8H
000Ff(5100FFC4): MOV R1, R0, FFFFFFC4H
0010f(A0100000): STR R0, R1, 0H
0011g(400003E8): MOV R0, R0, 3E8H
0012g(A0D00000): STR R0, SB, 0H
REPEAT y := 1000;h
0013h(400003E8): MOV R0, R0, 3E8H
0014h(A0D00004): STR R0, SB, 4H
REPEAT y := y-1 UNTILi y = 0;j
0015i(80D00004): LDR R0, SB, 4H
0016i(40090001): SUB R0, R0, 1H
0017i(A0D00004): STR R0, SB, 4H
0018j(80D00004): LDR R0, SB, 4H
0019j(E9FFFFFB): BNE -5 [0015H]
x := x-1
UNTILk x = 0;l
001Ak(80D00000): LDR R0, SB, 0H
001Bk(40090001): SUB R0, R0, 1H
001Ck(A0D00000): STR R0, SB, 0H
001Dl(80D00000): LDR R0, SB, 0H
001El(E9FFFFF4): BNE -12 [0013H]
IF z = 128 THENm d := -1 ELSIFn zo = 1 THENp d := 1 ENDq ;
001Fm(80D00008): LDR R0, SB, 8H
0020m(40090080): SUB R0, R0, 80H
0021m(E9000003): BNE 3 [0025H]
0022n(5000FFFF): MOV R0, R0, FFFFFFFFH
0023n(A0D0000C): STR R0, SB, CH
0024o(E7000005): B 5 [002AH]
0025p(80D00008): LDR R0, SB, 8H
0026p(40090001): SUB R0, R0, 1H
0027p(E9000002): BNE 2 [002AH]
0028q(40000001): MOV R0, R0, 1H
0029q(A0D0000C): STR R0, SB, CH
IF d = 1 THENr z := LSL(z, 1) ELSEs zt := ASR(z, 1) ENDu
002Ar(80D0000C): LDR R0, SB, CH
002Br(40090001): SUB R0, R0, 1H
002Cr(E9000004): BNE 4 [0031H]
002Ds(80D00008): LDR R0, SB, 8H
002Es(40010001): LSL R0, R0, 1H
002Fs(A0D00008): STR R0, SB, 8H
0030t(E7000003): B 3 [0034H]
0031u(80D00008): LDR R0, SB, 8H
0032u(40020001): ASR R0, R0, 1H
0033u(A0D00008): STR R0, SB, 8H
UNTIL FALSE
ENDv Shifter.w
0034v(E7FFFFD9): B -39 [000EH]
0035w(40000000): MOV R0, R0, 0H
0036w(C7000000): B R0