DIRECTORY RS232CEnvironment USING [AutoRecognitionOutcome, CharLength, CompletionHandle, Correspondent, LineSpeed, LineType, Parity, PhysicalRecord, PhysicalRecordHandle, StopBits, SyncChar, SyncCount]; RS232CFace: DEFINITIONS = BEGIN On: PROCEDURE [lineNumber: CARDINAL]; Off: PROCEDURE [lineNumber: CARDINAL]; GetLineCount: PROCEDURE RETURNS [lineCount: CARDINAL]; ResetLine: PROCEDURE [lineNumber: CARDINAL, paramHandle: ParamHandle] RETURNS [outcome: ParameterOutcome]; SetParameters: PROCEDURE [lineNumber: CARDINAL, paramHandle: ParamHandle] RETURNS [outcome: ParameterOutcome]; AutoRecognitionWait: PROCEDURE [lineNumber: CARDINAL] RETURNS [outcome: RS232CEnvironment.AutoRecognitionOutcome]; Put: PROCEDURE [lineNumber: CARDINAL, rec: RS232CEnvironment.PhysicalRecordHandle] RETURNS [RS232CEnvironment.CompletionHandle]; Get: PROCEDURE [lineNumber: CARDINAL, rec: RS232CEnvironment.PhysicalRecordHandle] RETURNS [RS232CEnvironment.CompletionHandle]; TransferWait: PROCEDURE [lineNumber: CARDINAL, event: RS232CEnvironment.CompletionHandle] RETURNS [byteCount: CARDINAL, status: TransferStatus]; SendBreak: PROCEDURE [lineNumber: CARDINAL]; AbortInput: PROCEDURE [lineNumber: CARDINAL]; AbortOutput: PROCEDURE [lineNumber: CARDINAL]; GetStatus: PROCEDURE [lineNumber: CARDINAL] RETURNS [stat: DeviceStatus]; StatusWait: PROCEDURE [lineNumber: CARDINAL, stat: DeviceStatus] RETURNS [newstat: DeviceStatus]; AbortStatus: PROCEDURE [lineNumber: CARDINAL]; TransmitNow: PROCEDURE [lineNumber: CARDINAL, event: RS232CEnvironment.CompletionHandle] RETURNS [byteCount: CARDINAL, status: TransferStatus]; ParamHandle: TYPE = LONG POINTER TO ParameterRecord; ParameterRecord: TYPE = RECORD [ lineType: RS232CEnvironment.LineType, correspondent: RS232CEnvironment.Correspondent, lineSpeed: RS232CEnvironment.LineSpeed, stopBits: RS232CEnvironment.StopBits, parity: RS232CEnvironment.Parity, charLength: RS232CEnvironment.CharLength, syncCount: RS232CEnvironment.SyncCount, syncChar: RS232CEnvironment.SyncChar, frameTimeout: CARDINAL, requestToSend, dataTerminalReady, resetRingHeard, resetBreakDetected, resetDataLost: BOOLEAN ]; ParameterOutcome: TYPE = {success, unimplemented}; TransferStatus: TYPE = { success, dataLost -- (caused by input buffer overrun --, deviceError, frameTimeout, checksumError, parityError, asynchFramingError -- (i.e. stop bit(s) missing) --, invalidChar, invalidFrame, aborted, disaster}; DeviceStatus: TYPE = RECORD [ dataLost: BOOLEAN, breakDetected: BOOLEAN, -- latched clearToSend, dataSetReady, carrierDetect: BOOLEAN, ringHeard: BOOLEAN, -- latched ringIndicator: BOOLEAN, deviceError: BOOLEAN ]; -- set if fatal device problem occurs END. ๚RS232CFace.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Danielson: January 20, 1981 3:56 PM Beach, February 27, 1985 10:58:48 am PST This DEFINITIONS module attempts to capture the lowest level interface to an RS-232-C controller which is still independent of the particular controller implementation, as well as the processor on which the controller resides. Interface Procedures TYPEs latched: caused by arrival of data with no input buffer allocated CHANGE LOG Time: May 8, 1979 8:45 AM By: Victor Schwartz Action: Created file Time: May 30, 1980 2:39 PM By: Victor Schwartz Action: Remove pre-Amargosa log entries, and add lineNumber parameter to On and Off, to allow resource allocation on a line-by-line basis. Time: August 4, 1980 12:58 PM By: Victor Schwartz Action: Remove PROCEDUREs SuspendInput, SuspendOutput, RestartInput, RestartOutput. Change ParamHandle to a LONG pointer. Time: January 20, 1981 12:37 PM By: Danielson Action: Added deviceError bit to DeviceStatus. ส!˜codešœ™Kšœ ฯmœ1™