Hi Graham ! If you write: DLY100 MOVLW 100 DLYMS MOVWF LOOP1 DY0 MOVLW -125 MOVWF TMR0 I guess you do the loop 0 times. The name of it indicates that you want to loop 100 times, but 100 Hex is 256 Dec. This is more than the W Reg can handle (8 bit processor - right ?) so - I think you actually load 0 . With the MPASM .100 is one hundred; it looks to me like you meant to write -100 (I'm not familiar with the various assemblers around). Blinks now ? Sven in Sweden