Using FSI

 

It is assumed you understand JCL and the basics of Assembler programming in order to use the FSI API.

Getting FSI

FSI is available from my WEB Site as a stacked tape file created by IEBCOPY.  You can get the tape image here: fsi120.het

or 

fsi120.aws.zip

Installing FSI

You will need to use IEBCOPY to load the FSI files.  Below is some sample JCL to load the FSI tape. You may need to update the DEV=3350 and VOLSER=WORK01 point to an available DASD device on your MVS system.

//FSILOAD JOB (5222),SPRINKLE,CLASS=A,MSGCLASS=A 
//FSILOAD PROC PFX=FSI,VRM=V1R2M0,
//            DEV=3350,VOLSER=WORK01,
//            TAPE=TAPE,TVOLSER=FSI120,
//            TVRM=V1R2M0 
//IEBCOPY EXEC PGM=IEBCOPY 
//SYSPRINT DD SYSOUT=* 
//ASM      DD DSN=&PFX..&VRM..ASM, 
//            DISP=(NEW,CATLG,DELETE), 
//            UNIT=&DEV,VOL=SER=&VOLSER, 
//            SPACE=(CYL,(1,0,36)) 
//* 
//OBJ      DD DSN=&PFX..&VRM..OBJ, 
//            DISP=(NEW,CATLG,DELETE), 
//            UNIT=&DEV,VOL=SER=&VOLSER, 
//            SPACE=(CYL,(1,0,36)) 
//* 
//LOAD     DD DSN=&PFX..&VRM..LOAD, 
//            DISP=(NEW,CATLG,DELETE), 
//            UNIT=&DEV,VOL=SER=&VOLSER, 
//            SPACE=(CYL,(1,0,36)) 
//* 
//MLIB     DD DSN=&PFX..&VRM..MLIB,  
//            DISP=(NEW,CATLG,DELETE),  
//            UNIT=&DEV,VOL=SER=&VOLSER,  
//            SPACE=(CYL,(1,0,36))  
//*  
//PLIB        DD DSN=&PFX..&VRM..PLIB,  
//            DISP=(NEW,CATLG,DELETE),  
//            UNIT=&DEV,VOL=SER=&VOLSER,  
//            SPACE=(CYL,(1,0,36))  
//*  
//*  
//ASMT        DD DSN=FSI.&TVRM..ASMT,  
//            DISP=(OLD,KEEP,KEEP),  
//            UNIT=&TAPE,  
//            LABEL=(1,SL),  
//            VOL=SER=FSI120  
//*
//OBJT        DD DSN=FSI.&TVRM..OBJT, 
//            DISP=(OLD,KEEP,KEEP), 
//            UNIT=AFF=ASMT, 
//            LABEL=(2,SL), 
//            VOL=REF=*.ASMT 
//*
//LOADT       DD DSN=FSI.&TVRM..LOADT, 
//            DISP=(OLD,KEEP,KEEP), 
//            UNIT=AFF=OBJT, 
//            LABEL=(3,SL), 
//            VOL=REF=*.OBJT 
//*
//PLIBT       DD DSN=FSI.&TVRM..PLIBT, 
//            DISP=(OLD,KEEP,KEEP), 
//            UNIT=AFF=LOADT, 
//            LABEL=(4,SL), 
//            VOL=REF=*.LOADT 
//*
//MLIBT       DD DSN=FSI.&TVRM..MLIBT, 
//            DISP=(OLD,KEEP,KEEP), 
//            UNIT=AFF=PLIBT, 
//            LABEL=(5,SL), 
//            VOL=REF=*.PLIBT 
//*
// PEND 
//*
//FSILOAD   EXEC FSILOAD 
//SYSIN      DD * 
   C O=ASM,I=ASMT 
   C O=OBJ,I=OBJT 
   C O=LOAD,I=LOADT 
   C O=PLIB,I=PLIBT 
   C O=MLIB,I=MLIBT 
/* 
//* 
// 

Download the JCL here: fsiload.jcl

Running FSI

Before you run FSI you must first allocate the MLIB and PLIB libraries to your TSO session.  You can use the following commands:

alloc fi(fsimlib) da('fsi.v1r2m0.mlib') shr
alloc fi(fisplib) da('fsi.v1r2m0.plib') shr
Now you must give FSI access to the necessary load modules.  You can do this
two different ways.  First you can add the FSI load library to your TSO Logon Procedure
or you can allocate the FSI Load Library data set to the DDNAME FSILLIB.
 
alloc fi(fisllib) da('fsi.v1r2m0.load') shr 
 
If you added the FSI LOAD Library dataset to your LOGON PROC you can invoke FSI directly
as a TSO command:
 
READY
FSISTART SAMP01
 
If you use the FSILLIB method, you can use the TSO CALL command to invoke FSI.
 
READY
call 'fsi.v1r2m0.load(fsistart)' 'samp01'
 

FSISTART will set up the environment and then attach the program samp01 as a subtask.  FSISTART then waits for the subtask to end.

 

Changing Your TSO Logon Proc