*DECK VALLOCF 
USETEXT COMCBEG 
USETEXT COMADEF 
USETEXT COMACBF 
USETEXT COMACBX 
USETEXT COMADFM 
USETEXT COMAFET 
USETEXT COMAMCB 
USETEXT COMACST 
PROC VALLOCF; 
# TITLE VALLOCF - VALIDATE LOCAL FILE.  # 
  
      BEGIN  # VALLOCAF # 
  
# 
**    VALLOCF - VALIDATE LOCAL FILE.
* 
*     VALLOCF CHECKS FOR OPEN FILE REQUEST COMPLETE AND VALIDATES 
*     DEVICE TYPE.
* 
*     PROC VALLOCF
* 
*     ENTRY      <FTTENT> = FWA FTT ENTRY.
*                <LFET>   = FWA CIO FET.
* 
*     EXIT       FTTSTATE  = TRANSFER-IN-PROGRESS OR WAIT-FOR-CM. 
*                FTTSTATIS = 0 (NO ERROR).
*                          = CIO$ERROR (OPEN ERROR).
*                          = INVALID$DT (INVALID DEVICE). 
* 
*     PROCESS    IF FILE-OPEN REQUEST COMPLETE: 
*                  IF ERROR ON OPEN:  
*                    ADD * FILE OPEN * TO ERROR MESSAGE.
*                  ELSE:  
*                    CHECK FILE DEVICE. 
*                  IF OPEN ERROR OR INVALID DEVICE: 
*                    IF INVALID DEVICE: 
*                      SET FTTSTATIS = INVALID-DEVICE.
*                      ADD FILE NAME TO ERROR MESSAGE.
*                    CALL CIOERRC TO END TRANSFER 
*                        (AND SEND OPEN-ERROR MESSAGE). 
*                    SET FTTUDD = DEFAULT (NO CONVERSION).
*                    SET DEVICE TYPE = DEFAULT. 
*                  CALL BLDTRT TO BUILD TRANSFER TABLES.
*                  CALL SELCM TO START TRANSFER.
*                  CALL INITIME TO INITIALIZE TIMER.
# 
  
# 
****  PROC VALLOCF - XREF LIST BEGIN. 
# 
  
      XREF
        BEGIN 
        PROC BLDTRT;                 # BUILD TRANSFER TABLE # 
        PROC CIOERRC;                # CIO ERROR PROCESSOR #
        PROC INITIME;               # INITIALIZE FTTTIME #
        FUNC REPZERO C(7);           # REPLACE TRAILING ZEROES #
        PROC SELCM;                  # SELECT CONVERSION MODE # 
        END 
  
# 
****  PROC VALLOCF - XREF LIST END. 
# 
  
      ITEM I          I;           # SCRATCH #
      ITEM DEVOK      B;           # SCRATCH #
                                               CONTROL EJECT; 
      IF  LFETCOMP[0] 
      THEN
        BEGIN 
        DEVOK = TRUE; 
        IF LFETEC NE 0             # IF ERROR ON OPEN # 
        THEN
          BEGIN 
          DEVOK = FALSE;
          IDFM$CIOTX[CIO$ERROR] = ", ERRO";  # ADD TEXT # 
          BUFF$MSG2 = "R ON FILE-OPEN.";  # TO ERROR MESSAGE #
          END 
  
        ELSE
          BEGIN 
      CONTROL IFEQ OS$NOSBE;
          DEVOK = FALSE;
          SLOWFOR I = 0 STEP 1 WHILE NOT DEVOK AND I LE VALDTMAX
          DO
            BEGIN 
            DEVOK = (LFETDEVTP EQ VALDT[I]);
            END 
  
      CONTROL ENDIF;
  
          END 
  
        IF NOT DEVOK               # IF OPEN ERROR OR INVALID DEVICE #
        THEN
          BEGIN 
      CONTROL IFEQ OS$NOSBE;
          IF LFETEC EQ 0           # IF INVALID DEVICE #
          THEN
            BEGIN 
            IDFM$LFN0 [INVALID$DT] = REPZERO (LFETLFNC);
            BUFF$MSG2 = " ";       # FORCE ERROR MESSAGE #
            FTTTSTATIS = INVALID$DT;  # RESET ERROR FLAG #
            END 
  
      CONTROL ENDIF;
  
          CIOERRC;                 # END XFR, (OPEN ERROR MESSAGE) #
          FTTUDD = MINDD;          # RESET DATA DECL (NO CONVERSION) #
          LFETDEVTP = 0;           # RESET DEVICE TYPE (DEFAULT) #
          END 
  
  
      CONTROL IFEQ OS$NOSBE;
        IF FTTDIRECN EQ SEND       # IF SENDING FILE #
        THEN
          BEGIN 
          INRANDOM = LFETRNDM;     # SAVE RANDOM ATTRIBUTE #
          LFETRNDM = FALSE; 
          END 
  
      CONTROL ENDIF;
  
        BLDTRT (FTTUDD);           # BUILD TRANSFER TABLES #
        SELCM;                     # START TRANSFER # 
        INITIME;                   # INITIALIZE FTT TIME #
        END 
  
      END    # VALLOCF #
  
      TERM
