*COMDECK COMACBX
#     COMACBX - COMMON BLOCK FOR FIPXFR. #
                                               CONTROL NOLIST;
                                               CONTROL IFEQ LISTCON,1;
                                               CONTROL LIST;
                                               CONTROL ENDIF; 
# 
**    COMACBX - COMMON BLOCK FOR FIPXFR.
* 
*     COMACBX CONTAINS THOSE FLAGS, VARIABLES, AND ARRAYS GLOBAL TO THE 
*     FIPXFR MODULES. 
# 
  
      COMMON COMACBX; 
  
      BEGIN  # COMACBX 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 = 0;         # CMM GROUP NAME ID #
      ITEM LASTXFRACN I;            #  ACN OF LAST INITIATED FILE XFR # 
      ITEM QUAL       I;            # APPLICATION CMD. QUALIFER # 
      ITEM RTNFLAG    I;            # RETURN FLG FOR APSTORE FUNCTION # 
      ITEM TEXTL      I;            # APPLIC. CMD. PARAM. TEXT LENGTH # 
  
# 
*     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 
  
# 
*     FTT - FILE TRANSFER TABLE.
* 
*     EACH FILE TRANSFER BEING PROCESSED HAS A SEPARATE ENTRY 
*     IN THE FILE TRANSFER TABLE.  (SEE BASED ARRAY FTTENT, BELOW.) 
# 
  
        ARRAY FTT [0:MAXFILEXM1] S(FTTLENGTH);
          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)]; 
          END  # ARRAY FTT #
  
# 
*     FTTENT - FILE TRANSFER TABLE ENTRY (BASED ARRAY). 
* 
*     FTTENT DEFINES THE FIELDS WITHIN A FILE TRANSFER TABLE ENTRY. 
# 
  
        BASED ARRAY FTTENT [0:0] S(FTTLENGTH);
          BEGIN  # ARRAY FTTAB #
          ITEM FTTACN     U(0,00,12);  # APPLIC. CONNECTION NUMBER #
          ITEM FTTSTATE   S:SFTTSTATE(0,12,06);  # TRANSFER STATE # 
          ITEM FTTERRORD  U(0,18,06);  # ERROR ORDINAL #
          ITEM FTTTIMEOUT U(0,24,12);  # TIME OUT LENGTH IN SECONDS # 
          ITEM FTTSTATADR I(0,36,18);  # ADDRESS OF STATUS WORD # 
          ITEM FTTDLYCTR  U(0,54,05);  # DELAY COUNTER #
          ITEM FTTDIRECN  U(0,59,01);  # DIRECTION OF THE TRANSFER #
  
          ITEM FTTTIME    U(1,00,18);  # START TIME IN MMMMSS # 
          ITEM FTTCOUNT   U(1,18,06);  # STATE COUNTER #
          ITEM FTTFETADR  I(1,24,18);  # FET ADDRESS #
          ITEM FTTPBLKADR I(1,42,18);  # RHF PARAMETER BLOCK ADDRESS #
  
          ITEM FTTOL7CNT  U(2,00,06);  # STATE COUNTER #
          ITEM FTTPRESTAT S:SFTTSTATE(2,06,06);  # PREVIOUS STATE # 
          ITEM FTTUDD     U(2,12,06);  # USER DATA DECLAR # 
          ITEM FTTOL7RTRY U(2,18,12);  # OUTPUT-LVL7-MSG RETRY COUNT #
          ITEM FTTCVTMODE B(2,30,01);  # CONVERSION REQUIRED FLAG # 
          ITEM FTTUSCWS   B(2,31,01);  # US CONTROL WORDS FLAG #
          ITEM FTTQRSENT  B(2,32,01);  # QUIT COMMAND SENT #
          ITEM FTTCMA     B(2,33,01);  # CONVERT MODE ACTIVE #
          ITEM FTTCMSA    B(2,34,01);  # ATTEMPTING CONV MODE SELECT #
          ITEM FTTCMEA    B(2,35,01);  # CONVERT MODE EXIT ATTEMPTED #
          ITEM FTTDXPA    C(2,36,04);  # DATA XFR PHASE ATTRIBUTE # 
  
          ITEM FTTLL7CMD  I(3,00,12);  # LAST LVL 7 COMMAND SENT #
          ITEM FTTLL7ATT  C(3,12,04);  # LAST LVL 7 ATTRIBUTE SENT #
#         ITEM FTT$RES    U(3,36,12)     RESERVED # 
          ITEM FTTTSTATIS U(3,48,12);  # TEMPORARY STATUS VALUE # 
          END  # ARRAY FTTAB #
  
# 
*     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 
  
# 
*     RRBDFT - RHF REQUEST/REPLY BLOCK DURING FILE TRANSFER.
* 
*     RRBDFT IS THE RHF REQUEST/REPLY BLOCK THAT IS USED BY FIPXFR
*     MODULES WHEN THEY PERFORM ANY OF THE FUNCTIONS ASSOCIATED WITH
*     THE FIP MODULE. 
# 
  
      ARRAY RRBDFT  [0:0] S (3);
        BEGIN  # ARRAY RRBDFT # 
          ITEM RRB$WORD$0 I(0,00,60) = [0];  # WORD ZERO #
          ITEM RRB$WC     U(0,36,06) = [MAXWCRHFPL];  # WORD COUNT #
          ITEM RRB$RTNCTL B(0,46,01);  # RETURN CONTROL FLAG #
          ITEM RRB$FTLERR B(0,47,01);  # FATAL ERROR FLAG # 
          ITEM RRB$NOTDEF B(0,56,01);  # SUBSYSTEM NOT DEFINED FLAG # 
          ITEM RRB$BUSY   B(0,57,01);  # SUBSYSTEM BUSY FLAG #
          ITEM RRB$NOTUP  B(0,58,01);  # SUBSYSTEM NOT INITIATED FLG #
          ITEM RRB$DONE   B(0,59,01) = [TRUE];  # CALL COMPLETE FLAG #
          ITEM RRB$FNCNUM U(1,00,12);  # RHF FUNCTION NUMBER #
          ITEM RRB$ACN    U(1,12,12);  # APPLICATION CONNECTION NO. # 
          ITEM RRB$ALN    U(1,12,12);  # APPLICATION LIST NUMBER #
          ITEM RRB$MINACN U(1,12,12);  # MINIMUM VALUE FOR ACN #
          ITEM RRB$STIME  U(1,12,12);  # SUSPEND TIME # 
          ITEM RRB$MAXACN U(1,24,12);  # MAXIMUN VALUE FOR ACN #
          ITEM RRB$RTNFLG B(1,24,12);  # RETURN FROM NETWAIT FUNC FLG # 
          ITEM RRB$RTNCDE U(1,36,06);  # RETURN CODE #
          ITEM RRB$ATA    I(1,42,18);  # APPLICATION TABLE ADDRESS #
          ITEM RRB$ANAME  C(2,00,07);  # APPLICATION NAME # 
          ITEM RRB$HDRADR I(2,06,18);  # HEADER ADDRESS # 
          ITEM RRB$MAXBL  U(2,24,12);  # MAXIMUM BLOCK LENGTH # 
          ITEM RRB$NSUPAD I(2,42,18);  # NSUP ADDRESS # 
          ITEM RRB$TEXTAD I(2,42,18);  # TEXT AREA ADDRESS #
          ITEM RRB$RFETAD I(2,42,18);  # RFH FET ADDRESS #
        END 
  
# 
*     RHFREQREPB - RHF SUBSYSTEM REQUEST/REPLY PARAMETER BLOCK. 
* 
*     THIS BASED ARRAY IS USED ONLY BY THE NETXFR FUNCTION. 
# 
  
        BASED ARRAY RHFREQREPB [0:0] S (LENRHFPBLK);
          BEGIN  # ARRAY RHFREQREPB # 
          ITEM RHF$WORD$0 I(0,00,60);  # WORD ZERO #
          ITEM RHF$WC     U(0,36,06);  # WORD COUNT (LESS FIRST WORD) # 
          ITEM RHF$FNCNUM U(1,00,12);  # RHF FUNCTION NUMBER #
          ITEM RHF$ACN    U(1,12,12);  # APPLICATION CONNECTION NO. # 
          ITEM RHF$STIME  U(1,12,12);  # SUSPEND TIME # 
          ITEM RHF$MAXACN U(1,24,12);  # MAXIMUN VALUE FOR ACN #
          ITEM RHF$RTNFLG B(1,24,12);  # RETURN FROM NETWAIT FUNC FLG # 
          ITEM RHF$RTNCDE U(1,36,06);  # RETURN CODE #
          ITEM RHF$ATA    I(1,42,18);  # APPLICATION TABLE ADDRESS #
          ITEM RHF$CMTYPE U(2,12,12);  # CONVERT MODE TYPE #
          ITEM RHF$FETFC  U(2,00,12);  # RHF FET FUNCTION CODE #
          ITEM RHF$RFETAD I(2,42,18);  # RFH FET ADDRESS #
          END   # ARRAY RHFREQREPB #
  
# 
*     SSCXCALL - CALL RHF SUBSYSTEM DURING FILE TRANSFER ACTIVITY.
* 
*     SINCE MOST CALLS ISSUED TO SSC BY THE FIPXFR MODULES ARE ISSUED 
*     WITHOUT RECALL, PROCEDURES WHICH USE THIS ARRAY MUST FOLLOW THE 
*     THE CONVENTION OF RESETTING THE RECALL BIT TO FALSE IF THEY ISSUE 
*     ISSUE AN SSC CALL WITH RECALL.
# 
  
      ARRAY SSCXCALL [0:0] S(1);
        BEGIN 
        ITEM SSCXNAME   C(0,00,03) = ["SSC"]; 
        ITEM SSCXRECALL B(0,19,01) = [FALSE]; 
        ITEM SSCXCODE   U(0,30,12) = [RHFSSCCODE];
        ITEM SSCXPARAMA I(0,42,18); 
        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) = [FALSE]; 
        ITEM CIOFETADDR I(0,42,18); 
        END 
  
# 
*     TIMCALL - ARRAY USED TO CALL CP MONITOR FUNCTION TIM. 
# 
  
      ARRAY TIMCALL [0:0] S(2); 
        BEGIN 
        ITEM TIM$NAME   C(0,00,03) = ["TIM"]; 
      CONTROL IFEQ OS$NOS;
        ITEM TIM$RECALL B(0,19,01) = [TRUE];
        ITEM TIM$FUNC   U(0,24,12) = [5];  # GET REAL TIME #
        ITEM TIM$RVADR  I(0,42,18);        # REPLY WORD ADDR #
        ITEM TIM$CURTIM U(1,06,18);        # REAL TIME SECONDS #
      CONTROL ENDIF;
      CONTROL IFEQ OS$NOSBE;
        ITEM TIM$RECALL B(0,19,01) = [FALSE]; 
        ITEM TIM$FUNC   U(0,24,12) = [4];  # GET REAL TIME FUNCTION # 
        ITEM TIM$RVADR  I(0,42,18);  # RETURN VALUE ADDRESS # 
        ITEM TIM$CURTIM U(1,30,18);  # 18 BITS OF CURRENT REAL TIME # 
      CONTROL ENDIF;
        END 
  
# 
*     LST$ON$OFF - ARRAY USED TO OUTPUT LST$ONR OR LST$OFF$R MESSAGES.
# 
  
      ARRAY LST$ON$OFF [0:0] S(1);
        BEGIN 
        ITEM LST$WORD   U(0,00,60) = [0]; 
        ITEM LST$PFC    U(0,00,18) = [O"600000"]; 
        ITEM LST$ONOFF  B(0,15,01); 
        ITEM LST$ACN    U(0,24,12); 
        END 
  
  
