


		MVS38j Sysgen with 3375, 3380 and 3390 mods

		System Generation Instructions

		Version 00.09		April 25, 2002

		Author: James M. Morrison
			jimmm@attglobal.net


This file, and the remaining contents of the archive containing it
are released to the public domain.

This code is supplied AS-IS, and no warranties are provided or implied.



		Introduction
		------------

Please review readme.txt before beginning here.  In particular note
that you must run the SMP4 ACCEPT NOAPPLY as detailed in

	doc/smp4-install.txt

before executing these instructions.

Once you've completed these steps, you will have an MVS38j system with 
support for 3375, 3380, and 3390 devices.

If you prefer to use your own system generation procedures, feel free.
There's nothing special about these procedures, and opinions vary as to
what the "correct" sysgen technique should be.  If you use my sample JCL,
be prepared to customize as needed.



		Task Overview:

			Preparing for Sysgen

				Prepare volumes for usage
				Bring up Hercules
				10-init-sysres
				11-build-sys1
				12-build-sys2

			The Sysgen

				13-stage1
				Drain initiators
				14-stage2 
				15-jes2-install
				Stop MVS
			
			IPL MVS

				IPL new sysres
				16-build-net
				Run IVPs
				17-smp-cds

		--------------------
		Preparing for Sysgen
		--------------------


	Note: If Hercules is up & running, bring it down now.


Prepare volumes for usage:	misc/05-new-dasd

	Note:  Although it will likely require customization, Linux users
	can use the new-dasd script to accomplish the above.  None of the
	volumes from previous versions are cleaned up, you'll have to
	(and probably will want to) do this yourself.

	For details on the environment (like DASD volumes, catalogs, etc.), 
	see:

		readme.txt

	If you have your own 3375, 3380(s) and/or 3390(s), feel free to ignore
	building the above 3375, 3380 and 3390 volumes.  They're currently only
	used in the IVP (I think).

	The existence of a 3350 labeled LOC5xx is assumed, containing your
	local libraries such as SYS2.LOCAL.LINKLIB, SYS2.LOCAL.LINKLIB,
	SYS2.LOCAL.HELP, SYS2.LOCAL.SVCLIB, some SMP4 datasets, and who
	knows what else.
	
	If you think you have enough space left on the sysres, you could
	probably place the datasets on LOC5xx onto the sysres.  I just
	like having the "LOCAL" datasets on a separate volume, but your
	opinion may differ.

	Note: you may have to adjust the directories for the ctl and dasd
	volumes in the above command sequence.  The archive doesn't necessarily
	match the implied directory structure.

	Note: the control files only place VTOCs on the volume, except for
	the MVS7xx, MVS8xx and MVS9xx volumes, which loads CBT XMIs.  See the 
	dasdload control files for details.

	Note: 	It is quite normal to see 'VTOC CONVERT' messages with the first 
		allocation on dasdload'ed volumes, so don't worry.


Bring up Hercules

		->	Linux: cd /herc2/mvs
		->	Linux: 3390/misc/mvs38j
		->	Linux: 3390/misc/termup
		
		->	IPL MVS38j system as you normally would.  Don't bring 
			up VTAM & TSO; you'll probably have ENQ problems if you do.


10-init-sysres		ICKDSF INIT sysres including IPL text from
			SYS1.ASAMPLIB(IPLTXT00)

		Note: verify the ICKDSF control statements before running this job;
		once you reply U, if there was data on the volume it's gone.

		->	Hercules: devinit c jcl/10-init-sysres.jcl trunc eof
			MVS-msg:
				 IEF165I // V cuu,OFFLINE
				*xx IEF166D REPLY Y/N TO EXECUTE/SUPPRESS COMMAND 

		->	MVS: R xx,Y
			MVS-msg:
				 IEE600I REPLY TO xx IS;Y
				 $HASP373 INITRES  STARTED - INIT  1 - CLASS A - SYS H158
 				 IEF234E R cuu,MVS5xx,PVT
				 IEF281I cuu NOW OFFLINE                              
				*zz ICK003D REPLY U TO ALTER VOLUME cuu CONTENTS, ELSE T

		->	MVS: R zz,U

		when job completes:

		->	MVS: $SPRT1
		->	MVS: V cuu,ONLINE
		->	MVS: M cuu,VOL=(SL,MVS5xx),USE=PRIVATE

		Note: I have also provided 10-init-page.jcl, to run if you're
		restarting the sysgen process (which I do a lot).  If you run
		it, you want to vary the devices online and mount them after
		the job completes.  If you are restarting sysgen and don't run
		the page volume inits, you'll get errors in the next step for
		volume ownership on the page volumes, like so:

			IDC3024I VOLUME OWNED BY ANOTHER CATALOG
			IDC3009I ** VSAM CATALOG RETURN CODE IS 148 - REASON CODE IS IGG0CLAQ-0

		Such is life with VSAM (non-ICF) catalogs.


11-build-sys1		Build sysgen environment

			Create target master catalog
			Catalog MVSDLB datasets in target master catalog
			Allocate target datasets on target sysres
			Allocate page datasets
			Allocate SMF datasets 
			Set up custom SYS1.PARMLIB members

		->	Hercules: devinit c jcl/11-build-sys1.jcl trunc eof


12-build-sys2		Build local CMDLIB, LINKLIB and SVCLIB, etc. on LOC5xx

				SYS2.LOCAL.CMDLIB
				SYS2.LOCAL.HELP
				SYS2.LOCAL.LINKLIB
				SYS2.LOCAL.SVCLIB
			
		->	Hercules: devinit c jcl/12-build-sys2.jcl trunc eof




		----------
		The Sysgen
		----------


13-stage1		Allocate & catalog SYS1.OBJPDSxx
			Run Stage1 job to produce Stage2 punched deck

	->		Hercules: cd jcl
	->		Hercules: rdrprep 13-stage1.jcl
	->		Hercules: cd ..
	->		Hercules: devinit d jcl/stage2.jcl ebcdic
	->		Hercules: devinit e list/13-stage1.prt
	->		Hercules: devinit c jcl/reader.jcl ebcdic eof
	->		MVS: $spun1

		Note: you may need to modify the REGION for the Stage1 assembly;
		I've got the memory, so I use it.  Also, I've moved the allocation
		of SYS1.OBJPDS0n to LOC5xx.

		My experience has been that anything besides a return code 0 from
		Stage1 is trouble.


Drain initiators	shut down all but one initiator; Stage2 seems to run better
			that way (this was especially true on the starter system).

		->	MVS: $PI2;PI3


Stage2		Run Stage2 (multiple jobs), which will populate the new sysres

		To submit Stage2 from the MVS dataset created by Stage1:

		->	Hercules: devinit c jcl/14-stage2.jcl ebcdic eof

		For the above job, you may add ',NOPRINT' after each 'SYSGENx'
		job if you don't want to see what gets submitted.  The listing
		for submitting Stage2 is about 650KB at my house.

		Note: If you want to keep an eye on the sysgen as it runs,
		try the following command:
		
			grep -f misc/check-job.grep list/stage2.prt
			
		Assuming everything went OK, when all the fuss dies down, 
		release the held job:
			
		->	MVS: $a'sysgen6

		I frequently find it useful to know how many steps my sysgen
		has for each job (so I can see when a Stage2 job stops running
		before it's done all the steps):

			SYSGEN1		39
			SYSGEN2		44
			SYSGEN3		 2
			SYSGEN4		17
			SYSGEN5		18
			SYSGEN6		LIST1, LIST2, STEPY, STEPZ1, STEPZ2

		Note: STEPZ1 normally receives RC=8 (attempting to
		scratch non-existent SYS1.NUCLEUS(SYSCATLG) member.
		At the last minute, I added a FAKECATLG step to the build-sys1
		job, so this problem may go away (or perhaps I've just introduced 
		a new problem).  If it works, STEPZ1 should get RC=0.

		Note: If I'm restarting a failed STAGE2, I usually re-ipl MVS
		to clear spool (especially SYSGEN6 job).  I suppose I could look
		up the JES2 command to do this, but I'm too lazy.

		Note: Depending on where the STAGE2 failed, you may have to
		start at the beginning (Preparing for Sysgen), since many of the 
		datasets on MVS5xx don't have enough space to run STAGE2 again.
		If you don't, you can use IEBEDIT to just submit a single job
		(or even just selected jobsteps, see the Utilities manaul):

			//EDITJCL  JOB CLASS=A,MSGCLASS=A
			//IEBEDIT  EXEC PGM=IEBEDIT
			//SYSPRINT  DD SYSOUT=* 
			//SYSUT1    DD DSN=SYS2.MVS5xx.STAGE2,DISP=SHR,
			//             UNIT=3350,VOL=SER=LOC5xx
			//SYSUT2    DD SYSOUT=(A,INTRDR)
			//SYSIN     DD *	
			 EDIT START=SYSGEN3
			//


15-jes2-install		Link JES2 into the target system
			Install bare-bones JES2 parms

		->	Hercules: devinit c jcl/15-jes2-install.jcl trunc eof

		Note: you might want to review the JES2 parms before running
		this job.  Good JES2 command and parmlist info can be found at:
		http://www.tommysprinkle.com/mvs/

		If you're aware of some other JES2 links, please drop me a note
		so I can add them here.


Stop MVS after all jobs are complete

		->	Hercules: stop

		Or whatever (perhaps more graceful) way you want Hercules to stop 
		running your old sysres.


		-------
		IPL MVS
		-------


IPL MVS38j		Bring up the target system on MVS501 (first IPL uses CLPA)

		->	Hercules: ipl 350    (or whatever your sysres cuu is)
			MVS-msg:
				| IEA101A SPECIFY SYSTEM PARAMETERS FOR RELEASE 03.8 .VS2

		->	MVS: r 00,clpa,sysp=01
		->	MVS: r 00,u
		->	MVS: r 01,u
		->	MVS: r 02,cold,noreq

		Note: JES2 may issue message:

			    | xx $HASP436 REPLY Y OR N TO CONFIRM CHECKPOINT RECORD CHANGE

		If so:

		->	MVS: R xx,Y


16-build-net		Optional: customize VTAM & TSO

		->	Hercules: devinit c jcl/16-build-net.jcl trunc eof

		When the job completes, JES2 will likely ask you to start the printer,

		    | JOB    1 *$HASP190 BLDNET   SETUP -- PRINTER1 -- F = STD. -- C = 6    --  
		    |  T = 0                                                                    

		do so:

		->	MVS: $sprt1

		Note: You may have your own way of doing this; this job is included
		here mainly so I don't have to go hunting for it when I'm building
		my own system.  Feel free to ignore it.


Run IVP			Optional: MVS 3380 & 3390 mods Installation Verification Process


		->	MVS: m 370,vol=(sl,MVS7xx),use=public
		->	Hercules: devinit e list/test-3375.prt
		->	Hercules: devinit c jcl/test-3375.jcl trunc eof

		->	MVS: m 380,vol=(sl,MVS8xx),use=public
		->	Hercules: devinit e list/test-3380.prt
		->	Hercules: devinit c jcl/test-3380.jcl trunc eof

		->	MVS: m 390,vol=(sl,MVS9xx),use=public
		->	Hercules: devinit e list/test-3390.prt
		->	Hercules: devinit c jcl/test-3390.jcl trunc eof


17-smp-cds		Create SMPCDS that matches new running sysres

		->	Hercules: devinit c jcl/17-smp-cds.jcl trunc eof

		Note: You will need to have done this step if you wish to APPLY
		maintenance to your system.


THAT'S IT -- the MVS38j 3375, 3380 & 3390 mods are installed





		Debug notes
		-----------

	Use imblist-ieanuc01.jcl to locate UTRKCALC.  Hercules can then set
	breakpoints (b virtual-hex-addr) in the code.


		A Final Word
		------------	
			

	Feedback on the current version appreciated.  Current version available at
		http://ensose.com/mvs38j.html, 
	download mvs3380+3390+3375-xxxx.zip.

	If for some reason, the current version isn't indicated on the web page,
	download from 
		ftp://ftp.ensose.com/mvs38j/mvs3380+3390+3375-xxxx.zip   
	where xxxx is the version.

	The CBT tape is available at http://www.cbttape.org, but you knew that.


	Good luck & enjoy!
	Jim

<end>


