An RS-232 signal always starts with a "start" bit. The data line is (don't shoot me guys if I have this backwards) in the "mark" state when the line is idle. The data will look something like this: 11111111111111111111111110000000000011111111111111100000000000000111111111111111 111111111111111111111111100000000011111 X The mark-space transition at "X" is a reference. For normal RS-232 reception you find this transition, and do everything else by timing from it. That way your clock only needs to be accu rate enough to still be somewhere in the middle of the bit after 10 cycles. I have a code sample and word document explaining it's operation (with schematic .) email me offline if you'd like these. They use Charles Manning's Assembler (in fact, they're the example he gives with the assembler) so the bit operation syntax is a bit odd. -- Anniepoo Need loco motors? http://www.idiom.com/~anniepoo/depot/motors.html