COMTMOV 
COMMON
  
#     COMTMOV - COMMON DEFINITIONS FOR *SSMOVE* ROUTINES.             # 
                                               CONTROL NOLIST;
                                               CONTROL IFEQ LISTCON,1;
                                               CONTROL LIST;
                                               CONTROL FI;
      BEGIN  # COMTMOV #
  
# 
***   COMTMOV - COMMON DEFINITIONS FOR *SSMOVE* ROUTINES. 
* 
*     COMTMOV CONTAINS THE ITEMS, ARRAYS AND THE
*     COMMON AREA USED BY *SSMOVE* ROUTINES.
* 
# 
  
  
# 
*     FILE NAMES USED BY *SSMOVE*.
# 
  
      DEF SCR1       #"SCR1"#;       # FIRST SCRATCH FILE # 
      DEF SCR2       #"SCR2"#;       # SECOND SCRATCH FILE #
      DEF SCR3       #"SCR3"#;       # THIRD SCRATCH FILE # 
      DEF SCR4       #"SCR4"#;       # FOURTH SCRATCH FILE #
      DEF MVULFN     #"MVULFN"#;     # UTILITY LOCAL FILE # 
      DEF MVLPROB    #"MVLPROB"#;    # LOCAL PROBLEM FILE # 
      DEF MVEPROB    #"MVEPROC"#;    # EXEC PROBLEM FILE #
      DEF CATS       #"CATS"#;       # LOCAL FILE CREATED BY *RDPFC* #
  
# 
*     INDICES TO THE *FET* BUFFERS. 
# 
  
      DEF FILEMI     #0#;            # MAIN INPUT FILE #
      DEF FILEMO     #1#;            # MAIN OUTPUT FILE # 
      DEF FILEAUX    #2#;            # AUXILLIARY FILE #
  
# 
*     INDEX VALUES FOR FILE AND DECISION TYPES AND SIZES. 
# 
  
      DEF IXDA       #1#;            # DIRECT ACCESS FILE # 
      DEF IXIA       #2#;            # INDIRECT ACCESS FILE # 
      DEF IXDS       #1#;            # DESTAGE DECISION # 
      DEF IXRL       #2#;            # RELEASE DECISION # 
      DEF IXSM       #1#;            # SMALL FILES #
      DEF IXLG       #2#;            # LARGE FILES #
  
  
      DEF MXSPF      #100#;          # MAXIMUM NUMBER OF SPECIAL FILES
                                     #
      DEF MAXDEV     #63#;           # MAXIMUM NUMBER OF DEVICES #
  
      DEF MVBUFL     #O"1001"#;      # LENGTH OF *CIO* BUFFER # 
      DEF MVWBUFL    #9#;            # LENGTH OF WORKING BUFFER # 
      DEF SECTORL    #65#;           # SECTOR LENGTH+CONTROL WORD # 
      DEF VCSLO      #"FP"#;         # LIST OPTIONS # 
      DEF VCSPX      #"IDABSF"#;     # PROCESSING OPTIONS # 
  
      DEF LBNS       #-1#;           # *LB* NOT SPECIFIED # 
  
      STATUS RESIDENCE               # FILE RESIDENCE CODE #
        RES$NO,                      # NOT USED # 
        RES$RMS,                     # DISK RESIDENCE # 
        RES$M86,                     # M860 RESIDENCE # 
        RES$RMS$MF,                  # RMS AND M86 RESIDENCE #
        RES$LST;                     # END OF STATUS LIST # 
  
