Looks like Marks nailed it for you.
Only thing I didn't see in there was any form of software debounce for your button.
As you are using setint, without software debouncing it may be susceptible to multiple triggers in the blink of an eye.
Interrupt: 'used to get an immediate button response
do while pinc.4=1 loop
pause 600 'Software debounce for potential button noise.
inc b1 'cause the program to select the next flash sequence
setint %00010000,%00010000 'resets the setint for the next button push
if b1 > 8 then : b1=0 :endif