         MACRO                                                          90050000
&N       JPATCH &MOD,&MODLEN,&AREA,&K1=21,&K2=20                        90100000
         GBLA  &PI                                                      90150000
         GBLC  &COMPNM,&ASMID                                           90200000
         LCLA  &A                                                       90400000
         LCLC  &NAME,&L1,&L3,&L4,&L5                                    90600000
.P2      PUSH  PRINT                                                    91050000
&NAME    SETC  '&COMPNM&MOD'                                            91060000
         PRINT GEN,DATA                                                 91100000
.*THE PATCH AREA IS INITIALIZED TO 5% OF THE ORIGINAL CSECT.  BY        91150000
.*EVOKING THE "PATCH" MACRO, SUBSEQUENT ADDITIONS TO THE MODULE WILL    91200000
.*"SHRINK" THE ORIGINAL 5%-PATCH AREA VIA THE DYNAMIC ASSIGNMENT OF A   91250000
.*NEW LESS-THAN-5%-PATCH AREA.  AT LEAST A 5%-PATCH AREA WILL BE        91300000
.*DYNAMICALLY MAINTAINED FOR DELETIONS TO THE MODULE.                   91350000
&NAME    CSECT                                                          91400000
         LTORG                                                          91450000
         PRINT GEN,NODATA                                               91500000
         AIF   (T'&AREA EQ 'O').NOAREA                                  91520000
&A       SETA  &AREA                                                    91550000
.NOAREA  AIF   (&PI NE 0).DS2                                           91600000
PATCHDC  DC    C'&NAME &SYSTIME &SYSDATE'                               91650000
ABSOLEN  EQU   X'&MODLEN'-&A+L'PATCHDC  CALCULATE ACTUAL MODULE LENGTH  91700000
PTCHLEN  EQU   &NAME+ABSOLEN*&K1/&K2-*        LENGTH OF PATCH AREA      91750000
PATCH    DC    ((PTCHLEN+1)/PTCHLEN*PTCHLEN)C' '    DYNAMIC PATCH AREA  91800000
         AGO   .EXIT                                                    91850000
.DS2     ANOP                                                           91900000
&L4      SETC  'PATCHDC&PI'                                             91950000
&L5      SETC  'L'''.'PATCHDC&PI'                                       92000000
&L4      DC    C'&NAME &SYSTIME &SYSDATE'                               92050000
&L1      SETC  'ABSOLEN&PI'                                             92100000
&L3      SETC  'PTCHLEN&PI'                                             92150000
&L1      EQU  X'&MODLEN'-&A+&L5         CALCULATE ACTUAL MODULE LENGTH  92200000
&L3      EQU   &NAME+&L1*&K1/&K2-*            LENGTH OF PATCH AREA      92250000
PATCH&PI DC    ((&L3+1)/&L3*&L3)C' '                DYNAMIC PATCH AREA  92300000
.EXIT    POP   PRINT                                                    92350000
&PI      SETA  &PI+1                    FOR UNIQUE LABELS               92400000
         MEND                                                           92450000
