[And cannot be used to avoid collisions if delayed 1/2 cycle.
I may be good, but I can't anticipate when a bit is going to come. Per the X10 Spec, the data output must be asserted within 200uS after the zero crossing, but it takes 48 cycles of 120KHz before it can be recognized as a logic "1". Assuming the burst starts 100uS after the zero crossing (the X10 spec allows 150uS), that is at the mid point of the 1mS transmission window. If the data output is asserted at that point, devices that sample earlier in the cycle would miss it. So the data is output at the next zero crossing. I don't know how to do any better than that.
If you are concerned about collisions, all XTB devices except the original XTB can automatically abort a transmission if they detect a "1" when they should be transmitting a zero. And in that case there is no echo back to the controller, which informs it that the command was not transmitted.
Jeff