*DECK RHFPUT
USETEXT COMCBEG 
USETEXT COMADEF 
USETEXT COMACBF 
PROC RHFPUT(HDRAREA,TEXTAREA);
# TITLE RHFPUT - SEND MESSAGE BLOCK. #
  
      BEGIN  # RHFPUT # 
  
# 
**    RHFPUT - SEND MESSAGE BLOCK.
* 
*     RHFPUT GENERATES A NETPUT CALL TO THE RHF SUBSYSTEM FOR AN
*     APPLICATION PROGRAM.
* 
*     PROC RHFPUT (HDRAREA,TEXTAREA)
* 
*     ENTRY      HDRAREA  - HEADER WORD OF MESSAGE. 
*                TEXTAREA - TEXT AREA OF MESSAGE. 
* 
*     EXIT    -  MESSAGE IS TRANSFERRED.
*                NSUP IS UPDATED. 
* 
*     PROCESS -  IF APPLICATION BLOCK TYPE IS MEMBER BLOCK OR LAST BLOCK
*                THEN:  
*                  SET APPLICATION CONNECTION NUMBER USED IN RHF CALL 
*                    PARAMETER BLOCK TO APPLICATION CONNECTION NUMBER 
*                    IN THE HEADER WORD.
*                ELSE:  
*                  SET APPLICATION CONNECTION NUMBER USED IN RHF CALL 
*                    PARAMETER EQUAL TO ZERO. 
*                IF DBUGDAT FLAG IS TRUE OR IF DBUGSUP FLAG IS TRUE,
*                THEN:  
*                  CALL DBGMSG TO WRITE DEBUG INFO TO THE JOB DAYFILE.
*                CALL SYSTEM TO MAKE AN RA+1 REQUEST FOR SSC (RECALL) SO
*                  AS TO CALL THE RHF SUBSYSTEM WITH NETPUT FUNCTION. 
*                IF THERE ARE ANY ACTIVE FILE TRANSFERS IN PROGRESS,
*                THEN:  
*                  CALL RHFXFRC TO CONTINUE PROCESSING OF ANY ACTIVE
*                    FILE-TRANSFERS-IN-PROGRESS.
* 
# 
  
*CALL HDRAREA 
*CALL TEXTAREA
  
# 
****  PROC RHFPUT - XREF LIST BEGIN.
# 
  
      XREF
        BEGIN 
        PROC DBGMSG;                 # DAYFILE A MESSAGE #
        PROC RHFXFRC;                # CONTINUE FILE TRANSFERS #
        PROC CALLSYS;                # MAKES RA+1 REQUESTS #
        END 
  
# 
****  PROC RHFPUT - XREF LIST END.
# 
  
      CONTROL WEAK DBGMSG, RHFXFRC; 
# 
        NOTE - DBGMSG IS LOADED WHEN RHFDBG IS LOADED.  RHFXFRC IS
               LOADED WHEN RHFXFR IS LOADED.
# 
                                               CONTROL EJECT; 
      SSCPARAMAD[0] = LOC (BKFORRQRLY); 
      IF  HDR$ABT[0] EQ MEMBERBLK   OR   HDR$ABT[0] EQ LASTBLOCK
       OR HDR$ABT[0] EQ APPQBLK OR HDR$ABT[0] EQ APPQMSG
      THEN
        BEGIN 
        BKF$ACN[0] = HDR$ACN[0];
        END 
  
      ELSE
        BEGIN 
        BKF$ACN[0] = 0; 
        END 
  
# 
*     FORMAT THE RHF REQUEST PARAMATER BLOCK SO AS TO CALL THE RHF
*     SUBSYSTEM.
# 
  
      BKF$DONE = FALSE; 
      BKF$FNCNUM[0] = NETPUTFUNC; 
      BKF$HDRADR[0] = LOC (HDRAREA);
      BKF$TEXTAD[0] = LOC (TEXTAREA); 
      IF DBUGDAT OR DBUGSUP 
      THEN
        BEGIN 
        DBGMSG (LOC (HDRAREA), LOC (TEXTAREA), TRUE); 
        END 
  
      CALLSYS (SSCCALL);
      DBGSSC = DBGSSC + 1;
      DBGPUT = DBGPUT + 1;
  
      IF NUMFILEXFR GT 0
      THEN
        BEGIN 
        RHFXFRC;                     # CONTINUE TRANSFER OF FILES # 
        END 
  
      END    # RHFPUT # 
  
      TERM
