*DECK     COPYL                                                          DECK2
          IDENT  COPYL,ORGP 
          ABS 
          IPARAMS 
          LIST   F
          SST 
          SYSCOM B1 
  
          IFC    NE,*"OS.NAME"*SCOPE *
          ENTRY  COPYL
          ENTRY  COPYLM 
          ENTRY  RFL= 
 ORGP     EQU    101B+3 
          ELSE
          ENTRY  COPYL
          ENTRY  COPYLM 
 ORGP     EQU    101B+2 
          ENDIF 
  
          ORG    ORGP 
 COPYL    TITLE  COPYL - MERGE RECORDS FROM MASTER AND CORRECTION FILES.
          COMMENT            MERGE RECORDS FROM MASTER AND CORR. FILES. 
 COPYL    SPACE  4,8
***       COPYL - MERGE RECORDS FROM MASTER AND CORRECTION FILES.        DECK2
* 
*         S. I. JASIK        70/07/01.
*         S.J. PAULSON       73/09/15.      7RM I/O FOR SCOPE 2.
 CPYRGT   SPACE  4,8
***       CONTROL DATA  PROPRIETARY PRODUCT.
*         COPYRIGHT CONTROL DATA CORP. 1970, 1971, 1972, 1973, 1974,
*                                      1975,1976,1977,1978,1979,1980, 
*                                      1981, 1982.
 COPYL    TITLE  GENERAL DESCRIPTION. 
***       COPYL - MERGE RECORDS FROM MASTER AND CORRECTION FILES. 
*                                                                        DECK2
* 
*         COPYL REPLACES RECORDS ON AN OLD MASTER FILE WITH THOSE ON A   DECK2
*         CORRECTION FILE THAT MATCH IN RECORD NAME AND TYPE AND         DECK2
*         CREATES A NEW MASTER FILE.                                     DECK2
 COPYL    SPACE  4,8
**        COPYL GENERAL DESCRIPTION.                                     UTLA039
*                                                                        UTLA039
*                                                                        UTLA039
*            1)  INITIALIZATION -                                        UTLA039
*                      COPYL IS ENTERED IN ITS MAIN ROUTINE, *CPL*,      UTLA039
*                      WHICH DIRECTS THE CONTROL THROUGHOUT PROCESSING.  UTLA039
*                      *PRS* IS CALLED TO CRACK THE CONTROL CARD.  *CCF* UTLA039
*                      MAKES A PASS THROUGH THE CORRECTION FILE          UTLA039
*                      AND BUILDS A TABLE OF RECORD NAMES, TYPES AND     UTLA039
*                      ADDRESSES.                                        UTLA039
*                                                                        UTLA039
*            2)  THE MAIN LOOP -                                         UTLA039
*                      EACH RECORD OF THE MASTERFILE IS READ AND IT IS   UTLA039
*                      DETERMINED IF IT IS TO BE REPLACED.  A NEW MASTER UTLA039
*                      FILE IS BUILT FROM THE UNREPLACED OLD MASTER      UTLA039
*                      FILE RECORDS AND THE CORRECTION FILE.             UTLA039
*                                                                        UTLA039
*            3)  COMPLETION -                                            UTLA039
*                      *CPL* ISSUES MESSAGE TO DAYFILE, *COPYL*          UTLA039
*                      COMPLETE.  IT THEN CLOSES THE NEW MASTER FILE,    UTLA039
*                      THE OLD MASTER FILE, AND THE CORRECTION FILE.     UTLA039
 COPYL    SPACE  4,8                                                     UTLA039
***       CONTROL CARD CALL.
*                                                                        DECK2
* 
*         COPYL(OLD,LGO,NEW,LAST,FLAG)      FOR SINGLE REPLACEMENT. 
*         COPYLM(OLD,LGO,NEW,LAST,FLAG)     FOR MULTIPLE REPLACEMENT. 
* 
*         OLD = OLD MASTER FILE.
*         LGO = CORRECTION FILE.
*         NEW = NEW MASTER FILE.
*         LAST = LAST RECORD ON OLD MASTER FILE TO BE PROCESSED.
*         FLAG = APPEND, REWIND, AND/OR TYPE CHECK OPTIONS. 
*         IF FLAG = "A", THEN COPYL WILL APPEND ALL RECORDS ON THE       DECK2
*         CORRECTION FILE THAT DO NOT APPEAR ON THE OLD MASTER FILE TO   DECK2
*         THE END OF THE NEW MASTER FILE.                                DECK2
*         IF FLAG = "R", THEN THE OLD AND NEW MASTER FILES WILL BE       DECK2
*         REWOUND BEFORE PROCESSING.                                     DECK2
*         IF FLAG = "T", THEN NO CHECK ON RECORD TYPE WILL BE DONE.      DECK2
*         IF FLAG = *E*, THAN PROCESSING ON THE MASTER FILE CONTINUES 
*         UNTIL AN EOI IS REACHED.
*         ANY COMBINATION OF THESE OPTIONS MAY BE SELECTED.              DECK2
 COPYL    SPACE  4,8
***       RECORD TYPES.                                                  UTLA039
*                                                                        UTLA039
*                                                                        UTLA039
*                TEXT        TEXT RECORD.                                UTLA039
*                6PP         6000-SERIES PERIPHERAL PROCESSOR OVERLAY.   UTLA039
*                OVCAP       OVERLAY CAPSULE
*                REL         RELOCATABLE CENTRAL PROGRAM.                UTLA039
*                OVL         SINGLE ENTRY POINT OVERLAY.                 UTLA039
*                ULIB        NOS USER LIBRARY.                           UTLA039
*                            NOTE -- NOS/BE USER LIBRARIES ARE NOT       UTLA039
*                                  RECOGNIZED.                           UTLA039
*                OPL         MODIFY PROGRAM LIBRARY DECK.                UTLA039
*                OPLC        MODIFY PROGRAM LIBRARY COMMON DECK.         UTLA039
*                OPLD        MODIFY PROGRAM LIBRARY DIRECTORY.           UTLA039
*                ABS         MULTIPLE ENTRY POINT OVERLAY.               UTLA039
*                7PP         7000-SERIES PERIPHERAL PROCESSOR OVERLAY.   UTLA039
*                UPL*        UPDATE PROGRAM LIBRARY (* IS CONTROL CHAR). UTLA039
*                CAP         CAPSULE
*                UPLR        RANDOM UPDATE PROGRAM LIBRARY
*                UPLRC       RANDOM UPDATE PROGRAM LIBRARY COMMON DECK
*                UCF         UPDATE COMPRESSED COMPILE FILE.             UTLA039
*                ACF         MODIFY COMPRESSED COMPILE FILE.             UTLA039
*                DATA        ARBITRARY DATA.                             UTLA039
*                8PP         CYBER 180 PERIPHERAL PROCESSOR OVERLAY.
*                                                                        UTLA039
*                THE FOLLOWING ARE ONLY ON A NOS/BE DEADSTART TAPE.      UTLA039
*                                                                        UTLA039
*                LIBNT       NOS/BE LIBRARY NAME TABLE RECORD.           UTLA039
*                SDR         SPECIAL DEADSTART RECORD.                   UTLA039
*                PPNT        NOS/BE PP PROGRAM NAME TABLE.               UTLA039
 COPYL    SPACE  4,8                                                     UTLA039
