Asi ya no da error, en pago por mis errores, te los he corregido, no se si funciona bien solo lo he "desbravado".

Qeadn los warnings 302 pero esta bien, por estos no te preocupes, y los 203,que debes de correr todas las instrucciones a la columna 1.
__CONFIG _CP_OFF& _WDT_OFF& _PWRTE_OFF& _XT_OSC
LIST P=16F84A
INCLUDE P16F84A.INC
status equ 03h
optionr equ 81h
trisa equ 85h
porta equ 05h
trisb equ 86h
portb equ 06h
PDel0 equ 20h
PDel1 equ 21h
PDel2 equ 22h
PDel0b equ 23h
Inicio:
bsf status,5 ; se pasa al banco 1 de RAM
clrf trisa ; se programa el puerto A como salida
movlw 0Fh ; dato para la programación del puerto B
movwf trisb ; parte alta como salida y parte baja como entrada
bcf optionr,7 ; se habilitan resistencias de Pull Up
bcf status,5 ; se pasa al banco 0 de RAM
bcf porta,0
bsf porta,1
bcf portb,0
call DEMORA;
call DEMORA;
call DEMORA;
call DEMORA;
;----espera varios segundos y llama a randon y a play -----
call DEMORA
call DEMORA
call DEMORA
call DEMORA
call DEMORA
call DEMORA
call DEMORA
call DEMORA
call random; llama a la rutina random
call DEMORA
call DEMORA
call DEMORA
call DEMORA
call play; llama a la rutina play
call DEMORA
;----------------------------------Random pulsa por RA0---------------------------
random:
bsf porta,0; enciende el random
call DEMORA
call DEMORA
bcf porta,0; suelta el random
call DEMORA
;-----------------------------------Play pulsa por RA1-----------------------------
play:
bsf porta,1; enciende el play
call DEMORA
call DEMORA
bcf porta,1; suelta el play
call demorab
loop:
return
;------------Demora un 1 segundo--------------------------
DEMORA movlw .14 ; 1 set numero de repeticion (C)
movwf PDel0 ; 1 |
PLoop0 movlw .72 ; 1 set numero de repeticion (B)
movwf PDel1 ; 1 |
PLoop1 movlw .247 ; 1 set numero de repeticion (A)
movwf PDel2 ; 1 |
PLoop2 clrwdt ; 1 clear watchdog
decfsz PDel2, 1 ; 1 + (1) es el tiempo 0 ? (A)
goto PLoop2 ; 2 no, loop
decfsz PDel1, 1 ; 1 + (1) es el tiempo 0 ? (B)
goto PLoop1 ; 2 no, loop
decfsz PDel0, 1 ; 1 + (1) es el tiempo 0 ? (C)
goto PLoop0 ; 2 no, loop
PDelL1 goto PDelL2 ; 2 ciclos delay
PDelL2 clrwdt ; 1 ciclo delay
return ; 2+2 Fin.
;-------------------------------------------------------------
;----------Demorab de 30 minutos------------------------------
cblock 0x24
PDel3
PDel4
PDel5
PDel6
endc
demorab
;1799999989 cycles
movlw 0xFE
movwf PDel3
movlw 0xC2
movwf PDel4
movlw 0xEC
movwf PDel5
movlw 0x0C
movwf PDel6
demorab_0
decfsz PDel3, f
goto $+2
decfsz PDel4, f
goto $+2
decfsz PDel5, f
goto $+2
decfsz PDel6, f
goto demorab_0
;7 cycles
goto $+1
goto $+1
goto $+1
nop
;4 cycles (including call)
return
;-------------------------------------------------------------
end