Re: Isolating a CSECT within a load module

2021-01-04 Thread Paul Gilmartin
On Mon, 4 Jan 2021 16:32:47 +0100, Massimo Biancucci wrote:
>
>I've tried to use sort to help.
>
>// EXPORT SYMLIST=*
>// SET INPMOD=oldmd
>// SET OUTMOD=newmod
>// SET INPLIB=myold.lib
>// SET OUTLIB=mynew.lib
>
I like that sort of parameterizing.  It puts the variables up front,
viewable at a glance.  I'd add the AMBLIST2 DSNs to the SET list.

Can something such as "SET DISP={PASS|CATLG} be used to control
temp vs. permanent workfiles?

>//*   *
>//*---*
>//ST010  EXEC PGM=IDCAMS
>//SYSPRINT DD SYSOUT=*
>//SYSIN DD *,SYMBOLS=(JCLONLY,SYMBLOG)
> DELETE &SYSUID..AMBLIST2
> IF MAXCC=8 THEN SET MAXCC=0
>/*
>//*---*
>//*   *
>//*---*
>//ST020  EXEC PGM=AMBLIST
>//SYSPRINT DD DSN=&SYSUID..AMBLIST2,DISP=(,CATLG),
>// SPACE=(TRK,(5,5),RLSE)
>//LOADLIB  DD DISP=SHR,DSN=&INPLIB
>//SYSINDD *,SYMBOLS=(JCLONLY,SYMBLOG)
> LISTIDR DDN=LOADLIB,MEMBER=&INPMOD
>/*...
My very peculiar preference is to omit the IDCAMS steps and code either:
//HANDLE DD DSN=&SYSUID..AMBLIST2,DISP=(MOD,CATLG),
// SPACE=(TRK,(5,5),RLSE)
//SYSPRINT  DD  DISP=OLD,DSN=*.HANDLE,VOL=REF=*.HANDLE

Or:
//HANDLE DD DSN=&SYSUID..AMBLIST2,DISP=(MOD,DELETE),
// SPACE=(TRK,(5,5),RLSE)
//SYSPRINT DD DSN=&SYSUID..AMBLIST2,DISP=(MOD,CATLG),
// SPACE=(TRK,(5,5),RLSE)

But, performance?  Is a failing IDCAMS step less overhead than
an otiose DISP=(MOD,DELETE) etc.?

>I used "no-temp" dataset to better help in understanding the process.

-- gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Isolating a CSECT within a load module

2021-01-04 Thread CM Poncelet
To list all CSECTS (MODs) in an LMOD:
(Note the 'X' continuation char in col 72)
 
//AMBLIST EXEC PGM=AMBLIST
//SYSPRINT  DD DISP=SHR,DSN=
//ANYDD1    DD DISP=SHR,DSN= 
//SYSIN DD *
   LISTLOAD    TITLE=('DUMP  CSECTS  '),    X
   DDN=ANYDD1, X
   MEMBER=, X
   OUTPUT=XREF,    X
   RELOC=  
//*
//
 
To dump the contents of a CSECT (MOD) in an LMOD:
 
//SPZAP   EXEC PGM=AMASPZAP,COND=(4,LT) 
//SYSPRINT  DD SYSOUT=* 
//SYSLIB    DD DISP=SHR,DSN=
//SYSIN DD *
DUMP  
//*
//
 
Cheers, Chris Poncelet (retired sysprog)
 


On 04/01/2021 13:24, Greg Price wrote:
> On 2021-01-04 9:46 PM, Steff Gladstone wrote:
>> an anyone suggest a method of isolating or extracting a CSECT
>> (statically-linked called program) from a load module?
>
> Well, if it really is a load module, I'd suggest delinking it into an
> object deck. Potentially suitable delinkers are available at cbttape.org.
>
> The one I'm most familiar with is David Noon's delinker which ended up
> being called DELINKI (to distinguish it from the the OS/360 era
> DELINK0, which I believe was enhanced in due course to cater for
> 31-bit modes).
>
> The reason I am more familiar with it is because REVIEW can invoke it
> dynamically. In this usage scenario, you would display the member list
> with a REVIEW program.library command, tag the relevant member(s) with
> the necessary T selection code(s) (or else have every member
> delinked), and then issue the DELINK primary command.
>
> Program DELINKI would be dynamically invoked to delink the selected
> program(s) into the nominated output data set (a detail which I did
> not mention before).
>
> For your situation, I'd expect that you would be better off just
> downloading and "installing" CBT file 90 and figuring out how to run
> it as a stand-alone utility to delink the CSECT of interest. If I can
> figure out how to call it dynamically, it can't be that hard to run it
> in its own job step.
>
> Cheers,
> Greg
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
> .
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: CICS COBOL co-compiler licensing?

2021-01-04 Thread R.S.

W dniu 30.12.2020 o 22:14, Charles Mills pisze:

1. Yes. That is what would be licensed, the necessary libraries.
2. Really? You never heard of a compile sandbox?
I can imagine compiler on other machine, but I cannot imagine software 
development for CICS with no CICS environment.
And I consider "compiler sandbox" as cumbersome. Yes, I heard about 
licencing.




3. That is more or less what I am asking about -- what are the license
options. "I'll just use R.S.'s machine" is probably not the answer I need.
I'm sorry for your dissappointment. However, please read all the 
subpoints I wrote. There are 5 of them, and only one is disappointing.

 .




--
Radoslaw Skorupka
Lodz, Poland








Charles


-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
Behalf Of R.S.
Sent: Wednesday, December 30, 2020 10:30 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: CICS COBOL co-compiler licensing?

W dniu 30.12.2020 o 18:46, Charles Mills pisze:

Does anyone know if there is an IBM license that covers the CICS COBOL
co-compiler short of a full-blown CICS TS license?

In other words, could you license the co-compiler for a "development
machine" without having to license the full CICS transaction server?

Few remarks
1. I may be wrong, but isn't it required to have some CICS libraries for
compilation?
2. Despite the above - I cannot imagine real programmer work without
runtime environment. So, coding a program for CICS environment without
the CICS itself is like coding z/OS program with no access to z/OS.
3. For real case there are some cost-effective options for program
development:
a) special licensing (several options) for regular machine
b) ADCD
c) Hercules ^H^H! zPDT with ADCD (that means your PC plus USB dongle
plus z/OS with IBM products suite)
d) remote access to remote machine on IBM premises (isn't it cloud? ;-) )
e) ask your colleague with access to the machine. I'm not sure about
legal issues, but I think I can allow my colleague to use my laptop and
MS Word. IMHO the same apply to use my laptop with my compiler. Why not
use "my" mainframe? I'm curious about it.





==

Jeśli nie jesteś adresatem tej wiadomości:

- powiadom nas o tym w mailu zwrotnym (dziękujemy!),
- usuń trwale tę wiadomość (i wszystkie kopie, które wydrukowałeś lub zapisałeś 
na dysku).
Wiadomość ta może zawierać chronione prawem informacje, które może wykorzystać 
tylko adresat. Przypominamy, że każdy, kto rozpowszechnia (kopiuje, 
rozprowadza) tę wiadomość lub podejmuje podobne działania, narusza prawo i może 
podlegać karze.

mBank S.A. z siedzibą w Warszawie, ul. Prosta 18, 00-850 Warszawa,www.mBank.pl, 
e-mail: kont...@mbank.pl. Sąd Rejonowy dla m. st. Warszawy XII Wydział 
Gospodarczy Krajowego Rejestru Sądowego, KRS 025237, NIP: 526-021-50-88. 
Kapitał zakładowy (opłacony w całości) według stanu na 01.01.2020 r. wynosi 
169.401.468 złotych.

Jesteśmy administratorem twoich danych osobowych, które podałeś w związku z 
prowadzoną z nami korespondencją. Przetwarzamy te dane dla celów, które 
wynikają z przedmiotu korespondencji, w tym związanych z prowadzoną 
działalnością bankową.
Więcej informacji o tym jak chroniony i przetwarzamy dane osobowe znajdziesz w 
Pakietach RODO (w wersji polskiej i angielskiej), które są na www.mbank.pl/rodo


If you are not the addressee of this message:

- let us know by replying to this e-mail (thank you!),
- delete this message permanently (including all the copies which you have 
printed out or saved).
This message may contain legally protected information, which may be used 
exclusively by the addressee.Please be reminded that anyone who disseminates 
(copies, distributes) this message or takes any similar action, violates the 
law and may be penalised.

mBank S.A. with its registered office in Warsaw, ul. Prosta 18, 00-850 
Warszawa,www.mBank.pl, e-mail: kont...@mbank.pl. District Court for the Capital 
City of Warsaw, 12th Commercial Division of the National Court Register, KRS 
025237, NIP: 526-021-50-88. Fully paid-up share capital amounting to PLN 
169.401.468 as at 1 January 2020.

We are the controller of your personal data, which you provided in connection 
with correspondence with us. We process your data for purposes resulting from 
the subject of correspondence, including those related to the banking services.
More information on how we protect and process personal data can be found in 
the GDPR Packages (in English and Polish), which are on www.mbank.pl/rodo.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Isolating a CSECT within a load module

2021-01-04 Thread Massimo Biancucci
Steff,

I've tried to use sort to help.

// EXPORT SYMLIST=*
// SET INPMOD=oldmd
// SET OUTMOD=newmod
// SET INPLIB=myold.lib
// SET OUTLIB=mynew.lib
//*---*
//*   *
//*---*
//ST010  EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *,SYMBOLS=(JCLONLY,SYMBLOG)
 DELETE &SYSUID..AMBLIST2
 IF MAXCC=8 THEN SET MAXCC=0
/*
//*---*
//*   *
//*---*
//ST020  EXEC PGM=AMBLIST
//SYSPRINT DD DSN=&SYSUID..AMBLIST2,DISP=(,CATLG),
// SPACE=(TRK,(5,5),RLSE)
//LOADLIB  DD DISP=SHR,DSN=&INPLIB
//SYSINDD *,SYMBOLS=(JCLONLY,SYMBLOG)
 LISTIDR DDN=LOADLIB,MEMBER=&INPMOD
/*
//*---*
//*   *
//*---*
//ST030  EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *,SYMBOLS=(JCLONLY,SYMBLOG)
 DELETE &SYSUID..AMBLIST2.CMD
 IF MAXCC=8 THEN SET MAXCC=0
/*
//*---*
//*   *
//*---*
//ST040  EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTIN  DD DSN=&SYSUID..AMBLIST2,DISP=SHR
//SORTOUT DD DSN=&SYSUID..AMBLIST2.CMD,DISP=(,CATLG),
// SPACE=(TRK,(5,5),RLSE),DCB=(LRECL=80,RECFM=FB,DSORG=PS)
//SYSINDD *,SYMBOLS=(JCLONLY,SYMBLOG)
 SORT FIELDS=COPY
 OUTFIL FNAMES=SORTOUT,REMOVECC,
  INCLUDE=(2,10,CH,EQ,C'CSECT:',AND,
   12,8,CH,NE,C'&OUTMOD'),
 OUTREC=(C' REPLACE ',12,8,80:X),
  TRAILER1=(' INCLUDE SYSLIB(&INPMOD)',/,
   ' NAME &OUTMOD(R)')
/*
//*---*
//*   *
//*---*
//ST050EXEC PGM=HEWL,
// PARM='LET,XREF,MAP,LIST,NCAL'
//SYSPRINT DD  SYSOUT=*
//SYSUT1   DD  DSN=&&SYSUT1,SPACE=(1024,(120,120),,,ROUND),
// DCB=BUFNO=1
//*YSLIN   DD DISP=SHR,DSN=J48017.OSET.LOAD(IRXINIT)
//SYSLIB   DD  DISP=SHR,DSN=&INPLIB
//SYSLMOD  DD  DISP=SHR,DSN=&OUTLIB(&OUTMOD)
//SYSLIN   DD  DISP=SHR,DSN=&SYSUID..AMBLIST2.CMD
//*---*
//*   *
//*---*
//ST060  EXEC PGM=AMBLIST
//SYSPRINT DD SYSOUT=*
//LOADLIB  DD DISP=SHR,DSN=&OUTLIB
//SYSINDD *,SYMBOLS=(JCLONLY,SYMBLOG)
 LISTIDR DDN=LOADLIB,MEMBER=&OUTMOD
 LISTLOAD DDN=LOADLIB,MEMBER=&OUTMOD
/*

It seems working (double check please).
I used "no-temp" dataset to better help in understanding the process.
It would be not so hard the case you need to isolate multiple modules into
one single output module.

Best regards.

Max




Mail
priva di virus. www.avast.com

<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Il giorno lun 4 gen 2021 alle ore 11:46 Steff Gladstone <
steff.gladst...@gmail.com> ha scritto:

> Greetings,
>
> Can anyone suggest a method of isolating or extracting a CSECT
> (statically-linked called program) from a load module?  The only (clumsy)
> method I can think of is using (within the linkage editor or binder) a
> REPLACE statement ahead of an INCLUDE statement and specifying in the
> REPLACE all of the other CSECTS in the load module.  For example, if the
> load module is called LOADMOD1 and contains CSECTS  A,B,C,D,E,F,G,H and I
> want to isolate CSECT F, I would code:
>
>   REPLACE A,B,C,D,E,G,H
>   INCLUDE SYSLIB(LOADMOD1)
>   NAME F(R)
>
> Obviously this is unwieldy for a load module with lots of CSECTs.
>
> Does anyone have a more elegant way of doing this?
>
> Thanks,
> Steff
>
> --
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Isolating a CSECT within a load module

2021-01-04 Thread Paul Gilmartin
On Mon, 4 Jan 2021 12:45:37 +0200, Steff Gladstone wrote:
>
>... using (within the linkage editor or binder) a
>REPLACE statement ahead of an INCLUDE statement and specifying in the
>REPLACE all of the other CSECTS in the load module.  ...
>
>Obviously this is unwieldy for a load module with lots of CSECTs.
>
Might that be scripted, filtering the output of AMBLIST to generate
SYSLIN commands?  Computers are good at doing unwieldy stuff.

Does Binder impose a limit on number of REPLACE statements?
Even if so, use multiple passes.

-- gil

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: Isolating a CSECT within a load module

2021-01-04 Thread Greg Price

On 2021-01-04 9:46 PM, Steff Gladstone wrote:

an anyone suggest a method of isolating or extracting a CSECT
(statically-linked called program) from a load module?


Well, if it really is a load module, I'd suggest delinking it into an 
object deck. Potentially suitable delinkers are available at cbttape.org.


The one I'm most familiar with is David Noon's delinker which ended up 
being called DELINKI (to distinguish it from the the OS/360 era DELINK0, 
which I believe was enhanced in due course to cater for 31-bit modes).


The reason I am more familiar with it is because REVIEW can invoke it 
dynamically. In this usage scenario, you would display the member list 
with a REVIEW program.library command, tag the relevant member(s) with 
the necessary T selection code(s) (or else have every member delinked), 
and then issue the DELINK primary command.


Program DELINKI would be dynamically invoked to delink the selected 
program(s) into the nominated output data set (a detail which I did not 
mention before).


For your situation, I'd expect that you would be better off just 
downloading and "installing" CBT file 90 and figuring out how to run it 
as a stand-alone utility to delink the CSECT of interest. If I can 
figure out how to call it dynamically, it can't be that hard to run it 
in its own job step.


Cheers,
Greg

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Isolating a CSECT within a load module

2021-01-04 Thread Steff Gladstone
Greetings,

Can anyone suggest a method of isolating or extracting a CSECT
(statically-linked called program) from a load module?  The only (clumsy)
method I can think of is using (within the linkage editor or binder) a
REPLACE statement ahead of an INCLUDE statement and specifying in the
REPLACE all of the other CSECTS in the load module.  For example, if the
load module is called LOADMOD1 and contains CSECTS  A,B,C,D,E,F,G,H and I
want to isolate CSECT F, I would code:

  REPLACE A,B,C,D,E,G,H
  INCLUDE SYSLIB(LOADMOD1)
  NAME F(R)

Obviously this is unwieldy for a load module with lots of CSECTs.

Does anyone have a more elegant way of doing this?

Thanks,
Steff

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN