*DECK RCM03                        01SEP81
USETEXT COMCBEG 
USETEXT COMCAPR 
USETEXT COMCCAE 
USETEXT COMQDEF 
USETEXT COMQFIL 
USETEXT COMQNET 
    PROC RCM03; 
      BEGIN    # RCM03 #
# 
**    RCM03      PROCESS COMMAND 3 (GO).
* 
*     RCM03 ASSIGNS THE FILE TO THE SYSTEM QUEUE DEVICE AND TRANSFERS 
*     THE FILE. 
* 
*     PROC RCM03
* 
*     ENTRY      ACN = AFT ENTRY INDEX (CONNECTION NUMBER). 
*                FILES1 = TRUE (RPOS SENT). 
* 
*     EXIT       AFT ENTRY STATUS UPDATED.
* 
*     PROCESS    IF COMMAND NOT IN SEQUENCE:  
*                  CALL ILLSEQ
*                ELSE:  
*                  CALL REQQDEV TO ASSIGN FILE TO QUEUE DEVICE
*                  IF RPOS FC/ACK NOT OUTSTANDING 
*                    SET STATE TO NETXFR REQUIRED.
*                  ELSE 
*                    REMOVE ACN FROM LIST VIA *LST/SWITCH*
# 
  
# 
****  XREF
# 
      XREF
        BEGIN 
        PROC FTUPUT;
        PROC ILLSEQ;
        PROC NAME;
        PROC NSTORE;
        PROC REQQDEV; 
        END 
# 
****  XREF END
# 
  
  
        $BEGIN
        NAME("RCM03");               # DEBUG CODE # 
        $END
  
      IF FILE3 NE 0                # IF "GO" SENT OR RECEIVED # 
        OR NOT FILES1              # OR RPOS NOT SENT # 
      THEN
        BEGIN 
        ILLSEQ;                    # ILLEGAL COMMAND SEQUENCE # 
        END 
  
      ELSE
        BEGIN 
        REQQDEV(FILELFNC, FILEINT);# REQUEST QUEUE DEVICE # 
        FILER3=TRUE;               # SET "GO" RECEIVED #
        FILEBNO=CM$GO;             # SET "GO" IN PROGRESS # 
        IF (FILENHA EQ 0)          # IF NO BACKS OUTSTANDING #
        THEN
          BEGIN 
          FILEFTS = FTS$XFRREQ;    # NETXFR REQUIRED #
          END 
  
        ELSE                       # NEED TO WAIT FOR RPOS BACK # 
          BEGIN 
          NTAWD[1]=0;              # CLEAR THE BUFFER # 
          NTAWD[2]=0; 
          NSTORE(NTA,$PFCSFC,LSTOFF);  # SET LIST OFF # 
          NSTORE(NTA,$LSTACN,ACN);     # FOR THIS CONNECTION #
          NHA=SUPHDR; 
          FTUPUT(NHA,NTA);         # PUT THE MESSAGE #
          END 
  
        END 
  
      END      # RCM03 #
    TERM
