*COMDECK NX$ACBX
# 
**    NX$ACBX - COMMON BLOCK FOR FIPXFR.
* 
*     NX$ACBX CONTAINS THOSE FLAGS, VARIABLES, AND ARRAYS GLOBAL TO THE 
*     FIPXFR MODULES. 
# 
  
      COMMON NX$ACBX; 
  
      BEGIN  # NX$ACBX COMMON AREA #
  
# 
****  GLOBAL FLAGS. 
# 
  
      ITEM IDLEDOWN   B = FALSE;     # IDLE DOWN STATE FLAG # 
  
# 
*     GLOBAL VARIABLES. 
# 
  
      ITEM ATTR       I;            # APPLICATION CMD. ATTRIBUTE      # 
      ITEM FTTINDEX   I;            # FILE TRANSFER TABLE INDEX       # 
      ITEM GROUPNAME  U ;           # CMM GROUP NAME ID               # 
      ITEM LASTXFRACN I;            #  ACN OF LAST INITIATED FILE XFR # 
      ITEM PRERC;                   # VALUE OF RC OF PRUONA           # 
      ITEM QUAL       I;            # APPLICATION CMD. QUALIFER       # 
      ITEM RTNFLAG    I;            # RETURN FLG FOR APSTORE FUNCTION # 
      ITEM TEXTL      I;            # APPLIC. CMD. PARAM. TEXT LENGTH # 
      ITEM XFR$COM    B = FALSE;    # FILE TRANSFER COMPLETE FLAG     # 
      ARRAY XFR$QCOM[0:0] S(1); 
        BEGIN 
        ITEM XFR$QB     B(00,00,01);     # COMPLETION THRU NETWTQ      #
        ITEM XFR$COM2   B(00,01,01);     # XFR COMPLETION BIT          #
        ITEM XFR$QBC    U(00,00,60) = [0];#XFR$QBC WORD                #
        END 
      ARRAY TIME$WORD S(1) ;
      BEGIN 
        ITEM TIME$SEC   U(0,00,24) ;   # IN SECOND                     #
        ITEM TIME$MILLI U(0,24,36) ;   # IN MILLI-SECOND               #
      END 
      ITEM TIME$UP U = 0 ;             # TIME OF FIRST XFR CALL        #
*IF DEF,DEBUG,1 
      ITEM XFRDTYPE U = 0;   # XFR DAYFILE DISPLAYED TO USER JOB       #
*IF -DEF,DEBUG,1
      ITEM XFRDTYPE U = 1;   # XFR DAYFILE DISPLAYED TO CONTROL POINT  #
# 
*     GLOBAL ARRAYS.
# 
  
# 
*     TEXTACP - TEXT FOR APPLICATION COMMAND PARAMETER. 
# 
  
        ARRAY TEXTACP [0:0] S(1); 
          BEGIN  # ARRAY TEXTACP #
          ITEM TEXT       I(0,00,60);  # APPLIC. CMD. PARAMETER TEXT #
          ITEM TEXTSTRING C(0,00,04);  # TEXT CHARACTER STRING #
          END 
  
# 
*     BITMAP FOR FACILITY CODES 
# 
      ARRAY FACILW [0:0] S(1);
        BEGIN 
        ITEM MFAC      U(00,13,01);    # MFACIL SPECIFIED FLAG       #
        ITEM SFAC      U(00,19,01);    # SFACIL SPECIFIED FLAG       #
        ITEM RFAC      U(00,18,01);    # RFACIL SPECIFIED FLAG       #
        ITEM FACILWD   U(00,00,60)=[0];# FACILITY WORD               #
        END 