***       DAYFILE MESSAGES. 
* 
* 
*         *COPYL DID NOT FIND - NAME* - THE RECORD WITH "NAME" THAT      DECK2
*                APPEARED ON THE CORRECTION FILE WAS NOT FOUND ON        DECK2
*                THE OLD MASTER FILE.                                    DECK2
*         * UPDATED - NAME* - COPYL REPLACED THE RECORD *NAME* ON THE    DECK2
*                OLD MASTER WITH THE CORRESPONDING RECORD FROM THE       DECK2
*                CORRECTION FILE.                                        DECK2
*         * APPENDED NAME* - COPYL APPENDED THE RECORD *NAME* TO THE END DECK2
*                OF THE NEW MASTER FILE.                                 DECK2
*         *COPYL COMPLETE.* - ALL RECORDS ON THE OLD MASTER FILE HAVE    DECK2
*                BEEN PROCESSED.                                         DECK2
*         *OLD MASTER FILE EMPTY OR MISPOSITIONED* - AN INFORMATIVE      DECK2
*                DIAGNOSTIC.  THE CONTENTS OF THE CORRECTION FILE WILL   DECK2
*                THEN BE LISTED.                                         DECK2
*         *ERROR IN 5TH COPYL PARAMETER* - ONLY A, R, T, E ARE ALLOWED. 
*         * FILE NAME CONFLICT. 
*         * FILE NAME TOO LONG. 
 COPYL    TITLE  MACROS AND SYMBOLS.
*         SELECT INPUT/OUTPUT SYSTEM.                                    UTLA039
*                                                                        DECK2
*         POSSIBLE VALUES ARE -                                          DECK2
*                                                                        DECK2
*                = 0         USE CIO                                     DECK2
*                = 7         USE 7RM                                     DECK2
 #MD      IF     MIC,OS.NAME
 #MD      IF     MIC,OS.VER 
 #MD      IFC    EQ,*"OS.NAME"*SCOPE *
 #MD      IFC    EQ,*"OS.VER"*2.1 * 
 CP#RM    EQU    7
 #MD      ELSE
 CP#RM    EQU    0
 #MD      ENDIF 
 COPYL    SPACE  4,8
*         UTILITY ITEMS.                                                 UTLA039
  
  
 BUFL     EQU    20001B      LARGE BUFFER LENGTH
 BUFS     EQU    1001B       SMALL BUFFER LENGTH
 PRU      EQU    400B 
 CHAR     EQU    6           NUMBER OF BITS PER CHARACTER 
  
 COPYL    SPACE  4,8
*CALL COMA7IO                                                            DECK2
          SPACE  4                                                       DECK2
***       BUF - DECLARE BUFFER SPACE, BUT DO NOT ALLOCATE IT. 
*         USED TO DECLARE BUFFERS IN BLANK COMMON IN ABSOLUTE ASSEMBLIES DECK2
*         TO KEEP COMPASS FROM GENERATING A LARGE BINARY DECK.
*                                                                        DECK2
*                F = FWA OF BUFFER                                       DECK2
*                L = LENGTH                                              DECK2
*                H, IF PRESENT THEN F=H, ELSE F=*                        DECK2
          MACRO  BUF,F,L,H                                               DECK2
 .BUF     SET    H .BUF                                                  DECK2
          IFC    NE,//F/,1                                               DECK2
 F        EQU    .BUF                                                    DECK2
 .BUF     SET    .BUF+L                                                  DECK2
 BUF      ENDM                                                           DECK2
 COPYL    SPACE  4,8
*         MICROS FOR DEFAULT FILE NAMES.
                                                                         DECK2
 OLD      MICRO  1,,/OLD/                                                DECK2
 LGO      MICRO  1,,/LGO/                                                DECK2
 NEW      MICRO  1,,/NEW/                                                DECK2
 ZZZZZ    MICRO  1,,/ZZZZZ/                                              UTL0055
 COPYL    SPACE  4,8
*         FILES-SET UP FET OR PSEUDO-FET AND FIT FOR FILES.              UTLA039
 COPYL    SPACE  4,8
*         OLD MASTER FILE.
                                                                         DECK2
 O        FET    OLD,OBUF,BUFL,3,0                                       DECK2
          IFEQ   CP#RM,0,1
 O.ODE    BSSZ   16          OPTICAL DISK FET EXTENSION 
          IFEQ   CP#RM,7,1                                               DECK2
 FI.OLD   FILE   LFN="OLD",FO=SQ,PD=INPUT,BT=,RT=W,OF=N,CF=N
  
  
*         NEW MASTER FILE.
                                                                         DECK2
 N        FET    NEW,NBUF,BUFL,3,0                                       DECK2
          IFEQ   CP#RM,0,1
 N.ODE    BSSZ   16          OPTICAL DISK FET EXTENSION 
          IFEQ   CP#RM,7,1                                               DECK2
 FI.NEW   FILE   LFN="NEW",FO=SQ,PD=OUTPUT,BT=,RT=W,OF=N,CF=N 
  
  
*         CORRECTION FILE.
                                                                         DECK2
 C        FET    LGO,CBUF,BUFS,3,1
          IFEQ   CP#RM,7,1                                               DECK2
 FI.LGO   FILE   LFN="LGO",FO=SQ,PD=INPUT,BT=,RT=W,OF=R 
                                                                         UTL0055
*         SCRATCH FILE.                                                  UTL0055
                                                                         UTL0055
 Z        FET    ZZZZZ,OBUF,BUFS,3,1
          IFEQ   CP#RM,7,1                                               UTL0055
 FI.ZZZZZ FILE   LFN="ZZZZZ",FO=SQ,PD=I-O,BT=,RT=W,OF=N                  UTL0055
 COPYL    SPACE  4,8
          USE    //                                                      DECK2
 BUF      BSS    PRU         BUFFER FOR COPYING                          DECK2
 OBUF     BUF    BUFL,*                                                  DECK2
 NBUF     BUF    BUFL                                                    DECK2
 CBUF     BUF    BUFS 
 F.TCDN   BUF    0           TABLE OF CORRECTION DECK NAMES              DECK2
          USE    0                                                       DECK2
                                                                         DECK2
