Primero que nada tenes que usar uno de esos piezo que no tienen ningun sonido grabado.
El codigo de los tonos es un lio barbaro para empezar modificar las frecuencias para las distintas notas y todo eso, el secreto esta en prender y apagar el parlante muy rapido.
Si queres solamente un beep y nada mas:
beep
movwf beepcnt
beep_loop
bsf PORTB,1 ; beepctl bit
movlw 0x12
call udelay
bcf PORTB,1 ; beepctl bit
movlw 0x2 ;lo dejamos apagado un rato
call udelay
decfsz beepcnt, F
goto beep_loop
return
;-----------------------------------------------------------------------
; uc Delay variables dcnt0 y dcnt1
;-----------------------------------------------------------------------
udelay ; delay W * 100 usec
movwf dcnt0
udelay0
movlw d'32'
movwf dcnt1
udelay1
decfsz dcnt1, F
goto udelay1
decfsz dcnt0, F
goto udelay0