# 
*     FTT - FILE TRANSFER TABLE.
* 
*     FTT IS THE TABLE WHICH CONTAINS INFORMATION PERTAINING TO EACH
*     FILE TRANSFER.
# 
  
        ARRAY FTTHEAD S(1) ;
          BEGIN 
          ITEM FTTHDR  C(0,0,10) = ["***FTT****"] ; 
          END 
        ARRAY FTT [0:MAXFILEXM1] S(FTTENTRYSIZE); 
          BEGIN  # ARRAY FTT #
          ITEM FTT$WD0    U(0,00,60) = [MAXFILEXFR(0)]; 
          ITEM FTT$WD1    U(1,00,60) = [MAXFILEXFR(0)]; 
          ITEM FTT$WD2    U(2,00,60) = [MAXFILEXFR(0)]; 
          ITEM FTT$WD3    U(3,00,60) = [MAXFILEXFR(0)] ;
          ITEM FTT$WD4    U(4,00,60) = [MAXFILEXFR(0)]; 
          ITEM FTT$WD5    U(5,00,60) = [MAXFILEXFR(0)]; 
          ITEM FTT$WD6    U(6,00,60) = [MAXFILEXFR(0)]; 
          ITEM FTTACN     U(0,00,12) ; # ACN OF THIS ENTRY             #
          ITEM FTTSTATE   U(0,12,06) ; # CURRENT STATE OF FILE         #
          ITEM FTTPREST   U(0,18,06) ; # PREVIOUS STATE OF FILE        #
          ITEM FTTPRETRIG U(0,24,06) ; # PREVIOUS TRIGGER              #
          ITEM FTTSTORD   U(0,30,03) ; # STATE TABLE ORDINAL           #
          ITEM FTTABL     U(0,33,03) ; # APPLICATION BLOCK LIMIT       #
          ITEM FTTSTRC    U(0,36,06) ; # STATE TABLE REASON CODE       #
          ITEM FTTSTATUS  U(0,42,18) ; # ADDRESS OF STATUS WORD        #
          ITEM FTTOPCODE  U(1,00,01) ; # OPCODE OF TRANSFER            #
          ITEM FTTDIRECN  B(1,00,01) ; # DIRECTION OF TRANSFER         #
          ITEM FTTOPENC   U(1,01,05) ; # NUM OF CHECK MARK CAN BE SENT #
          ITEM FTTTIME    U(1,06,24) ; # TIME OF LAST ACTION TAKEN     #
          ITEM FTTTIMOUT  U(1,30,12) ; # TIME OUT INTERVAL             #
          ITEM FTTFETADR  U(1,42,18) ; # ADDRESS OF I/O DISK FET       #
          ITEM FTTOPENB   U(2,03,03) ; # NUM OF BLOCK THAT CAN BE SENT #
          ITEM FTTORGICT  U(2,06,06) ; # ORIGINAL ICT OF THIS CONN.    #
          ITEM FTTORGALN  U(2,12,06) ; # ORIGINAL ALN                  #
          ITEM FTTUDD     U(2,18,06) ; # DATA DECLARATION              #
          ITEM FTTNRETRY  U(2,24,06) ; # NUMBER OF RETRY               #
          ITEM FTTBSIZE   U(2,30,12) ; # CHARS IN BLK TO SEND/RECEIVE  #
          ITEM FTTFETW    U(2,42,18) ; # ADDRESS OF FET FOR NETWORK BUF#
          ITEM FTTFILEF   U(3,00,02) ; # FILE INDICATOR FIELD EOR/EOF  #
          ITEM FTTOUTCWS  U(3,02,06) ; # OUTSTANDING CWS               #
          ITEM FTTBLK$MS  U(3,08,06) ; # MS BLK OUTSTANDING            #
          ITEM FTTCURBLK  U(3,14,04) ; # CURRENT NUMBER BLK CAN BE SENT#
          ITEM FTTCURPRU  U(3,18,24) ; # CURRENT PRU POSITION          #
                                       # INITIALIZED 1 FOR PRU MODE    #
                                       # AND 0 FOR CHARACTER MODE      #
          ITEM FTTBUFSIZE U(3,42,18) ; # TOTAL BUFFER ALLOCATED        #
          ITEM FTTCVTMOD  B(4,00,01) ; # CHARRACTER MODE FLAG          #
          ITEM FTTCWS     U(4,02,08) ; # CHECK MARK WINDOW SIZE        #
          ITEM FTTICKVAL  U(4,10,32) ; # INITIAL CHECK MARK WINDOW     #
          ITEM FTTCMV$BLK U(4,42,18) ; # ADDRESS OF CHAR MODE VAR BLOCK#
          ITEM FTTTBC     U(5,00,08) ; # CONTENT OF TBC IN TBH         #
          ITEM FTTEOR     B(5,02,01) ; # END OF RECORD FLAG            #
          ITEM FTTEOI     B(5,01,01) ; # END OF INFORMATION FLAG       #
          ITEM FTTEORI    U(5,01,02) ; # COMBINED EOR AND EOI MASK     #
          ITEM FTTLEV     U(5,04,04) ; # LEVEL NUMBER IN DISK FET      #
          ITEM FTTRPND    B(5,12,01) ; # RESTART PENDING FLAG          #
          ITEM FTTRFACIL  B(5,13,01) ; # RFACIL FLAG                   #
          ITEM FTTMSTATE  U(5,14,04) ; # LAST STATE OF TRANSLATION     #
          ITEM FTTLCKACK  U(5,18,18) ; # LAST CHECHMARK NO. ACKED      #
          ITEM FTTTBN     U(5,42,18) ; # CURRENT TRANSFER BLOCK NUMBER #
          ITEM FTTLCKSNT  U(6,00,18) ; # LAST CHECKMARK NO. SENT       #
          ITEM FTTMFACIL  B(6,23,01) ; # MFACIL FLAG                   #
          ITEM FTTCKTBL   U(6,24,18) ; # CHECKMARK TABLE ADDRESS       #
          ITEM FTTWORD    U(6,42,08) ; # WORD NUMBER WITHIN CURRENT    #
                                       # PRU                           #
          ITEM FTTDBIT    U(6,52,07) ; # DBIT USED BY THE TS           #
          ITEM FTTNOTRAN  B(6,59,01) ; # INTRAHOST BINARY FILE XFR     #
          END  # ARRAY FTT #
  
      BASED ARRAY FET$CIO [0:0] S(LEN$FET); 
        BEGIN 
        ITEM FETWD      U(00,00,60) ;  # WORD IN FET                   #
        ITEM FETLFN     U(00,00,42) ;  # LFN                           #
        ITEM FETLFNC    C(00,00,07) ;  # LOCAL FILE NAME               #
        ITEM FETLEVEL   U(00,42,04) ;  # LEVEL NUMBER                  #
        ITEM FETEC      U(00,46,05) ;  # ERROR CODE                    #
        ITEM FET$EOR    B(00,55,01) ;  # END OF RECORD FLAG            #
        ITEM FET$EOF    B(00,55,02) ;  # END OF FILE BITS              #
        ITEM FETCODE    U(00,51,09) ;  # RETURN CODE                   #
        ITEM FETSTATUS  U(00,42,18) ;  # STATUS OF FET                 #
        ITEM FETCIOF    U(00,51,09) ;  # CIO FUNCTION                  #
        ITEM FETCOMP    B(00,59,01) ;  # COMPLETE BIT                  #
        ITEM FETDEVTP   U(01,00,06) ;  # DEVICE TYPE                   #
        ITEM FETEP      B(01,15,01) ;  # ERROR PROCESSING BIT          #
        ITEM FETRNDM    B(01,12,01) ;  # RANDOM FILE BIT               #
        ITEM FETFETL    U(01,36,06) ;  # FET LENGTH                    #
        ITEM FETFIR     U(01,42,18) ;  # FIRST POINTER                 #
        ITEM FETIN      U(02,42,18) ;  # IN POINTER                    #
        ITEM FETOUT     U(03,42,18) ;  # OUT POINTER                   #
        ITEM FETFNT     U(04,00,12) ;  # FNT POINTER                   #
        ITEM FETPRUSZ   U(04,26,16) ;  # CIO PRU SIZE                  #
        ITEM FETLIM     U(04,42,18) ;  # LIMIT POINTER                 #
        ITEM FET$UBC    U(06,30,06) ;  # UNUSED BITS COUNT             #
  
        END 
  
