Code: Select all
Private Sub sweepclock()
Dim s As Long, wl As Long, chan As Long
If allowsweeps = 0 Then Exit Sub
For chan = 0 To 1
If (square(chan).sweep > 0) Then square(chan).sweep = square(chan).sweep - 1
If ((square(chan).sweepenable <> 0) And (square(chan).sweep > 0)) Then
wl = square(chan).period
s = wl \ (2 ^ square(chan).sweep)
If square(chan).negate Then s = (Not s) + (chan Xor 1)
wl = square(chan).period + s
If ((wl < &H800&) And (wl > 7)) Then square(chan).sweepresult = wl Else square(chan).sweepresult = 0
Else
square(chan).sweepresult = 0
End If
Next chan
End Sub