X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=retrocrawl;a=blobdiff_plain;f=src%2Famiga%2Fserial.h;fp=src%2Famiga%2Fserial.h;h=e460c9892457050918f2bd6768ccd475e3a49619;hp=0000000000000000000000000000000000000000;hb=fa6997608f790933b3d4bb9f55d17084f77dfc16;hpb=4c23d7e521ae7ce598447792cec02cba4cf05c87 diff --git a/src/amiga/serial.h b/src/amiga/serial.h new file mode 100644 index 0000000..e460c98 --- /dev/null +++ b/src/amiga/serial.h @@ -0,0 +1,21 @@ +#ifndef SERIAL_H_ +#define SERIAL_H_ + +#include "hwregs.h" + +/* dff030 is REG_SERDAT + * dff018 is REG_SERDATR + * bit 13 of SERDATR is TBE (transmit buffer empty) + */ +#define ser_putchar(c) \ + asm volatile( \ + "or.w #0x100, %0\n\t" \ + "0: btst #13, 0xdff018\n\t" \ + "beq 0b\n\t" \ + "move.w %0, 0xdff030\n\t" \ + :: "d"((int16_t)c)) + +void ser_init(int baud); +void ser_print(const char *s); + +#endif /* SERIAL_H_ */