# 
*     ARRAY TO CONVERT *UI* TO OCTAL DISPLAY CODE.
# 
  
      ARRAY DIS$UIMV [0:0] P(2);
        BEGIN 
        ITEM DISUI$UP   C(00,00,10);  # UPPER 10 CHARACTERS # 
        ITEM DISUI$LW   C(01,00,10);  # LOWER 10 CHARACTERS # 
        END 
  
      COMMON TMOVCOM; 
  
        BEGIN  # TMOVCOM #
                                     # $$ # 
        ITEM $$TMOV$$   C(20) = "****** COMTMOV *****"; 
                                     # $$ # 
  
        ITEM ACTPFSPACE I;           # INITIAL PF SPACE ON DISK # 
        ITEM BUFP       I;           # BUFFER POINTER # 
        ITEM COMNAME    C(7);        # ZERO FILLED COMMUNICATION FILE 
                                       NAME # 
        ITEM CURDT$MV   U;           # CURRENT DATE AND TIME #
        ITEM CURAGE     U;           # RELATIVE AGE OF TODAY #
        ITEM CURTIME    I;           # CURRENT TIME *HHMMSS* #
        ITEM DNX        I;           # DEVICE INDEX # 
        ITEM FETP       I;           # FET POINTER #
        ITEM FTYPE      I;           # FILE TYPE #
        ITEM IDXFN      I;           # SPECIAL FILE NAME INDEX #
        ITEM LISTFETP   I;           # 0 OR (OUT$FETP) #
        ITEM NFILES     I;           # NUMBER OF FILES LISTED ON
                                       COMMUNICATION FILE # 
        ITEM PRUTRK     I;           # PRUS PER TRACK # 
        ITEM PX$FETP    I;           # 0 OR (OUT$FETP) #
        ITEM RELTOT     I;           # PF SPACE RELEASED FROM DISK #
        ITEM REQID$MV   I;           # REQUESTOR ID # 
        ITEM SFX        I;           # SUB-FAMILY INDEX # 
        ITEM SSID$MV    I;           # SUBSYSTEM ID # 
        ITEM TRUPRU     I;           # ACTUAL PRU RELEASED FROM DISK #
  
# 
*     TWO WORD EXTENSION OF THE COMMUNICATION FILE
*     ENTRY TO HOLD SOME EXTRA INFORMATION FOR EACH FILE. 
# 
  
        BASED 
        ARRAY EXT$TDAM [0:0] S(3);
          BEGIN 
          ITEM EXT$RELV   I(00,00,60);  # RELEASE VALUE # 
          ITEM EXT$PAZ    U(01,00,07);  # CLEARS PROCESSING FLAGS # 
          ITEM EXT$PA     U(01,00,05);  # ACTION FLAGS #
          ITEM EXT$PA3    U(01,00,04);  # PASS 3 ACTION FLAGS # 
          ITEM EXT$CLR    B(01,00,01);  # CLEAR *ASA* ACTION #
          ITEM EXT$STG    B(01,01,01);  # STAGE FILE ACTION # 
          ITEM EXT$DES    B(01,02,01);  # DESTAGE FILE ACTION # 
          ITEM EXT$REL    B(01,03,01);  # RELEASE FILE ACTION # 
          ITEM EXT$CREL   B(01,04,01);  # CANDIDATE FOR RELEASE # 
          ITEM EXT$IXLN   U(01,12,06);  # LONG/SHORT INDEX #
          ITEM EXT$FTYPE  U(01,18,06);  # DIRECT/INDIRECT INDEX # 
          ITEM EXT$DNX    U(01,24,06);  # FILE DEVICE NUMBER #
          ITEM EXT$CDES   B(01,30,01);  # DESTAGE, IF RELEASED #
          ITEM EXT$AFOBS  B(01,56,01);  # MSS IMAGE STATUS #
          ITEM EXT$RES    U(01,57,03);  # FILE RESIDENCE CODE # 
          ITEM EXT$DESV   I(02,00,60);  # DESTAGE VALUE # 
          END 
  
# 
*     FETS AND BUFFERS. 
# 
  
        ARRAY MV$BUF [0:2] S(MVBUFL);;  # *CIO* BUFFERS # 
  
        ARRAY MV$WBUF [0:0] S(MVWBUFL);;  # WORKING BUFFER #
  
        ARRAY MV$FET [0:2] S(SFETL);; 
  
        ARRAY MVMSG [0:0] P(4);      # *SSMOVE* FATAL ERROR MESSAGE # 
          BEGIN 
          ITEM MVMSG$LN   C(00,00,38);  # MESSAGE LINE #
          ITEM MVMSG$ABN  C(00,00,18) = [" SSMOVE ABNORMAL, "]; 
          ITEM MVMSG$PROC C(01,48,08);  # PROC NAME # 
          ITEM MVMSG$BLNK C(02,36,12) = ["            "]; 
          ITEM MVMSG$VAL  C(02,06,10);  # NUMERIC VALUE # 
          ITEM MVMSG$TERM U(03,48,12) = [0];  # ZERO BYTE TERMINATOR #
          END 
  