# 
*     BASED ARRAY FOR FACILITY CODE TEST
# 
      BASED ARRAY FACILTEST[0:0] S(1);
        BEGIN 
        ITEM FACILITY   U(00,00,60);       # FULL WORD  OF FACILITY    #
        END 
  
  
# 
*     BASED ARRAY FOR WORKING FET (TRANSLATED DATA BUFFER AREA) 
# 
      BASED ARRAY FET$WORK [0:0] S(LEN$FETW) ;
        BEGIN 
        ITEM FETNAME    C(00,00,07) ; 
        ITEM FETWFIRST  U(01,42,18) ;      # FIRST POINTER             #
        ITEM FETWIN     U(02,42,18) ;      # IN POINTER                #
        ITEM FETWOUT    U(03,42,18) ;      # OUT POINTER               #
        ITEM FETWLIMIT  U(04,42,18) ;      # LIMIT POINTER             #
        END 
# 
      BASED ARRAY FOR CONVERSION PARAMETERS BLOCK.
# 
      BASED ARRAY CMB [0:0] S(LEN$CMB) ;
        BEGIN 
        ITEM CMB$NBUF      U(0,00,60) ;  # NETWORK BUFFER EMPTY FLAG   #
        ITEM CMB$DBUF      U(1,00,60) ;  # DISK BUFFER FULL FLAG       #
        ITEM CMB$NCOUNT    U(2,00,60) ;  # NO OF REMAINING CHAR IN NBUF#
        ITEM CMB$NBYTE     U(3,00,60) ;  # BITS TAKEN FROM A WORD      #
        ITEM CMB$DBIT      U(4,00,60) ;  # NO. OF BITS TO BE WRITTEN   #
        ITEM CMB$STATE     U(5,00,60) ;  # STATE OF CONVERSION         #
        ITEM CMB$TBLADR    U(6,42,18) ;  # CONVERSION TABLE ADDRESS    #
        ITEM CMB$STEP      U(7,00,60) ;  # STEP FROM THIS CHARS TYPE   #
        ITEM CMB$BLKSZ     U(8,00,60) ;  # BLOCK SIZE OF FILE XFR      #
        END 