*         FLAGS.                                                         UTLA039
                                                                         DECK2
 EF       CON    0           EMPTY FILE FLAG                             DECK2
 L.TCDN   CON    F.TCDN      LWA+1 OF TCDN                               DECK2
 FL       CON    0           FIELD LENGTH                                DECK2
 RF       CON    0           CORRECTION FILE RANDOM FLAG                 DECK2
 FP       CON    1           FILE POSITION ( NON RANDOM CASE )           DECK2
 FS       CON    0           O FILE STATUS                               DECK2
 NF       CON    -1          NUMBER OF FILES TO UPDATE                   DECK2
 LR       CON    0           LAST RECORD FLAG                            DECK2
 ST       CON    0           STOP FLAG                                   DECK2
 AF       CON    0           APPEND FLAG                                 DECK2
 EOIF     CON    0           EOI OPTION FLAG
 REWF     CON    0           REWIND FLAG                                 DECK2
 RECTYPE  CON    0           RECORD TYPE FROM SRT                        DECK2
 LPOS     CON    0           7RM POSITION WORD AND PRU NUMBER FOR CIO 
 MR       CON    0           MULTIPLE REPLACEMENT FLAG                   DECK2
 NTC      CON    0           NO-TYPE-CHECK FLAG                          DECK2
                                                                         DECK2
 LMASK    MACRO  P                                                       DECK2
          CON    0                                                       DECK2
          ORG    *-1                                                     DECK2
          IRP    P                                                       DECK2
          POS    60-P                                                    DECK2
          VFD    1/1                                                     DECK2
          IRP                                                            DECK2
          POS    0
          ENDM                                                           DECK2
 COPYL    SPACE  4,8
*         TABLE OF REPLACEABLE RECORD TYPES.                             UTLA039
                                                                         DECK2
 CPLA     LMASK  (0,1,2,3,4,6,7,9,10,14,16,21)
 COPYL    TITLE  MAIN PROGRAM.
*                                                                        UTLA039
**        CPL - MAIN PROGRAM.                                            UTLA039
*                                                                        UTLA039
*         COPYL IS ENTERED IN THIS ROUTINE. IF THE PROGRAM IS ENTERED AT UTLA039
*         THE ENTRY POINT COPYLM THEN THE MULTIPLE REPLACEMENT FLAG IS   UTLA039
*         SET.  IF *R* OPTION WAS SELECTED ON THE CONTROL CARD , THEN    UTLA039
*         FILES ARE REWOUND.  A MESSAGE IS ISSUED INDICATING WHICH       UTLA039
*         RECORD IS BEING COPIED.  AFTER ALL THE MASTER FILE IS          UTLA039
*         PROCESSED, ANY REMAINING RECORDS ON THE CORRECTION FILE ARE    UTLA039
*         APPENDED TO THE END OF THE MASTER FILE.  WHEN ALL THE          UTLA039
*         CORRECTION RECORDS ARE PROCESSED, THEN A MESSAGE IS WRITTEN TO UTLA039
*         THE DAYFILE INDICATING *COPYL* IS COMPLETED AND THE NEW MASTER UTLA039
*         FILE, THE OLD MASTER FILE AND THE CORRECTION FILE ARE CLOSED.  UTLA039
*                                                                        UTLA039
*         CALLS  PRS, CCF, SRT, APN, CKR, PCF, CPY.                      UTLA039
 COPYLM   SX7    1                                                       DECK2
          SA7    MR          SET MULTIPLE REPLACEMENT FLAG               DECK2
                                                                         DECK2
 COPYL    SB1    1                                                       DECK2
          RJ     PRS         INITIALIZE PROGRAM                          DECK2
          RJ     CCF         CATALOG CORRECTION FILE                     DECK2
          SA2    REWF        CHECK FOR REWIND OPTION                     DECK2
          ZR     X2,CPL1     R NOT SPECIFIED                             DECK2
          REWIND O                                                       DECK2
          REWIND N                                                       DECK2
                                                                         DECK2
*         MASTER LOOP.
                                                                         DECK2
 CPL1     BSS    0                                                       DECK2
          SA1    ST                                                      DECK2
          NZ     X1,CPL4B    IF STOP FLAG SET 
          IFEQ   CP#RM,0,1                                               DECK2
          READ   O           READ O FILE                                 DECK2
          READW  O,BUF,PRU                                               DECK2
          NG     X1,CPL4     IF EOF OR EOI ON O FILE
          BX6    X1                                                      DECK2
          SX7    B1          INDICATE FILE NON EMPTY                     DECK2
          SA7    EF                                                      DECK2
          SA6    FS          SAVE STATUS                                 DECK2
          SX1    B6          LWA+1 OF RECORD
          SX2    BUF         GET RECORD TYPE                             DECK2
          RJ     SRT                                                     DECK2
          SA6    RECTYPE     SAVE RECORD TYPE                            DECK2
          SA3    LR                                                      DECK2
          BX4    X3-X7
          ZR     X3,CPL1B 
          NZ     X4,CPL1B                                                DECK2
          SX6    B1 
          SA6    ST 
 CPL1B    BX1    X7 
          RJ     APN         ADJUST NAME FOR DISPLAY PURPOSES 
          SA6    CPLB+2      STORE NAME FOR MESSAGES
          SA1    RECTYPE
          SB2    X1          (B2)=RECORD TYPE                            DECK2
          SA2    TYPE+B2                                                 DECK2
          BX6    X2                                                      DECK2
          SA6    CPLB+1      STORE TYPE FOR MESSAGE                      DECK2
          SA2    CPLA        TYPE BIT MASK                               DECK2
          LX0    B2,X2                                                   DECK2
          PL     X0,CPL3     IF WE HAVE TO COPY IT                       DECK2
          RJ     CKR         CHECK CORRECTION FILE                       DECK2
          NG     X6,CPL3     IF NOT FOUND                                DECK2
          MX0    0                                                       DECK2
          RJ     PCF         POSITION CORRECTION FILE                    DECK2
                                                                         DECK2
          IFEQ   CP#RM,0,1                                               DECK2
          READ   C           START READ                                  DECK2
          READW  C,BUF,PRU                                               DECK2
          SX2    C                                                       DECK2
          RJ     CPY         COPY RECORD                                 DECK2
                                                                         DECK2
          SA1    FS          CHECK O FILE STATUS                         DECK2
          NZ     X1,CPL2                                                 DECK2
          IFEQ   CP#RM,0,1                                               DECK2
          RECALL O                                                       DECK2
          SA1    X2                                                      DECK2
          LX1    59-4                                                    DECK2
          NG     X1,CPL2     IF EOR/EOF                                  DECK2
 CPL1A    READW  O,BUF,PRU                                               DECK2
          ZR     X1,CPL1A                                                DECK2
 CPL2     SA3    O+1         RESET POINTERS                              DECK2
          SX6    X3                                                      DECK2
          SA6    A3+B1       IN = OUT = FIRST                            DECK2
          SA6    A6+B1                                                   DECK2
          EQ     CPL1                                                    DECK2
                                                                         DECK2
 CPL3     MESSAGE  CPLB,1,R  SEND MESSAGE *COPYING -- TYPE/NAME*
          SA1    FS                                                      DECK2
          SX2    O                                                       DECK2
          RJ     CPY         COPY RECORD                                 DECK2
          EQ     CPL1                                                    DECK2
                                                                         DECK2
 CPL4     SA5    EOIF 
          NZ     X5,CPL4A    IF EOI OPTION SELECTED 
          SA5    AF 
          NZ     X5,CPL8     IF ADDING NEW PROGRAMS                      DECK2
          WRITEF N                                                       DECK2
          SA1    NF                                                      DECK2
          SX6    X1+B1                                                   DECK2
          SA6    A1                                                      DECK2
          NZ     X6,CPL1     IF MORE FILES TO GO                         DECK2
          EQ     CPL4C
  
 CPL4A    SA5    O
          LX5    50 
          NG     X5,CPL4B    IF EOI ON O FILE 
          WRITEF N           COPY THE EOF 
          EQ     CPL1        MORE FILES TO GO 
  
 CPL4B    SA5    AF 
          NZ     X5,CPL8     IF ADDING NEW PROGRAMS 
          WRITEF N           FINAL EOF ON NEW MASTER
 CPL4C    SA1    EF 
          NZ     X1,CPL4D    IF OLD MASTER NOT EMPTY
          MESSAGE  (=C/ OLD MASTER FILE EMPTY OR MISPOSITIONED/),,R      DECK2
                                                                         DECK2
