*DECK PUTLEV7 
USETEXT COMCBEG 
USETEXT COMADEF 
USETEXT COMACBF 
USETEXT COMACBX 
USETEXT COMAFET 
USETEXT COMADFM 
USETEXT COMAMCB 
    PROC PUTLEV7 (CMD,ATT); 
# TITLE   PUTLEV7 - PUT LEVEL 7 COMMAND # 
      BEGIN 
# 
*     PUTLEV7 - PUT LEVEL 7 COMMAND.
* 
*     PUTLEV7 SETS UP A LEVEL 7 COMMAND WITH THE PARAMETERS GIVEN BY THE
*     CALLER AND SENDS THE COMMAND TO THE RHF SUBSYSTEM.
* 
*     ENTRY      CMD = COMMAND (AACMD$ER,AACMD$ES,AACMD$QR,AACMD$SS). 
*                ATT = DATA TRANSFER PHASE ATTRIBUTE (P$SS$BOI, ETC.) 
*                <FTTENT> = FWA FTT ENTRY.
* 
*     EXIT       COMMAND SENT.
* 
*     PROCESS    IF PREVIOUS COMMAND INCOMPLETE:  
*                  CALL CALLSYS (RECALL). 
*                SAVE "CMD" AND "ATT" IN FILE TABLE (FOR *PRNAKM*). 
*                CALL ACSTORE TO SET "CMD" IN HEADER AREA.
*                CALL APSTORE TO SET "ATT" IN TEXT AREA.
*                IF APSTORE ERROR:  
*                  SEND DAYFILE MESSAGE (LOGIC ERROR) 
*                  ABORT JOB. 
*                SET CONNECTION NUMBER IN HEADER AREA 
*                CALL CALLNP TO SEND COMMAND TO RHF.
# 
  
      ITEM CMD     I;              # COMMAND NUMBER # 
      ITEM ATT  C(4);              # ATTRIBUTE (DATA-TRANSFER-PHASE) #
  
# 
****  XREF PUTLEV7 BEGIN
# 
      XREF
        BEGIN 
        PROC ACSTORE; 
        FUNC APSTORE U; 
        PROC CALLNP;
        PROC CALLSYS; 
        PROC DAYFMSG; 
        FUNC DECCHF     C(10);       # DECIMAL DISPLAY CODE # 
        END 
# 
****  XREF PUTLEV7 END
# 
  
      IF NOT RRB$DONE[0]           # IF PREVIOUS COMMAND IN PROGRESS #
      THEN
        BEGIN 
        RCLPARAMAD[0] = LOC(RRBDFT);
        RCLRECALL[0] = TRUE;
        CALLSYS (RCLCALL);
        END 
  
      FTTLL7CMD = CMD;             # SAVE COMMAND NUMBER #
      FTTLL7ATT = ATT;             # SAVE ATTRIBUTE # 
      ACSTORE (TAOHW7MSG, CMD, LENTEXAREA);  # SET COMMAND #
      RTNFLAG = APSTORE (TAOHW7MSG,ATR$DXFRP,QUAL$S,TSL$DXFR,ATT);
      IF RTNFLAG NE 0              # IF APSTORE ERROR # 
      THEN
        BEGIN 
        FDFM$VALU1[BADATT$ERR] = ATT;  # ATTRIBUTE VALUE #
        FDFM$VALU2[BADATT$ERR] = DECCHF(CMD,2);  # COMMAND NUMBER # 
        DAYFMSG (BADATT$ERR);      # SEND MESSAGE AND ABORT CP #
        END 
  
      HWO7$ACN[0] = FTTACN;        # SET CONNECTION NUMBER #
      CALLNP (HWO7MSG,TAO7MSG);    # NETPUT THE COMMAND # 
  
      END  # PUTLEV7 #
    TERM
