aboutsummaryrefslogtreecommitdiff
path: root/amforth-6.5/avr8/words/usart-tx-poll.asm
blob: a33e8fbe0a5374c93c39929636e6dfcff8d3e9fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
; (c -- )
; MCU
; check availability and send one character to the terminal using register poll
VE_TX_POLL:
    .dw $ff07
    .db "tx-poll",0
    .dw VE_HEAD
    .set VE_HEAD = VE_TX_POLL
XT_TX_POLL:
    .dw DO_COLON
PFA_TX_POLL:
  ; wait for data ready
  .dw XT_TXQ_POLL
  .dw XT_DOCONDBRANCH
  .dw PFA_TX_POLL
  ; send to usart
  .dw XT_DOLITERAL
  .dw USART_DATA
  .dw XT_CSTORE
  .dw XT_EXIT

; ( -- f) MCU
; MCU
; check if a character can be send using register poll
VE_TXQ_POLL:
    .dw $ff08
    .db "tx?-poll"
    .dw VE_HEAD
    .set VE_HEAD = VE_TXQ_POLL
XT_TXQ_POLL:
    .dw DO_COLON
PFA_TXQ_POLL:
  .dw XT_PAUSE
  .dw XT_DOLITERAL
  .dw USART_A
  .dw XT_CFETCH
  .dw XT_DOLITERAL
  .dw bm_USART_TXRD
  .dw XT_AND
  .dw XT_EXIT