*DECK SELCM 
USETEXT COMCBEG 
USETEXT COMADEF 
USETEXT COMACBX 
USETEXT COMADFM 
USETEXT COMAFET 
PROC SELCM; 
# TITLE  SELCM - SELECT CONVERT MODE. # 
  
      BEGIN  # SELCM #
  
# 
**    SELCM - SELECT CONVERT MODE.
* 
*     THIS ROUTINE DETERMINES IF IT IS NECESSARY TO ATTEMPT TO
*     UTILIZE CODE CONVERSION IN THE NAD. 
* 
*     PROC SELCM. 
* 
*     ENTRY      SS RECEIVED OR ACK TO SS RECEIVED. 
*                <FTTENT> = FWA FTT ENTRY.
* 
*     EXIT       FILE TRANSFER INITIATED IF BINARY MODE.
*                CM/SEL/R ISSUED FOR CODED MODES. 
* 
*     PROCESS    IF BINARY TRANSFER 
*                THEN 
*                  SET STATE TO XFR-IN-PROGRESS.
*                  SET STATUS TO IN-PROGRESS. 
*                  CALL DODPR TO INITIATE THE TRANSFER. 
*                ELSE 
*                  ISSUE CM/SEL/R.
*                  SET STATE TO WAIT-FOR-SEL-CM-REPLY.
# 
  
# 
****  PROC SELCM - XREF LIST BEGIN. 
# 
  
      XREF
        BEGIN 
        PROC CALLNP;                 # ISSUE NETPUT REQUEST # 
        PROC DODPR;                  # INITIATE FILE TRANSFER # 
        PROC DAYFMSG;                # DAYFILE MESSAGE #
        FUNC REPZERO C(7);           # ZERO FILL #
        END 
  
# 
****   PROC SELCM - XREF LIST END.
# 
  
  
      ARRAY CONVERTYPE [FIRSTCMST:LASTCMST] S(1); 
        BEGIN 
        ITEM CT$CMSF    U(00,00,12) = [ 
                                       WRITEASC,
                                       WRITEDC, 
                                       READASC, 
                                       READDC,
                                      ];
        ITEM CT$DD      U(00,36,12) = [ 
                                       C8,
                                       C6,
                                       C8,
                                       C6,
                                      ];
        ITEM CT$DIR     U(00,48,12) = [ 
                                       SEND,
                                       SEND,
                                       RECEIVE, 
                                       RECEIVE, 
                                      ];
        END 
  
      ITEM INDEX      I;             # LOOP COUNTER INDEX # 
  
                                               CONTROL EJECT; 
  
      IF FTTUDD EQ US 
        OR FTTUDD EQ UU 
        OR FTTUDD EQ UH 
      THEN
        BEGIN 
        STATUSWD = IN$PROGRES;
        IDFM$LFN1[IN$PROGRES] = REPZERO(LFETLFNC);
        DAYFMSG(IN$PROGRES);
        FTTSTATE = S"DATAXFRPRG"; 
        DODPR;
        END 
  
      ELSE
        BEGIN 
        INDEX = FIRSTCMST;
        ASLONGAS FTTUDD NE CT$DD[INDEX] 
            OR   FTTDIRECN NE CT$DIR[INDEX] 
        DO
          BEGIN  # DD AND DIRECTION ALREADY VALIDATED, WILL GET MATCH # 
          INDEX = INDEX + 1;
          END 
  
        CSE$FC = CT$CMSF[INDEX];
        CSE$ACN = FTTACN; 
        CSE$PFC = CM$SEL$R; 
        SSCXRECALL[0] = TRUE; 
        CALLNP(HWOASMSG,CM$SEL$EXT);
        SSCXRECALL[0] = FALSE;
        FTTSTATE = S"WFORSCMR"; 
        END 
  
      END  # SELCM #
  
      TERM