# 
      BASED ARRAY FOR CHECKMARK STATUS BUFFER 
# 
      BASED ARRAY CHK[0:0] S(2);
        BEGIN 
        ITEM CHK$IDX       U(00,00,18);  # INDEX TO LAST ENTRY OF      #
                                         # THE CHECKMARK STATUS BUFFER #
        ITEM CHK$MARK      U(00,00,18);  # CHECK MARK NUMBER           #
        ITEM CHK$PRUNO     U(00,18,24);  # PRU NUMBER ASSOCIATED WITH  #
                                         # THAT CHECKMARK              #
        ITEM CHK$WORD      U(00,42,06);  # WORD NUMBER WITHIN THAT PRU #
        ITEM CHK$DBIT      U(00,48,08);  # DBIT FOR TRANLATION SERVICE #
        ITEM CHK$STATE     U(00,56,04);  # LAST STATE OF TRANSLATION   #
        ITEM CHK$TBN       U(01,00,18);  # TBN ASSOCIATED WITH THE     #
                                         # CHECKMARK                   #
        ITEM CHK$WRD1      U(00,00,60);  # ENTRY 1 OF THE BUFFER       #
        ITEM CHK$WRD2      U(01,00,60);  # ENTRY 2 OF THE BUFFER       #
        END 
  
  
*CALL DRHDR 
  
# 
      ARRAY DEFINITION FOR DEFINING THE MODE OF TRANSFERRING FILES. 
      I.E. IVT MODE OR PRU-MODE. INDEXING BY DATADEC (UH,UU,US,C6,C8) 
      AND OPCODE OF OPERATION ( RECIEVER (0), SENDER (1) ). 
      FORMULA   :    MODE = ASSIGNORD[DATADEC] - CODE.