# 
*     CM$SEL$EXT - ARRAY USED TO ISSUE CM/SEL/R AND CM/EXIT/R.
# 
  
      ARRAY CM$SEL$EXT [0:0] S(1);
        BEGIN 
        ITEM CSE$WORD   I(00,00,60);
        ITEM CSE$PFC    U(00,00,16); # SUPERVISORY FUNCTION CODE #
        ITEM CSE$ACN    U(00,24,12); # APPLICATION CONNECTION NUMBER #
        ITEM CSE$FC     U(00,48,12); # SELECT FUNCTION CODE # 
        END 
# 
*     HWOASMSG - HEADER WORD USED TO OUTPUT VARIOUS ASYNCHRONOUS
*                SUPERVISORY MESSAGES.
# 
  
      ARRAY HWOASMSG [0:0] S(1);
        BEGIN  # ARRAY HWOASMSG # 
        ITEM HWOA$WD    U(0,00,60) = [0]; 
        ITEM HWOA$ABT   U(0,00,06) = [SUPMSGBLK];  # BLOCK TYPE # 
        ITEM HWOA$ACN   U(0,06,12) = [0];  # CONNECTION NUMBER #
        ITEM HWOA$ACT   U(0,36,04) = [ACT60BIN];  # CHARACTER TYPE #
        ITEM HWOA$TLCU  U(0,48,12) = [1];  # TEXT LENGTH IN CHARACTERS #
        END 
  
# 
*     TAOASMSG - TEXT AREA FOR OUTPUTING AN ASYNCHRONOUS SUPERVISORY
*     MESSAGE.
# 
      ARRAY TAOASMSG [0:0] S(LENTEXAREA); 
        BEGIN 
        ITEM TAOA$WORD  I(0,00,60);  # USED FOR ENTIRE WORD # 
        ITEM TAOA$PFC   U(0,00,08);  # PRIMARY FUNCTION CODE #
        ITEM TAOA$EB    B(0,08,01);  # ERROR BIT #
        ITEM TAOA$RB    B(0,09,01);  # ABNORMAL RESPONSE BIT #
        ITEM TAOA$SFC   U(0,10,06);  # SECONDARY FUNCTION CODE #
        ITEM TAOA$ASMSG U(0,00,16);  # AYNCHRONOUS SUPERVISORY MSG. # 
        END 
  
# 
*     HWIASMSG - HEADER WORD USED TO INPUT VARIOUS ASYNCHRONOUS 
*                SUPERVISORY MESSAGES.
# 
  
      ARRAY HWIASMSG [0:0] S(1);
        BEGIN  # ARRAY HWIASMSG # 
        ITEM HWIA$WORD  U(0,00,60);  # HEADER WORD #
        ITEM HWIA$ABT   U(0,00,06);  # APPLICATION BLOCK TYPE # 
        ITEM HWIA$ACN   U(0,06,12);  # APPLICATION CONNECTION NUMBER #
        ITEM HWIA$ACT   U(0,36,04);  # APPLICATION CHARACTER TYPE # 
        ITEM HWIA$TLCU  U(0,48,12);  # TEXT LENGTH IN CHARACTER UNITS # 
        END 
  
# 
*     TAIASMSG - TEXT AREA FOR INPUTING AN ASYNCHRONOUS SUPERVISORY 
*     MESSAGE.
# 
      ARRAY TAIASMSG [0:0] S(LENTEXAREA); 
        BEGIN 
        ITEM TAIA$WORD  I(0,00,60);  # USED FOR ENTIRE WORD # 
        ITEM TAIA$PFC   U(0,00,08);  # PRIMARY FUNCTION CODE #
        ITEM TAIA$EB    B(0,08,01);  # ERROR BIT #
        ITEM TAIA$RB    B(0,09,01);  # ABNORMAL RESPONSE BIT #
        ITEM TAIA$SFC   U(0,10,06);  # SECONDARY FUNCTION CODE #
        ITEM TAIA$ASMSG U(0,00,16);  # DEFINES ASYNCHR. SUPER. MSG. # 
        ITEM TAIA$ACN   U(0,24,12);  # APPLICATION CONNECTION NUMBER #
        ITEM TAIA$ACN4  U(0,48,12);  # ACN FROM ERR/LGL # 
        END 
  
