A SERVICE OF

logo

Task-Specific Program Code
C-14
Example C–9. Asynchronous Serial Port Transmission (uart.asm) (Continued)
lar ar1,#rxbuf
lar ar0, #20 ; load buffer size
mar *,ar1 ; load data pointer
clrc intm
wait: clrc xf ; toggle xf bit
idle
b wait
uart: setc xf ; toggle xf bit
splk #0ffffh,67h
out *+,adtr ; transmit character from data buffer@300
mar *,ar0
banz skip,ar1 ; check if size=0, and reload
lar ar1,#rxbuf
lar ar0,#20 ; set size = character length
skip: splk #0020h,ifr ; Clear ifr bit
clrc intm
ret
inpt1: ret
inpt23: ret
timer: ret
codtx: ret
codrx: ret
.end ; Assembler module end directive
; –optional
Example C–10. Loopback to Verify Transmissions of Asynchronous Serial Port (echo.asm)
* File: echo.asm *
* Function: UART Test Code *
* Continuously echoes data received by UART at 1200 baud. *
* Received data will be stored in the buffer @300 *
.title ” UART/ASP loop back” ; Title
.copy ”init.h” ; Variable and register declaration
.copy ”vector.h” ; Vector label declaration
.text
start: clrc CNF ; Map block B0 to data memory
ldp #0h ; set DP=0
setc INTM ; Disable all interrupts