Hello....
If someone have interest in HT6P20B decoding, feel free to use the code below.
Is ugly to see, but works fine.
And if someone help me to let this code more short and clean, antecipately thanks.

Carlos W. Rett

________________________________________________
INCLUDE "BS2DEFS.BAS"
DEFINE CHAR_PACING 1000 'Serout character pacing in us
DEFINE PULSIN_MAX 6200
DEFINE OSC 20 'Oscilator Speed

ADCON1 = 7 ' Set PORTA and PORTE to digital

';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
'Define nome de variáveis

BITVALUE VAR WORD
ADDRESS VAR WORD
CODE VAR BYTE
BTRES VAR BIT
IRIN1 VAR PORTA.0
SERPC VAR PORTA.1

pause 100
CLEAR 'Clear All Variables

';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
'Port Adjust

TRISA = %11111101 'PortA Adjusted .

SEROUT2 SERPC,16390,["--Program initialized--",13,10] 'SERIAL Speed = 38400

Start:
CLEAR
PULSIN IRIN1,0,BITVALUE
IF (BITVALUE > 5400) and (bitvalue < 6100) THEN
Goto LEDADOS
else
goto Start
endif


LEDADOS:
GOSUB TESTABIT
ADDRESS.15 = BTRES
GOSUB TESTABIT
ADDRESS.14 = BTRES
GOSUB TESTABIT
ADDRESS.13 = BTRES
GOSUB TESTABIT
ADDRESS.12 = BTRES
GOSUB TESTABIT
ADDRESS.11 = BTRES
GOSUB TESTABIT
ADDRESS.10 = BTRES
GOSUB TESTABIT
ADDRESS.9 = BTRES
GOSUB TESTABIT
ADDRESS.8 = BTRES
GOSUB TESTABIT
ADDRESS.7 = BTRES
GOSUB TESTABIT
ADDRESS.6 = BTRES
GOSUB TESTABIT
ADDRESS.5 = BTRES
GOSUB TESTABIT
ADDRESS.4 = BTRES
GOSUB TESTABIT
ADDRESS.3 = BTRES
GOSUB TESTABIT
ADDRESS.2 = BTRES
GOSUB TESTABIT
ADDRESS.1 = BTRES
GOSUB TESTABIT
ADDRESS.0 = BTRES
GOSUB TESTABIT
CODE.7 = BTRES
GOSUB TESTABIT
CODE.6 = BTRES
GOSUB TESTABIT
CODE.5 = BTRES
GOSUB TESTABIT
CODE.4 = BTRES
GOSUB TESTABIT
CODE.3 = BTRES
GOSUB TESTABIT
CODE.2 = BTRES
GOSUB TESTABIT
CODE.1 = BTRES
GOSUB TESTABIT
CODE.0 = BTRES
GOSUB TESTABIT

SEROUT2 SERPC,16390,["Address= ",BIN16 ADDRESS," Code = ",BIN8 CODE,13,10]
GOTO Start



TESTABIT:
BITVALUE = 0
PULSIN IRIN1, 1, BITVALUE
IF (BITVALUE < 200) OR (BITVALUE > 600) THEN
SEROUT2 SERPC,16390,["Interrupted Code or Garbage ",13,10]
GOTO Start
ENDIF
IF BITVALUE < 400 THEN
Btres = 1
ELSE
Btres = 0
ENDIF
RETURN

End