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.