TC: int bioscom( int cmd, char byte, int port )
- prototype in bios.h
- RS232 communications
- cmd = 0 to set comm parms to value in byte
1 to send char in byte out on RS232 line
2 to receive char
3 to return current port status
- port = 0 for COM1
1 for COM2
2 for COM3
3 for COM4
- byte = bitwise OR of following bits
0x02 = 7 data bits 0x00 = 1 stop bit
0x03 = 8 data bits 0x04 = 2 stop bits
0x00 == no parity;
0x08 == odd parity;
0x18 == even parity
0x00 110 bps 0x20 150 bps
0x40 300 bps 0x60 600 bps
0x80 1200 bps 0xa0 2400 bps
0xc0 4800 bps 0xe0 9600 bps
- returns 16-bit integer, upper 8 bits are status & lower 8 bits
depending on cmd sent
|7|6|5|4|3|2|1|0| low byte (AL) modem status
| | | | | | | `---- delta clear to send
| | | | | | `----- delta data set ready
| | | | | `------ trailing edge ring detector
| | | | `------- delta receive line signal detect
| | | `-------- clear to send
| | `--------- data set ready
| `---------- ring indicator
`----------- receive line signal detect
|F|E|D|C|B|A|9|8| high byte (AH) line status
| | | | | | | `---- data ready
| | | | | | `----- overrun error
| | | | | `------ parity error
| | | | `------- framing error
| | | `-------- break detect
| | `--------- transmit holding register empty
| `---------- transmit shift register empty
`----------- time out
- MS C uses _bios_serialcom()
- see INT 14