Hi Robert,
There is one feature on this family of MCUs – when such pin has several possible functions the “function precedence” is valid – (see Table 1-19/Sheet6 on p.56) the basic function in column Pin: PS[1:0] is changed to TXD0/RXD0 when SCI0 is enabled. The function which is more in right in table has precedence.
Did you check it in loop mode? What is the result? Are the send data on TXD pin right? If it is right, the BusCLK is OK and SCI0 TX line is OK. Then you can connect it externally to RXD pin and debug it by send one byte and check in debug mode the receive data register. If the data are inside, then check all generated flags and then interrupt.
I review your asm code and want to suggest you change the sequence of rows for clock setup:
movb #$07,REFDV
movb #$D8,SYNR
You need divide the external clock 16MHz to 2MHz as first and then multiply it to 100MHz in PLL. Otherwise the PLL VCO could be damaged by very high frequency in some MCUs.
The second think is the interrupt priority. Try disable RTI interrupt and enable only SCI0 interrupt. The RTI interrupt has highest priority so it is possible that the SCI0 interrupt can’t be serviced due to RTI active very frequently.
Please could you send me the schematic of your SCI0 connection too? I would like to check it independently if it is all OK.
I hope it helps you solve this issue.
Best Regards,
Stano.