For 38kHz on RB0 & RB1, and 19kHz on RB6, you'll need to modify the delay
routines. This should work for ~38kHz & 19kHz. It's off by a few 100Hz, but
a lot closer than the other version.
Code:
 ' For 4MHz use XT_OSC
 @ DEVICE PIC16F84A, XT_OSC,WDT_OFF,PROTECT_OFF,PWRT_ON

 ' For 4MHz use 
 DEFINE OSC 4
 ltime VAR BYTE
 TRISB = 0
 
 GOTO Main
 
PAUSE9:    
ASM
    GOTO $+1 ; 2uS
    GOTO $+1 ; 2uS
    GOTO $+1 ; 2uS
    NOP      ; 1uS
    RETURN   ; 2uS 
ENDASM

PAUSE7:    
ASM
    GOTO $+1 ; 2uS
    GOTO $+1 ; 2uS
    NOP      ; 1uS
    RETURN   ; 2uS 
ENDASM

Main:
   FOR ltime = 0 TO 49 ' 0 TO 49 = 50 loops total
    PORTB.7 = 1
    PAUSE 50
    PORTB.7 = 0
    PAUSE 50
   NEXT ltime

   WHILE 1=1
    PORTB = 1
    CALL PAUSE9 ' CALL = 2uS
    PORTB = 2
    CALL PAUSE9
    PORTB = $41
    CALL PAUSE9
    PORTB = $42
    CALL PAUSE7 ' Compensates for GOTO beginning of WHILE loop
   WEND
   
   END