# 
*     ARRAY TO HOLD THE CATALOG SECTOR ALONG
*     WITH THE CONTROL WORD.
# 
  
        ARRAY PFC$SEC [0:0] S(SECTORL);;
  
# 
*     THE FOLLOWING *ARRAY* DECLARATIONS ASSOCIATE
*     PARAMETERS WHICH MAY APPEAR IN CHARACTER STRINGS WITH 
*     THE CORRESPONDING BOOLEAN VARIABLES.  IF THE VALID
*     CHARACTERS ARE CHANGED, THE ITEMS IN THE ARRAY
*     SHOULD BE CHANGED ACCORDINGLY.
# 
  
  
        ARRAY LOOPT [0:0] S(1);      # LIST OPTIONS - SEE *VCSLO* # 
          BEGIN 
          ITEM LO$F       B(00,00,01);  # FULL LIST # 
          ITEM LO$P       B(00,01,01);  # PARTIAL LISTING # 
          END 
  
  
  
        ARRAY PXOPT [0:0] S(1);      # PROCESSING OPTIONS - SEE *VCSPX* 
                                     #
          BEGIN 
          ITEM PX$I       B(00,00,01);  # NO INDIRECT FILES # 
          ITEM PX$D       B(00,01,01);  # NO DIRECT FILES # 
          ITEM PX$A       B(00,02,01);  # NO ARCHIVING (RELEASING) #
          ITEM PX$B       B(00,03,01);  # NO BACKUP (DESTAGING) # 
          ITEM PX$S       B(00,04,01);  # NO STAGING #
          ITEM PX$F       B(00,05,01);  # NO FREE FILE FROM CARTRIDGE # 
          END 
  
  
# 
*     ARRAY TO HOLD THE FET FOR THE REPORT FILE.
# 
  
        ARRAY OUT$FET [0:0] S(SFETL);;
  
  
        ARRAY SFILES [0:MXSPF] S(2);  # LIST OF SPECIAL FILES # 
          BEGIN 
          ITEM SF$W1      U(00,00,60);  # WORD 1, USED FOR SORTING #
          ITEM SF$UI      U(00,00,18);  # USER INDEX #
          ITEM SF$FNC     C(00,18,07);  # FILE NAME (CHARACTER) # 
          ITEM SF$FNI     I(00,18,42);  # FILE NAME (INTEGER) # 
          ITEM SF$W2      U(01,00,60);  # WORD 2, USED FOR EASY ACCESS
                                        # 
          ITEM SF$PO      C(01,00,01);  # PROCESSING OPTION # 
          ITEM SF$MASK    U(01,18,42);  # MASK FOR FILE NAME #
          END 
  
  
# 
*     THIS ARRAY RECORDS INFORMATION ABOUT THE DEVICE 
*     CHARACTERISTICS OBTAINED FROM THE *MST* IN *CMR*. 
*     ALL DEVICE INFORMATION IS STORED UNDER *IXIA* EXCEPT
*     *DEV$SECTR* WHICH IS STORED UNDER *IXDA*. 
*     IT ALSO IS USED TO MAINTAIN STATISTICS ON THE TOTAL 
*     FILES AND DISK SPACE USED PLUS THE AMOUNT OF SPACE NEEDED,
*     PLUS THE NUMBER OF FILES AND TOTAL PRU WHICH ARE TO BE RELEASED.
# 
  
  
        ARRAY DEVSTAT [IXDA:IXIA,1:MAXDEV] S(4);
          BEGIN 
          ITEM DEV$SECTR  U(00,00,12);  # PRUS PER TRACK #
          ITEM DEV$EO     U(00,00,06);  # EQUIPMENT ORDINAL # 
          ITEM DEV$TPRU   U(00,06,24);  # TOTAL PRU ON DEVICE # 
          ITEM DEV$TYPE   C(00,30,02);  # DEVICE TYPE # 
          ITEM DEV$NUM    U(00,42,03);  # NUMBER OF SPINDLES #
          ITEM DEV$MAST   B(00,45,01);  # TRUE = MASTER DEVICE #
          ITEM DEV$SEC    B(00,46,01);  # TRUE = SECONDARY DEVICE # 
          ITEM DEV$EXIST  B(00,47,01);  # TRUE = DEVICE PRESENT # 
          ITEM DEV$DN     U(00,54,06);  # DEVICE NUMBER # 
  
          ITEM DEV$NF     U(01,00,30);  # NUMBER OF FILES # 
          ITEM DEV$PRU    U(01,30,30);  # TOTAL PRU USED #
          ITEM DEV$RELF   U(02,00,30);  # FILES TO BE RELEASED #
          ITEM DEV$RELP   U(02,30,30);  # PRU TO BE RELEASED #
          ITEM DEV$NEED   I(03,00,30);  # TOTAL PRU NEEDED #
          ITEM DEV$TRPRU  U(03,30,30);  # ACTUAL PRU ON DISK #
          END 
  
  
