10 ; TODO: will the assembler be able to evaluate these expressions?
12 UART_STATUS=(UART_BASE+0x4)
13 UART_RECV=(UART_BASE+0x8)
14 UART_TRANS=(UART_BASE+0xC)
15 UART_BAUD=(UART_BAUD+0x10)
21 ldil r3, UART_STATUS@lo
22 ldih r3, UART_STATUS@hi
23 andi r3, r3, 1 << UART_TRANS_EMPTY
24 jumpzs+ send_byte ; jump if zero
25 ldil r3, UART_TRANS@lo
26 ldih r3, UART_TRANS@hi
31 ; TODO: loop? (less codesize...)
42 ldil r3, UART_STATUS@lo
43 ldih r3, UART_STATUS@hi
44 andi r3, r3, 1 << UART_RECV_NEW
45 jumpzs+ send_byte ; jump if zero
100 branch recv_word ; receive addr
102 branch recv_word ; receive instr
109 branch recv_word ; receive addr
118 branch recv_word ; receive addr
120 branch recv_word ; receive data
127 branch recv_word ; receive addr
140 TIMEOUT_START=0x13371337
141 DEFAULT_PROG_START=0x200
142 STACKSTART=0x500 ; FIXME
145 ldil r15, STACKSTART@lo
146 ldih r15, STACKSTART@hi
148 ldil r3, TIMEOUT_START@lo
149 ldih r3, TIMEOUT_START@hi
152 ldil r3, UART_STATUS@lo
153 ldih r3, UART_STATUS@hi
154 andi r3, r3, 1 << UART_RECV_NEW
155 jumpzs+ next; jump if zero
158 ; we received the enter bootrom sign
166 ; branch to default entry point
167 ldil r0, DEFAULT_PROG_START@lo
168 ldih r0, DEFAULT_PROG_START@hi
171 ; 99 instr. please update after modification