Hi UDP
I won't try to answer all question but did see some things when comparing my code, which may help:
1. To reset the receiver and transmitter you need to write 0x20 then 0x30 to UCR. 0x10 resets the command pointer only.
2. I use 0x0061 for 19600 (with 60MHz clock) - also UCSR = 0xdd. Divide Value = BUS_CLOCK/19200/32
Are you using 30MHz clock? 49 == 0x31 and not 0x28..
3. I think that this line is possibly faulty. MCF_INTC0_IMRL&=ENABLE_UART1_INT;
I think the bit should be inverted...? Maybe your define is already inverted though (?)
Hope it helps
Regards
Mark Butcher
www.mjbc.ch