*DECK FIP 
PROC FIP; 
# TITLE FIP - FACILITIES INTERFACE PROGRAM. # 
  
      BEGIN  # FIP #
  
# 
***** FIP - FACILITIES INTERFACE PROGRAM. 
* 
*     FIP IS AN INTERFACE PROGRAM BETWEEN AN APPLICATION PROGRAM AND
*     THE REMOTE HOST FACILITY (RHF) SUBSYSTEM.  FIP IS RESPONSIBLE FOR 
*     THAT PORTION OF THE LEVEL 6 PROTOCOL WHICH DEALS WITH THE METHOD
*     OF EXCHANGING DATA AND CONTROL MESSAGES BETWEEN APPLICATION 
*     PROGRAMS AND THE RHF SUBSYSTEM. 
* 
  
***   FIP CONSISTS OF A SET OF CPU MODULES WHICH ACCESS THE RHF 
*     NETWORK, INITIATE AND CONTROL RHF NETWORK PROCESSING, AND 
*     TRANSMIT AND RECEIVE DATA AND SUPERVISORY MESSAGES BETWEEN THE
*     APPLICATION PROGRAM AND THE RHF NETWORK SOFTWARE. 
* 
*     THE FIP MODULES ARE BROUGHT INTO AN APPLICATION-S FIELD LENGTH AT 
*     LOAD TIME WHENEVER A MODULE-S ENTRY POINT IS REFERENCED.  FIP-S 
*     USER CALLABLE ENTRY POINTS, EQUIVALENT ENTRY POINTS, AND
*     ASSOCIATED FUNCTIONS ARE AS FOLLOW-S: 
* 
*         NETON/RHFON      -  ESTABLISH ACCESS TO THE NETWORK.
*         NETOFF/RHFOFF    -  END ACCESS TO THE NETWORK.
*         NETWAIT/RHFWAIT  -  SUSPEND APPLICATION TEMPORARILY.
*         NETDBG/RHFDBG    -  TURN DEBUGGING ON OR OFF. 
*         NETGET/RHFGET    -  GET DATA FROM SPECIFIED CONNECTION. 
*         NETGETL/RAFGETL  -  GET DATA FROM 1 OF A LIST OF CONNECTIONS. 
*         NETPUT/RHFPUT    -  SEND DATA TO A SPECIFIED CONNECTION.
*         NETXFR/RHFXFR    -  INITIATE A FILE TRANSFER TO/FROM A
*                             SPECIFIED CONNECTION. 
*         NETXFRC/RHFXFRC  -  CONTINUE THE TRANSFER OF ALL ACTIVE FILES 
*                             IN PROGRESS.
* 
*     USER RESTRICTIONS:  
*       1.  A REFERENCE TO THE NETON MODULE MUST BE MADE WITHIN AN
*           OVERLAY THAT WILL REMAIN STATIONARY THROUGHOUT NETWORK
*           ACTIVITY.  THIS IS BECAUSE NETON CONTAINS COMMON BLOCKS 
*           WHICH THE FIP MODULES ASSUME REMAINS IN CORE FROM NETON 
*           TO NETOFF.
*       2.  THE OVERLAY WHICH REFERENCES THE NETXFR FUNCTION MUST REMAIN
*           IN CORE UNTIL COMPLETION OF ALL FILE TRANSFER ACTIVITY. 
*           THIS IS BECAUSE NETXFR HAS COMMON BLOCKS THAT ARE LOADED
*           AND PRESET WHENEVER NETXFR IS LOADED.  BUT THE FILE 
*           TRANSFER MODULES OF FIP ASSUME THAT THOSE COMMON BLOCKS 
*           REMAIN IN CORE THROUGHOUT FILE TRANSFER ACTIVITY. 
*       3.  THE MAXIMUM ALLOWED NUMBER OF FILE TRANSFERS OCCURRING
*           SIMULTANEOUSLY IS FOUR. 
*       4.  CMM IS USED TO ALLOCATE FILE TRANSFER BLOCKS AT THE END 
*           OF MEMORY.
*       5.  APPLICATIONS SHOULD NOT TURN CONTROL OF FILE TRANSFERS
*           OVER TO NETXFR UNLESS ALL CURRENT OR ANTICIPATED ACN-S
*           ARE IN THE DATA TRANSFER STATE.  VIOLATIONS OF THIS 
*           RESTRICTION MAY RESULT IN PROTOCOL ERRORS IF A LEVEL
*           6 OR LEVEL 7 COMMAND IS RECEIVED THAT IS NOT EXPECTED 
*           BY FIP-S FILE TRANSFER MODULES. 
*       6.  THE APPLICATION MUST NOT CHANGE THE LOCATION OF ITS 
*           NETWORK SUPERVISORY WORD (NSUP WORD) WITHOUT CALLING
*           NETON.
* 
  
  
  
  
**    INTERNAL DOCUMENTATION. 
* 
*     THE INTERNAL STRUCTURE AND LOGIC OF THE FIP MODULES IS DIVIDED
*     INTO TWO LOGICAL DIVISIONS.  THESE TWO DIVISIONS ARE REFERRED 
*     TO IN THE INTERNAL COMMENTS AS: 
* 
*         FIP MODULES (NON-FILE-TRANSFER MODULES):  
*     NETON   - ESTABLISH ACCESS TO NETWORK.
*     NETOFF  - END ACCESS TO NETWORK.
*     NETWAIT - SUSPEND APPLICATION TEMPORARILY.
*     NETGET  - GET DATA FROM SPECIFIED CONNECTION. 
*     NETGETL - GET DATA FROM ONE OF A LIST OF CONNECTIONS. 
*     NETPUT  - SEND DATA TO A SPECIFIED CONNECTION.
*     NETDBG  - TURN FIP DEBUGGING ON OR OFF. 
*     DBGMSG  - WRITE DEBUG MESSAGE.
*     OCTCHAR - CONVERT OCTAL NUMBER TO DISPLAY CHARACTER.
*     NETUXFR - USER CONTROLLED FILE TRANSFER.
* 
*         FIPXFR MODULES (FILE-TRANSFER MODULES): 
*     NETXFR  - TRANSFER A FILE VIA THE NETWORK.
*     NETXFRC - CONTINUE FILE TRANSFERS.
*     CHASE   - PROCESS ONE BUFFER I/O. 
*     DATAWDS - DETERMINE NUMBER OF DATA WORDS IN INPUT BUFFER. 
*     DODPR   - DECIDE ON DEVICE PROCESSING ROUTINE.
*     EXTENTS - PROCESS INPUT AND OUTPUT EXTENTS. 
*     FREEWDS - DETERMINE NUMBER OF FREE WORDS IN OUTPUT BUFFER.
*     FULLIN  - TERMINATE FULL INPUT EXTENT.
*     FULLOUT - TERMINATE FULL OUTPUT EXTENT. 
*     INREQ   - ISSUE REQUIRED INPUT I/O. 
*     MODIN   - MODULO INPUT BUFFER POINTER.
*     MODOUT  - MODULO OUTPUT BUFFER POINTER. 
*     MOREIN  - DETERMINE AVAILABILITY OF NEW INPUT EXTENT. 
*     MOREOUT - DETERMINE AVAILABILITY OF NEW OUTPUT EXTENT.
*     NEWIN   - CREATE NEW INPUT EXTENT.
*     NEWOUT  - CREATE NEW OUTPUT EXTENT. 
*     OUTREQ  - ISSUE REQUIRED OUTPUT I/O.
*     SHRTIN  - TERMINATE SHORT INPUT EXTENT. 
*     SHRTOUT - TERMINATE SHORT OUTPUT EXTENT.
*     BUILDFT - BUILD FETS. 
*     CALLCIO - CALL PP PROGRAM CIO.
*     CALLNG  - CALL NETGET.
*     CALLNP  - CALL NETPUT.
*     CALLRHF - CALL RHF SUBSYSTEM. 
*     CHKFTT  - CHECK THE FILE TRANSFER TABLE.
*     CHKTIME - CHECK IF TIMED OUT. 
*     CIOERRC - CIO ERROR CHECK.
*     DAYFMSG - WRITE DAYFILE MESSAGE.
*     DAMSGIN - DETERMINE ACEPTABLE MESSAGE INDEX.
*     DFTTIND - DETERMINE FTTINDEX. 
*     DSIPLEV - DETERMINE SWITCH INDEX FOR PLEV7M.
*     ENDXFR - COMPLETE ACTUAL DATA TRANSFER. 
*     GETLEV7 - GET LEVEL SEVEN MESSAGE.
*     GMEMCMM  - GET MEMORY VIA CYBER MEMORY MANAGER. 
*     INITIME - INTITIALIZE TIME INTO CURRENT I/O STATE.
*     INTAMSG - INTERCEPT ASYNCHRONOUS SUPERVISORY MESSAGES.
*     NPLSTM  - NETPUT LIST PROCESSING ON/OFF MESSAGE.
*     OCTCHF  - OCTAL TO CHARACTER CONVERSION.
*     PENDACK - PROCESS END-ACKNOWLEDGE COMMAND.
*     PENDXFR - PROCESS END-OF-DATE-TRANSFER COMMAND. 
*     PLEV7M  - PROCESS LEVEL 7 MESSAGE.
*     PRACKM  - PROCESS FC/ACK/R MESSAGE. 
*     PRASM   - PROCESS ASYNCHRONOUS SUPERVISORY MESSAGE. 
*     PRNAKM  - PROCESS FC/NAK/R  MESSAGE.
*     PROTERR - PROTOCOL ERROR. 
*     PRQUIT  - PROCESS QUIT COMMAND. 
*     RHFERRC - RHF ERROR CHECK.
*     RMEMCMM - RELEASE MEMORY VIA CYBER MEMORY MANAGER.
*     SEFCDF  - SET ERROR FLAG, CALL DAYFMSG. 
*     SETC63 - RESET CODE TRANSLATION TABLES FOR 63 CHARACTER SET.
*     VALLOCF - VALLIDATE LOCAL FILE. 
*     XFRCOMP - COMPLETE FILE TRANSFER. 
*     XFRINIT - INITIATE FILE TRANSFER. 
* 
*     GLOBAL FLAGS, VARIABLES, AND ARRAYS.
* 
*         GLOBAL FLAGS, VARIABLES, AND ARRAYS ARE DEFINED IN THE
*         FOLLOWING COMMON DECKS: 
*           COMACBF - COMMON BLOCK FOR FIP AND FIPXFR MODULES.
*           COMACBX - COMMON BLOCK FOR ITEMS UNIQUE TO FIPXFR MODULES.
*         THESE COMMON DECKS ARE LISTED LATER ON IN THIS MODULE.
* 
*     DEFINITIONS.
* 
*         DEFINITIONS ARE FOUND IN THE FOLLOWING COMMON DECKS:  
*             COMACBF - COMMON BLOCK FOR FIP AND XFR MODULES. 
*         THESE COMMON DECKS ARE LISTED LATER ON IN THIS MODULE.
* 
*     DATA. 
* 
* 
*          ASYNCHRONOUS SUPERVISORY MESSAGES: 
*            (SEE RHF REFERENCE MANUAL FOR FORMATS).
*          LEVEL 7 APPLICATION TO APPLICATION COMMANDS: 
*            (SEE RHF REFERENCE MANUAL FOR FORMATS).
* 
///        # CONTROL EJECT; # 
**    FIP PROGRAM HIERARCHICAL STRUCTURE. 
* 
*         NOTE: THE MODULES WHICH CONTAIN THE NINE MAIN ENTRY POINTS
*               OF THE FIP PROGRAM ARE LISTED FIRST.  ALL OTHER MODULES 
*               ARE LISTED NEXT IN ALPHABETICAL ORDER.  THOSE MODULES 
*               WHICH DO NOT MAKE A CALL TO ANY OTHER MODULES DO NOT
*               HAVE A HIERARCHY CHART. 
* 
* 
* 
*      +--------+    +-------+    +--------+    +---------+ 
*      : NETOFF :    : NETON :    : NETDBG :    : NETWAIT : 
*      +--------+    +-------+    +--------+    +---------+ 
*         ?  ?          ?             ?            ?  ? 
*         ?  ?          ?             ?            ?  ? 
*         ?  +----------+-------------+------------+  ? 
*         ?                 ?                         ? 
*         ?                 ?                         ? 
*    +---------+       +--------+                +---------+
*    : DAYFMSG :       : SYSTEM :                : NETXFRC :  
*    +---------+       +--------+                +---------+
* 
*     DAYFMSG - WRITE DAYFILE MESSAGE.
*     NETDBG  - TURN DEBUGGING ON OR OFF. 
*     NETOFF  - END ACCESS TO NETWORK.
*     NETON   - ESTABLISH ACCESS TO NETWORK.
*     NETWAIT - SUSPEND APPLICATION TEMPORARILY.
*     NETXFRC - CONTINUE FILE TRANSFER. 
*     SYSTEM  - MAKE RA+1 CALL. 
* 
* 
* 
* 
*                   +--------+                +---------+ 
*                   : NETGET :                : NETGETL : 
*                   +--------+                +---------+ 
*                       ?                          ?
*                       ?                          ?
*          +------------+--------------------------+-------------+
*          ?                ?                  ?                 ?
*          ?                ?                  ?                 ?
*     +--------+       +---------+         +---------+       + -------+ 
*     : DBGMSG :       : NETXFRC :         : NETXFRM :       : SYSTEM : 
*     +--------+       +---------+         +---------+       +--------+ 
* 
*     NETGET  - GET DATA FROM SPECIFIED CONNECTION. 
*     NETGETL - GET DATA FROM ONE OF A LIST OF CONNECTIONS. 
*     DBGMSG  - WRITE DEBUG MESSAGE.
*     NETXFRC - CONTINUE FILE TRANSFER. 
*     NETXFRM - INTERCEPT ASYCHRONOUS MESSAGE.
*     SYSTEM  - MAKE RA+1 CALL. 
*                                            # CONTROL EJECT; # 
*                             +--------+
*                             : NETPUT :  
*                             +--------+
*                                  ?
*                                  ?
*                 +----------------+-----------------+
*                 ?                ?                 ?
*                 ?                ?                 ?
*             +--------+      +---------+        +--------+ 
*             : DBGMSG :      : NETXFRC :        : SYSTEM : 
*             +--------+      +---------+        +--------+ 
* 
*     DBGMSG  - WRITE DEBUG MESSAGE.
*     NETPUT  - SEND DATA TO A SPECIFIED CONNECTION.
*     NETXFRC - CONTINUE FILE TRANSFER. 
*     SYSTEM  - MAKE RA+1 CALL. 
* 
* 
*                             +--------+
*                             : NETXFR :  
*                             +--------+
*                                 ? 
*                                 ? 
*       +----------+---------+----+----+---------+---------+
*       ?     ?    ?    ?    ?    ?    ?         ?         ?
*       ?     ?    ?    ?    ?    ?    ?         ?         ?
*    +-------+? +------+? +------+? +------+  +-----+  +-------+
*    :XFRINIT:? :CALLNP:? :SYSTEM:? :CALLNG:  :PRASM:  :NETXFRC:  
*    +-------+? +------+? +------+? +------+  +-----+  +-------+
*             ?         ?         ? 
*         DAYFMSG    NSTORE    INTAMSG
* 
* 
*     CALLNG  - CALL NETGET.
*     CALLNP  - CALL NETPUT.
*     DAYFMSG - WRITE DAYFILE MESSAGE.
*     INTAMSG - INTERCEPT AN ASYNCHRONOUS SUPERVISORY MESSAGE.
*     NETXFR  - TRANSFER FILE VIA THE NETWORK.
*     NETXFRC - CONTINUE FILE TRANSFER. 
*     NSTORE  - STORE INTO ASYNCHRONOUS SUPERVISORY MESSAGE.
*     PRASM   - PROCESS ASYNCHRONOUS SUPERVISORY MESSAGES.
*     SYSTEM  - PERFORM RA+1 REQUESTS.
*     XFRINIT - INITIATE FILE TRANSFER. 
* 
* 
*                               +---------+ 
*                               : NETXFRC : 
*                               +---------+ 
*                                    ?
*                                    ?
*        +-------------+-------------+-------------+-------------+
*        ?             ?             ?             ?             ?
*        ?             ?             ?             ?             ?
*   +---------+   +---------+   +---------+   +---------+   +---------+ 
*   : VALLOCF :   : GETLEV7 :   : DODPR   :   : CHKTIME :   : DAYFMSG : 
*   +---------+   +---------+   +---------+   +---------+   +---------+ 
* 
*     CHKTIME - CHECK IF TIMED OUT. 
*     DAYFMSG - WRITE DAYFILE MESSAGE.
*     DODPR   - DECIDE ON DEVICE PROCESSING ROUTINE.
*     GETLEV7 - GET LEVEL 7 COMMAND MESSAGE.
*     NETXFRC - CONTINUE TRANSFER OF FILES VIA THE NETWORK. 
*     VALLOCF - VALIDATE LOCAL FILE.
*                                           #  CONTROL EJECT;  #
*                              +---------+
*                              : CALLCIO :  
*                              +---------+
*                                   ? 
*                                   ? 
*                                   + 
*                                   ? 
*                              +---------+
*                              : SYSTEM  :  
*                              +---------+
* 
*     CALLCIO - CALL CIO
*     SYSTEM  - MAKE RA+1  CALL.
* 
* 
*                              +---------+
*                              : CALLNG  :  
*                              +---------+
*                                   ? 
*                                   ? 
*                                   + 
*                                   ? 
*                                   ? 
*                              +---------+
*                              : SYSTEM  :  
*                              +---------+
* 
*     CALLNG  - CALL NETGET.
*     SYSTEM  - MAKE RA+1  CALL.
* 
* 
*                              +---------+
*                              : CALLNP  :  
*                              +---------+
*                                   ? 
*                                   ? 
*                                   + 
*                                   ? 
*                                   ? 
*                              +---------+
*                              : SYSTEM  :  
*                              +---------+
* 
*     CALLNP  - CALL NETPUT.
*     SYSTEM  - MAKE RA+1 CALL. 
*                                            # CONTROL EJECT; # 
* 
* 
*                              +---------+
*                              : CALLRHF :  
*                              +---------+
*                                   ? 
*                                   ? 
*                                   + 
*                                   ? 
*                                   ? 
*                              +---------+
*                              : SYSTEM  :  
*                              +---------+
* 
*     CALLRHF - CALL RHF SUBSYSTEM. 
*     SYSTEM  - MAKE RA+1 CALL. 
* 
* 
*                                            # CONTROL EJECT; # 
* 
*                              +---------+
*                              : CHKFTT  :  
*                              +---------+
*                                   ? 
*                                   ? 
*                           +-------+-------+ 
*                           ?               ? 
*                           ?               ? 
*                      +---------+     +---------+
*                      : GMEMCMM :     : DAYFMSG :  
*                      +---------+     +---------+
* 
*     CHKFTT  - CHECK FILE TRANSFER TABLE.
*     DAYFMSG - WRITE DAYFILE MESSAGE.
*     GMEMCMM - GET ADDITIONAL CM SPACE VIA CMM.
* 
* 
*                              +---------+
*                              : CHKTIME :  
*                              +---------+
*                                   ? 
*                                   ? 
*                           +-------+-------+ 
*                           ?               ? 
*                           ?               ? 
*                      +---------+     +---------+
*                      : SEFCDF  :     : SYSTEM  :  
*                      +---------+     +---------+
* 
*     CHKTIME - CHECK IF TIMED OUT. 
*     SEFCDF  - SET ERROR FLAG, CALL DAYFILE MESSAGE. 
*     SYSTEM  - MAKE RA+1  CALL.
*                                            # CONTROL EJECT; # 
* 
*                              +---------+
*                              : CIOERRC :  
*                              +---------+
*                                   ? 
*                                   ? 
*       +-------------+-------------+-------------+-------------+ 
*       ?             ?             ?             ?             ? 
*       ?             ?             ?             ?             ? 
*  +---------+   +---------+   +---------+   +---------+   +---------+
*  : ACSTORE :   : APSTORE :   : DAYFMSG :   : CALLNP  :   : INITIME :  
*  +---------+   +---------+   +---------+   +---------+   +---------+
* 
*     ACSTORE - STORE INTO APPLICATION COMMAND. 
*     APSTORE - STORE INTO APPLICATION COMMAND PARAMETER. 
*     CALLNP  - CALL NETPUT.
*     CIOERRC - CIO ERROR CHECK.
*     DAYFMSG - WRITE DAYFILE MESSAGE.
*     INITIME - INITIALIZE TIME INTO CURRENT STATE. 
* 
* 
*                              +---------+
*                              : DAYFMSG :  
*                              +---------+
*                                   ? 
*                                   ? 
*                                   + 
*                                   ? 
*                                   ? 
*                              +---------+
*                              : SYSTEM  :  
*                              +---------+
* 
*     DAYFMSG - WRITE DAYFILE MESSAGE.
*     SYSTEM  - MAKE RA+1 CALL. 
* 
* 
*                              +---------+
*                              : DBGMSG  :  
*                              +---------+
*                                   ? 
*                                   ? 
*                           +-------+-------+ 
*                           ?               ? 
*                           ?               ? 
*                      +---------+     +---------+
*                      : OCTCHAR :     : SYSTEM  :  
*                      +---------+     +---------+
* 
*     DBGMSG  - WRITE DEBUG DAYFILE MESSAGE.
*     OCTCHAR - CONVERT OCTAL NUMBER TO DISPLAY CHARACTER.
*     SYSTEM  - MAKE RA+1  CALL.
*                                            # CONTROL EJECT; # 
*                              +---------+
*                              : GETLEV7 :  
*                              +---------+
*                                   ? 
*                                   ? 
*                           +---------------+ 
*                           ?               ? 
*                           ?               ? 
*                      +---------+     +---------+
*                      : CALLNG  :     : PLEV7M  :  
*                      +---------+     +---------+
* 
*     CALLNG  - CALL NETGET.
*     GETLEV7 - GET LEVEL 7 COMMAND MESSAGE.
*     PLEV7M  - PROCESS LEVEL 7 MESSAGE.
* 
*                                     +----------+
*                                     : GMEMCMM  :  
*                                     +----------+
*                                          ?
*                                          ?
*                                 +--------------------+
*                                 ? 
*                                 ?                    ?
*                                 ?                    ?
*                            +---------+         +---------+
*                            : RMEMCMM :         : CMMALF  :  
*                            +---------+         +---------+
* 
*     CMMALF  - ALOCATE FIXED BLOCK OF MEMORY VIA CMM.
*     GMEMCMM - GET MEMORY VIA CMM. 
*     RMEMCMM - RELEASE MEMORY VIA CMM. 
* 
* 
* 
*                                            # CONTROL EJECT; # 
* 
*                                +---------+
*                                : INITIME :  
*                                +---------+
*                                     ? 
*                                     ? 
*                                     + 
*                                     ? 
*                                     ? 
*                                +---------+
*                                : SYSTEM  :  
*                                +---------+
* 
*     INITIME - INITIALIZE TIME INTO CURRENT STATE. 
*     SYSTEM  - MAKE RA+1 REQUEST.
* 
* 
*                              +---------+
*                              : NETXFRM :  
*                              +---------+
*                                   ? 
*                                   ? 
*                                   + 
*                                   ? 
*                                   ? 
*                              +---------+
*                              :  PRASM  :  
*                              +---------+
* 
*     NETXFRM - INTERCEPT ASYNCHRONOUS SYPERVISORY MESSAGE. 
*     PRASM   - PROCESS ASYNCHRONOUS SUPERVISORY MESSAGE. 
*                                            # CONTROL EJECT; # 
* 
*                              +---------+
*                              : NPLSTM  :  
*                              +---------+
*                                   ? 
*                                   ? 
*                           +---------------+ 
*                           ?               ? 
*                           ?               ? 
*                      +---------+     +---------+
*                      : NSTORE  :     : CALLNP  :  
*                      +---------+     +---------+
* 
*     CALLNP  - CALL NETPUT.
*     NPLSTM  - NETPUT LIST PROCESSING MESSAGE. 
*     NSTORE  - STORE INTO ASYNCHRONOUS SUPERVISORY MESSAGE.
* 
* 
*                              +---------+
*                              : PENDACK :  
*                              +---------+
*                                   ? 
*                                   ? 
*                   +---------------+---------------+ 
*                   ?               ?               ? 
*                   ?               ?               ? 
*              +---------+     +---------+     +---------+
*              : APFETCH :     : PROTERR :     : XFRCOMP :  
*              +---------+     +---------+     +---------+
* 
*     APFETCH - FETCH APPLICATION COMMAND PARAMETER.
*     PENDACK - PROCESS END-ACKNOWLEDGE COMMAND.
*     PROTERR - PROTOCOL ERROR. 
*     XFRCOMP - TRANSFER COMPLETE.
* 
* 
*                              +---------+
*                              : PENDXFR :  
*                              +---------+
*                                   ? 
*                                   ? 
*         +---------------+---------------+--------------+-------+
*         ?       ?       ?       ?       ?       ?      ?       ?
*         ?       ?       ?       ?       ?       ?      ?       ?
*    +---------+  ?  +---------+  ?  +---------+  ? +---------+  ?
*    : APFETCH :  ?  : APSTORE :  ?  : PROTERR :  ? : OCTCHF  :  ?
*    +---------+  ?  +---------+  ?  +---------+  ? +---------+  ?
*                 ?               ?               ?              ?
*                 ?               ?               ?              ?
*            +---------+     +---------+     +---------+    +---------+ 
*            : ACSTORE :     : CALLNP  :     : INITIME :    : DAYFMSG : 
*            +---------+     +---------+     +---------+    +---------+ 
* 
*     ACSTORE - STORE APPLICATION COMMAND.
*     APFETCH - FETCH APPLICATION COMMAND.
*     APSTORE - STORE APPLICATION COMMAND PARAMETER.
*     CALLNP  - CALL NETPUT.
*     DAYFMSG - WRITE DAYFILE MESSAGE.
*     INITIME - INITIALIZE FTTTIME[FTTINDEX]. 
*     PENDXFR - PROCESS END-OF-DATA-TRANSFER COMMAND. 
*     PROTERR - PROTOCOL ERROR. 
*     OCTCHF  - OCTAL TO CHARACTER CONVERSION.
* 
* 
*                                            # CONTROL EJECT; # 
* 
*                               +--------+
*                               : PLEV7M :  
*                               +--------+
*                                   ? 
*                                   ? 
*           +---------------+---------------+--------------+
*           ?               ?               ?              ?
*           ?               ?               ?              ?
*      +---------+     +---------+     +---------+    +---------+ 
*      : PENDXFR :     : PENDACK :     : PRQUIT  :    : PROTERR : 
*      +---------+     +---------+     +---------+    +---------+ 
* 
*     PENDXFR - PROCESS END-DATA-TRANSFER COMMAND.
*     PENDACK - PROCESS END-ACKNOWLEDGE COMMAND.
*     PRQUIT  - PROCESS QUIT COMMAND. 
*     PLEV7M  - PROCESS LEVEL 7 MESSAGE.
*     PROTERR - PROTOCOL ERROR. 
* 
* 
*                               +--------+
*                               : PRACKM :  
*                               +--------+
*                                   ? 
*                                   ? 
*             +--------------+-------------+--------------+ 
*             ?              ?             ?              ? 
*             ?              ?             ?              ? 
*        +---------+    +--------+    +---------+    +---------+
*        : INITIME :    : CALLNP :    : PROTERR :    : XFRCOMP :  
*        +---------+    +--------+    +---------+    +---------+
* 
*     CALLNP  - CALL NETPUT.
*     INITIME - INITIALIZE TIME INTO THE CURRENT STATE. 
*     PRACKM  - PROCESS FC/ACK/R MESSAGE. 
*     PROTERR - PROTOCOL ERROR. 
*     XFRCOMP - TRANSFER COMPLETE.
* 
* 
*                                +-------+
*                                : PRASM :  
*                                +-------+
*                                    ?
*                                    ?
*      +---------+---------+---------+---------+---------+-------+
*      ?         ?         ?         ?         ?         ?       ?
*      ?         ?         ?         ?         ?         ?       ?
*  +-------+ +-------+ +-------+ +-------+ +-------+ +------+ +------+
*  :DAMSGIN: :DFTTIND: :DAYFMSG: :XFRCOMP: :PROTERR: :PRACKM: :PRNAKM:  
*  +-------+ +-------+ +-------+ +-------+ +-------+ +------+ +------+
* 
*     CALLNP  - CALL NETPUT.
*     DAYFMSG - WRITE DAYFMSG 
*     DFTTIND - DETERMINE FTTINDEX. 
*     DAMSGIN - DETERMINE ACEPTABLE MESSAGE INDEX.
*     PRACKM  - PROCESS FC/ACK/R MESSAGE. 
*     PRASM   - PROCESS ASYNCHRONOUS SUPERVISORY MESSAGE. 
*     PRNAKM  - PROCESS FC/NAK/R MESSAGE. 
*     XFRCOMP - COMPLETE FILE TRANSFER. 
*                                            # CONTROL EJECT; # 
* 
*                              +---------+
*                              : PRNAKM : 
*                              +---------+
*                                   ? 
*                                   ? 
*           +---------------+---------------+---------------+ 
*           ?               ?               ?               ? 
*           ?               ?               ?               ? 
*      +---------+     +---------+     +---------+     +---------+
*      : OCTCHF  :     : DAYFMSG :     : XFRCOMP :     : CALLNP  :  
*      +---------+     +---------+     +---------+     +---------+
* 
*     CALLNP  - CALL NETPUT 
*     DAYFMSG - WRITE DAYFILE MESSAGE 
*     OCTCHF  - OCTAL TO CHARACTER CONVERSION.
*     PRNAKM - PROCESS FC/NAK/R MESSAGE.
*     XFRCOMP - COMPLETE FILE TRANSFER. 
* 
* 
*                              +---------+
*                              : PROTERR :  
*                              +---------+
*                                   ? 
*                                   ? 
*       +-------------+-------------+-------------+-------------+ 
*       ?             ?             ?             ?             ? 
*       ?             ?             ?             ?             ? 
*  +---------+   +---------+   +---------+   +---------+   +---------+
*  : ACSTORE :   : APSTORE :   : CALLNP  :   : DAYFMSG :   : INITIME :  
*  +---------+   +---------+   +---------+   +---------+   +---------+
* 
*     ACSTORE - STORE APPLICATION-APPLICATION COMMAND ORDINAL.
*     APSTORE - STORE APPLICATION-APPLICATION COMMAND PARAMETER.
*     CALLNP  - CALL NETPUT.
*     DAYFMSG - WRITE DAYFILE ERROR MESSAGE.
*     INITIME - ITIALIZE TIME INTO THE CURRENT STATE. 
*     PROTERR - PROTOCOL ERROR. 
*                                           #  CONTROL EJECT;  #
*                              +---------+
*                              : PRQUIT  :  
*                              +---------+
*                                   ? 
*                                   ? 
*        +-----+-----+-----+-----+-----+-----+-----+-----+-----+
*        ?     ?     ?     ?     ?     ?     ?     ?     ?     ?
*        ?     ?     ?     ?     ?     ?     ?     ?     ?     ?
*        ? +-------+ ? +-------+ ? +-------+ ? +-------+ ? +-------+
*        ? :ACSTORE: ? :CALLNP : ? :PROTERR: ? :SYSTEM : ? :DAYFMSG:  
*        ? +-------+ ? +-------+ ? +-------+ ? +-------+ ? +-------+
*        ?           ?           ?           ?           ?
*        ?           ?           ?           ?           ?
*    +-------+   +-------+   +-------+   +-------+   +-------+
*    :APFETCH:   :APSTORE:   :INITIME:   :INITIME:   :OCTCHF :  
*    +-------+   +-------+   +-------+   +-------+   +-------+
* 
*     CALLNP  - CALL NETPUT.
*     CALLRHF - CALL RHF SUBSYSTEM. 
*     PROTERR - PROTOCOL ERROR. 
*     PRQUIT  - PROCESS QUIT COMMAND. 
*     SYSTEM  - MAKE RA + 1 REQUEST.
* 
* 
*                              +---------+
*                              : RHFERRC :  
*                              +---------+
*                                   ? 
*                                   ? 
*           +---------------+---------------+---------------+ 
*           ?               ?               ?               ? 
*           ?               ?               ?               ? 
*      +---------+     +---------+     +---------+     +---------+
*      : GETLEV7 :     : PLEV7M  :     : CALLNG  :     : PRASM   :  
*      +---------+     +---------+     +---------+     +---------+
* 
*     CALLNG  - CALL NETGET 
*     GETLEV7 - GETLEVEL 7 MESSAGE. 
*     PLEV7M  - PROCESS LEVEL 7 MESSAGE 
*     PRASM   - PROCESS ASYNCHRONOUS SYPERVISORY MESSAGE. 
*     RHFERRC - RHF ERROR CHECK.
*                                            # CONTROL EJECT; # 
*                              +---------+
*                              : FREECMM :  
*                              +---------+
*                                   ? 
*                                   ? 
*                                   + 
*                                   ? 
*                                   ? 
*                              +---------+
*                              :   CMM   :  
*                              +---------+
* 
*     CMM     - CYBER MEMORY MANAGER. 
*     RMEMCMM - RELEASE MEMORY VIA CMM. 
* 
* 
*                               +--------+
*                               : SEFCDF :  
*                               +--------+
*                                   ? 
*                                   ? 
*                           +---------------+ 
*                           ?               ? 
*                           ?               ? 
*                      +---------+     +---------+
*                      : DAYFMSG :     : XFRCOMP :  
*                      +---------+     +---------+
* 
*     DAYFMSG - WRITE DAYFILE MESSAGE.
*     SEFCDF  - SET ERROR FLAG, WRITE DAYFILE MESSAGE.
*     XFRCOMP - COMPLETE FILE TRANSFER. 
*                                            # CONTROL EJECT; # 
* 
*                              +---------+
*                              : VALLOCF :  
*                              +---------+
*                                   ? 
*                                   ? 
*       +-------------+-------------+-------------+-------------+ 
*       ?             ?             ?             ?             ? 
*       ?             ?             ?             ?             ? 
*  +---------+   +---------+   +---------+   +---------+   +---------+
*  : ACSTORE :   : APSTORE :   : CALLNP  :   : OCTCHF  :   : SEFCDF  :  
*  +---------+   +---------+   +---------+   +---------+   +---------+
* 
*     CALLNP  - CALL NETPUT.
*     SEFCDF  - SET ERROR FLAG, WRITE DAYFILE MESSAGE.
*     VALLOCF - VALIDATE LOCAL FILE.
* 
* 
*                              +---------+
*                              : XFRCOMP :  
*                              +---------+
*                                   ? 
*                                   ? 
*                           +-------+-------+ 
*                           ?               ? 
*                           ?               ? 
*                      +---------+     +---------+
*                      : NPLSTM  :     : RMEMCMM :  
*                      +---------+     +---------+
* 
*     CALLNP  - CALL NETPUT.
*     RMEMCMM - RELEASE MEMORY VIA CMM. 
*     XFRCOMP - TRANSFER COMPLETE.
*                                           #  CONTROL EJECT;  #
* 
*                             +----------+
*                             :  XFRINIT :  
*                             +----------+
*                                   ? 
*                                   ? 
*       +-------------+-------------+-------------+-------------+ 
*       ?             ?             ?             ?             ? 
*       ?             ?             ?             ?             ? 
*  +---------+   +---------+   +---------+   +---------+   +---------+
*  : DAYFMSG :   : CHKFTT  :   : BUILDFT :   : CALLCIO :   : INITIME :  
*  +---------+   +---------+   +---------+   +---------+   +---------+
* 
*     BUILDFT - BUILD FETS. 
*     CHKFTT  - CHECK FILE TRANSFER TABLE.
*     CALLCIO - CALL CIO. 
*     DAYFMSG - WRITE DAYFILE MESSAGE.
*     XFRINIT - INITIALIZE FOR A FILE TRANSFER. 
*                                           #  CONTROL EJECT;  #
# 
  
*CALL COMCBEGN
*CALL COMADEF 
  
*CALL COMACBF 
*CALL COMACBX 
*CALL COMAFET 
*CALL COMADFM 
*CALL COMAMCB 
  
*CALL COMACST 
  
      END  # FIP #
  
      TERM
