RFC 120 (rfc120) - Page 2 of 16
Network PL1 subprograms
Alternative Format: Original Text Document
RFC 120 NETWORK PL1 SUBPROGRAMS
PREFACE
The subroutines described in this document have been implemented at UCSB
and make the Network (via the NCP) accessible to PL1 programs executing
in the 360/75. They are callable from within any PL1 main program or
subroutine compiled at UCSB.
A set of assembly-language written subprograms is provided to
facilitate the use of the Network by PL1 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 PL1 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 attributes for the
variable are BINARY FIXED(31,0)ALIGNED.
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, with attributes BINARY FIXED(31,0), 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 BINARY FIXED(31,0) array, singly dimensioned with at
least two elements, and with a lower subscript bound of one. The
first element is taken to be the site number, and the second 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 or odd according to whether its absolute
value is even or odd, respectively.