Okay - there already is an editor for TSO under MVT. It is called EDIT and can be used to create/modify text files under MVT. Of course, it is not the easiest tool to use - similar to edlin of PC-DOS. Unfortunately, the SPF environment is not available for MVT. The good news is, though, that there is a full screen editor available for MVT. It is not too difficult to to get it to run under TSO, but there is some work to be done.
You might want to print this checklist and tick of the things you have completed so far
Due to a missing parameter and too small buffer sizes in the standard TCAM/TSO setup there are a lot of strange errors/hangs happening under TSO. The TCAM Stage1, Stage2 and TSO setup that worked for me can be downloaded from the tsosetup tar ball.
Note that I modified the Stage2 source. I changed CUTOFF 300 to CUTOFF 2100, because that is what the installation docs say, and I found no way to specify a parameter on the stage1 macros to influence this value.
The FSE editor needs a user SVC to function correctly. User SVCs can only be added to the MVT system via a (partial) system generation process. You can download the jobs I used from the nucgen tar ball. The process is actually quite simple:
SVCTABLE SVC-240-T4-S0
GENTYPE=ALLto
GENTYPE=(NUCLEUS,9)and
INDEX=MVT1to
INDEX=SYS1
//NUCREN JOB CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1) //RENAME EXEC PGM=IEHPROGM //SYSPRINT DD SYSOUT=A //MVTRES DD DISP=OLD,UNIT=3330,VOL=SER=MVTRES //SYSIN DD * RENAME DSNAME=SYS1.NUCLEUS,VOL=3330=MVTRES, C MEMBER=IEANUC01, C NEWNAME=IEANUC02 RENAME DSNAME=SYS1.NUCLEUS,VOL=3330=MVTRES, C MEMBER=IEANUC09, C NEWNAME=IEANUC01Note that this way you still have a working nucleus module (IEANUC02) available in case of disaster.
//DUMMYSVC JOB CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1) //COPY EXEC PGM=IEWL,REGION=256K, // PARM=(LIST,XREF,MAP,RENT,REUS,REFR) //SYSPRINT DD SYSOUT=A //LINKLIB DD DISP=SHR,DSN=SYS1.LINKLIB //SYSLMOD DD DISP=SHR,DSN=SYS1.SVCLIB //SYSLIN DD * INCLUDE LINKLIB(IEFBR14) NAME IGC0024{(R) INCLUDE LINKLIB(IEFBR14) NAME IGC0024A(R) INCLUDE LINKLIB(IEFBR14) NAME IGC0024B(R) INCLUDE LINKLIB(IEFBR14) NAME IGC0024C(R) INCLUDE LINKLIB(IEFBR14) NAME IGC0024D(R) INCLUDE LINKLIB(IEFBR14) NAME IGC0024E(R) INCLUDE LINKLIB(IEFBR14) NAME IGC0024F(R) INCLUDE LINKLIB(IEFBR14) NAME IGC0024G(R) INCLUDE LINKLIB(IEFBR14) NAME IGC0024I(R) INCLUDE LINKLIB(IEFBR14) NAME IGC0025{(R) INCLUDE LINKLIB(IEFBR14) NAME IGC0025A(R) INCLUDE LINKLIB(IEFBR14) NAME IGC0025B(R) INCLUDE LINKLIB(IEFBR14) NAME IGC0025C(R) INCLUDE LINKLIB(IEFBR14) NAME IGC0025D(R) INCLUDE LINKLIB(IEFBR14) NAME IGC0025E(R) INCLUDE LINKLIB(IEFBR14) NAME IGC0025F(R) INCLUDE LINKLIB(IEFBR14) NAME IGC0025G(R) INCLUDE LINKLIB(IEFBR14) NAME IGC0025H(R) INCLUDE LINKLIB(IEFBR14) NAME IGC0025I(R) //IOSUP EXEC PGM=IEHIOSUP //SYSPRINT DD SYSOUT=A //SYSUT1 DD DSN=SYS1.SVCLIB,DISP=SHR //
There are many places where you can find the original FSE installation file. The original place to look is the CBT overflow tape, which is accessible via the net at fse.zip. I have, though, modified the FSE distribution files slightly to make customizing them more easily. Also have I built IEBUPDTE Jobs to build the assembly file containing the FSE source plus a few macros that are needed because IEUASM does not support some of the extended mnemonics used in the source.
You can get the installation files from the fseinst tar ball. Download the file into an empty directory
Change to the directory into which you downloaded the fseinst tar ball. Enter the following command
tar -xvzf fseinst.tgwhich will place the following files into the directory
fse.sed <---- FSE customization data fseinst1 <---- ALLOC and IEBUPDTE Jobs fseinst2 <---- Builds FSEASML proc in SYS1.PROCLIB fseinst3 <---- Assembles and links FSE fseinst4 <---- creates new TSO logon procedure fseinst5 <---- Assembles and links the user SVC fseinst6 <---- buils resident SVC table runsed <---- Shell script to configure Inst-Jobs
Certain changes need to be done to the source file to really make them installable on MVT. Please edit the file fse.sed to provide installation data. See inside fse.sed for detailed information.
You can now use the script file runsed to modify the installation jobs. You can modify the variable JCL inside this script to point to the directory where you want the modified JCL to be stored. The script line might look somewhat like this
JCL=/hercules/mvt/jclAlternatively, you can invike the script with the JCL path as the invokation parameter:
runsed /hercules/mvt/jcl
When the runsed script has finished, there will be files
fseinst1.jcl fseinst2.jcl fseinst3.jcl fseinst4.jcl fseinst5.jcl fseinst6.jclin the target directory. You might want to review these jobs before running them.
The operator (that is you) can select an alternate nucleus to be loaded at IPL time. This is how you do it:
stop
b 80
ipl 350commands on the hercules console (This is of course only true if 350 is the address of your IPL device).
r 08=f9
start