Hi all. I've been playing with this bit of code for a few days now and I can't see what the problem is. Using RB0 the code should generate a morse signal as DIT - DAH - DIT - DAH - DIT - DAH reapeatedly. However I seem to be getting an extra DAH in there somewhere. I am getting DIT - DAH - DIT - DAH - DIT - DAH - DAH repeatedly. Looking at the code can anyone see a problem, or can i assume it is a hardware problem. I am using a P16F84 processor. Thanks Dan PORTA EQU 0x05 PORTB EQU 0x06 TRISA EQU 0x85 TRISB EQU 0x86 STATUS EQU 0x03 DITLEN EQU 0x64 CNT1 EQU 0x30 DITCOUNT1 EQU 0X20 DITCOUNT2 EQU 0X21 DAHCOUNT1 EQU 0X22 ORG 0x00 GOTO START ONOFF MOVLW 1 MOVWF PORTB MOVLW 0xFF MOVWF CNT1 LOOPONOFF1 DECFSZ CNT1 GOTO LOOPONOFF1 MOVLW 0 MOVWF PORTB MOVLW 0xFF MOVWF CNT1 LOOPONOFF2 DECFSZ CNT1 GOTO LOOPONOFF2 RETURN OFFOFF MOVLW 0 MOVWF PORTB MOVLW 0xFF MOVWF CNT1 LOOPOFFOFF1 DECFSZ CNT1 GOTO LOOPOFFOFF1 MOVLW 0 MOVWF PORTB MOVLW 0xFF MOVWF CNT1 LOOPOFFOFF2 DECFSZ CNT1 GOTO LOOPOFFOFF2 RETURN PLAYDIT MOVLW DITLEN MOVWF DITCOUNT1 PLAYDITLOOP CALL ONOFF DECFSZ DITCOUNT1 GOTO PLAYDITLOOP RETURN DITSPACE MOVLW DITLEN MOVWF DITCOUNT2 DITSPACELOOP CALL OFFOFF DECFSZ DITCOUNT2 GOTO DITSPACELOOP RETURN PLAYDAH MOVLW DITLEN MOVWF DAHCOUNT1 PLAYDAHLOOP CALL ONOFF CALL ONOFF CALL ONOFF DECFSZ DAHCOUNT1 GOTO PLAYDAHLOOP RETURN START BSF STATUS, 5 MOVLW 0 MOVWF TRISB BCF STATUS, 5 STARTLOOP CALL PLAYDIT CALL DITSPACE CALL PLAYDAH CALL DITSPACE END ************************************************************************ Daniel Watford CCTEC Ltd. 23 Station Road Westgate KENT CT8 8RB UK Tel: +44 (0) 1843 833999 Fax: +44 (0) 1843 835999 Software Developer - Windows 95, 98, NT, Linux. daniel.watford@cctec.ltd.uk ************************************************************************ How many programmers does it take to change a light bulb? They refuse. They say, "It's a hardware fault". -- Arthur Buse ************************************************************************