*         ISSUE DAYFILE MESSAGES FOR PROGRAMS THAT WERE NOT UPDATED.
                                                                         DECK2
 CPL4D    SB2    F.TCDN 
          SA3    L.TCDN                                                  DECK2
          MX0    42                                                      DECK2
          SB3    X3                                                      DECK2
          EQ     B2,B3,CPL7  IF CORRECTION FILE EMPTY                    DECK2
          SB7    59-16                                                   DECK2
 CPL5     SA1    B2                                                      DECK2
          LX7    B7,X1                                                   DECK2
          NG     X7,CPL6     IF UPDATED                                  DECK2
          SB6    X1                                                      DECK2
          BX1    X0*X1                                                   DECK2
          RJ     APN         ADJUST NAME FOR DISPLAY                     DECK2
          SA6    CPLC+3      STORE NAME FOR MESSAGE                      DECK2
          SA2    TYPE+B6                                                 DECK2
          BX6    X2                                                      DECK2
          SA6    CPLC+2      STORE TYPE FOR MESSAGE                      DECK2
          MESSAGE  CPLC,,R   SEND MESSAGE *COPYL DID NOT FIND -- TYPE /  DECK2
                                                 NAME*                   DECK2
 CPL6     SB2    B2+2                                                    DECK2
          LT     B2,B3,CPL5                                              DECK2
 CPL7     MESSAGE  (=C* COPYL COMPLETE.*)                                DECK2
          CLOSE  N,NR 
          CLOSE  C                                                       DECK2
          CLOSE  O,NR 
          ENDRUN                                                         DECK2
                                                                         DECK2
*         APPEND NEW PROGRAMS TO END OF NEW MASTER FILE.
                                                                         DECK2
 CPL8     SA1    X5          ROUTINE NAME                                DECK2
          BX2    X1                                                      DECK2
          SA4    L.TCDN                                                  DECK2
          IX0    X5-X4       I-L                                         DECK2
          PL     X0,CPL10    IF FINISHED                                 DECK2
          SX6    X5+2        ADVANCE TABLE POINTER                       DECK2
          SA6    A5                                                      DECK2
          LX2    59-16                                                   DECK2
          NG     X2,CPL9     IF UPDATED                                  DECK2
          MX0    42                                                      DECK2
          SA3    A1+B1                                                   DECK2
          SB6    X1 
          BX1    X0*X1                                                   DECK2
          BX6    X3                                                      DECK2
          SA6    LPOS        SAVE POSITION WORD                          DECK2
          RJ     APN         ADJUST PROGRAM NAME
          SA6    CPLD+2      STORE NAME FOR MESSAGE                      DECK2
          SA2    TYPE+B6
          BX6    X2                                                      DECK2
          SA6    CPLD+1      STORE TYPE FOR MESSAGE                      DECK2
          MESSAGE  CPLD,,R   SEND MESSAGE *APPENDED -- TYPE / NAME*      DECK2
          RJ     PCF         POSITION CORRECTION FILE                    DECK2
                                                                         DECK2
          IFEQ   CP#RM,0,1                                               DECK2
          READ   C                                                       DECK2
          READW  C,BUF,PRU                                               DECK2
          SX2    C                                                       DECK2
          RJ     CPY         COPY RECORD                                 DECK2
 CPL9     SA5    AF                                                      DECK2
          EQ     CPL8                                                    DECK2
                                                                         DECK2
 CPL10    WRITEF N                                                       DECK2
          EQ     CPL7                                                    DECK2
                                                                         DECK2
 CPLB     DATA   28L COPYING -- TYPE / NAME                              DECK2
 CPLC     DATA   38LCOPYL DID NOT FIND -- TYPE / NAME                    DECK2
 CPLD     DATA   28LAPPENDED -- TYPE / NAME                              DECK2
                                                                         DECK2
