This section shows two examples of running the PATCH utility. The first example uses a WFL job. The second example uses CANDE to initiate an interactive session.
The following example shows a WFL job initiating the PATCH utility. This example declares two internal files, INCL1 and INCL2, which are used in the $.INSERT options.
BEGIN JOB PATCH; RUN SYSTEM/PATCH; FILE TAPE(TITLE=SYMBOL/PATCH ON SYSPACK); FILE PATCH(TITLE= PATCH/NEWPATCH); FILE PATCHES(TITLE= PATCH/NEWPATCHES); FILE INCL1 (TITLE=(USCODE)INCLUDE/FILE/1); FILE INCL2 (TITLE=(USCODE)INCLUDE/FILE/2); FILE NEWTAPE(TITLE=SYMBOL/NEW/PATCH ON SYSPACK); DATA CARD $.SET NEW COMPARE BRIEF EXECUTE LIST $:THE FOLLOWING $* COMMANDS CAUSE MY/PROGRAM ON MYPACK TO BE RUN $:USING KARD/FILE AS THE INPUT CARD FILE. $*RUN MY/PROGRAM ON MYPACK $*FILE CARD(KIND=DISK,TITLE=KARD/FILE) $# D O L L A R C A R D S $ SET MERGE $ SET NEW $ SET LISTP $ SET LINEINFO $ SET SEQERR NEWSEQERR $:THESE ARE SOME STANDARD $ CARDS FOR A COMPILE $.MARK TOTAL 5 OUT DELETE 5 $# FIRST_PATCH 31.099.001 $.PATCHDECK MY/PATCH/FILE ON MYPACK $# NEXT_PATCH 31.099.002 : : <patch records> : : $.VERSION 32.020 $# COMMENT 001 $.MOVE 50000-52000 TO 600100+100 $.MOVE 800000 TO NEXT+20 : : <patches to the moved material> : : $.POP MOVE 8001000 $.INSERT INCL1 0-500 AT 900000 + 30 $.INSERT INCL2 6000-7000 AT NEXT $.INSERT "MY/THIRD/INCL/FILE ON MYPACK" 61000 AT NEXT+300 : : <patches to the inserted material> : : $.RESET INSERT 75000 $.INSERT 2100-2500 AT NEXT % THIS IS A COMMENT $# COMMENT 2 $:THIS IS A COMMENT ABOUT THIS PATCH $.FILE A/B $.POP MARK RESET LISTP $.DISK $ MY/OTHER/A/B ON MYPACK2 $.EOF $:THIS CARD WILL NOT BE READ BY THE PATCH UTILITY $:NOR WILL THIS ONE ? END JOB.
The following example shows an interactive run of the PATCH utility. Lines that are preceded by a right angle bracket (>) indicate a system response. In this example, two patches are entered to show the use of the $.END option. After the $.END option, the PATCH utility displays the number of errors found, the number of warnings found, and the number of conflicts encountered. The word ENCOUNTERED is truncated to E. It then expects input for another patch. The $.EOF option is used to indicate the end of the run.
RUN *SYSTEM/PATCH > RUNNING <mix number> >#? >ENTER INPUTS-- $:START OF FIRST INTERACTIVE PATCH RUN $.EQUATE TAPE = SYMBOL/SOURCE $#PATCH SEPARATOR CARD 1 $ SET LIST MERGE NEW $# PATCH SEPARATOR CARD 2 $.FILE PATCH/SOURCE/23 $:END OF FIRST PATCH RUN $.END ><mix number> DISPLAY:OK TO COMPILE > 0 ERROR(S) WERE FOUND 0 WARNING(S) WERE ISSUED $:START OF 2ND PATCH RUN $.EQUATE TAPE = MY/SYMBOL $.EQUATE PATCH = OUT/PATCH $.EQUATE NEWTAPE = OUT/NEWTAPE $.CANDE $# PATCH 005 $.SET COMPARE 500$SET VOIDT 01000$ POP VOIDT $# PATCH 006 $.DISK MY/PATCH $:END OF RUN $.EOF ><mix number> DISPLAY:OK TO COMPILE > 0 ERROR(S) WERE FOUND 0 WARNING(S) WERE ISSUED