/* * INT14 * MS-DOS sarjaportin i/o-rutiineja Microsoft C:ll{ * * Tapani Lindgren 15-JUNE-1986 * */ #include int getport(portno) int portno; /* io port number */ /* get a character from input port - return EOF if no character available */ union REGS regs; { regs.x.dx = portno; regs.h.ah = 3; /* status call */ int86(0x14, ®s, ®s); if (regs.h.ah & 1) { /* data ready? */ regs.h.ah = 2; /* receive char */ int86(0x14, ®s, ®s); return(regs.h.al); } else return(EOF); /* no char available */ } /* getport */ int putport(portno,c) int portno; /* put a character to output port - return 1 if succeeded, 0 if port not ready */ int c; union REGS regs; { regs.x.dx = portno; regs.h.ah = 3; /* status call */ int86(0x14, ®s, ®s); if (regs.h.ah & 0x20) { /* transmit buffer empty */ regs.h.ah = 1; /* transmit char */ int86(0x14, ®s, ®s); return(1); } else return(0); } /* putport */