Jinx, >I don't need speed in this particular application, as each bit is >held for 1ms, but I'd be interested in a quicker method for future reference How about this... do_byte movwf temp0 ;save data byte movlw .8 movwf cnt0 ;8 bits per byte clrf manch_lo ; clrf manch_hi man_loop movlw 1 ;assume we need a 01 pattern rlf temp0 ;test bit skpnc ;is the bit set? movlw 2 ;yes, need a 10 pattern iorwf manch_lo ;combine with other bits rlf manch_lo ;make room for next time rlf manch_hi rlf manch_lo rlf manch_hi dec_loop decfsz cnt0 ;do for 8 bits goto man_loop Warning, this code is not tested. I wrote this while watching the Cowboys-Redskins game. Kelly Kohls, N5TLE Bedford, TX -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist