How about this in your program:
do
start_time = timer()
last_cycle = end_time-start_time
factor#=1000.0/(last_cycle+0.0)
... all your loop code ...
end_time=timer()
loop
What this leaves you with is how many "cycles per second" your last game cycle took. What you need to do is specify things in terms of "things per second". In your colour shift example this would be RGB value change per second. Let's say you want to move the RGB value by 50 every second.
In every game cycle you'll need to execute the following code (remembering to put the initial state value outside the loop:
rem Set the initial values (and DIRECTIONS of change)
a = 255
b = 0
a_change=-1
b_change=1
do
color object 1, (a,b,0)
a = a + 50*factor#*a_change
b = b + 50*factor#*b_change
rem check to see if the direction should change
if a>255 then a=255 : a_change=-1
if a<0 then a=0: a_change=1
if b>255 then b=255 : b_change=-1
if b<0 then b=0: b_change=1
loop
Ending a sentence with a French word is so passé