summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc119.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc119.txt')
-rw-r--r--doc/rfc/rfc119.txt1067
1 files changed, 1067 insertions, 0 deletions
diff --git a/doc/rfc/rfc119.txt b/doc/rfc/rfc119.txt
new file mode 100644
index 0000000..a72729e
--- /dev/null
+++ b/doc/rfc/rfc119.txt
@@ -0,0 +1,1067 @@
+
+
+
+
+
+
+Network Working Group M. Krilanovich
+Request for Comments: 119 UCSB
+NIC: 5831 April 21, 1971
+
+
+ NETWORK FORTRAN SUBPROGRAMS
+
+Preface
+
+ The subroutines described in this document have been implemented at
+ UCSB and make the Network (via the NCP) accessible to Fortran
+ programs executing in the 360/75. They are callable from within any
+ Fortran main program or subroutine compiled at UCSB.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Krilanovich [Page 1]
+
+RFC 119 Network Fortran Subprograms April 21, 1971
+
+
+ A set of assembly-language written subprograms is provided to
+ facilitate the sue of the Network by FORTRAN programmers. They serve
+ as an interface between the user and the Network Control Program
+ (NCP), which supervises all Network operations at this site.
+
+ A concept fundamental to FORTRAN Network operations is that of a
+ completion code variable. Associated with each socket that is not in
+ the closed state is a unique variable, called a completion code
+ variable. This variable serves two purposes: it identifies the local
+ socket referenced, and upon completion of the operation it contains a
+ completion code to indicate the outcome of the operation to the
+ programmer. It may be used at any time for any purpose other than
+ network operations. Its value at the beginning of a Network
+ operation is immaterial; rather it is the variable itself that is
+ important. In all Network operations, whenever a completion code
+ variable is called for, the only acceptable type variable is
+ INTERGER*4.
+
+ In general, the subprograms will initiate the operation, and enter
+ the WAIT state (consume no CPU time) until notified by the NCP of the
+ completion of the operation. For such operations, the programmer
+ supplies a time limit, of type INTERGER*4, which specifies, in tenths
+ of a second, the maximum length of time the subprogram is to wait for
+ the operation to complete. If this time limit is exceeded, a
+ completion code is supplied to indicate the error; and control is
+ returned to the calling program, with the operation still pending.
+
+ In those operations requiring a socket to be specified by its socket
+ identifier, the following format is used. The identifier is
+ specified as a INTEGER*4 array with at least two elements, or an
+ element of such an array. The first element specified is taken to be
+ the site number, and the next element the socket number. A socket
+ number may have any value, positive, negative, or zero. Since
+ negative numbers are represented internally in two's complement form,
+ for the purposes of the gender of a socket, a socket number is even
+ for odd according to whether its absolute value is even or odd,
+ respectively.
+
+ Following is a description of each subprogram, its function and
+ calling sequence.
+
+ (1) OPEN
+
+ By invoking this subprogram, the user requests that the specified
+ local socket be removed from the closed state and thus be
+ prepared to participate in data transfer. There are three
+ distinct operations that can be performed by this subprogram, and
+ these are described below:
+
+
+
+Krilanovich [Page 2]
+
+RFC 119 Network Fortran Subprograms April 21, 1971
+
+
+ (A) CONNECT
+
+ By initiating this operation, the user requests that the
+ specified local socket be logically connected to the
+ specified foreign socket, and that data transfer between the
+ two sockets be enabled. The subprogram will wait until the
+ foreign socket either accepts or rejects the connection
+ attempt. This operation is valid only when the local socket
+ is in the closed state.
+
+ The calling sequence is as follows:
+
+ CALL OPEN (cmpcd, time, lclsck, fgnsck, ws)
+
+ where
+ 'cmpcd' is the completion code variable to be associated
+ with the local socket.
+
+ 'time' is the length of time the subprogram is to wait
+ for the completion of the operation.
+
+ 'lclsck' is the socket identifier of the local socket.
+
+ 'fgnsck' is the socket identifier of the foreign socket.
+
+ 'ws' is a workspace, which as the same attributes as a
+ socket identifier, and, if the operation is
+ successful, will become associated with the local
+ socket for the life of the connection. In response
+ to certain future operations, information may be
+ returned to the programmer in this workspace.
+
+ The following completion codes are possible for this
+ operation:
+
+ 0, The operation was successful and the connection
+ has been established
+
+ 4, The specified completion code variable is
+ already assigned to a socket; the operation was
+ suppressed
+
+ 8, The specified local socket is not in the closed
+ state; the operation was suppressed
+
+ 12, All communication paths to the specified foreign
+ site are in use; the operation was suppressed
+
+
+
+
+Krilanovich [Page 3]
+
+RFC 119 Network Fortran Subprograms April 21, 1971
+
+
+ 16, Local resources are insufficient to support
+ another connection; the operation was suppressed
+
+ 20, The connection attempt was rejected by the
+ foreign process
+
+ 24, The specified local socket is not local to UCSB;
+ the operation was suppressed
+
+ 28, The specified foreign site is invalid; the
+ operation was suppressed
+
+ 32, An addressing or protection exception was
+ encountered with respect to the specified
+ workspace; the operation was suppressed
+
+ 36, Either hardware at the foreign site is
+ inoperative or the NCP's counterpart at the
+ foreign site does not exist or has failed
+
+ 40, Local and foreign sockets are both either send
+ or receive sockets; the operation was suppressed
+
+ 44, By operator command, all Network operations were
+ terminated; the socket will be closed
+
+ 60, An NCP control transmission error occurred; the
+ operation was suppressed
+
+ 252, The specified time limit was exceeded; the
+ operation was initiated but not completed
+
+ (B) LISTEN
+
+ This operation is a request for notification of any
+ connection attempt directed toward the specified local
+ socket. The subprogram waits until such a call is received,
+ at which time the calling processes' socket identifier is
+ returned to the calling program. This operation is valid
+ only when the designated local socket is in the closed state.
+
+ The calling sequence is as follows:
+
+ CALL OPEN (cmpcd, time, lclsck, ws)
+
+ Where
+ 'cmpcd' is the completion code variable to be associated
+ with the local socket.
+
+
+
+Krilanovich [Page 4]
+
+RFC 119 Network Fortran Subprograms April 21, 1971
+
+
+ 'time' is the length of time the subprogram is to wait
+ for the completion of the operation.
+
+ 'lclsck' is the socket identifier of the local socket.
+
+ 'ws' is a workspace which, if the operation is
+ successful, will contain the socket identifier of
+ the calling socket, and will become associated with
+ the local socket for the life of the connection.
+ 'ws' has the same attributes as a socket
+ identifier.
+
+ The following completion codes are possible for this
+ operation:
+
+ 0, The operation was successful and a call has been
+ received
+
+ 4, The specified completion code variable is
+ already assigned to a socket; the operation was
+ suppressed
+
+ 8, The specified local socket is not in the closed
+ state; the operation was suppressed
+
+ 12, Local resources are insufficient to support
+ another connection; the operation was suppressed
+
+ 16, The specified local socket is not local to UCSB;
+ the operation was suppressed
+
+ 20, An addressing or protection exception was
+ encountered with respect to the specified
+ workspace; the operation was suppressed
+
+ 44, By operator command, all Network operations were
+ terminated; the socket will be closed
+
+ 252, The specified time limit was exceeded; the
+ operation was initiated but not completed
+
+ (C) ACCEPT
+
+ This operation accepts connection with the foreign socket
+ whose call caused successful completion of a previous LISTEN
+ operation by the specified local socket. After completion of
+ this operation, data may be transferred to or from the local
+ socket, depending on its gender. This operation is valid
+
+
+
+Krilanovich [Page 5]
+
+RFC 119 Network Fortran Subprograms April 21, 1971
+
+
+ only when the last operation referencing the local socket was
+ a LISTEN operation. The subprogram will wait until the
+ operation is completed.
+
+ The calling sequence is as follows:
+
+ CALL OPEN (cmpcd, time)
+
+ Where
+ 'cmpcd' is the completion code variable associated with
+ the local socket by a previous LISTEN operation.
+
+ 'time' is the length of time the subprogram is to wait
+ for the completion of the operation
+
+ The following completion codes are possible for this
+ operation:
+
+ 0, The operation was successful, and the connection
+ is established
+
+ 4, The specified local socket is in the closed
+ state 9The NCP may have received an abort
+ notification from the foreign process); the
+ operation was suppressed
+
+ 8, the previous operation specifying the designated
+ local socket was not a LISTEN; the operation was
+ suppressed
+
+ 12, All communication paths to the specified foreign
+ site are in use; the socket has been returned to
+ the closed state
+
+ 252, the specified time limit was exceeded; the
+ operation was initiated but not completed
+
+ (2) CLOSE
+
+ This operation is a request that the specified local socket be
+ returned to the closed state. If the last operation involving
+ this socket was a LISTEN, this operation refuses the foreign
+ process' connection attempt. If the last operation was CONNECT,
+ the attempt is aborted. If a connection is established, any data
+ in transit from the local socket is allowed to reach the foreign
+ socket to be either received or flushed before the local socket
+ is closed. The subprogram will wait until the socket has been
+ returned to the closed state.
+
+
+
+Krilanovich [Page 6]
+
+RFC 119 Network Fortran Subprograms April 21, 1971
+
+
+ The calling sequence is as follows:
+
+ CALL CLOSE (cmpcd, time)
+
+ Where
+ 'cmpcd' is the completion code variable associated with
+ the local socket.
+
+ 'time' is the length of time the subprogram is to wait
+ for the completion of the operation.
+
+ The following completion codes are possible for this operation:
+
+ 0, the operation was successful, and the socket has
+ been returned to the closed state
+
+ 8, The specified completion code variable is not
+ currently assigned to a socket; the operation
+ was suppressed
+
+ 12, The specified local socket is in the process of
+ being closed; the operation was suppressed, but
+ the local socket will be closed
+
+ 36, Either hardware at the foreign site is
+ inoperative, or the NCP's counterpart at the
+ foreign site does not exist or has failed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Krilanovich [Page 7]
+
+RFC 119 Network Fortran Subprograms April 21, 1971
+
+
+ 44, By operator command, all Network operations were
+ terminated; the socket will be closed
+
+ 60, An NCP control transmission error occurred; the
+ operation was aborted
+
+ 64, A transmission error occurred; the operation was
+ aborted, but the socket will be closed
+
+ 252, The specified time limit was exceeded; the
+ operation was initiated but not completed
+
+ 3) SEND
+
+ This program causes data to be sent to the foreign socket. The
+ subprogram will wait until the data has been received by the
+ foreign socket, or until it has been queued locally by the NCP.
+
+ The calling sequence is as follows:
+
+ CALL WRITE (cmpcd, bfr, len, time [,offset])
+
+ Where
+ 'cmpcd' is the completion code variable associated with
+ the local socket.
+
+ 'bfr' is the data to be sent, and can be of any type,
+ any length.
+
+ 'len' is the number of bits of data to be sent. If
+ 'len' is non-positive, no operation is performed.
+ 'len' is of type INTEGER*4.
+
+ 'time' is the length of time the subprogram is to wait
+ for the completion of the operation.
+
+ 'offset' is the bit offset from the first bit of 'bfr'
+ at which data transmission is to begin, and is of
+ type INTEGER*4. If not specified, 'offset'
+ defaults to zero.
+
+ The following completion codes are possible for this operation:
+
+ 0, The operation was successful, and the data has
+ been sent
+
+ 4, The specified local socket is not a send socket;
+ the operation was suppressed
+
+
+
+Krilanovich [Page 8]
+
+RFC 119 Network Fortran Subprograms April 21, 1971
+
+
+ 8, The specified completion code variable is not
+ assigned to a socket; the operation was
+ suppressed
+
+ 12, A previous send operation is in progress; the
+ operation was suppressed
+
+ 16, The connection is not fully open; the operation
+ was suppressed
+
+ 20, The foreign socket terminated the connection
+ before completion of the send operation; not all
+ the data was transmitted
+
+ 36, Either hardware at the foreign site is
+ inoperative, or the NCP's counterpart at the
+ foreign site does not exist or has failed
+
+ 44, By operator command, all Network operations were
+ terminated; the socket will be closed
+
+ 52, One or more interrupts were received from the
+ foreign socket; the operation was suppressed
+
+ 56, An addressing exception was encountered with
+ respect to the data buffer; the operation was
+ suppressed
+
+ 60, An NCP control transmission error occurred; the
+ operation was aborted and the socket will be
+ closed
+
+ 64, A transmission error occurred; the operation was
+ aborted and the socket will be closed
+
+ 252, The specified time limit was exceeded; the
+ operation was initiated but not completed
+
+ 4) RECEIVE
+
+ This operation causes data to be received from the foreign
+ socket. The subprogram will wait until the reception of data is
+ complete.
+
+ The calling sequence is as follows:
+
+ CALL READ (cmpcd, bfr, len, time [,offset])
+
+
+
+
+Krilanovich [Page 9]
+
+RFC 119 Network Fortran Subprograms April 21, 1971
+
+
+ Where
+ 'cmpcd' is the completion code variable associated with
+ the local socket.
+
+ 'bfr' is the variable into which the data is to be
+ placed, and can be of any type, any length.
+
+ 'len' is the number of bits of data to be received. If
+ 'len' is non-positive, no operation is performed.
+ 'len' is of type INTEGER*4.
+
+ 'time' is the length of time the subprogram is to wait
+ for the completion of the operation.
+
+ 'offset' is the bit offset from the first bit of 'bfr'
+ at which the first bit of data is to be placed, and
+ is of type INTEGER*4. If not specified, the
+ 'offset' defaults to zero.
+
+ The following completion codes are possible for this operation:
+
+ 0, The operation was successful and the data has
+ been received
+
+ 4, The specified local socket is not a receive
+ socket; the operation was suppressed
+
+ 8, The specified completion code variable is not
+ assigned to a socket; the operation was
+ suppressed
+
+ 12, A previous receive operation is in process; the
+ operation was suppressed
+
+ 16, The connection is not fully open; the operation
+ was suppressed
+
+ 20, The foreign socket terminated the connection
+ before completion of the receive operation; data
+ is unpredictable
+
+ 24, An addressing or protection exception was
+ encountered with respect to the data buffer; the
+ operation was suppressed
+
+ 36, Either hardware at the foreign site is
+ inoperative, or the NCP's counterpart at the
+ foreign site does not exist or has failed
+
+
+
+Krilanovich [Page 10]
+
+RFC 119 Network Fortran Subprograms April 21, 1971
+
+
+ 44, By operator command, all network operations were
+ terminated; the socket will be closed
+
+ 52, One or more interrupts were received from the
+ foreign socket; the operation was suppressed
+
+ 60, An NCP control transmission error occurred; the
+ operation was suppressed and the socket will be
+ closed
+
+ 252, the specified time limit was exceeded; the
+ operation was initiated but not completed
+
+ 5) CHECK
+
+ This operation causes the status of the specified local socket to
+ be returned. There is no completion code variable associated
+ with this operation, since it is always successful and the socket
+ is identified by its socket number. This operation is valid at
+ any time and is always completed immediately.
+
+ The calling sequence is as follows:
+
+ CALL CHECK (lclsck, stat, menu, fgnsck, deficit)
+
+ Where
+ 'lclsck' is the socket identifier of the local socket.
+
+ 'stat' is a code for the status, and is of type
+ INTEGER*4.
+
+ 'mnem' is a mnemonic for the status, and can be of any
+ type, of any length greater than or equal to eight
+ bytes.
+
+ 'fgnsck' is the socket identifier of the foreign socket,
+ or zero.
+
+ 'deficit' is the send/receive deficit in bits, or zero,
+ and is to type INTEGER*4.
+
+ 'lclsck' is the only argument the programmer need
+ define; the others are output from the subprogram.
+
+
+
+
+
+
+
+
+Krilanovich [Page 11]
+
+RFC 119 Network Fortran Subprograms April 21, 1971
+
+
+ 'STAT' 'MNEM' MEANING
+ ------ ------ ---------
+ 0 OPEN A connection is fully established. No
+ SEND/RECEIVE operation is in progress.
+ 'fgnsck' is the socket identifier of the
+ connected socket. 'deficit' is the number of
+ bites queued locally at the socket by the NCP
+ and available to satisfy a future RECEIVE
+ operation, or awaiting output ads the results
+ of a previous SEND operation.
+
+ 1 LISTEN A LISTEN has been issued.
+
+ 2 CONNECT A CONNECT has been issued. 'fgnsck' is the
+ socket identifier of the foreign socket.
+
+ 3 DECISION A LISTEN has been completed. 'fgnsck' is
+ the socket identifier of the calling socket.
+
+ 4 CALL(S) One or more calls have been received for the
+ local socket. No LISTEN or CONNECT has been
+ issued.
+
+ 5 I/O A connection is fully established. A
+ SEND/RECEIVE operation is in progress.
+ 'fgnsck' is the socket identifier of the
+ connected socket. 'deficit' is the number
+ of bits yet to be sent or received.
+
+ 6 CLOSED The socket is in the closed state.
+
+ 7 <--DRAIN The foreign socket is attempting to close the
+ connection. The NCP has data yet to be ready
+ by the local socket. 'fgnsck' is the socket
+ identifier of the connected socket.
+ 'deficit' is the number of bits yet to be
+ received.
+
+ 8 DRAINED The foreign socket is attempting to close the
+ connection. The NCP is awaiting arrival at
+ the foreign site of data currently in
+ transit. 'fgnsck' is the socket identifier
+ of the connected socket.
+
+ 9 CLOSING The local socket has issued a CLOSE. The NCP
+ is in the process of returning the local
+ socket to the closed state. 'fgnsck' is the
+ socket identifier of the connected socket.
+
+
+
+Krilanovich [Page 12]
+
+RFC 119 Network Fortran Subprograms April 21, 1971
+
+
+ 10 DRAIN--> The local socket has issued a CLOSE. The NCP
+ is completing the last SEND operation before
+ returning the local socket to the closed
+ state. 'fgnsck' is the socket identifier
+ of the connected socket. 'deficit' is the
+ number of bits the NCP has yet to transmit.
+
+ (6) IDENTIFY
+
+ This operation is used to identify a local socket by its
+ completion code variable. The operation is valid at any time,
+ and is always completed immediately. Since it is always
+ successful, there are no completion codes for the operation, and
+ the contents of the completion code variable are not changed.
+
+ The calling sequence is as follows:
+
+ CALL ID (cmpcd, lclsck)
+
+ Where
+ 'cmpcd' is the completion code variable associated with
+ the local socket.
+
+ 'lclsck' is set to the socket identifier of the local
+ socket if the completion code variable is
+ associated with a socket, or to zero otherwise.
+
+ (7) SIGNAL
+
+ This operation is used to convey a signal to the foreign process.
+ The significance of the signal is completely user-dependent. The
+ effect is that the next time the foreign socket attempts to
+ initiate a RECEIVE or SEND operation, the operation will be
+ suppressed, and a completion code supplied indicating that a
+ signal had been received. The subprogram will wait until the
+ signal has been sent to the foreign NCP. This operation is valid
+ only when the socket is fully open.
+
+ The calling sequence is as follows:
+
+ CALL SIGNAL (cmpcd, time)
+
+ Where
+ 'cmpcd' is the completion code variable associated with
+ the local socket.
+
+ 'time' is the length of time the subprogram is to wait
+ for completion of the operation.
+
+
+
+Krilanovich [Page 13]
+
+RFC 119 Network Fortran Subprograms April 21, 1971
+
+
+ The following completion codes are possible for this operation:
+
+ 0, The operation was successful, and the signal has
+ been sent
+
+ 4, The specified completion code variable is not
+ assigned to a socket; the operation was
+ suppressed
+
+ 8, The connection is not fully open; the operation
+ was suppressed
+
+ Certain of the Network subprograms are intended for, although not
+ restricted to, use with the Online System Network operators. The
+ following is a general description of these operators:
+
+ In all Network operations involving the Online System Network
+ operators, there are certain conventions concerning the format
+ of the data sent and received. The data is grouped in
+ 'messages' consisting of three fields, op code, length, and
+ text, in that order. The op code is one byte in length and is
+ a code which indicates how the text field is to be
+ interpreted. The length field is two bytes long, and gives
+ the length, in bits, of the text fields, which contains the
+ actual data. (The op code and length fields together are
+ termed a header.)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Krilanovich [Page 14]
+
+RFC 119 Network Fortran Subprograms April 21, 1971
+
+
+ The following op codes are presently defined:
+
+ Op Code Meaning
+
+ 0 This op code is a NOP. No text field exists, and the
+ contents of the length field are unpredictable. (This
+ op code is used mainly as a delimiter.)
+
+ 1 The text field contains EBCDIC characters, one
+ character per byte. The Online System operators
+ consider the characters as intended for display as soon
+ as the text field has been received.
+
+ 2 The text contains codes for keypushes, one byte per
+ key. The Online operators consider the keys as
+ intended for execution as soon as the text field has
+ been received.
+
+ 3 The same as for an op code of 2, except that the Online
+ operators consider that the execution of the keys will
+ be delayed until all data for that receive operations
+ has been received.
+
+ The standard format of data sent or received by the Online System
+ operators is a string of messages, with the last message
+ indicated by a header with a NOP op code, called a trailer.
+ These conventions are the default situation; any of them may be
+ overridden by appropriate programming.
+
+ Following are descriptions of those subprograms intended for use
+ the Online System operators.
+
+ (8) WRITE TO ONLINE CONSOLE
+
+ This subprogram causes data, assumed to be characters represented
+ by their EBCDIC codes, to be sent from the specified local
+ socket. The characters are sent in a standard message, preceded
+ by a header, and optionally followed by a trailer. The
+ subprogram waits for the data to be received by the foreign
+ socket, or to be queued locally by the NCP. This operation is
+ valid only when the local socket is a send socket, and is fully
+ open.
+
+
+
+
+
+
+
+
+
+Krilanovich [Page 15]
+
+RFC 119 Network Fortran Subprograms April 21, 1971
+
+
+ The calling sequence is as follows:
+
+ CALL WTOLC (cmpcd, bfr, len, level, across, down, time)
+
+ Where
+ 'cmpcd' is the completion code variable associated with
+ the local socket.
+
+ 'bfr' is the character string to be sent, and can be of
+ any type, any length.
+
+ 'len' in absolute value, is the number of characters to
+ be sent. If 'len' is positive or zero, the end of
+ the data is indicated by a trailer; if 'len' is
+ negative, no trailer is sent. 'len' is of type
+ INTEGER*4.
+
+ 'level' indicates the mode of typing. The absolute
+ value of 'level', if non-zero, is the shift level
+ on which to type, and must be less than or equal to
+ nine. If greater than nine, one is sued. If
+ 'level' is positive, 'across' and 'down' are
+ relative to the current typing location. If
+ 'level' is negative, the carriage is positioned to
+ the upper left-hand corner before typing begins,
+ thus making 'across' and 'down' absolute
+ coordinates. If 'level' is zero, the tying is in
+ case one characters, and a carriage return precedes
+ the positioning for 'across' and 'sown.' If the
+ characters to be displayed are case one characters,
+ the header sent will have an op code which
+ indicates characters to be displayed as soon as
+ they are received; otherwise, the op code will
+ indicate buttons to be executed as soon as
+ received. 'level' is of type INTEGER*4.
+
+ 'across' is the number of spaces to be moved
+ horizontally across the display tube before
+ beginning to type. 'across' can have any value,
+ positive, negative, or zero, and is type INTEGER*4.
+
+ 'time' is the length of time the subprogram is to wait
+ for completion of the operation.
+
+ The completion codes for this operation are the
+ same as for SEND.
+
+
+
+
+
+Krilanovich [Page 16]
+
+RFC 119 Network Fortran Subprograms April 21, 1971
+
+
+ (9) READ FROM ONLINE CONSOLE
+
+ This subprogram receives data, assumed to be characters
+ represented by their EBCDIC codes, from the foreign socket in one
+ or more standard messages. The subprogram will wait for the
+ data, optionally followed by a trailer, to be received by the
+ local socket. This operation is valid only when the local socket
+ is a receive socket and is fully open.
+
+ The calling sequence is as follows:
+
+ CALL RFOLC (cmpcd, bfr, len, time)
+
+ Where
+ 'cmpcd' is the completion code variable associated with
+ the local socket.
+
+ 'bfr' is the variable into which the data is to be
+ placed, and can be of any type, any length.
+
+ 'len', in absolute value, is the maximum number of
+ characters to be placed in 'bfr'. If the length
+ fields of the head(s) received total more data than
+ 'len', the excess data will be received, but will
+ not placed into 'brf', and will not be accessible
+ to the program. If 'len' is positive or zero, data
+ will be received until a trailer is encountered.
+ If 'len' is negative, a single message, exclusive
+ of trailer, will be received. 'len' is of type
+ INTEGER*4.
+
+ 'time' is the length of time the subprogram is to wait
+ for completion of the operation.
+
+ The completion codes for this operation are the
+ same as for RECEIVE.
+
+ (10) WRITE TO ONLINE CONSOLE WITH REPLY
+
+ This subprogram combines the functions of 'WRITE TO ONLINE
+ CONSOLE' and 'READ FROM ONLINE CONSOLE'. The subprogram first
+ sends a string of data to the foreign socket form the specified
+ send socket, waits for it to be received by the foreign socket
+ (or queued locally by the NCP), and then waits for a reply
+ directed toward the specified receive socket. The operation is
+ valid only when the sockets have the correct gender and both are
+ fully open.
+
+
+
+
+Krilanovich [Page 17]
+
+RFC 119 Network Fortran Subprograms April 21, 1971
+
+
+ The calling sequence is as follows:
+
+ CALL WTOLCR (cmpcd, bfr, len, level, across, down, time,
+ cmpcd2, bfr2, len2)
+
+ Where
+ 'cmpcd' is the completion code variable associated with
+ the local send socket.
+
+ 'bfr' is as in 'WRITE TO ONLINE CONSOLE'.
+
+ 'len' is as in 'WRITE TO ONLINE CONSOLE'.
+
+ 'level' is an in 'WRITE TO ONLINE CONSOLE'.
+
+ 'across' as in 'WRITE TO ONLINE CONSOLE'.
+
+ 'down' is as in 'WRITE TO ONLINE CONSOLE'.
+
+ 'time' is the length of time the subprogram is to wait
+ for completion, individually, of the transmission
+ and reception of data.
+
+ 'cmpcd2' is the completion code variable associated with
+ the local receive socket.
+
+ 'brf2' is as 'bfr' in 'READ FROM ONLINE CONSOLE'.
+
+ 'len2' is as 'len' in 'READ FROM ONLINE CONSOLE'.
+
+ The completion codes for the send socket are the
+ same as for the SEND operation, and the completion
+ codes for the receive socket are the same as for
+ the RECEIVE operation.
+
+ (11) ERASE
+
+ This subprogram cause data constituting on Online System command
+ to erase the display tube to be sent from the specified local
+ socket. The data is sent in a single standard message, including
+ an op code indicating characters to be displayed as they are
+ received, and optionally including a trailer. The subprogram
+ waits for the data to be received by the foreign socket, or to be
+ queued locally by the NCP. This operation is valid only when the
+ local socket is a send socket, and is fully open.
+
+ The calling sequence is as follows:
+
+
+
+
+Krilanovich [Page 18]
+
+RFC 119 Network Fortran Subprograms April 21, 1971
+
+
+ CALL ERASE ('cmpcd', 'delay1', 'delay2', 'time')
+
+ Where
+ 'cmpcd' is the completion code variable associated with
+ the local socket.
+
+ 'delay1', in absolute value, is the length of time, in
+ tenths of a second, the subprogram is to pause (in
+ the WAIT state) before sending the erase. If
+ 'delay1' is positive or zero, a trailer will be
+ sent after the erase; if negative, no trailer will
+ be sent. 'delay1' is of type INTEGER*4.
+
+ 'delay2' is the length of time, in tenths of a second,
+ the subprogram is to pause after sending the erase
+ and before returning control to the calling
+ program, and is of type INTEGER*4.
+
+ 'time' is the length of time the subprogram is to wait
+ for completion of the operation.
+
+ The completion codes for this operation are the
+ same as for SEND.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Krilanovich [Page 19]
+