Timer() is a function which returns a value in milliseconds (thousandths of a second).
T1=Timer()
puts the current value of the PC's timer into the variable T1 which is continually increasing.
In your main loop, you could use:
Elapsed1 = Timer()-T1
which will result in Elapsed1 containing the number of milliseconds elapsed since the initial call to Timer().
If Elapsed1 = 100 Then Gosub FireBullet
will call the subroutine every tenth of a second. (Alter the value to suit the speed you need).
After the Gosub you need to reset the timer so you can get the new elapsed value. You end up with something along the lines of:
If Elapsed1 = 100
Gosub FireBullet
T1=Timer()
Endif
Using T1, T2, T3 etc. you can have multiple timers.
The above example is not the most eloquent way to do this, but it's meant only as a simple explanation of the process.
[Edit] Doh! Batvink's post appeared while I was typing my reply so he beat me to it...
TDK_Man