You query the serial device by passing an IOExtSer to the device with
SDCMD_QUERY set in io_Command. The serial device will respond with the
status of the serial port lines and registers, and the number of unread
characters in the read buffer.
UWORD Serial_Status;
ULONG Unread_Chars;
SerialIO->IOSer.io_Command = SDCMD_QUERY; /* indicate query */
SendIO((struct IORequest *)SerialIO);
Serial_Status = SerialIO->io_Status; /* store returned status */
Unread_Chars = SerialIO->IOSer.io_Actual; /* store unread count */
The 16 status bits of the serial device are returned in io_Status; the
number of unread characters is returned in io_Actual.
SERIAL DEVICE STATUS BITS
Bit Active Symbol Function
--- ------ ------ --------
0 - Reserved
1 - Reserved
2 high (RI) Parallel Select on the A1000. On
the A500 and A2000, Select is also
connected to the serial port's
Ring Indicator. (Be cautious when
making cables.)
3 low (DSR) Data set ready
4 low (CTS) Clear to send
5 low (CD) Carrier detect
6 low (RTS) Ready to send
7 low (DTR) Data terminal ready
8 high Read overrun
9 high Break sent
10 high Break received
11 high Transmit x-OFFed
12 high Receive x-OFFed
13-15 - (reserved)