# 
      ARRAY ORDINAL[0:MAXDD] S(1);
        BEGIN 
        ITEM ASSIGNORD  I = [1,1,1,3,3] ; 
        END 
# 
*     STATUSWORD - USER-S STATUS WORD.
* 
*     THIS BASED ARRAY IS USED BY NETON AND BY SEVERAL PROCEDURES OF
*     THE FIPXFR MODULES. 
# 
  
        BASED ARRAY STATUSWORD [0:0] S(1);
          BEGIN 
          ITEM STATUSWD U (0,0,60);  # USER-S STATUS WORD # 
          END 
  
# 
*       BASE ARRAY FOR TRANSFER BLOCK HEADER. 
# 
        BASED ARRAY TBH$HDR [0:0] S(1) ;
          BEGIN 
          ITEM TBH$TBC         U(0,00,08) ;# TRANSFER BLOCK CLARIFIER  #
          ITEM TBH$FILE        U(0,00,02) ;# FILE INDICATOR            #
          ITEM TBH$LEV         U(0,04,04) ;# LEVEL NUMBER OF I/O       #
          ITEM TBH$EOI         B(0,01,01) ;# END OF INFOR FLAG         #
          ITEM TBH$EOR         B(0,02,01) ;# END OF RECORD FLAG        #
          ITEM TBH$EORI        U(0,01,02);  # EOR AND EOI FLAG         #
          ITEM TBH$OLEN        U(0,08,16) ;# LENGTH OF DATA IN OCTETS  #
          ITEM TBH$TBN         U(0,24,16) ;# TRANSFER BLOCK NUMBER     #
          ITEM TBH$BOVER       U(0,44,04) ;# NUMBER OF BIT IN LAST OCTE#
          ITEM TBH$WRD         U(0,00,48) ;# SIX OCTETS OF THE TBH     #
          ITEM TBH$FWD         U(0,00,60) ;# FULL WORD INCLUDING TBH   #
          END 
  
# 
        APPLICATION BLOCK HEADER FOR AIP OUTPUTTING LEVEL 7 
        MESSAGE. BLOCK TYPE IS QMSG.
# 
        ARRAY ABH$LEV7 [0:0] S(1) ; 
          BEGIN 
          ITEM ABH$L7WORD    U(0,0,60) = [0] ;
          ITEM ABH$L7ABT    U(0,0,06) = [APPQMSG] ; 
          ITEM ABH$L7ADR    U(0,6,12) ; 
          ITEM ABH$L7ABN    U(0,18,18) ;
          ITEM ABH$L7ACT    U(0,36,04) = [2] ;
          ITEM ABH$L7TLC    U(0,48,12) = [LEN$LEV7O] ;
          END 
  
# 
        BUFFER TO HOLD DATA TO GET FROM THE NETWORK.
        IT IS MXIVT$SIZE SIZE ( ABH, TBH AND TEXT = 71 WORDS) 
  
# 
        ARRAY DATA$BUF [0:MXIVT$SIZE] S(1) ;
          BEGIN 
          ITEM DATA$WORD U(00,00,60) ;
          END 
  
# 
        BUFFER FOR LEVEL 7 MESSAGE (LV7$MSG)
        BASED ARRAY FOR LEVEL 7 SYN MESSAGE (LV7$BASE)
        ALL NECCESSARY FIELD ARE PRE-DEFINED. 
        VALUES FOR L7$PFC ARE IN NX$DEF.
