Oops. Forgot to turn on Optimization. Now it's a bit shorter. Since Walter posted his latest MPC compiler version I thought I'd take a try using Microchip's MCC18. I stepped through it with the MPLAB simulator. Appears to work. John Dammeyer void SendMorseCharA (void) { SendMorseCharA: 0000d0 0100 MOVLB 0x0 MorseChar <<= 1; 0000d2 9f8a BCF 0x8a,0x7,0x1 0000d4 478a RLNCF 0x8a,0x1,0x1 0000d6 b4d8 BTFSC 0xd8,0x2,0x0 if (STATUSbits.Z == 1) return; 0000d8 0012 RETURN 0x0 else { 0000da a0d8 BTFSS 0xd8,0x0,0x0 if (STATUSbits.C == 0) 0000dc dff7 RCALL 0xcc DoDah(); 0000de b0d8 BTFSC 0xd8,0x0,0x0 if (STATUSbits.C == 1) 0000e0 dff4 RCALL 0xca DoDit(); 0000e2 dff5 RCALL 0xce InterCharDelay(); 0000e4 d7f5 BRA 0xd0 goto SendMorseCharA ; } } Automation Artisans Inc. http://www.autoartisans.com Ph. 1 250 544 4950 -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist