*DECK PRODGEN 
*CWEOR,00 
*WIDTH,80,0 
.PROC,PRODGEN*I,
RESNAME"RESIDENT NAME"=(*A),
OVLPRFX"OVERLAY PREFIX"=(*A), 
OVL"OVERLAY VARIANT"=(YES,NO),
RESEPT"MAIN ROUTINE"=(*A),
MAINEPT"MAIN ENTRY POINT"=(*A), 
XFREPT"XFR ENTRY POINT"=(*A), 
RESCOMT"PREFIX TABLE COMMENT"=(*A), 
SUBSYS"SUBSYSTEM"=(RHF,NAM,BOTH), 
RESLFN"LOADER DIRECTIVES LFN"=(*F,*N=XXRESD0),
DIRSLFN"DIRECTIVES LFN"=(*F), 
DEBUG"DEBUG MODE"=(YES,NO), 
TRACE"AIP/FIP TRACE"=(YES,NO,*N=NO),
PROCFIL"PROCEDURE FILE LFN"=(*F,*N=#FILE).
.IF,$OVL$.EQ.$NO$,NOOVL.
SET,R1=00.     NO OVERLAYS. 
SET,R2=00.     NO OVERLAYS TO GENERATE. 
.ELSE,NOOVL.
.IF,$SUBSYS$.EQ.$RHF$,RHFOVL. 
SET,R1=02.     TWO OVERLAYS.
SET,R2=06B.    (01,00), (02,00) 
.ENDIF,RHFOVL.
.IF,$SUBSYS$.EQ.$NAM$,NAMOVL. 
SET,R1=02.     TWO OVERLAYS.
SET,R2=30B.    (03,00), (04,00) 
.ENDIF,NAMOVL.
.IF,$SUBSYS$.EQ.$BOTH$,BOTHOVL. 
SET,R1=03.    THREE OVERLAYS. 
SET,R2=340B.  (05,00), (06,00), (07,00) 
.ENDIF,BOTHOVL. 
.ENDIF,NOOVL. 
BEGIN,RESDIRS,PROCFIL,
  #RESNAME=RESNAME, 
  #RESEPT=RESEPT, 
  #RESCOMT=$RESCOMT$, 
  #SUBSYS=SUBSYS, 
  #RESLFN=RESLFN, 
  #DIRSLFN=DIRSLFN, 
  #NUMOVLS=R1+D,
  #DEBUG=DEBUG, 
  #TRACE=TRACE. 
BEGIN,DUMMIRS,PROCFIL,
  #EPT=MAINEPT, 
  #OVLPRFX=OVLPRFX, 
  #OVL=OVL, 
  #SUBSYS=SUBSYS, 
  #DIRSLFN=DIRSLFN. 
BEGIN,DUMXIRS,PROCFIL,
  #EPT=XFREPT,
  #OVLPRFX=OVLPRFX, 
  #OVL=OVL, 
  #SUBSYS=SUBSYS, 
  #DIRSLFN=DIRSLFN. 
SET,R3=0. 
WHILE,R1.GT.0,LOOP. 
SET,R2=R2/2.
SET,R3=R3+1.
IF,(R2.AND.1).NE.0,GENOVL.
SET,R1=R1-1.
IF,(R3.EQ.1.OR.R3.EQ.3.OR.R3.EQ.5),GENMAIN. 
BEGIN,OVLDIRS,PROCFIL,
  #OVLPRFX=OVLPRFX, 
  #OVLEPT=MAINEPT,
  #DIRSLFN=DIRSLFN, 
  #OVLLVL=R3+D, 
  #DEBUG=DEBUG, 
  #TRACE=TRACE. 
ELSE,GENMAIN. 
BEGIN,OVLDIRS,PROCFIL,
  #OVLPRFX=OVLPRFX, 
  #OVLEPT=XFREPT, 
  #DIRSLFN=DIRSLFN, 
  #OVLLVL=R3+D, 
  #DEBUG=DEBUG, 
  #TRACE=TRACE. 
ENDIF,GENMAIN.
ENDIF,GENOVL. 
ENDW,LOOP.
RETURN,RESLFN.
REVERT.   PRODGEN COMPLETE. 
*WIDTH