# 
*     HWI7MSG - HEADER WORD USED TO INPUT VARIOUS LEVEL 7 MESSAGES. 
# 
  
      ARRAY HWI7MSG [0:0] S(1); 
        BEGIN  # ARRAY HWI7MSG #
        ITEM HWI7$WORD   I(0,00,60);
        ITEM HWI7$ABT    U(0,00,06);
        ITEM HWI7$ACT    U(0,36,04);
        ITEM HWI7$TLCU   U(0,48,12);
        ITEM HWI7$ACN    U(0,06,12);
        END 
  
# 
*     TAIHW7MSG - ARRAY USED AS THE HEADER WORD WHEN INPUTING THE TEXT
*     THE TEXT AREA OF A LEVEL 7 COMMAND.  THIS IS USED ONLY BY ACSTORE,
*     APSTORE, ACFETCH, AND APFETCH ROUTINES.  THIS ARRAY MUST BE 
*     CONTIGUOUS WITH ARRAY TAI7MSG.
# 
  
      ARRAY TAIHW7MSG [0:0] S(1); 
        BEGIN 
        END 
  
# 
*     TAI7MSG - ARRAY USED TO RECEIVE THE TEXT AREA OF INCOMING LEVEL 
*     LEVEL 7 COMMANDS.  THIS ARRAY MUST BE CONTIGUOUS WITH ARRAY 
*     TAIHW7MSG.
# 
  
      ARRAY TAI7MSG [0:0] S(LENTEXAREA);
        BEGIN 
        END 
  
# 
*     HWO7MSG - HEADER WORD USED TO OUTPUT VARIOUS LEVEL 7 MESSAGES.
* 
*     CURRENTLY ALL LEVEL 7 MESSAGES OUTPUT BY FIP ARE OF EQUAL LENGTH. 
*     IF THIS SHOULD CHANGE, THEN ITEM HWO7$TLCU DEFINED BELOW MUST BE
*     SET DYNAMICALLY IN ALL ROUTINES WHICH REFERENCE THIS ARRAY. 
# 
  
      ARRAY HWO7MSG [0:0] S(1); 
        BEGIN  # ARRAY HWO7MSG #
        ITEM HWO7$WD     U(0,00,60) = [0];
        ITEM HWO7$ABT    U(0,00,06) = [APPQMSG];
        ITEM HWO7$ACT    U(0,36,04) = [ACT8B7PT5W]; 
        ITEM HWO7$TLCU   U(0,48,12) = [LENTAL7MOF]; 
        ITEM HWO7$ACN    U(0,06,12);
        END 
  
# 
*     TAOHW7MSG - ARRAY USED AS THE HEADER WORD WHEN OUTPUTING THE TEXT 
*     THE TEXT AREA OF A LEVEL 7 COMMAND.  THIS IS USED ONLY BY ACSTORE,
*     APSTORE, ACFETCH, AND APFETCH ROUTINES.  THIS ARRAY MUST BE 
*     CONTIGUOUS WITH ARRAY TAO7MSG.
# 
  
      ARRAY TAOHW7MSG [0:0] S(1); 
        BEGIN 
        END 
  
# 
*     TAO7MSG - ARRAY USED TO RECEIVE THE TEXT AREA OF OUTGOING LEVEL 
*     LEVEL 7 COMMANDS.  THIS ARRAY MUST BE CONTIGUOUS WITH ARRAY 
*     TAOHW7MSG.
# 
  
      ARRAY TAO7MSG [0:0] S(LENTEXAREA);
        BEGIN 
        END 
  