# 
        ARRAY LV7$MSG [0:0] S(LEN$LEV7) ; 
          BEGIN 
          ITEM L7$PFC   U(0,00,16) ;   # LEVEL 7 PFC                   #
          ITEM L7$PCNT  U(0,16,16) = [X"3031"];# PCNT OF THIS COMMAND  #
          ITEM L7$23    U(0,32,16) = [X"3233"] ;  # 23 DEC IN ASCII    #
          ITEM L7$S     U(0,48,08) = [X"53"] ;    # S CHARACTER        #
          ITEM L7$01    U(0,56,04) = [3] ;        # 3 IN ASSCII        #
          ITEM L7$02    U(1,00,04) = [0] ;        # TO FORM 0 IN ASCII #
          ITEM L7$03    U(1,04,08) = [X"30"] ;    # 0 IN ASCII         #
          ITEM L7$04    U(1,12,08) = [X"34"] ;    # 4 IN ASCII         #
          ITEM L7$DD    U(1,20,32) ;
          ITEM L7$D1    U(1,20,08) ;   # D1 FIELD                      #
          ITEM L7$D2    U(1,28,08) ;   # D2 FIELD                      #
          ITEM L7$D3    U(1,36,08) ;   # D3 FIELD                      #
          ITEM L7$D4    U(1,44,08) ;   # D4 FIELD                      #
          ITEM L7$D5    U(1,52,08) ;
          ITEM L7$ALL   U(1,20,40) ;
          END 
        BASED ARRAY LV7$BASE [0:0] S(LEN$LEV7) ;
          BEGIN 
          ITEM LV7$BPFC      U(00,00,16) ;     # PFC OF LEVEL-7 MSG    #
          ITEM LV7$MSGORD    U(00,12,04) ;     # ORDINAL OF LEV-7 MSG  #
          ITEM LV7$COUNT     U(00,16,16) ;     # PCOUNT OF MSG         #
          ITEM LV7$DONE      U(01,20,08) ;     # RESTART CKECKMARK NUM #
          ITEM LV7$DTWO      U(01,28,08) ;
          ITEM LV7$DTHREE    U(01,36,08) ;
          ITEM LV7$DFOUR     U(01,44,08) ;
          ITEM LV7$ERROR     U(01,20,32) ;
          ITEM LV7$WRD       U(01,00,60) ;
          END 
  
# 
*     CIOCALL - CALL PP PROGRAM CIO.
*     MOST PROCEDURES ISSUE CIO CALLS WITHOUT RECALL, SO FOR EFFICIENCY 
*     ANY PROCEDURE ISSUING A CIO CALL WITH RECALL MUST SET THE RECALL
*     BIT TO FALSE AFTERWARDS.
# 
  
      ARRAY CIOCALL [0:0] S(1); 
        BEGIN 
        ITEM CIONAME    C(0,00,03) = ["CIO"]; 
        ITEM CIORECALL  B(0,19,01) = [TRUE];
        ITEM CIOSKIP    U(0,24,18); 
        ITEM CIOFETADDR I(0,42,18); 
        END 
  
  
# 
      APPLICATION BLOCK HEADER USED FOR OUTPUT A SUPERVISORY
      MESSAGE.
# 
      ARRAY OUT$ABH [0:0] S(1) ;
        BEGIN 
        ITEM OUT$ABHWD      U(0,00,60) = [0] ;
        ITEM OUT$ABHABT     U(0,00,06) = [APPCMD] ; 
        ITEM OUT$ABHACN     U(0,06,12) = [0] ;
        ITEM OUT$ABHABN     U(0,18,18) ;
        ITEM OUT$ABHACT     U(0,36,04) = [CT60TRANS] ;
        ITEM OUT$ABHTLC     U(0,48,12) ;
        END 
  
      ARRAY OUT$DATA [0:0] S(1) ; 
        BEGIN 
        ITEM OUT$DATWD      U(0,00,60) = [0] ;
        ITEM OUT$DATABT     U(0,00,06) = [APMSG] ;
        ITEM OUT$DAACN      U(0,06,12) ;
        ITEM OUT$DATABN     U(0,18,18) ;
        ITEM OUT$DATACT     U(0,36,04) = [CT8ASCII] ; 
        ITEM OUT$DATLC      U(0,48,12) ;
        END 
  
      ARRAY OUT$INTRA[0:0] S(1) ; 
        BEGIN 
        ITEM OUT$INTWD      U(0,00,60) = [0] ;
        ITEM OUT$INTABT     U(0,00,06) = [APMSG]; 
        ITEM OUT$INTACN     U(0,06,12) ;
        ITEM OUT$INTABN     U(0,18,18) ;
        ITEM OUT$INTACT     U(0,36,04) = [CT8ASCII];
        ITEM OUT$INTTLC     U(0,48,12) ;
        END 
  
      ARRAY OUT$FT [0:0] S(1) ; 
        BEGIN 
        ITEM OUT$FTWD       U(0,00,60) = [0] ;
        ITEM OUT$FTABT      U(0,00,06) = [APPCMD] ; 
        ITEM OUT$FTACN      U(0,06,12) ;
        ITEM OUT$FTABN      U(0,18,18) ;
        ITEM OUT$FTACT      U(0,36,04) = [CT8ASCII] ; 
        ITEM OUT$FTTLC      U(0,48,12) ;
        END 
