alias dSatellite d0
alias dCurrentDisplay d1
alias dStartLoopDisplay d2
alias dSignalID d3
alias rSignalStrength r0
alias rHorizontal r1
alias rVertical r2
alias rTempStrength r3
alias rSignalID r4
alias rDirection r5
move rDirection 2
define maxDiff 0.01
loop:
l rHorizontal dSatellite Horizontal
l rVertical dSatellite Vertical
l rSignalID dSatellite SignalID
s dStartLoopDisplay Setting rTempStrength
j vSeek
hSeek:
l rTempStrength dSatellite SignalStrength
s db Setting rSignalID
add rHorizontal rHorizontal rDirection
brlt rHorizontal 360 2
mul rDirection rDirection -1
brgt rHorizontal 0 2
mul rDirection rDirection -1
s dSatellite Horizontal rHorizontal
sleep 1
l r11 dSatellite SignalID
bne r11 rSignalID loop
l rSignalStrength dSatellite SignalStrength
s dCurrentDisplay Setting rSignalStrength
sub r12 rSignalStrength rTempStrength
abs r12 r12
s dSignalID Setting r12
blt r12 maxDiff loop
brgt rSignalStrength rTempStrength 2
mul rDirection rDirection -1
j hSeek
vSeek:
l rTempStrength dSatellite SignalStrength
s db Setting rSignalID
add rVertical rVertical rDirection
brlt rVertical 90 2
mul rDirection rDirection -1
brgt rVertical 0 2
mul rDirection rDirection -1
s dSatellite Vertical rVertical
sleep 1
l r11 dSatellite SignalID
bne r11 rSignalID loop
l rSignalStrength dSatellite SignalStrength
s dCurrentDisplay Setting rSignalStrength
sub r10 rSignalStrength rTempStrength
abs r10 r10
s dSignalID Setting r10
blt r10 maxDiff hSeek
brgt rSignalStrength rTempStrength 2
mul rDirection rDirection -1
j vSeek
yield
j loop