*DECK,UPKTR1
USETEXT COMCBEG 
USETEXT COMQDEF 
USETEXT COMQFIL 
USETEXT COMQKDS 
USETEXT COMQNET 
USETEXT COMQSEL 
    PROC UPKTR1((ORDINAL)); 
      BEGIN  # UPKTR1 # 
# 
**    UPKTR1     UPDATE ONE ITEM OF STATUS,TRANSFER DISPLAY.
* 
*     UPDATES ONE ITEM OF STATUS,TRANSFER DISPLAY.
* 
*     PROC UPKTR1((ORDINAL))
* 
*     ENTRY      DISPLAY HEADER INITIALIZED FOR TRANSFER DISPLAY. 
*                ACN = APPLICATION CONNECTION NUMBER. 
*                P<FILETAB> = AFT ENTRY TO DISPLAY. 
*                ORDINAL = ITEM ORDINAL ON DISPLAY. 
* 
*     EXIT       DISPLAY ITEM AREA UPDATED. 
*                ACN AND P<FILETAB> UNCHANGED.
* 
*     PROCESS    GENERATE ITEMS FOR AFT ENTRY.
* 
# 
  
      ITEM ORDINAL    U;           # DISPLAY ITEM ORDINAL # 
  
# 
****  XREF
# 
      XREF
        BEGIN 
        PROC NAME;                 # DEBUG CODE # 
        FUNC XCDD       C(10);     # CONVERT INTEGER TO DPC # 
        FUNC XSFW       C(10);     # SPACE-FILL WORD #
        END 
  
# 
****  XREF END
# 
  
      ARRAY [0:FTS$MAX] S(1); 
        BEGIN 
        ITEM TRSTATE    C(00,00,10) = 
                 ["          ",    # 00 VACANT #
                  " WAIT REM ",    # 01 WNMSG  #
                  " CONNECT  ",    # 02 ASGUNC #
                  "*IDLE     ",    # 03 ASGCON #
                  "*START XFR",    # 04 XFRREQ #
                  "*FILE XFR ",    # 05 XFRIPG #
                  "*STOP XFR ",    # 06 STPREQ #
                  "*END CONN ",    # 07 ETPREQ #
                  "*QUEUED   ",    # 08 CMPOK  #
                  " END CONN ",    # 09 CMPCNT #
                  " WAIT ACQ ",    # 10 UNCNFA #
                  "*WAIT ACQ ",    # 11 CONNFA #
                  " ACQ FILE ",    # 12 UNCWQR #
                  "*ACQ FILE ",    # 13 CONWQR #
                  " INITIAL  "];   # 14 INIT   #
        END 
  
      BASED ARRAY KTR [0:0] S(KDWDSPERLN);
        BEGIN 
        ITEM KTR$ACN    C(00,12,01);  # ACN # 
        ITEM KTR$REST   C(00,30,55);  # REST OF LINE #
        ITEM KTR$SC     C(00,30,01);  # SELECTION CLASS # 
        ITEM KTR$FILE   C(00,48,07);  # FILE NAME # 
        ITEM KTR$LID    C(01,36,03);  # DESTINATION LID # 
        ITEM KTR$PID    C(02,00,03);  # PID # 
        ITEM KTR$DC     C(02,30,02);  # DISPOSITION CODE #
        ITEM KTR$DD     C(02,48,02);  # DATA DECLARATION #
        ITEM KTR$PRUS   C(03,00,10);  # FILE SIZE IN PRUS # 
        ITEM KTR$STRTIM C(04,00,10);  # START TIME #
        ITEM KTR$STATUS C(05,00,10);  # TRANSFER STATUS # 
        END 
  
      BASED ARRAY KTRMSG [0:0] S(KDWDSPERLN); 
        BEGIN 
        ITEM KTR$MSG1   C(02,00,40);  # DAYFILE MESSAGE 1 # 
        ITEM KTR$MSG2   C(02,00,20);  # DAYFILE MESSAGE 2 # 
        END 
  
        $BEGIN
        NAME("UPKTR1");            # DEBUG CODE # 
        $END
  
      P<KTR> = LOC(KL$ITEM[1+(KS$ICPERIT[KDIS"TRANSFE"]*(ORDINAL-1))]); 
      P<KTRMSG>  = P<KTR> + KDWDSPERLN; 
      KTR$ACN    = ACN + O"33"; 
      IF FILEFTS EQ FTS$VACANT
      THEN
        BEGIN 
        KTR$REST = " "; 
        KTR$MSG1 = " "; 
        P<KTRMSG>  = P<KTRMSG> + KDWDSPERLN;
        KTR$MSG2   = " "; 
        END 
  
      ELSE
        BEGIN 
        KTR$SC     = SEL$NAME[FILESEL]; 
        KTR$FILE   = XSFW(FILEQFNC);
        KTR$LID    = XSFW(FILELIDC);
        KTR$PID    = XSFW(FILECPDC);
        KTR$DC     = XSFW(FILEDCC); 
        KTR$DD     = XSFW(FILEDDC); 
        KTR$PRUS   = XCDD(FILESIZ); 
        KTR$STRTIM = XSFW(FILESTR); 
        KTR$STATUS = TRSTATE[FILEFTS];
        KTR$MSG1   = C<00,40>FILEMSG; 
        P<KTRMSG>  = P<KTRMSG> + KDWDSPERLN;
        KTR$MSG2   = C<40,20>FILEMSG; 
        END 
  
      END  # UPKTR1 # 
    TERM