# 
*               NEW LIST NUMBER 77B (A RESERVED LIST FOR XFR CONN.) 
# 
  
      ARRAY LST$SWH [0:0] S(1); 
        BEGIN 
        ITEM LST$WORD   U(0,00,60) = [0]; 
        ITEM LST$PFC    U(0,00,16) = [X"C002"]; 
        ITEM LST$ACN    U(0,24,12); 
        ITEM LST$NLIST  U(0,54,06) ;
        END 
      ARRAY DC$CICT [0:0] S(1) ;
        BEGIN 
        ITEM DC$WORD    U(0,00,60) = [0] ;
        ITEM DC$PFC     U(0,00,16) = [X"C200"] ;
        ITEM DC$ACN     U(0,24,12) ;
        ITEM DC$NXP     B(0,52,01) ;
        ITEM DC$SCT     B(0,53,01) ;
        ITEM DC$ACT     U(0,54,06) ;
        END 
  
# 
*     ARRAY XFRINDEX DEFINES INDEXES INTO THE ARRAYS WHICH ARE
*     USED TO PRESET ITEMS USED DURING FILE TRANSFER. 
# 
      ARRAY XFRINDEX [C6:C8] S(1);
        BEGIN 
      ITEM XFRINDX1   U(00,00,03) =  # INDEX FOR CONTROL PRESETS #
           [2,                     # C6 = CN #
            2];                    # C8 = CN #
      ITEM XFRINDX2   U(00,03,03) =  # INDEX FOR DATA CONVERSION #
           [1,                     # C6 = C6 #
            2];                    # C8 = C8 #
        ITEM XFRMINBUFL U(00,06,12) =   # LOCAL FET BUFFER BLOCK #
          [2(MINBUFL)]; 
        ITEM XFRMINBUFR U(00,18,12) =   # RHF FET BUFFER BLOCK #
          [MINBUFR3,                 # C6 # 
           MINBUFR4];                # C8 # 
        ITEM XFRRATIO  U(00,30,12) =   # LOCAL/RHF BUFF SIZE RATIO #
          [BUFRATIO3,              # C6 # 
           BUFRATIO4];             # C8 # 
        END 
  