# 
*     ARRAY XFRINDEX DEFINES INDEXES INTO THE ARRAYS WHICH ARE
*     USED TO PRESET ITEMS USED DURING FILE TRANSFER. 
*     THE ARRAY ALSO CONTAINS THE MINIMUM LOCAL AND RHF FET BUFFER
*     SIZES AND RATIOS. 
# 
      ARRAY XFRINDEX [0:4] S(1);
        BEGIN 
      ITEM XFRINDX1   U(00,00,03) =  # INDEX FOR CONTROL PRESETS #
          [ 0,                     # UH # 
            1,                     # UU # 
            1,                     # US = US #
            2,                     # C6 = CN #
            2];                    # C8 = CN #
      ITEM XFRINDX2   U(00,03,03) =  # INDEX FOR DATA CONVERSION #
          [ 0,                     # UH = WORD #
            0,                     # UU = WORD #
            0,                     # US = WORD #
            1,                     # C6 = C6 #
            2];                    # C8 = C8 #
        ITEM XFRMINBUFL U(00,06,12) =   # LOCAL FET BUFFER BLOCK #
          [5(MINBUFL)]; 
        ITEM XFRMINBUFR U(00,18,12) =   # RHF FET BUFFER BLOCK #
          [MINBUFR0,                 # UH # 
           MINBUFR1,                 # UU # 
           MINBUFR2,                 # US # 
           MINBUFR3,                 # C6 # 
           MINBUFR4];                # C8 # 
        ITEM XFRRATIO  U(00,30,12) =   # LOCAL/RHF BUFF SIZE RATIO #
          [BUFRATIO0,              # UH # 
           BUFRATIO1,              # UU # 
           BUFRATIO2,              # US # 
           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 
        CONTROL IFEQ OS$NOS;
        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];
        CONTROL ENDIF;
        CONTROL IFEQ OS$NOSBE;
        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$READT,CIO$READ,CIO$READ, 
           CIO$READC,CIO$READT,CIO$READC,CIO$READC, 
           CIO$READC,CIO$READT,CIO$READC,CIO$READC];
        ITEM XFROTFUNC  U(00,09,08) =  # OUTPUT FUNCTION #
          [CIO$WRITE,CIO$WRITE,CIO$WRITEC,CIO$WRITET, 
           CIO$WRITEC,CIO$WRITEC,CIO$WRITEC,CIO$WRITET, 
           CIO$WRITEC,CIO$WRITEC,CIO$WRITEC,CIO$WRITET];
        ITEM XFRINCWS   B(00,17,01) =  # INPUT CONTROL WORDS #
          [TRUE,FALSE,TRUE,TRUE,
           TRUE,FALSE,TRUE,TRUE,
           TRUE,FALSE,TRUE,TRUE]; 
        ITEM XFROTCWS   B(00,18,01) =  # OUTPUT CONTROL WORDS # 
          [TRUE,TRUE,TRUE,FALSE,
           TRUE,TRUE,TRUE,FALSE,
           TRUE,TRUE,TRUE,FALSE]; 
        ITEM XFRUSCWS   B(00,19,01) =  # US CONTROL WORD MODE # 
          [FALSE,FALSE,FALSE,FALSE, 
           TRUE,FALSE,TRUE,FALSE, 
           FALSE,FALSE,FALSE,FALSE];
        ITEM XFRINSPACE U(00,20,12) =  # MINIMUM INPUT SPACE #
          [65,512,384,384,
           65,512,455,455,
           65,512,845,845]; 
        ITEM XFROTDATA  U(00,32,12) =  # MINIMUM OUTPUT DATA #
          [384,384,65,512,
           390,390,65,512,
           780,780,65,512]; 
        ITEM XFRPUTRNDA B(00,58,01) =  # SEND RANDOM ATTRIBUTE #
          [TRUE,FALSE,FALSE,FALSE,
           FALSE,FALSE,FALSE,FALSE, 
           FALSE,FALSE,FALSE,FALSE];
        ITEM XFRGETRNDA B(00,59,01) =  # RECEIVE RANDOM ATTRIBUTE # 
          [FALSE,FALSE,TRUE,FALSE,
           FALSE,FALSE,FALSE,FALSE, 
           FALSE,FALSE,FALSE,FALSE];
        CONTROL ENDIF;
        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    # COMACBX COMMON AREA #
  
                                               CONTROL LIST;
