Hi,
Could you tell me what is wrong in this program
I thought I did bring up least a couple of things that might be wrong.
You've corrected the variable size, that's good.

But,
* You are still doing the times 10 thing in the SERV subroutine, if the PC sends 700 you'll get a 7ms delay, what's the reason for it?
* You are still only sending a single pulse to the servo
* I took a brief look at the manual and as far as I can see SERIN2 can not directly handle WORDs, you need to split it, SERIN2 RX_inp,16468,[wait("PC"),RX,POS.HighByte, POS.LowByte] watch out for big vs little endian. Which brings me to the last thing...
* How is the PC sending the data? If it's sending it as ASCII, ie "1","2","3","4" instead of two bytes 4,210 then you need to use the DEC modifier in the SERIN2 statement.

/Henrik.