Nein, ich mein

while(forever)
if (pinx.Rx) portx.Tx = 1; else portx.Tx = 0;

ganz brutal.

Und dann
while(forever)
if (bTxFlag & RX_M_REVEICE)
if (pinx.Rx) portx.Tx = 1; else portx.Tx = 0;


( RX_M_Receive wird ja vom int0 gesetzt und im Timer nach 9 Bit gelöscht, also theoretisch genau ein Byte lang )
--M_DATA is mal wurst