Regulus Berdin [rberdin at BIGFOOT.COM]

this is 2x faster (500kbps @ 4MHz) :

; serial tx
; assumes PORTB1 initially on high state

        rrf     data,w
        xorwf   data,f

        movlw   1
        xorwf   PORTB,f         ;start bit

        skpnc
         xorwf  PORTB,f         ;b0

        btfsc   data,0
         xorwf  PORTB,f         ;b1

        btfsc   data,1
         xorwf  PORTB,f         ;b2

        btfsc   data,2
         xorwf  PORTB,f         ;b3

        .
        .
        .

        nop
        bsf     PORTB,0         ;