56 lines
1.8 KiB
Plaintext
56 lines
1.8 KiB
Plaintext
|
DEFINITION MODULE RS232Polling;
|
|||
|
(*
|
|||
|
Polled input/output via the serial port
|
|||
|
|
|||
|
|
|||
|
Derived from the Lilith Modula-2 system developed by the
|
|||
|
group of Prof. N. Wirth at ETH Zurich, Switzerland.
|
|||
|
|
|||
|
|
|||
|
Since this module does not use interrupts, it is the responsibility
|
|||
|
of the programmer to poll (by calling 'Read' or 'BusyRead')
|
|||
|
frequently enough to ensure that no characters are lost.
|
|||
|
*)
|
|||
|
|
|||
|
EXPORT QUALIFIED Init, BusyRead, Read, Write;
|
|||
|
|
|||
|
|
|||
|
PROCEDURE Init (baudRate: CARDINAL; stopBits: CARDINAL;
|
|||
|
parityBit: BOOLEAN; evenParity: BOOLEAN;
|
|||
|
nbrOfBits: CARDINAL; VAR result: BOOLEAN);
|
|||
|
(*- Initialize the serial port.
|
|||
|
in: baudRate transmission speed,
|
|||
|
stopBits number of stop bits (usually 1 or 2),
|
|||
|
parityBit if TRUE, parity is used, otherwise not,
|
|||
|
evenParity if parity is used, this indicates even/odd,
|
|||
|
nbrOfBits number of data bits (usually 7 or 8),
|
|||
|
out: result TRUE if the initialization was completed.
|
|||
|
|
|||
|
The legal values for the parameters depend on the implementation
|
|||
|
(e.g. the range of supported baud rates).
|
|||
|
*)
|
|||
|
|
|||
|
PROCEDURE BusyRead (VAR ch: CHAR; VAR received: BOOLEAN);
|
|||
|
(*- Read a character from serial port, if one has been received.
|
|||
|
out: ch the character received, if any,
|
|||
|
received TRUE if a character was received.
|
|||
|
|
|||
|
If no character has been received, ch = 0C, received = FALSE.
|
|||
|
*)
|
|||
|
|
|||
|
PROCEDURE Read (VAR ch: CHAR);
|
|||
|
(*- Read a character from the serial port.
|
|||
|
out: ch the character received.
|
|||
|
|
|||
|
As opposed to BusyRead, Read waits for a character to arrive.
|
|||
|
*)
|
|||
|
|
|||
|
PROCEDURE Write (ch: CHAR);
|
|||
|
(*- Write a character to the serial port.
|
|||
|
in: ch character to send.
|
|||
|
|
|||
|
Note: no interpretation of characters is made.
|
|||
|
*)
|
|||
|
|
|||
|
END RS232Polling.
|
|||
|
|