Re: Assembler courses

2022-09-20 Thread David Crayford

On 20/09/2022 10:56 pm, Michael Stein wrote:

I have been coding in C++ and Java for so long OOP is second nature to me
now. Well, in C++ I prefer the interfaces using templates. Java has morphed
into into a hybrid OO/FP language since the introduction of the Streams API
in Java 8. It's common now not to code imperative loop statements at all.
One can use object based programming in any language that supports function
pointers. I have seen a lot of HLASM code that would benefit from such a
design. One of the key principles of OO was to replace conditional logic
with polymorphic types. An example in C is the z/OS stdio library. fopen()
is a factory function that returns an opaque handle with read/write/close
functions pointers set that can handle many different access methods using
the same abstract functions. This is a clean design that unfortunately isn't
as common as it should be.

And when you open a DCB for QSAM you don't care about the device type...


Not quite what I was talking about which is polymorphism. For example, 
fopen() can instantiate QSAM, BSAM, VSAM (KSDS, RRDS, ESDS), Hiperspace, 
z/OS UNIX file etc. I have no doubt that object based design is possible in
assembler but I have never seen it. I've seen plenty of structured 
programming using macros. The majority of HLASM programmers haven't been 
exposed to OOP so don't look to solve problems using that paradigm.





How old is that design?
  


--
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: Racf userid - CICS started as a job

2022-09-20 Thread Shaffer, Terri
Thanks, that's probably the simplest way.. Awesome

Ms Terri E Shaffer
Senior Systems Engineer,
z/OS Support:
ACIWorldwide - Telecommuter
H(412-766-2697) C(412-519-2592)
terri.shaf...@aciworldwide.com

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Lennie Dymoke-Bradshaw
Sent: Tuesday, September 20, 2022 7:42 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Racf userid - CICS started as a job

EXTERNAL EMAIL: Do not click links or open attachments unless you know the 
content is safe.


Why not code the userid on the Jobcard and then give the users who submit the 
job READ access to the SURROGAT profile for the userid?
https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ibm.com%2Fdocs%2Fen%2Fzos%2F2.5.0%3Ftopic%3Dsubmitted-allowing-surrogate-job-submission&data=05%7C01%7Cterri.shaffer%40ACIWORLDWIDE.COM%7Cc74ba509e2e44ccded4708da9b61b79c%7Cd1b7f1185cb24d4e85a382e07efb07e9%7C1%7C0%7C637993141273312357%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=J5LstzQoYZnX%2FF3AMoU2mgdqrVL7knX0tudIPxs5Y%2Fw%3D&reserved=0


Lennie Dymoke-Bradshaw
https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Frsclweb.com%2F&data=05%7C01%7Cterri.shaffer%40ACIWORLDWIDE.COM%7Cc74ba509e2e44ccded4708da9b61b79c%7Cd1b7f1185cb24d4e85a382e07efb07e9%7C1%7C0%7C637993141273312357%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=cwldOGh4uHCQS7PpVvwIwfsvzQMCBhV%2BpkWboLtUZ04%3D&reserved=0
'Dance like no one is watching. Encrypt like everyone is.'

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Shaffer, Terri
Sent: 21 September 2022 00:27
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Racf userid - CICS started as a job

Hi,
I am asking this in the main forum hopefully it will be a simple answer, that I 
just don't see.

So I have lots of experience setting up RACF  STARTED class with STDATA so that 
started tasks run under a certain userid.

Here we run our CICS's as jobs, since we are a development company, the 
programmers, can start/stop their CICS's when they need to.

We are doing WEB pipeline development and I setup the directory structure for 
the CICSDFLT userid and the group is everyone else.

If a batch job submits/starts CICS the CICS userid is picked up and everything 
works great.

If the user needs to recycle the region its picking up their userid and then 
the CICS gets access issues.

Is there a way to force it to use the DFLTUSER for batch jobs like I can setup 
for started tasks?

I think I could use user=DFLTUSER on the jobcard, but then I would have to 
setup those userids as RESTRICTED, because no password. There is a small 
security risk with this, but these userids don't have TSO Segments, so its a 
limited exposure.

Is there any other way to set this up?  Besides as STC's.