*         TABLE OF RECOGNIZED RECORD TYPES. 
                                                                         DECK2
 TYPE     DATA   10H- TEXT  /                                            DECK2
          DATA   10H- 6PP   /                                            DECK2
          DATA   10H- OVCAP / 
          DATA   10H- REL   /                                            DECK2
          DATA   10H- OVL   /                                            DECK2
          DATA   10H- ULIB  /                                            DECK2
          DATA   10H- OPL   /                                            DECK2
          DATA   10H- OPLC  /                                            DECK2
          DATA   10H- OPLD  /                                            DECK2
          DATA   10H- ABS   /                                            DECK2
          DATA   10H- 7PP   /                                            DECK2
          DATA   10H- UPL*  /                                            DECK2
          DATA   10H- UCF   /                                            DECK2
          DATA   10H- ACF   /                                            DECK2
          DATA   10H- CAP   / 
          DATA   10H- DATA  / 
          DATA   10H- PROC  / 
          DATA   10H-ERROR /
          DATA   10H- SDR   / 
          DATA   10H- UPLR   /
          DATA   10H- UPLRC  /
          DATA   10H- 8PP   / 
 COPYL    SPACE  4,8
          LIST   *                                                       DECK2
 COPYL    SPACE  4,8
**        COMMON DECKS CALLED.                                           UTLA039
*                                                                        UTLA039
*                COMA7IO     MACE I/O MACROS FOR SCOPE2.                 UTLA039
*                COMCSYS     PROCESS SYSTEM REQUESTS.                    UTLA039
*                COMCCIO     I/O FUNCTION PROCESSOR.                     UTLA039
*                COMCCLO     CLOSE FILE PROCESSOR.                       UTLA039
*                COMCRDW     READ WORDS TO WORKING BUFFER.               UTLA039
*                COMCWTW     WRITE WORDS FROM WORKING BUFFER.            UTLA039
*                COMFRIO     RECORD MANAGER MISC. I/O FUNCTIONS.         UTLA039
*                COMFRDW     READ WORDS TO WORKING BUFFER.               UTLA039
*                COMFWTW     WRITE WORDS FROM WORKING FILE.              UTLA039
*                COMCSRT     SET RECORD TYPES.
*                COMCMVE     MOVE BLOCK OF DATA.                         UTLA039
*                COMCDXB     DISPLAY CODE TO BINARY CONVERSION.          UTLA039
                                                                         DECK2
 COMCIO   IFEQ   CP#RM,0                                                 DECK2
*CALL COMCSYS 
*CALL COMCCIO 
*CALL COMCRDW 
*CALL COMCWTW 
 COMCIO   ENDIF                                                          DECK2
 #RM      IFEQ   CP#RM,7                                                 DECK2
*CALL COMFRIO                                                            DECK2
*CALL COMFRDW                                                            DECK2
*CALL COMFWTW                                                            DECK2
 #RM      ENDIF                                                          DECK2
*CALL COMCSRT 
*CALL COMCMVE                                                            DECK2
*CALL COMCDXB                                                            DECK2
 COPYL    SPACE  4,8
          LIST   F                                                       DECK2
 CKR      TITLE  SUBROUTINES. 
**        CKR - CHECK RECORD TO SEE IF IN CORRECTION FILE.
* 
*         ENTRY  (B2) = RECORD TYPE.
*                (X7) = PROGRAM NAME. 
* 
*         EXIT   (X6) < 0 IF NOT FOUND. 
*                     = DISK ADDR/RECORD NUMBER IF FOUND. 
                                                                         DECK2
  
 CKR      SUBR   0           ENTRY/EXIT 
          SA4    L.TCDN      LWA+1 OF TABLE                              DECK2
          SX3    B2                                                      DECK2
          BX7    X7+X3                                                   DECK2
          SA7    X4          SET SEARCH TERMINATOR                       DECK2
          SB3    B1+B1                                                   DECK2
          MX6    1           SET FOR FAILURE                             DECK2
          SA6    X4+B1                                                   DECK2
          SA1    F.TCDN      FIRST ENTRY                                 DECK2
          SX0    1S16                                                    DECK2
          EQ     B2,B0,CKR1A IF TYPE.EQ.TEXT (ERRORS IN XXX COMP) 
          SA2    NTC                                                     DECK2
          ZR     X2,CKR1     IF NO TYPE CHECK OPTION NOT SPECIFIED       DECK2
 CKR1A    SX0    X0+77B      SET TO OMIT TYPE CHECK                      DECK2
                                                                         DECK2
 CKR1     BX2    X1-X7                                                   DECK2
          SB4    59-16                                                   DECK2
          LX5    X1,B4                                                   DECK2
          SA1    A1+B3       NEXT ENTRY                                  DECK2
          BX3    -X0*X2                                                  DECK2
          NZ     X3,CKR1     IF NO MATCH                                 DECK2
          SA3    MR                                                      DECK2
          NZ     X3,CKR2     IF MULTIPLE REPLACEMENT                     DECK2
          NG     X5,CKR1     IF ALREADY UPDATED                          DECK2
 CKR2     SA4    A1-B1                                                   DECK2
          SA1    A4-B1                                                   DECK2
          SX0    1S16                                                    DECK2
          LX6    X4                                                      DECK2
          SA6    LPOS        SAVE POSITION WORD                          DECK2
          BX7    X0+X1       SET UPDATED BIT                             DECK2
          SA7    A1                                                      DECK2
          EQ     CKR                                                     DECK2
 CPY      SPACE  4,8
**        CPY - COPY RECORD TO OUTPUT FILE. 
* 
*         ENTRY  (X2) = INPUT FILE FET ADDRESS. 
*                (X1) = INPUT FILE STATUS (0 OR EOR). 
                                                                         DECK2
  
 CPY      SUBR   0           ENTRY/EXIT 
          SA0    X2          SAVE FET ADDRESS                            DECK2
          LX5    X1                                                      DECK2
          IFEQ   CP#RM,0,1                                               DECK2
          RECALL N           WAIT UNTIL FILE IS QUIET                    DECK2
          BX1    X5                                                      DECK2
          NZ     X5,CPY2     IF EOR                                      DECK2
                                                                         DECK2
 CPY1     WRITEW N,BUF,PRU                                               DECK2
          READW  A0,BUF,PRU                                              DECK2
          ZR     X1,CPY1     IF NO EOR                                   DECK2
          NG     X1,CPY3     IF EOF                                      DECK2
                                                                         DECK2
 CPY2     WRITEW N,BUF,X1-BUF                                            DECK2
 CPY3     WRITER N           FLUSH BUFFER                                DECK2
          EQ     CPY                                                     DECK2
 PCF      SPACE  4,8
