DBGUREG
cidr = DBGUREG(DBGU_CIDR);
DBGUREG(DBGU_IER) = DBGU_INT_RXRDY;
imr = DBGUREG(DBGU_IMR);
sr = DBGUREG(DBGU_SR);
c = DBGUREG(DBGU_RHR);
DBGUREG(DBGU_CR) = DBGU_CR_RSTSTA;
DBGUREG(DBGU_IDR) = DBGU_INT_TXRDY;
DBGUREG(DBGU_IDR) = -1;
DBGUREG(DBGU_IER) = DBGU_INT_RXRDY; // @@@@@
while (DBGUREG(DBGU_SR) & DBGU_SR_TXRDY) {
DBGUREG(DBGU_THR) = *(sc->sc_tba + n) & 0xff;
DBGUREG(DBGU_IER) = DBGU_INT_TXRDY;
DBGUREG(DBGU_IDR) = -1;
DBGUREG(DBGU_IER) = DBGU_INT_RXRDY;
while (DBGUREG(DBGU_SR) & DBGU_SR_RXRDY
DBGUREG(DBGU_RHR);
DBGUREG(DBGU_MR) = DBGU_MR_PAR_NONE;
DBGUREG(DBGU_BRGR) = sc->sc_brgr;
DBGUREG(DBGU_CR) = DBGU_CR_TXEN | DBGU_CR_RXEN; // @@@ just in case
DBGUREG(DBGU_IDR) = DBGU_INT_RXRDY;
DBGUREG(DBGU_IER) = DBGU_INT_RXRDY;
while((DBGUREG(DBGU_SR) & DBGU_SR_TXEMPTY) == 0) {
sr = DBGUREG(DBGU_SR);
DBGUREG(DBGU_CR) = DBGU_CR_RSTSTA; // reset status bits
DBGUREG(DBGU_PDC + PDC_PTCR) = PDC_PTCR_TXTDIS | PDC_PTCR_RXTDIS; \
DBGUREG(DBGU_BRGR) = ((mstclk) / 16 + (speed) / 2) / (speed); \
DBGUREG(DBGU_MR) = DBGU_MR_PAR_NONE; \
DBGUREG(DBGU_CR) = DBGU_CR_RSTSTA | DBGU_CR_RSTTX | DBGU_CR_RSTRX; \
DBGUREG(DBGU_CR) = DBGU_CR_TXEN | DBGU_CR_RXEN; \
(void)DBGUREG(DBGU_SR); \
while ((DBGUREG(DBGU_SR) & DBGU_SR_TXRDY) == 0) { \
DBGUREG(DBGU_THR) = ch; \
#define DBGU_PEEKC() ((DBGUREG(DBGU_SR) & DBGU_SR_RXRDY) ? DBGUREG(DBGU_RHR) : -1)