Well here we go, and it even works - well there's no false positives, but some times it doesn't activate, but better then it was.

Code:
' Configure the FUSE options for the compiler
@     device pic16F628A, hs_osc, wdt_off, pwrt_on, lvp_off, protect_off, bod_on, cpd_off, pwrt_off, mclr_off

' Running a 4Mhz clock
DEFINE OSC 20
DEFINE PULSIN_MAX 3000

CMCON  = 7
ALL_DIGITAL

' Setup the USART
DEFINE HSER_RCSTA 90h      ' Receive register to receiver enabled
DEFINE HSER_TXSTA 20h      ' Transmit register to transmitter enabled
DEFINE HSER_BAUD 9600      ' Set baud rate

RFIN VAR PORTB.7

INPUT RFIN

PBITS   VAR BYTE[24] ' The bits we've read
RAW     VAR WORD     ' The raw pulsin value
ADDRESS VAR WORD     ' Storage for the address
DBYTE   VAR BYTE     ' Storage for the data
LOOPDBYTE VAR BYTE
LOOPADDRESS VAR WORD
X       VAR BYTE
Y       VAR BYTE

GET_ADD:
    ADDRESS = 0 : RAW = 0 : DBYTE = 0

GET_PULSE:
    ' Look for one huge low pulse
    PULSIN RFIN, 0, RAW
    ' 2350 is about mean average
    IF RAW < 2330 OR RAW > 2370 THEN GET_PULSE

    ' Read 16 address bits and 8 data bits    
    FOR X = 0 TO 23
        PULSIN RFIN, 0, RAW
        PBITS[x] = NCD RAW
    NEXT X
    
    ADDRESS = 65535 ' Maxmimum known ID
    FOR X = 0 to 15
        IF PBITS[x] > 7 THEN ADDRESS.0[X] = 0
    NEXT X
    
    DBYTE = 255 ' Maximum known data value
    Y=0
    FOR X = 16 TO 23
        IF PBITS[X] > 7 THEN DBYTE.0[Y] = 0
        Y = Y + 1
    NEXT X

    ' If we've done a loop...
    IF ADDRESS == LOOPADDRESS AND DBYTE == LOOPDBYTE THEN
        SELECT CASE DBYTE
            CASE 3
                GOSUB subUp
            CASE 12
                GOSUB subStop
            CASE 192
                GOSUB subDown
        END SELECT
        LOOPDBYTE = 0
        LOOPADDRESS = 0
    ELSE
        ' Start a loop
        LOOPDBYTE = DBYTE
        LOOPADDRESS = ADDRESS
    ENDIF

    GOTO GET_ADD
END

subUp:
    HSEROUT ["UP",10,13]
    RETURN
    
subStop:
    HSEROUT ["STOP", 10, 13]
    RETURN

subDown:
    HSEROUT ["DOWN",10,13]
    RETURN
Any suggestible improvements? (btw, thanks for all the help so far