**        PCF - POSITION CORRECTION FILE. 
* 
*         ENTRY  (LPOS) = PRU ADDRESS OF RECORD.
*                (X0) < 0 IF NO DAYFILE MESSAGE.
*                (X7) = PROGRAM NAME LEFT JUSTIFIED.
                                                                         DECK2
  
 PCF      SUBR   0           ENTRY/EXIT 
 #CIO     IFEQ   CP#RM,0
          SA1    LPOS 
          BX6    X1 
          SA6    C+6        SET PRU # FOR REPLACEMENT FILE
 #CIO     ENDIF 
          BX1    X7                                                      DECK2
          NG     X0,PCF0     IF NO DAYFILE MESSAGE ( APPENDING )         DECK2
          RJ     APN         ADJUST NAME FOR DISPLAY PURPOSES            DECK2
          SA6    PCFA+2      STORE NAME FOR MESSAGE                      DECK2
          SA1    RECTYPE                                                 DECK2
          SB4    X1                                                      DECK2
          SA2    TYPE+B4                                                 DECK2
          BX6    X2                                                      DECK2
          SA6    PCFA+1      STORE TYPE FOR MESSAGE                      DECK2
          MESSAGE  PCFA,,R   SEND MESSAGE *UPDATED -- TYPE / NAME*       DECK2
                                                                         DECK2
 PCF0     BSS    0
                                                                         DECK2
 #RM      IFEQ   CP#RM,7                                                 DECK2
          SA2    LPOS                                                    DECK2
          POSITION  FI.LGO,X2                                            DECK2
 #RM      ENDIF                                                          DECK2
          EQ     PCF
                                                                         DECK2
 PCFA     DATA   28L UPDATED -- TYPE / NAME                              DECK2
 APN      SPACE  4,8
**        APN - ADJUST PROGRAM NAME FOR DISPLAY PURPOSES. 
* 
*         ENTRY  (X1) = NAME LEFT JUSTIFIED.
* 
*         EXIT   (X6) = NAME LEFT JUSTIFIED WITH ILLEGAL CHARS REMOVED. 
                                                                         DECK2
  
 APN      SUBR   0           ENTRY/EXIT 
          SX2    57B                                                     DECK2
          SB4    6                                                       DECK2
          SB5    42                                                      DECK2
          SX6    B0                                                      DECK2
          MX3    -6                                                      DECK2
                                                                         DECK2
 APN1     LX1    6                                                       DECK2
          BX4    -X3*X1      EXTRACT CHAR                                DECK2
          SB4    B4+6                                                    DECK2
          IX5    X2-X4                                                   DECK2
          AX5    59                                                      DECK2
          BX4    -X5*X4      CHAR = 0 IF GT 57B                          DECK2
          BX6    X4+X6                                                   DECK2
          LX6    6                                                       DECK2
          LE     B4,B5,APN1                                              DECK2
          LX6    12                                                      DECK2
          EQ     APN                                                     DECK2
 CCF      TITLE  INITIALIZATION.
**        CCF - CATALOG CORRECTION FILE.
*                                                                        UTLA039
*         THIS IS THE FIRST PASS THROUGH THE CORRECTION FILE.  DURING IT UTLA039
*         THE NAME, TYPE AND ADDRESSES OF THE RECORDS ARE DETERMINED AND UTLA039
*         A TABLE OF THIS INFORMATION IS BUILT.  IF THE TABLE CAUSES A   UTLA039
*         NEED FOR MORE FIELD LENGTH, MORE IS REQUESTED.                 UTLA039
                                                                         DECK2
  
 CCF      SUBR   0           ENTRY/EXIT 
          REWIND C,R                                                     DECK2
                                                                         DECK2
 #CIO     IFEQ   CP#RM,0                                                 DECK2
 CCF00    SX2    C                                                       UTL0055
          SA1    X2+B1                                                   DECK2
          MX0    1                                                       DECK2
          BX6    -X1*X0                                                  DECK2
          LX0    B1,X6       X0 = PRU INCREMENT                          DECK2
          SX5    B1          SET DISK ADDRESS/RECORD COUNT               DECK2
          LX6    1+47                                                    DECK2
          SA6    RF          = 0 IF FILE IS NOT ON MASS STORAGE          DECK2
          NZ     X6,CCF09    IF ON MASS STORAGE                          UTL0055
          OPEN   Z,ALTER                                                 UTL0055
 CCF01    READ   C                                                       UTL0055
 CCF02    READW  C,BUF,PRU                                               UTL0055
          NG     X1,CCF08    IF EOF                                      UTL0055
          SX2    X1-BUF                                                  UTL0055
          ZR     X2,CCF08C   IF A 0 LENGTH RECORD                        UTL0055
          NZ     X1,CCF03    IF EOR                                      UTL0055
          WRITEW Z,BUF,PRU                                               UTL0055
          EQ     CCF02       GO READ MORE OF RECORD                      UTL0055
                                                                         UTL0055
 CCF03    WRITEW Z,BUF,X1-BUF                                            UTL0055
 CCF08C   WRITER Z,R                                                     UTL0055
          EQ     CCF01       CONTINUE READ                               UTL0055
                                                                         UTL0055
 CCF08    CLOSE  C,,RECALL                                               UTL0055
          CLOSE  Z,,RECALL                                               UTL0055
          MOVE   15B,Z,C                                                 UTL0055
 CCF08B   OPEN   C,ALTER     OPEN NEW C                                  UTL0055
          EQ     CCF00       GO BACK AND START OVER WITH DISK COPY       UTL0055
                                                                         UTL0055
 CCF09    BSSZ   0                                                       UTL0055
 #CIO     ENDIF                                                          DECK2
                                                                         DECK2
 #RM      IFEQ   CP#RM,7                                                 DECK2
          GETPOS FI.LGO,X6                                               DECK2
          SA6    LPOS                                                    DECK2
 #RM      ENDIF                                                          DECK2
                                                                         DECK2
 CCF1     BSS    0                                                       DECK2
          IFEQ   CP#RM,0,1                                               DECK2
          READ   C           BEGIN READ                                  DECK2
          READW  C,BUF,PRU                                               DECK2
          NG     X1,CCF5     IF EOF                                      DECK2
          SX2    X1-BUF                                                  DECK2
          ZR     X2,CCF5     IF A 0 LENGTH RECORD                        DECK2
          BX6    X1                                                      DECK2
          SA6    FS          SAVE FILE STATUS                            DECK2
          SX1    B6          LWA+1 OF RECORD
          SX2    BUF                                                     DECK2
          RJ     SRT         SET RECORD TYPE                             DECK2
          SA2    CCFA                                                    DECK2
          SB2    X6                                                      DECK2
          LX3    B2,X2                                                   DECK2
          PL     X3,CCF2     IF NOT REPLACEABLE                          DECK2
          SA1    L.TCDN                                                  DECK2
          SA3    FL                                                      DECK2
          SX2    X1+6                                                    DECK2
          IX4    X2-X3                                                   DECK2
          MI     X4,CCF1A                                                DECK2
          RJ     CCF6                                                    DECK2
                                                                         DECK2
 CCF1A    BSS    0                                                       DECK2
          SA6    X1                                                      DECK2
          IFEQ   CP#RM,7,1                                               DECK2
          SA5    LPOS                                                    DECK2
          BX7    X5                                                      DECK2
          SA7    X1+B1       WORD 2 = DISK ADDRESS/RECORD NUMBER         DECK2
          SX6    A7+B1                                                   DECK2
          SA6    A1          UPDATE POINTER                              DECK2
                                                                         DECK2
 CCF2     SA1    FS                                                      DECK2
          NZ     X1,CCF4     IF EOR                                      DECK2
          IFEQ CP#RM,0,4                                                 DECK2
                                                                         DECK2
          IFEQ   CP#RM,0,2
 CCF3     SX0    PRU/100B 
          IX5    X5+X0       ADVANCE PRU COUNT
          IFEQ   CP#RM,7,1                                               DECK2
 CCF3     BSS    0                                                       DECK2
          READW  C,BUF,PRU                                               DECK2
          ZR     X1,CCF3                                                 DECK2
                                                                         DECK2
 CCF4     BSS    0                                                       DECK2
          IFEQ   CP#RM,0,3
          SX0    X1-BUF+100B INCLUDE END-OF-RECORD PRU IN COUNT 
          AX0    6
          IX5    X5+X0
          IFEQ   CP#RM,7,2                                               DECK2
          GETPOS FI.LGO,X6                                               DECK2
          SA6    LPOS                                                    DECK2
          PL     X1,CCF1                                                 DECK2
                                                                         DECK2
 CCF5     REWIND C,R                                                     DECK2
          IFEQ   CP#RM,0,4                                               DECK2
          SA1    RF                                                      DECK2
          SA2    X2+B1                                                   DECK2
          BX6    X1+X2       RESET RANDOM BIT                            DECK2
          SA6    A2                                                      DECK2
          EQ     CCF                                                     DECK2
                                                                         DECK2
 CCF6     JP     *+1S17      REQUEST MORE FL                             DECK2
          SX3    X3+200B                                                 DECK2
          BX7    X3                                                      DECK2
          SA7    FL                                                      DECK2
          LX7    30                                                      DECK2
          BX4    X6          RECORD NAME AND TYPE 
          SA7    CCFB 
          MEMORY SCM,CCFB,R 
          SA3    CCFB 
          SA1    L.TCDN 
          BX6    X4 
          SB4    X3                                                      DECK2
          NZ     B4,CCF6     REQUEST COMPLETE                            DECK2
          MESSAGE  CCFL,,R                                               DECK2
          ABORT  ,NODUMP     CANNOT OBTAIN NECESSARY FL                  DECK2
                                                                         DECK2
 CCFL     DATA   38LTOO MANY CORRECTION DECKS-NEED MORE FL               DECK2
                                                                         DECK2
                                                                         DECK2
 CCFA     LMASK  (0,1,2,3,4,6,7,9,10,14,16,21)
 CCFB     DATA   0
 PRS      SPACE  4,8
          ORG    BUF                                                     DECK2
                                                                         DECK2
