-- File: RS232CInternal.mesa
-- LastEdited: 13-Aug-81 16:15:37   By: Danielson  

DIRECTORY
  Environment USING [Byte],
  RS232C USING [ChannelHandle, ChannelUseType, ReserveType],
  RS232CFace USING [Handle, ParameterRecord],
  RS232CCorrespondents USING [oisSystemElement, system6, ttyHost];

RS232CInternal: DEFINITIONS =
  BEGIN
  -- Interface Definitions
  DeleteChannel: PROCEDURE [channel: RS232C.ChannelHandle];
  -- Non-interface definitions
  ChannelStatusHandle: TYPE = LONG POINTER TO ChannelStatus;
  ChannelStatus: TYPE = MONITORED RECORD [
    -- The monitor lock (LOCK) goes here.  Make certain it is initialized correctly by Mesa or a runtime call.
    parameterRecord: RS232CFace.ParameterRecord,
    inputSuspended, outputSuspended, otherSuspended: BOOLEAN,
    preemptInProgress, deleted: BOOLEAN,
    lastPreemptMe: RS232C.ReserveType,
    useType: RS232C.ChannelUseType,
    lineNumber: CARDINAL,
    statusWaitCount: CARDINAL,
    face: RS232CFace.Handle,
    next: ChannelStatusHandle];
  bitSynchronousDefaults: RS232CFace.ParameterRecord = [
    lineType: bitSynchronous,
    correspondent: RS232CCorrespondents.oisSystemElement, lineSpeed: bps1200,
    stopBits: 1, parity: none, charLength: 8, syncCount: 0, syncChar: 0,
    frameTimeout: 0, requestToSend: FALSE, dataTerminalReady: FALSE,
    resetRingHeard: FALSE, resetBreakDetected: FALSE, resetDataLost: FALSE,
    flowControl: [none, 0B, 0B], echo: FALSE];
  byteSynchronousDefaults: RS232CFace.ParameterRecord = [
    lineType: byteSynchronous, correspondent: RS232CCorrespondents.system6,
    lineSpeed: bps1200, stopBits: 1, parity: none, charLength: 8, syncCount: 2,
    syncChar: 62B --EBCDIC SYN-- , frameTimeout: 0, requestToSend: FALSE,
    dataTerminalReady: FALSE, resetRingHeard: FALSE, resetBreakDetected: FALSE,
    resetDataLost: FALSE, flowControl: [none, 0B, 0B], echo: FALSE];
  asynchronousDefaults: RS232CFace.ParameterRecord = [
    lineType: asynchronous, correspondent: RS232CCorrespondents.ttyHost,
    lineSpeed: bps1200, stopBits: 1, parity: none, charLength: 8, syncCount: 0,
    syncChar: 0, frameTimeout: 0, requestToSend: FALSE,
    dataTerminalReady: FALSE, resetRingHeard: FALSE, resetBreakDetected: FALSE,
    resetDataLost: FALSE, flowControl: [none, 0B, 0B], echo: FALSE];
  autoRecognitionDefaults: RS232CFace.ParameterRecord = [
    lineType: autoRecognition, correspondent: RS232CCorrespondents.system6,
    lineSpeed: bps1200, stopBits: 1, parity: none, charLength: 8, syncCount: 2,
    syncChar: 62B --EBCDIC SYN-- , frameTimeout: 0, requestToSend: FALSE,
    dataTerminalReady: FALSE, resetRingHeard: FALSE, resetBreakDetected: FALSE,
    resetDataLost: FALSE, flowControl: [none, 0B, 0B], echo: FALSE];
  -- Note that all parameters except requestToSend, dataTerminalReady, resetRingHeard, resetBreakDetected and resetDataLost are ignored for lineType=autoRecognition, as they must be overwritten by channel client after the results of auto-recognition are reported.

  END. -- RS232CInternal

LOG

Time: October 4, 1978  8:28 AM 	By: Victor Schwartz	Action: Created file
Time: May 23, 1980  12:01 PM 	By: Victor Schwartz	Action: Pre-Amargosa log entries deleted.
Time: May 23, 1980  2:26 PM 	By: Victor Schwartz	Action: Redefined ChannelStatus to
  allow support of multiple RS232C Channels.
Time: July 15, 1980  7:51 AM 	By: Victor Schwartz	Action: Remove statusChange from
  ChannelStatus record (RS232C Head does the WAIT).
Time: July 24, 1980  9:48 AM 	By: Victor Schwartz	Action: Change default correspondent
  for lineType=asynchronous from xerox800 to ttyHost.
Time: 22-Jul-81 11:05:22 	By: Danielson	Action: Changes for Pescadero : New fields
  for RS232CManager code which was made part of the RS232C channel.
Time: 13-Aug-81 16:15:28 	By: Danielson	Action: Changes for Pescadero : New fields