Task-Specific Program Code
C-17
Program Examples
Example C–11. Testing and Using Automatic Baud-Rate Detection on
Asynchronous Serial Port (autobaud.asm) (Continued)
uart:
setc xf
in 68h,iosr ; load input status from iosr
bit 68h,1 ; check if auto baud bit is set
bcnd rcv,ntc ; branch normal receive
splk #4fffh,67h ; clear ADC
out 67h,iosr
splk #0e080h,67h
out 67h, aspcr ; Disable CAD bit/auto baud
rcv: in 68h,iosr ; check for DR bit
bit 68h,7 ; bit 8 in the data
bcnd skip,ntc ; IF DR=0 no echo, return
in *,adtr ; read and save at 300h
out *+,adtr ; echo
mar *,ar0
banz skip,ar1 ; check if size=0, and reload
lar ar1,#rxbuf
lar ar0,#size
skip: splk #0020h,ifr ; Clear ifr
clrc intm
ret
inpt1: ret
inpt23: ret
timer: ret
codtx: ret
codrx: ret
.end ; Assembler module end directive
; –optional