**        PRS - PRESET PROGRAM. 
*                                                                        UTLA039
*         THIS CODE PERFORMS THE INITIALIZATION FUNCTIONS BEFORE         UTLA039
*         PROCESSING BEGINS.  IT DETERMINES IF SUFFICIENT FIELD LENGTH   UTLA039
*         IS ALLOCATED, IF NOT IT REQUESTS MORE.  THE CONTROL CARD IS    UTLA039
*         CRACKED.  IF THE USER SPECIFIES NAMES FOR THE OLD MASTER       UTLA039
*         FILE, THE CORRECTION FILE, AND/OR THE NEW MASTER FILE FETS ARE UTLA039
*         SETUP USING THESE, OTHERWISE THE DEFAULT NAMES ARE USED.  THE  UTLA039
*         FOURTH AND THE FIFTH ARGUMENTS ARE CRACKED AND APPROPRIATE     UTLA039
*         FLAGS ARE SET.                                                 UTLA039
                                                                         DECK2
 PRS      SUBR   0           ENTRY/EXIT 
          SX6    A0-.BUF                                                 DECK2
          PL     X6,PRS9     IF SUFFICIENT FL                            DECK2
          MEMORY SCM,PRSB,R                                              DECK2
          SA1    PRSB                                                    DECK2
          LX1    -30                                                     DECK2
          SA0    X1                                                      DECK2
                                                                         DECK2
 PRS9     BSS    0                                                       DECK2
          SX6    A0                                                      DECK2
          SA6    FL                                                      DECK2
          SA1    RA.ACT                                                  DECK2
          SX2    X1                                                      DECK2
          ZR     X2,PRS7     IF NO ARGS                                  DECK2
          SB4    3                                                       DECK2
          SB3    X2          NO. OF ARGS                                 DECK2
          MX0    42                                                      DECK2
          SX4    3                                                       DECK2
          SA1    2           GET FIRST PARAMETER                         DECK2
          SA2    PRSA        GET DEFAULT FILE NAME                       DECK2
                                                                         DECK2
 PRS1     BX6    X0*X1                                                   DECK2
          BX5    -X0*X1      TEST FOR SEPARATORS
          SA3    X2          DEFAULT NAME 
          IFEQ   CP#RM,7,1
          SA3    X3 
          BX7    X0*X3
          ZR     X6,PRS2     NULL PARAMETER                              DECK2
          ZR     X5,PRS8.5   NO SEPARATOR INDICATES NAME TOO LONG 
          IFEQ   CP#RM,0,2                                               DECK2
          IX7    X6+X4                                                   DECK2
          SA7    X2          STORE NAME IN FET                           DECK2
          IFEQ   CP#RM,7,3                                               DECK2
          SA3    X2                                                      DECK2
          SX3    X3                                                      DECK2
          STORE  X3,LFN=X6   STORE NAME IN FIT                           DECK2
          BX7    X6 
                                                                         DECK2
 PRS2     SA7    A2          STORE NAME AT PRSA 
          SB3    B3-B1
          ZR     B3,PRS7     IF ALL FILE PARAMS PROCESSED                DECK2
          SA1    A1+B1       GET NEXT PARAMETER                          DECK2
          SA2    A2+B1       GET NEXT DEFAULT FILE NAME                  DECK2
          SB4    B4-B1                                                   DECK2
          NZ     B4,PRS1     IF MORE FILE NAMES TO PROCESS               DECK2
          SA1    5           GET 4TH PARAMETER                           DECK2
          BX6    X0*X1                                                   DECK2
          SA6    LR          STORE NAME OF LAST RECORD TO BE PROCESSED   DECK2
          SB2    4           MAX NUMBER OF FIFTH PARAMETER OPTIONS
          SA1    6           GET 5TH PARAMETER
                                                                         DECK2
 PRS3     SB2    B2-B1                                                   DECK2
          MX0    6                                                       DECK2
          BX6    X0*X1
          ZR     X6,PRS7     5TH PARAMETER IS NULL, SET DEFAULT          DECK2
          LX6    6                                                       DECK2
          SX7    X6-1RA                                                  DECK2
          ZR     X7,PRS4     APPEND OPTION SPECIFIED                     DECK2
          SX7    X6-1RE 
          ZR     X7,PRS4A    EOI OPTION SPECIFIED 
          SX7    X6-1RR                                                  DECK2
          ZR     X7,PRS5     REWIND OPTION SPECIFIED                     DECK2
          SX7    X6-1RT                                                  DECK2
          ZR     X7,PRS6     NO-TYPE-CHECK OPTION SPECIFIED              DECK2
          MESSAGE  PRSC,,R                                               DECK2
          ABORT  ,NODUMP                                                 DECK2
                                                                         DECK2
 PRS4     SX6    F.TCDN      SET APPEND FLAG                             DECK2
          SA6    AF                                                      DECK2
          ZR     B2,PRS7                                                 DECK2
          LX1    6
          EQ     PRS3                                                    DECK2
                                                                         DECK2
                                                                         DECK2
 PRS4A    SX6    B1 
          SA6    EOIF        SET EOI OPTION FLAG
          ZR     B2,PRS7     IF NO MORE OPTIONS 
          LX1    6           RIGHT JUSTIFY NEXT OPTION CHAR 
          EQ     PRS3        IDENTIFY OPTION CHAR 
 PRS5     BSS    0
          IFEQ   CP#RM,7,2
          STORE  FI.OLD,OF=R
          STORE  FI.NEW,OF=R
          IFEQ   CP#RM,0,2
          SX6    B1 
          SA6    REWF        SET REWIND FLAG                             DECK2
          LX1    6
          ZR     B2,PRS7     IF ALL OPTIONS EXHAUSTED 
          EQ     PRS3 
                                                                         DECK2
 PRS6     SX6    B1                                                      DECK2
          SA6    NTC         SET NO-TYPE-CHECK FLAG                      DECK2
          LX1    6
          NZ     B2,PRS3                                                 DECK2
                                                                         DECK2
 PRS7     SA1    PRSA        CHECK FOR FILE NAME CONFLICT 
          SA2    A1+B1
          SA3    A2+B1
          BX7    X1-X2
          BX6    X1-X3
          BX5    X2-X3
          ZR     X7,PRS8
          ZR     X6,PRS8
          ZR     X5,PRS8
 OPTIC    IFEQ   CP#RM,0
          SX2    O
          SA3    PRSF 
          RJ     SOE         SET OPTICAL EXTENSION
 OPTIC    ENDIF 
          OPEN   O,READNR 
          OPEN   C,ALTER                                                 DECK2
 OPTIC    IFEQ   CP#RM,0
          SX2    N
          SA3    PRSG 
          RJ     SOE         SET OPTICAL EXTENSION
 OPTIC    ENDIF 
          OPEN   N,ALTERNR
          EQ     PRS                                                     DECK2
                                                                         DECK2
 PRS8     MESSAGE PRSD,,R 
          ABORT  ,NODUMP
  
 PRS8.5   MESSAGE PRSE,,R 
          ABORT  ,NODUMP
  
 .BUF     SET    .BUF+77B                                                DECK2
 PRSB     VFD    30/.BUF/1S6*1S6,30/0                                    DECK2
                                                                         DECK2
 PRSA     VFD    60/O                                                    DECK2
          VFD    60/C                                                    DECK2
          VFD    60/N                                                    DECK2
          VFD    60/Z                                                    UTL0055
                                                                         DECK2
 PRSC     DATA   38L ERROR IN 5TH COPYL PARAMETER                        DECK2
 PRSD     DATA   C* FILE NAME CONFLICT.*
 PRSE     DATA   C* FILE NAME TOO LONG.*
 OPTIC    IFEQ   CP#RM,0
 PRSF     VFD    36/0,6/16,18/O.ODE  OLD OPTICAL FET EXTENSION POINTER
 PRSG     VFD    36/0,6/16,18/N.ODE  NEW OPTICAL FET EXTENSION POINTER
 SOE      SPACE  4,20 
