To anyone else who may be interested in receiving a serial string, reading it and then doing something based upon a character(s) received, let me know and I'll post some really nice code to play with.

yupe. i need a program to receive a serial string, reading it and then doing something. my string is something like this X-Addr-Mode-Data(30bytes)-Y
where X stand for SOT and Y stand for EOT. Addr is use to indicate the dedicated address value i want to send data.

my code is something like below:
include "modedefs.bas"
DEFINE SHIFT_PAUSEUS 20
define OSC 20
DEFINE HSER_CLOERR 1 ' automatic clear overrun error

TRISA=%11110000
TRISB= %11111011
TRISC.6 = 1
TRISC.7 = 0

symbol Addr_Data_In=porta.4
symbol en=porta.3
symbol stb=porta.2
symbol clk=porta.1
symbol data_out=porta.0

SPBRG = 32 ' Set baud rate to 9600
RCSTA = $90 ' Enable serial port and continuous receive
TXSTA = $24 ' Enable transmit and asynchronous mode
RCIF VAR PIR1.5 ' Receive interrupt flag (1=full , 0=empty)
TXIF VAR PIR1.4 ' Transmit interrupt flag (1=empty, 0=full)
OERR var RCSTA.1 ' Overrun error
CREN var RCSTA.4 ' Continuous receive
ADCON1=6

display: if RCIF then
i=RCREG
if i != "X" then discard

redo: hserin 500,discard,[i]
if i="Y" then discard
serialstring[counter]=i
counter=counter+1
goto redo

discard: if i="Y" then success=1
endif
if success then
cren = 0
if (serialstring[0] <> address_Value) then reset
if serialstring[1] = $30 then turn_off_led
serialstring[2]=a29
serialstring[3]=a28
serialstring[4]=a27
serialstring[5]=a26
serialstring[6]=a25
serialstring[7]=a24
serialstring[8]=a23
serialstring[9]=a22
serialstring[10]=a21
serialstring[11]=a20
serialstring[12]=a19
serialstring[13]=a18
serialstring[14]=a17
serialstring[15]=a16
serialstring[16]=a15
serialstring[17]=a14
serialstring[18]=a13
serialstring[19]=a12
serialstring[20]=a11
serialstring[21]=a10
serialstring[22]=a9
serialstring[23]=a8
serialstring[24]=a7
serialstring[25]=a6
serialstring[26]=a5
serialstring[27]=a4
serialstring[28]=a3
serialstring[29]=a2
serialstring[30]=a1
serialstring[31]=a0
endif
reset: cren=1 ' Enable receiver
goto display