From 99cf9c4dc5855b1f5f26d00267fdbbe672ee27a7 Mon Sep 17 00:00:00 2001 From: Jeffrey Armstrong Date: Mon, 5 Oct 2015 08:38:46 -0400 Subject: Initial commit --- baud.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 baud.c (limited to 'baud.c') diff --git a/baud.c b/baud.c new file mode 100644 index 0000000..f80ce13 --- /dev/null +++ b/baud.c @@ -0,0 +1,44 @@ +#include "fossil.h" +#include +#include + +int F_Set_Baud(long baud) +{ + union REGS regs; + int value; + + switch (baud) { + case 300: + value = 0x43; /* sets also 8 bit words, No parity, 1 stopbit */ + break; + case 600: + value = 0x63; + break; + case 1200: + value = 0x83; + break; + case 2400: + value = 0xA3; + break; + case 4800: + value = 0xC3; + break; + case 9600: + value = 0xE3; + break; + case 19200: + value = 3; + break; + case 38400: + value = 0x23; + break; + default: + return (FALSE); + } + + regs.h.ah = 0x00; + regs.h.al = (unsigned char) value; + regs.x.dx = (unsigned char) port; + int86(FOSSIL_INT, ®s, ®s); + return (regs.x.ax); +} -- cgit v1.2.3