*DECK FCSIIOP 
USETEXT TEXTFCS;
      PROC FCSIIOP; 
*CALL COPYRITE
# TITLE FCSIIOP - INITIALIZE INPUT , OUTPUT AND PROMPT FILES.          #
  
      BEGIN                            # FCSIIOP                       #
  
# 
**    FCSIIOP - INITIALIZE INPUT , OUTPUT AND PROMPT FILES. 
* 
*     C. J. RAMSAY                     87/11/03 
* 
*     THIS PROCEDURE INITIALIZES THE INPUT , OUTPUT AND PROMPT FILES
*     USED BY THE FTP CONTROL STATEMENT PROCESSOR.
* 
*     PROC FCSIIOP
* 
*     ENTRY   FTPINPUT   = FTP INPUT FILE NAME. 
*             FTPOUTPUT  = FTP OUTPUT FILE NAME.
*             FTPPROLOG  = FTP PROLOG FILE NAME.
*             FTPINTER   = TRUE IF JOB ORIGIN IS INTERACTIVE. 
* 
*     EXIT    MBIX       = MBT ENTRY INDEX FOR INPUT FILE.
*             MBOX       = MBT ENTRY INDEX FOR OUTPUT FILE. 
*             MBMX       = MBT ENTRY INDEX FOR PROMPT FILE. 
* 
*     NOTES   THE PROMPT FILE IS USED TO SOLICIT INPUT FROM THE 
*             INTERACTIVE USER. IT IS ONLY USED IF THE FILE TO BE READ
*             FROM IS ASSIGNED TO THE TERMINAL. 
* 
*     METHOD  INITIALIZE INPUT FILE.
*             INITIALIZE OUTPUT FILE. 
*             IF INTERACTIVE THEN 
*               CHANGE CURRENT CHARACTER SET TO ASCII.
*               TURN OFF INPUT PROMPTING. 
*               GENERATE A UNIQUE LOCAL FILE NAME FOR PROMPT FILE.
*               CREATE AN MBT ENTRY FOR PROMPT FILE.
*               RETURN LOCAL FILE OF SAME NAME. 
*               REQUEST ASSIGNMENT OF PROMPT FILE TO THE TERMINAL.
* 
# 
  
# 
****  PROC FCSIIOP - XREF LIST
# 
      XREF
        BEGIN 
        FUNC CBTZ C(10);               # CONVERT BLANKS TO ZERO        #
        PROC CSASCII;                  # CHANGE CHARACTER SET TO ASCII #
        PROC FCSCCIF;                  # CHANGE INPUT FILE             #
        PROC FCSCCOF;                  # CHANGE OUTPUT FILE            #
        PROC FCSOWOF;                  # WRITE TO OUTPUT FILE          #
        FUNC FCSUGUL U;                # GENERATE UNIQUE LFN           #
        FUNC FCSUIMB B;                # INITIALIZE A MBT ENTRY        #
        PROC FREQST;                   # REQUEST FILE ASSIGNMENT       #
        PROC NETUCLR;                  # CLEAR AN AREA OF MEMORY       #
        PROC NOPRMPT;                  # TURN OFF TERMINAL PROMPTING   #
        PROC RECALL;                   # WAIT TILL OPERATION COMPLETES #
        PROC RETERN;                   # RETURN A LOCAL FILE           #
        PROC WRITEC;                   # WRITE A CODED LINE            #
        END 
# 
****
# 
      ITEM PAGEEJECT     U = O"34550000000000000000"; 
      ITEM SPACING       U = O"55550000000000000000"; 
  
      ARRAY VERSION [00:00] S(7); 
        BEGIN 
        ITEM VER$TEXT    C(00,00,63) =
    ["WELCOME TO THE NOS CLIENT FTP (VERSION V.V.V, PSR LEVEL LLLLL)."];
        ITEM VER$VER     C(03,54,05) = [FTPVERSION];
        ITEM VER$LVL     C(05,36,05) = [FTPLEVEL];
        ITEM VER$ZBYTE   U(06,18,42) = [0]; 
        END 
      CONTROL EJECT;
# 
*     START MAIN PROCEDURE
# 
      NETUCLR (LOC(PARMS[1]), PARSIZ$);# CLEAR 1ST PARAMETER BLOCK     #
# 
*     INITIALIZE THE INPUT FILE.
# 
      PARAMNB[1] = FTPINPUT;           # DEFAULT INPUT FILE NAME       #
      PARAMNZ[1] = CBTZ (PARAMNB[1]); 
      FTPINPUT   = "$$$$$$$$$$";       # ENSURE FILE NAME MISMATCH     #
      FCSCCIF;                         # CHANGE INPUT FILE NAME        #
# 
*     INITIALIZE THE OUTPUT FILE. 
# 
      PARAMNB[1] = FTPOUTPUT;          # DEFAULT OUTPUT FILE NAME      #
      PARAMNZ[1] = CBTZ (PARAMNB[1]); 
      FTPOUTPUT  = "$$$$$$$$$$";       # ENSURE FILE NAME MISMATCH     #
      FCSCCOF;                         # CHANGE OUTPUT FILE NAME       #
      IF NOT FTPINTER 
      THEN
        BEGIN                          # NON-INTERACTIVE MODE          #
        WRITEC (MBT[MBOX], PAGEEJECT); # ISSUE PAGE EJECT              #
        RECALL (MBT[MBOX]);            # WAIT TILL OPERATION COMPLETES #
        END 
      FCSOWOF (VERSION, INTERNAL$);    # WRITE MESSAGE TO OUTPUT FILE  #
      FCSOWOF (SPACING, INTERNAL$);    # WRITE BLANK LINE              #
# 
*     IF INTERACTIVE THEN CHANGE THE CURRENT CHARACTER SET TO ASCII,
*     TURN OFF TERMINAL PROMPTING, AND INITIALIZE THE PROMPT FILE.
# 
      IF FTPINTER 
      THEN
        BEGIN                          # JOB ORIGIN IS INTERACTIVE     #
        CSASCII;                       # CHANGE CHARACTER SET TO ASCII #
        NOPRMPT;                       # TURN OFF TERMINAL PROMPTING   #
        IF FCSUIMB (FTPROMPT, FCSUGUL ("ZZZZZPR"))
        THEN
          BEGIN                        # INITIALIZE MBT ENTRY          #
          MBMX = MBTX;                 # SAVE INDEX OF MBT ENTRY       #
          RETERN (MBT[MBMX]);          # RETURN FILE WITH SAME NAME    #
          MBT$DT[MBMX] = "TT";         # DEVICE TYPE OF TERMINAL       #
          FREQST (MBT[MBMX]);          # REQUEST FILE ASSIGNMENT       #
          END 
        END 
  
      RETURN;                          # RETURN TO CALLER              #
  
      END                              # FCSIIOP                       #
  
      TERM