# 
*     ARRAY XFRCONTROL DEFINES THE PRESETS TO CONTROL THE DATA
*     TRANSFER I/O. 
*     THIS ARRAY IS INDEXED AS FOLLOWS: 
*       UH, SEND, AND LOCAL MASS STORAGE
*       UH, SEND, AND LOCAL TAPE
*       UH, RECEIVE, AND LOCAL MASS STORAGE 
*       UH, RECEIVE, AND LOCAL TAPE 
* 
*       US, SEND, AND LOCAL MASS STORAGE
*       US, SEND, AND LOCAL TAPE
*       US, RECEIVE, AND LOCAL MASS STORAGE 
*       US, RECEIVE, AND LOCAL TAPE 
* 
*       CN, SEND, AND LOCAL MASS STORAGE
*       CN, SEND, AND LOCAL TAPE
*       CN, RECEIVE, AND LOCAL MASS STORAGE 
*       CN, RECEIVE, AND LOCAL TAPE 
# 
      ARRAY XFRCONTROL [0:11] S(1); 
        BEGIN 
        ITEM XFRCVTMODE B(00,00,01) =  # CONVERSION MODE FLAG # 
          [FALSE,TRUE,FALSE,TRUE, 
           FALSE,TRUE,FALSE,TRUE, 
           TRUE,TRUE,TRUE,TRUE];
        ITEM XFRINFUNC  U(00,01,08) =  # INPUT FUNCTION # 
          [CIO$READC,CIO$READC,CIO$READ,CIO$READ, 
           CIO$READC,CIO$READC,CIO$READC,CIO$READC, 
           CIO$READC,CIO$READC,CIO$READC,CIO$READC];
        ITEM XFROTFUNC  U(00,09,08) =  # OUTPUT FUNCTION #
          [CIO$WRITE,CIO$WRITE,CIO$WRITEC,CIO$WRITEC, 
           CIO$WRITEC,CIO$WRITEC,CIO$WRITEC,CIO$WRITEC, 
           CIO$WRITEC,CIO$WRITEC,CIO$WRITEC,CIO$WRITEC];
        ITEM XFRINCWS   B(00,17,01) =  # INPUT CONTROL WORDS #
          [TRUE,TRUE,TRUE,TRUE, 
           TRUE,TRUE,TRUE,TRUE, 
           TRUE,TRUE,TRUE,TRUE];
        ITEM XFROTCWS   B(00,18,01) =  # OUTPUT CONTROL WORDS # 
          [TRUE,TRUE,TRUE,TRUE, 
           TRUE,TRUE,TRUE,TRUE, 
           TRUE,TRUE,TRUE,TRUE];
        ITEM XFRUSCWS   B(00,19,01) =  # US CONTROL WORD MODE # 
          [FALSE,FALSE,FALSE,FALSE, 
           TRUE,TRUE,TRUE,TRUE, 
           FALSE,FALSE,FALSE,FALSE];
        ITEM XFRINSPACE U(00,20,12) =  # MINIMUM INPUT SPACE #
          [66,514,384,384,
           66,514,396,396,
            66,514,794,794];
        ITEM XFROTDATA  U(00,32,12) =  # MINIMUM OUTPUT DATA #
          [384,384,66,514,
           396,396,66,514,
            792,792,66,514];
        END 
  
# 
*     ARRAY XFRCONVERT DEFINES THE PRESETS FOR DATA CONVERSION. 
*     THIS ARRAY IS INDEXED AS FOLLOWS: 
*       WORD,SEND 
*       WORD,RECEIVE
* 
*       C6,SEND 
*       C6,RECEIVE
* 
*       C8,SEND 
*       C8,RECEIVE
# 
      ARRAY XFRCONVERT [0:5] S(1);
        BEGIN 
        ITEM XFRCVTTYPE U(00,00,03) =  # CONVERSION TYPE #
          [0,0,3,1,4,2];
        ITEM XFRINCHPWD U(00,03,04) =  # INPUT CHARACTERS PER WORD #
          [1,1,10,5,5,5]; 
        ITEM XFRINBITBT U(00,07,06) =  # INPUT BITS PER BYTE #
          [60,60,6,12,12,12]; 
        ITEM XFRINBITCH U(00,13,06) =  # INPUT BITS PER CHARACTER # 
          [60,60,6,8,8,8];
        ITEM XFROTCHPWD U(00,19,04) =  # OUTPUT CHARACTERS PER WORD # 
          [1,1,5,10,5,5]; 
        ITEM XFROTBITBT U(00,23,06) =  # OUTPUT BITS PER BYTE # 
          [60,60,12,6,12,12]; 
        ITEM XFROTBITCH U(00,29,06) =  # OUTPUT BITS PER CHARACTER #
          [60,60,8,6,8,8];
        ITEM XFRCVTPTR  U(00,35,18) =  # CONVERSION TABLE POINTER # 
          [6(0)]; 
        END 
  
      END    # NX$ACBX COMMON AREA #
  
