Page 1 of 1

Difference between SYSIN and SYSTSIN

PostPosted: Sun Sep 08, 2013 1:08 pm
by nikesh_rai
Hi Guys,

What is the difference between SYSIN and SYSTSIN. I checked a post where it is described as

SYSTSIN is the standard input DD (i.e. Terminal Input) for either the TSO program (IJKEFT**) or the REXX interpreter (IRXJCL).

SYSIN is a standard input DD, usually used to supply run-time parameters to the associated program.


So, is it correct or is there anything else which is missing here... I was checking IBM manual where SYSTSIN was described as

The SYSTSIN DD statement is used to specify that the data to follow consists of executable commands and/or subcommands. For example, to indicate to the system that all data following this statement is to be used as input, until the system encounters an input delimiter, such as the characters /* or the DLM operand,


but we put commands in SYSIN as well..

Can anyone please clarify me..

Re: Difference between SYSIN and SYSTSIN

PostPosted: Sun Sep 08, 2013 1:33 pm
by steve-myers
nikesh_rai wrote:... but we put commands in SYSIN as well..

Can anyone please clarify me..
The purpose of the contents of any data set depends on the program. The IKJEFT01 program, for example is the TSO "Terminal Monitor Program." When it is run in batch, IKJEFT01 expects the data set specified by DD name SYSTSIN to contain input it understands, that is TSO commands as well as member names of Rexx execs or TSO CLISTs located in data sets specified by DD name SYSPROC or SYSEXEC.

Other programs have different requirements. Cobol compilers, for example, generally expect the data set specified by the SYSIN DD statement to contain the source of a Cobol program. Nothing else. Sort programs, on the other hand, expect the data set specified by the SYSIN DD statement to contain control instructions (often constructed as "commands" and sometimes called "commands") so it can sort data contained in other data sets. It all depends on the program. That's the best explanation I can do.

Re: Difference between SYSIN and SYSTSIN

PostPosted: Mon Sep 09, 2013 1:17 pm
by nikesh_rai
thanks Steve for clarification.. :)

Re: Difference between SYSIN and SYSTSIN

PostPosted: Sun Aug 29, 2021 2:14 pm
by BigIronGuy
Hi Steve
Could you please explain in simple terms. What I have got that SYSTIN is used for IKJEFT01 program and SYSIN for some another program. Apart from this SYSTIN can also be used with REXX interpreter but not SYSIN. Please correct me if wrong.

Re: Difference between SYSIN and SYSTSIN

PostPosted: Mon Aug 30, 2021 1:23 am
by sergeyken
BigIronGuy wrote:Hi Steve
Could you please explain in simple terms. What I have got that SYSTIN is used for IKJEFT01 program and SYSIN for some another program. Apart from this SYSTIN can also be used with REXX interpreter but not SYSIN. Please correct me if wrong.

//SYSTSIN is the standard DD name used by the program IKJEFT01 (and some others) to get its own commands from. Usually those commands make the IKJEFT01 to call other programs (aka load modules) which often are written in various languages, from Assembler to REXX. Each of those “internal” programs=load modules can use (and often does) its own one or more DD names for its own input/output operations. Many typical programs called from inside of IKJETF01 are using the DD name //SYSIN as its main input data source. This depends exclusively on: what DD name has been chosen by the program developer? Since most of program codes are copied (or stolen) by one developer from another one, so very often the same DD name is used by many different programs; especially - //SYSIN DD.
//PROGRUN EXEC PGM=IKJEFT01
//SYSEXEC  DD DSN=library of REXX/CLIST code
//SYSTSPRT DD SYSOUT=*      log of IKJEFT01
//SYSTSIN  DD *       standard input for IKJEFT01
%REXXPGM1   ,       <- call to the REXX code REXXPGM1
SPECPGM0    ,         <- call to non-REXX code SPECPGM0
//*
//SYSPRINT DD  SYSOUT=*     output for any of REXXPGM1, and/or SPECPGM0
//SPECOUT  DD  SYSOUT=*     extra output for SPECPGM0
//SYSIN    DD  *            input for either REXXPGM1, or SPECPGM0, whichever use it
11111
22222
33333
//*
//SPECIN   DD  *          special input for SPECPGM0, if it needs something extra
SPECIAL DATA1
SPECIAL DATA2
//*