*DECK PLEV7M
USETEXT COMCBEG 
USETEXT COMADEF 
USETEXT COMACBF 
USETEXT COMACBX 
USETEXT COMADFM 
USETEXT COMAFET 
PROC PLEV7M;
# TITLE PLEV7M - PROCESS A LEVEL 7 COMMAND MESSAGE.  #
  
      BEGIN  # PLEV7M # 
  
# 
**    PLEV7M - PROCESS A LEVEL 7 COMMAND MESSAGE. 
* 
*     PLEV7M CONTINUES OR TERMINATES THE FILE TRANSFER BASED ON THE 
*     LEVEL 7 COMMAND RECEIVED. 
* 
*     PROC PLEV7M 
* 
*     ENTRY      <FTTENT> = FWA FTT ENTRY.
*                COMMAND IS IN ARRAY RRBDFT.
* 
*     EXIT       NONE.
* 
*     PROCESS    IF A NULL MESSAGE IS RECEIVED
*                THEN:  
*                  RETURN.
*                ELSE:  
*                  IF COMMAND = START-DATA-XFR (SS) 
*                    AND FTTSTATE = WAITING-FOR-SS: 
*                  THEN:  
*                    SET FTTSTATE = WAIT-FOR-FILE-OPEN. 
*                  ELSE 
*                    IF COMMAND = END-DATA-XFR (ES):  
*                      CALL PENDXFR TO END DATA TRANSFER. 
*                    ELSE 
*                      IF COMMAND = END-DATA-XFR-ACK (ER):  
*                        CALL PENDACK TO END DATA TRANSFER. 
*                      ELSE 
*                        IF COMMAND = QUIT-DATA-XFR (QR): 
*                          CALL PRQUIT TO END DATA TRANSFER.
*                        ELSE 
*                          CALL PROTERR TO PROCESS UNACCEPTABLE COMMAND.
* 
****  PROC PLEV7M - XREF LIST BEGIN.
# 
  
      XREF
        BEGIN 
        FUNC ACFETCH I;              # FETCH APPLICATION COMMAND #
        PROC DAYFMSG;                # WRITE DAYFILE MESSAGE #
        PROC PENDACK;                # PROCESS END-ACKNOWLEDGE COMMAND #
        PROC PENDXFR;                # PROCESS END-TRANSFER COMMAND # 
        PROC PRQUIT;                 # PROCESS QUIT COMMAND # 
        PROC PROTERR;                # PROCESS PROTOCOL ERROR # 
        FUNC REPZERO C(7);           # REPLACE TRAILING ZEROES #
        END 
  
# 
****  PROC PLEV7M XREF LIST END.
# 
  
      ITEM COMMAND    I;             # LEVEL 7 COMMAND #
  
                                               CONTROL EJECT; 
      IF  HWI7$WORD[0]  NE  0 
      THEN
        BEGIN 
        COMMAND = ACFETCH (TAIHW7MSG,HWI7$TLCU);
  
        IF COMMAND EQ AACMD$SS       # IF START-DATA-XFR (SS) # 
          AND FTTSTATE EQ S"WTFRSSCMD"
        THEN
          BEGIN                        # ENTER 'IN PROGRESS' STATE #
          FTTSTATE = S"WAITFOROPC"; 
          END 
  
        ELSE
          BEGIN 
          IF COMMAND EQ AACMD$ES   # IF END-DATA-XFR (ES) # 
          THEN
            BEGIN 
            PENDXFR;               # PROCESS #
            END 
  
          ELSE
            BEGIN 
            IF COMMAND EQ AACMD$ER  # IF END-DATA-XFR-ACK (ER) #
            THEN
              BEGIN 
              PENDACK;             # PROCESS #
              END 
  
            ELSE
              BEGIN 
              IF COMMAND EQ AACMD$QR  # IF QUIT-XFR (QR) #
              THEN
                BEGIN 
                PRQUIT;            # PROCESS #
                END 
  
              ELSE                 # UNACCEPTABLE COMMAND # 
                BEGIN 
                PROTERR;           # PROCESS #
                END 
              END 
            END 
          END 
        END 
      END    # PLEV7M # 
  
      TERM
