brought the code over from the amiga test
[lugburz] / src / amiga / serial.h
1 #ifndef SERIAL_H_
2 #define SERIAL_H_
3
4 #include "hwregs.h"
5
6 /* dff030 is REG_SERDAT
7  * dff018 is REG_SERDATR
8  * bit 13 of SERDATR is TBE (transmit buffer empty)
9  */
10 #define ser_putchar(c) \
11         asm volatile( \
12                 "or.w #0x100, %0\n\t" \
13                 "0: btst #13, 0xdff018\n\t" \
14                 "beq 0b\n\t" \
15                 "move.w %0, 0xdff030\n\t" \
16                 :: "d"((int16_t)c))
17
18 void ser_init(int baud);
19 void ser_print(const char *s);
20
21 #endif  /* SERIAL_H_ */