**        SOE - SET OPTICAL EXTENSION.
* 
*         SOE ISSUES A *FILINFO* REQUEST ON THE FET SPECIFIED IN (X2).
*         IF THE FILE IS AN OPTICAL DISK FILE (NOS ONLY), THE POINTER 
*         (X3) TO THE OPTICAL FET EXTENSION IS PLACED INTO THE FET. 
* 
*         ENTRY  (X2) = FET ADDRESS.
*                (X3) = POINTER TO APPROPRIATE FET EXTENSION. 
* 
*         EXIT   (X1) = 0, OPTICAL DISK POINTER SET IN FET. 
* 
*         USES   X - 1, 6.
*                A - 1, 6.
*                B - 7. 
* 
*         MACROS FILINFO. 
  
 SOE      SUBR               ENTRY/EXIT 
          MX6    42 
          SA1    X2          GET NEWPL NAME 
          BX1    X6*X1       ZERO OUT REST OF WORD
          SB7    X2 
          SX6    50000B      ADD LENGTH OF REQUEST BUFFER 
          BX6    X1+X6
          SA6    SOEA        STORE NAME AND STORAGE LENGTH. 
          FILINFO A6
          SA1    SOEA+1 
          AX1    48 
          SX1    X1-2ROD
          NZ     X1,SOEX     IF NOT OPTICAL DISK
          BX6    X3          SET POINTER INTO FET 
          SA6    B7+11B 
          EQ     SOEX        RETURN 
  
 SOEA     BSSZ   5
 OPTIC    ENDIF 
                                                                         DECK2
 RFL=     EQU    12000B 
  
          DIS    ,*COPYRIGHT CONTROL DATA CORP. 1971, 1972, 1973, 1974, 
,1975,1976,1977,1978,1979,1980,1981,1982.*
          SPACE  4                                                       DECK2
          LIST   *                                                       DECK2
                                                                         DECK2
                                                                         DECK2
          USE    0                                                       DECK2
                                                                         DECK2
          END                                                            DECK2
