diff options
| author | Jeffrey Armstrong <jeffrey.armstrong@approximatrix.com> | 2015-10-05 08:38:46 -0400 |
|---|---|---|
| committer | Jeffrey Armstrong <jeffrey.armstrong@approximatrix.com> | 2015-10-05 08:38:46 -0400 |
| commit | 99cf9c4dc5855b1f5f26d00267fdbbe672ee27a7 (patch) | |
| tree | 83a11a0dc0f87198e251ca7ec19504aeec152bc1 /baud.c | |
| download | foslib-master.tar.gz foslib-master.zip | |
Diffstat (limited to 'baud.c')
| -rw-r--r-- | baud.c | 44 |
1 files changed, 44 insertions, 0 deletions
@@ -0,0 +1,44 @@ +#include "fossil.h"
+#include <dos.h>
+#include <stdlib.h>
+
+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);
+}
|
