Zunächst mal, Du hast vermutlich n Fehler in der Senderoutine:


Portd.2 = 1
Waitms 5
Print "test"
Portd.2 = 0

Also Du schaltest den 485 Busbaustein auf Senden, mit

Portd.2 = 1

Dann warteste 5ms um sicherzustellen, dass der Bus auch wirklich auf senden ist, soweit richtig.

Dann verwendeste den Print Befehl zum Senden, das kann man auch so machen, der Haken ist, dass das Programm dann schon auf
Portd.2 = 0 geht, obwohl das Senden selbst noch nicht abgeschlossen
ist. Du hast übersehen, das der Mega8 nen Sendepuffer hat, der mit dem
Print beschrieben wird und dann die Zeichen in die UART schiebt,
während das Programm schon weiter läuft.
Du musst also sicherstellen, dass der Bus erst umgeschaltet wird, wenn
auch wirklich die Daten raus sind und nicht noch was im Puffer hängt.
Am Einfachsten machste das mit dem TXC - Flag.