# 
*     THIS ARRAY MAINTAINS DATA ABOUT THE FILES FOR EACH
*     SUBFAMILY WHICH ARE ON THE MSS, TO BE STAGED OR DESTAGED. 
* 
*     INFORMATION ON FILES TO BE DESTAGED IS ORGANIZED BY 
*     FILE TYPE AND SUBFAMILY AND IS USED IN GENERATING 
*     THE SUBFAMILY SECTION OF THE *SSMOVE* REPORT. 
* 
*     INFORMATION ON FILES ON MSS (ORGANIZED BY FILE TYPE)
*     IS INCLUDED IN THE *SSMOVE* REPORT.  IT IDENTIFIES THE
*     NUMBER OF FILES ON MSS AND THEIR TOTAL LENGTH IN PRU, PLUS
*     THE NUMBER AND LENGTH OF THOSE FILES WHICH ARE TO BE
*     STAGED TO DISK AS A RESULT OF THIS *SSMOVE* RUN.
# 
  
  
        ARRAY SF$STAT [IXDA:IXIA,0:MAXSF] S(5); 
          BEGIN 
          ITEM SFDS$NF    U(00,00,30);  # NUM FILES TO DESTAGE #
          ITEM SFDS$PRU   U(00,30,30);  # PRU FOR FILES TO DESTAGE #
          ITEM SFRL$NF    U(01,00,30);  # NUM FILES ONLY ON MSS # 
          ITEM SFRL$PRU   U(01,30,30);  # PRU FOR FILES ONLY ON MSS # 
          ITEM SFNU$NF    U(02,00,30);  # NUM NEW FILES ON MSS #
          ITEM SFNU$PRU   U(02,30,30);  # NUM PRU FOR NEW FILES # 
          ITEM SFSG$NF    U(03,00,30);  # NUM FILES TO BE STAGED #
          ITEM SFSG$PRU   U(03,30,30);  # PRU FOR FILES TO BE STAGED #
          ITEM SFDM$NF    U(04,00,30);  # NUM FILES ON MSS #
          ITEM SFDM$PRU   U(04,30,30);  # PRU FOR FILES ON MSS #
          END 
  
  
# 
*     THIS ARRAY IS USED TO MAP THE DEVICE NUMBER AS FOUND
*     IN A FILE-S *PFC* ENTRY TO THE DEVICE INDEX (*DNX*) 
*     WHICH IS USED TO REFERENCE ENTRIES IN THE *DEVSTAT* ARRAY.
# 
  
        ARRAY DNTODNX [0:MAXDEV] S(1);
          BEGIN 
          ITEM DN$TO$DNX  U(00,00,60);  # INDEX VALUE, IF NON-ZERO #
          END 
  
        ARRAY CHAR$MV[0:0] S(1);
          BEGIN 
          ITEM CHR$10     C(00,00,10);  # ALL 10 CHARACTERS # 
          ITEM CHR$R8     C(00,12,08);  # RIGHTMOST 8 CHARACTERS #
          ITEM CHR$R3     C(00,42,03);  # RIGHTMOST 3 CHARACTERS #
          ITEM CHR$R2     C(00,48,02);  # RIGHTMOST 2 CHARACTERS #
          ITEM CHR$R1     C(00,54,01);  # RIGHTMOST 1 CHARACTER # 
          END 
  
        END  # TMOVCOM #
  
      END  # COMTMOV #
  
                                               CONTROL LIST;