Ms Terri E Shaffer
Senior Systems Engineer,
z/OS Support:
ACIWorldwide - Telecommuter
H(412-766-2697) C(412-519-2592)
terri.shaf...@aciworldwide.com

 [https://go.aciworldwide.com/rs/030-ROK-804/images/aci-footer.jpg] 
 This email message and any attachments may 
contain confidential, proprietary or non-public information. The information is 
intended solely for the designated recipient(s). If an addressing or 
transmission error has misdirected this email, please notify the sender 
immediately and destroy this email. Any review, dissemination, use or reliance 
upon this information by unintended recipients is prohibited. Any opinions 
expressed in this email are those of the author personally.

--
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

 [https://go.aciworldwide.com/rs/030-ROK-804/images/aci-footer.jpg] 

This email message and any attachments may contain confidential, proprietary or 
non-public information. The information is intended solely for the designated 
recipient(s). If an addressing or transmission error has misdirected this 
email, please notify the sender immediately and destroy this email. Any review, 
dissemination, use or reliance upon this information by unintended recipients 
is prohibited. Any opinions expressed in this email are those of the author 
personally.

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


Re: Racf userid - CICS started as a job

2022-09-20 Thread Lennie Dymoke-Bradshaw
Why not code the userid on the Jobcard and then give the users who submit the 
job READ access to the SURROGAT profile for the userid?
https://www.ibm.com/docs/en/zos/2.5.0?topic=submitted-allowing-surrogate-job-submission


Lennie Dymoke-Bradshaw
https://rsclweb.com 
‘Dance like no one is watching. Encrypt like everyone is.’

-Original Message-
From: IBM Mainframe Discussion List  On Behalf Of 
Shaffer, Terri
Sent: 21 September 2022 00:27
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Racf userid - CICS started as a job

Hi,
I am asking this in the main forum hopefully it will be a simple answer, that I 
just don’t see.

So I have lots of experience setting up RACF  STARTED class with STDATA so that 
started tasks run under a certain userid.

Here we run our CICS's as jobs, since we are a development company, the 
programmers, can start/stop their CICS's when they need to.

We are doing WEB pipeline development and I setup the directory structure for 
the CICSDFLT userid and the group is everyone else.

If a batch job submits/starts CICS the CICS userid is picked up and everything 
works great.

If the user needs to recycle the region its picking up their userid and then 
the CICS gets access issues.

Is there a way to force it to use the DFLTUSER for batch jobs like I can setup 
for started tasks?

I think I could use user=DFLTUSER on the jobcard, but then I would have to 
setup those userids as RESTRICTED, because no password. There is a small 
security risk with this, but these userids don’t have TSO Segments, so its a 
limited exposure.

Is there any other way to set this up?  Besides as STC's.

Ms Terri E Shaffer
Senior Systems Engineer,
z/OS Support:
ACIWorldwide – Telecommuter
H(412-766-2697) C(412-519-2592)
terri.shaf...@aciworldwide.com

 [https://go.aciworldwide.com/rs/030-ROK-804/images/aci-footer.jpg] 
 This email message and any attachments may 
contain confidential, proprietary or non-public information. The information is 
intended solely for the designated recipient(s). If an addressing or 
transmission error has misdirected this email, please notify the sender 
immediately and destroy this email. Any review, dissemination, use or reliance 
upon this information by unintended recipients is prohibited. Any opinions 
expressed in this email are those of the author personally.

--
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: Racf userid - CICS started as a job

2022-09-20 Thread Tom Brennan

Maybe surrogate job submission?  I do like the USER= on this sample:
https://www.ibm.com/docs/en/zos/2.3.0?topic=submitted-allowing-surrogate-job-submission

On 9/20/2022 4:26 PM, Shaffer, Terri wrote:

Hi,
I am asking this in the main forum hopefully it will be a simple answer, that I 
just don’t see.

So I have lots of experience setting up RACF  STARTED class with STDATA so that 
started tasks run under a certain userid.

Here we run our CICS's as jobs, since we are a development company, the 
programmers, can start/stop their CICS's when they need to.

We are doing WEB pipeline development and I setup the directory structure for 
the CICSDFLT userid and the group is everyone else.

If a batch job submits/starts CICS the CICS userid is picked up and everything 
works great.

If the user needs to recycle the region its picking up their userid and then 
the CICS gets access issues.

Is there a way to force it to use the DFLTUSER for batch jobs like I can setup 
for started tasks?

I think I could use user=DFLTUSER on the jobcard, but then I would have to 
setup those userids as RESTRICTED, because no password. There is a small 
security risk with this, but these userids don’t have TSO Segments, so its a 
limited exposure.

Is there any other way to set this up?  Besides as STC's.

Ms Terri E Shaffer
Senior Systems Engineer,
z/OS Support:
ACIWorldwide – Telecommuter
H(412-766-2697) C(412-519-2592)
terri.shaf...@aciworldwide.com

  [https://go.aciworldwide.com/rs/030-ROK-804/images/aci-footer.jpg] 

This email message and any attachments may contain confidential, proprietary or 
non-public information. The information is intended solely for the designated 
recipient(s). If an addressing or transmission error has misdirected this 
email, please notify the sender immediately and destroy this email. Any review, 
dissemination, use or reliance upon this information by unintended recipients 
is prohibited. Any opinions expressed in this email are those of the author 
personally.

--
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


Racf userid - CICS started as a job

2022-09-20 Thread Shaffer, Terri
Hi,
I am asking this in the main forum hopefully it will be a simple answer, that I 
just don’t see.

So I have lots of experience setting up RACF  STARTED class with STDATA so that 
started tasks run under a certain userid.

Here we run our CICS's as jobs, since we are a development company, the 
programmers, can start/stop their CICS's when they need to.

We are doing WEB pipeline development and I setup the directory structure for 
the CICSDFLT userid and the group is everyone else.

If a batch job submits/starts CICS the CICS userid is picked up and everything 
works great.

If the user needs to recycle the region its picking up their userid and then 
the CICS gets access issues.

Is there a way to force it to use the DFLTUSER for batch jobs like I can setup 
for started tasks?

I think I could use user=DFLTUSER on the jobcard, but then I would have to 
setup those userids as RESTRICTED, because no password. There is a small 
security risk with this, but these userids don’t have TSO Segments, so its a 
limited exposure.

Is there any other way to set this up?  Besides as STC's.

Ms Terri E Shaffer
Senior Systems Engineer,
z/OS Support:
ACIWorldwide – Telecommuter
H(412-766-2697) C(412-519-2592)
terri.shaf...@aciworldwide.com

 [https://go.aciworldwide.com/rs/030-ROK-804/images/aci-footer.jpg] 

This email message and any attachments may contain confidential, proprietary or 
non-public information. The information is intended solely for the designated 
recipient(s). If an addressing or transmission error has misdirected this 
email, please notify the sender immediately and destroy this email. Any review, 
dissemination, use or reliance upon this information by unintended recipients 
is prohibited. Any opinions expressed in this email are those of the author 
personally.

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


Re: Assembler courses

2022-09-20 Thread Paul Gilmartin
On Tue, 20 Sep 2022 14:31:55 -0700, Tom Brennan wrote:
>...
>in assembler.  So years ago I wrote some code to somewhat mimic printf,
>and never looked back.  Invoked by macros something like this:
>
>  #PRINTF SYSPRINT,'THIS IS LINE %D OF %D',VAR1,VAR2
>  
We once did something similar but simpler; only text substitutions:
WTOMSG 'This is line &1 of &2..',VAR1,VAR2

In an era when CMS was beginning to use Mixed Case messages, we
thought to get ahead of the trend.  But we provided customers a
configuration option to translate messages UPPER CASE.

I argued that only the template, not the substituted symbols should be
translated.  I was outvoted, even though I cited a Horrible Example:
In a CLIST I had unwittingly (mischievously?) coded "end".  The
resulting message was something like:
IKJ00WTF INVALID COMMAND 'END'
In the interest of convention, it had obliterated the essence of the error.
In extremis, it could have been displayed in hex.

-- 
gil

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


Re: Assembler courses

2022-09-20 Thread Tom Brennan
Spitting out messages with formatted values was always a hassle for me 
in assembler.  So years ago I wrote some code to somewhat mimic printf, 
and never looked back.  Invoked by macros something like this:


 #PRINTF SYSPRINT,'THIS IS LINE %D OF %D',VAR1,VAR2
 #PRINTF SYSPRINT,'THIS IS STRING %S HERE',STR1
 #PRINTF SYSPRINT,'DATA IS %08X',POINTER

On 9/20/2022 12:23 AM, Colin Paice wrote:

For me, the challenge with learning assembler is how do you input and
output.  I would have an assembler program called from a C program - and
teach them how to use the C "printf" function from assembler  to output
data.  The class can then focus on the assembler code, and get it working.

I learned the hard way, using the CMS PRY debugging tool to step through
the code, and look at the effect of the instructions.

Colin

--
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: z/OSMF and Health Checker butting heads

2022-09-20 Thread Peter Relson
I'm glad that you were able to figure things out at least enough to get by.

Now, a little more from our side.

To be very specific, the window we are discussing does not let you "check" "use 
SAF setup" (for the whole window, let alone for each of auth, routcode, mscope, 
storage, and auto). But "use SAF setup" is presented as the default for a 
drop-down. That drop-down lets you (at least for routcode) select ALL, NONE, 
use SAF setup. And you can also enter your own value(s). Maybe "ALL" for 
routcode is questionable in light of this lengthy discussion (even if you might 
choose something other than ALL for mscope).

But let's say that you choose to take the "Use recommended values" path.
You can check that box. Apparently (but I'm not certain) that will not do 
anything until you hit "OK" even to show you what the "recommended values" are.
I'm not happy about that, and I want to look into a way (at least) to show the 
recommended values so that you can decide if they are OK or not before blessing 
them.

Once you hit OK, you have saved those settings and they'll keep showing up 
until you change them.
It is true (another thing we need to look into) that those "recommended values" 
have "ALL" for routcode and "ALL" for mscope.
As was pointed out directly, that is what gets things into conflict with the 
health check. That combination is not a value recommended by IBM.
So we need to do something about that.

I've got a feeling that there is no right "recommended value". If MScope ALL is 
recommended (is it?) then what routing code selection would be recommended? It 
can't be "all", it can't be "all except 11". So which routing code(s) would you 
choose to remove from the recommendation? That's a customer decision to be 
based, at least in part, on their use of routing codes.

There might be a reasonable "default value". Perhaps (for example) all the 
low-numbered routing codes except 11 (since there is little use of the 
high-numbered routing codes, I think).

So maybe the window should let you view "default values". And then let you say 
OK (or not). But not simply let you go forward with "recommended values".
Or maybe the "recommended value" should be "use SAF setup" for all the items. 
That has some appeal to me.

I'm sure there are many possibilities, and some will be good for some folks and 
less good for others.
But at a minimum, we don't want to conflict, by default, with our own 
recommended best practices.

Peter Relson
z/OS Core Technology Design


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


Re: Broadcom´s COPYCAT equivalent

2022-09-20 Thread Albertus de Wet
Innovation (now Compuware, now BMC)'s FDR FatsCopy.

On Tue, Sep 20, 2022 at 1:19 PM Bodra - Pessoal <
02eda2bc565a-dmarc-requ...@listserv.ua.edu> wrote:

> Hello,
>
>
>
> Can anyone give me options to Broadcom´s software COPYCAT?
>
>
>
> Main job for this software will be migrate data stored in Oracle SL8500
> cartridge (9840D) to a new virtual cartridge keeping Tape Manager data
> intact
> (same volser, save expiration date, etc…)
>
>
>
> Thanks
>
>
>
> Carlos Bodra
>
> IBM zEnterprise Certified
>
> São Paulo – SP – Brazil
>
>
>
>
>
>
> --
> 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


Broadcom´s COPYCAT equivalent

2022-09-20 Thread Bodra - Pessoal
Hello,

 

Can anyone give me options to Broadcom´s software COPYCAT?

 

Main job for this software will be migrate data stored in Oracle SL8500
cartridge (9840D) to a new virtual cartridge keeping Tape Manager data intact
(same volser, save expiration date, etc…)

 

Thanks

 

Carlos Bodra

IBM zEnterprise Certified

São Paulo – SP – Brazil

 

 


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


Some free encryption, security and certificate education

2022-09-20 Thread Charles Mills
X-Posted RACF-L and IBM-MAIN.

If you would like some free education next week in the areas of the subject
line above, I will be teaching a slightly-expanded version of my "how
certificates work" class, which has been well-received in the past. In
addition there is an encryption class from the master, Greg Boyd, and a
Security class from the irrepressible Julie Bergh. Totally free. I am sure
the sponsor would love you to buy their products, but in my case at least,
there is absolutely no product push or even product-specific education. Two
days, four hours per day, but I'm sure you can mix-and-match as you wish.

https://my.demio.com/ref/zKG7AMPlxgPto62K 

If you have attended my certificate class before, this is an expanded and
updated version. I have 90+ minutes to work with rather than 60, so it will
be a little less of a jam-packed "60 slides in 60 minutes." There is
expanded coverage of the impact of Quantum -- you may be surprised -- and
the mechanics of "perfect forward security" key exchange. It's a class in
the technology of certificates -- how certificates and TLS actually work --
not a detailed how-to class with specific RACDCERT command examples. The
idea is to convey an understanding of certificates and SSL/TLS so that when
you issue specific commands you will get what is going on under the covers.

Hope to see you there.

Charles 

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


Re: Assembler courses

2022-09-20 Thread Michael Stein
> I have been coding in C++ and Java for so long OOP is second nature to me
> now. Well, in C++ I prefer the interfaces using templates. Java has morphed
> into into a hybrid OO/FP language since the introduction of the Streams API
> in Java 8. It's common now not to code imperative loop statements at all.
> One can use object based programming in any language that supports function
> pointers. I have seen a lot of HLASM code that would benefit from such a
> design. One of the key principles of OO was to replace conditional logic
> with polymorphic types. An example in C is the z/OS stdio library. fopen()
> is a factory function that returns an opaque handle with read/write/close
> functions pointers set that can handle many different access methods using
> the same abstract functions. This is a clean design that unfortunately isn't
> as common as it should be.

And when you open a DCB for QSAM you don't care about the device type...

How old is that design?
 

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


Re: What is the preferred way of starting PAGENT

2022-09-20 Thread Claude Richbourg
That would be one way to use automation to start / stop PAGENT as needed. 

But, the easiest way for us is to let TCP/IP start it as it comes up. We add 
the PAGENT name to the AUTOLOG
part of the PROFILE member. That way TCP/IP can start is as needed. If it ever 
goes down, TCP/IP can restart it automatically.

For us, we let PAGENT run all the time.

Thanks,
Claude

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


Re: Assembler courses

2022-09-20 Thread Seymour J Metz
I worked on a project in Assembler H that was influenced by OO ideas and used 
"late bound calls" (function tables).


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3


From: IBM Mainframe Discussion List [IBM-MAIN@LISTSERV.UA.EDU] on behalf of 
David Crayford [dcrayf...@gmail.com]
Sent: Tuesday, September 20, 2022 3:09 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Assembler courses

On 19/09/2022 7:59 am, Charles Mills wrote:
>> I've never had occasion to try write OO programs on the mainframe.
>> to me it seems that the chief value of classes and class methods is a
>> way of organizing my subroutines and functions and limiting their
>> scope to particular uses which seems to me would be useful in some
>> mainframe programs
>> I gather some OO languages are available to OMVS users here
> Let me jump in here with a very personal note and say I *have* written a very 
> successful* mainframe program in a totally OO paradigm. So yes, OO is totally 
> relevant to mainframe software.

And kudos to you because not everybody could make the jump from HLASM to
C++.

I have been coding in C++ and Java for so long OOP is second nature to
me now. Well, in C++ I prefer the interfaces using templates. Java has
morphed into into a hybrid OO/FP language since the introduction of the
Streams API in Java 8. It's common now not to code imperative loop
statements at all. One can use object based programming in any language
that supports function pointers. I have seen a lot of HLASM code that
would benefit from such a design. One of the key principles of OO was to
replace conditional logic with polymorphic types. An example in C is the
z/OS stdio library. fopen() is a factory function that returns an opaque
handle with read/write/close functions pointers set that can handle many
different access methods using the same abstract functions. This is a
clean design that unfortunately isn't as common as it should be.


>
> To me, yes, it is a method of organization of data and subroutines. It is a 
> totally different way of thinking about things. Let me see if I can express 
> this. You have a program. You want to add some functionality to it. Rather 
> than thinking separately "I will need some new data fields" and "I will need 
> some new subroutines" instead you think "I will need a 'package' of new data 
> fields and subroutines that operate on those fields." It is a way of 
> organizing the effort that I found to work extremely well for me. I cannot 
> picture writing a large program any other way: not as a hodgepodge of fields 
> and subroutines, but rather as a collection of smallish 'packages' of data 
> and their attendant subroutines.
>
> Utterly industry-standard C++ is available for developing both "legacy" and 
> UNIX programs on z/OS. The program I refer to above is run with JCL as an 
> STC; nothing external about it screams "C" or "OO" or "OMVS."
>
> *Licensed by quite a few "name" companies and then acquired by a big-name 
> software company for fairly big bucks.
>
> Charles
>
> --
> 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

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


Re: Assembler courses

2022-09-20 Thread Peter Sylvester

Hi,

49 years ago I 'stumbled' over Simula 67 (see video 1), well, at the university "informatik 1" 
course. I had gotten an Algol60 book given to me by my math teacher 2 years earlier. The student a 
year older learned PL/1. WE had an /168 and the Simula 67 system from the NCC (you can find it on 
the CBTTAPE, the turnkey system and elsewhere.


To assembler: On error, you got a nicely formatted storage dump of objects. One 
motivation

After two years and the first graduation (Vordiplom) with punched cards etc (but using the MFT like 
a PC), a got a job at at  the CS research center GMD:  MVS, TSO SPF, another universe. It would take 
to much here to explain all the reason why I did a lot of assembler (because of this I was able to 
work in an internship at the swiss Colony Computing Center), but I always more than mildly disliked 
aka hated the non structured way of assembled. My work was to write a fast program to create 
microfiches (block letters, index pages). The result were a set of structured programming macros 
(also on the cbttape).


Later  with UCLA/Mail, the formatting of "objects" on traces, dumps. and stack of function. Just 
read the "assembler" code (CBTTAPE).


Anyway, here some nice videos.

https://www.youtube.com/watch?v=pH-q2m5sb04

actually, why is smalltalk so close to objective C. Because of a Byte Magazine 
cover page.

https://www.youtube.com/watch?v=SFv8Wm2HdNM

https://www.youtube.com/watch?v=QM1iUe6IofM

https://www.youtube.com/watch?v=eEBOvqMfPoI

Some are provocative. There are many others. I really like "going virtually" to 
these conferences.

https://www.youtube.com/watch?v=_mZBa3sqTrI&t=45s

Sorry for this side track



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


Assembler courses

2022-09-20 Thread Colin Paice
For me, the challenge with learning assembler is how do you input and
output.  I would have an assembler program called from a C program - and
teach them how to use the C "printf" function from assembler  to output
data.  The class can then focus on the assembler code, and get it working.

I learned the hard way, using the CMS PRY debugging tool to step through
the code, and look at the effect of the instructions.

Colin

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


Re: Assembler courses

2022-09-20 Thread David Crayford

On 19/09/2022 7:59 am, Charles Mills wrote:

I've never had occasion to try write OO programs on the mainframe.
to me it seems that the chief value of classes and class methods is a
way of organizing my subroutines and functions and limiting their
scope to particular uses which seems to me would be useful in some
mainframe programs
I gather some OO languages are available to OMVS users here

Let me jump in here with a very personal note and say I *have* written a very 
successful* mainframe program in a totally OO paradigm. So yes, OO is totally 
relevant to mainframe software.


And kudos to you because not everybody could make the jump from HLASM to 
C++.


I have been coding in C++ and Java for so long OOP is second nature to 
me now. Well, in C++ I prefer the interfaces using templates. Java has 
morphed into into a hybrid OO/FP language since the introduction of the 
Streams API in Java 8. It's common now not to code imperative loop 
statements at all. One can use object based programming in any language 
that supports function pointers. I have seen a lot of HLASM code that 
would benefit from such a design. One of the key principles of OO was to 
replace conditional logic with polymorphic types. An example in C is the 
z/OS stdio library. fopen() is a factory function that returns an opaque 
handle with read/write/close functions pointers set that can handle many 
different access methods using the same abstract functions. This is a 
clean design that unfortunately isn't as common as it should be.





To me, yes, it is a method of organization of data and subroutines. It is a totally different way of thinking 
about things. Let me see if I can express this. You have a program. You want to add some functionality to it. 
Rather than thinking separately "I will need some new data fields" and "I will need some new 
subroutines" instead you think "I will need a 'package' of new data fields and subroutines that 
operate on those fields." It is a way of organizing the effort that I found to work extremely well for 
me. I cannot picture writing a large program any other way: not as a hodgepodge of fields and subroutines, 
but rather as a collection of smallish 'packages' of data and their attendant subroutines.

Utterly industry-standard C++ is available for developing both "legacy" and UNIX programs on z/OS. The 
program I refer to above is run with JCL as an STC; nothing external about it screams "C" or "OO" 
or "OMVS."

*Licensed by quite a few "name" companies and then acquired by a big-name 
software company for fairly big bucks.

Charles

--
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