Re: Passing STDENV DD to FTP via SYSIN

2020-09-10 Thread Wendell Lovewell
Hey Charles, I took you seriously the first time.  I appreciate your interest 
in helping. 

Bottom line, I'd like to come up with a job any z/OS customer could run, 
without requiring changes to any of their system files (like FTPCDATA or AT-TLS 
or RACF) that would allow them to transmit files to/from an FTP site using 
FTPS.  

I've pretty much given up on that--I can't find a way to do it without 
installing certificates used by the FTP server into their RACF/ACF2/Top Secret 
databases.  And even with the certificates in RACF, the only way I've gotten it 
to work is force FTP to use TLS 1.2 by setting the "GSK_PROTOCOL_TLSV1_2" 
environment variable to "ON" per this URL:  

https://www.ibm.com/support/pages/zos-communications-server-tls-needed-implement-tls-v12

That page does say for FTP the STDENV dataset should be RECFM=VB.  (I did try 
various combinations of DD *,DCB=(...), including DCB=(RECFM=VB), but JES 
didn't seem to allow that.)  Gil might be on to something with the temporary 
datasets not being available to spawned processes, but I've cataloged the 
IEBGENER'd file and the job still fails like it doesn't find the 
"GSK_PROTOCOL_TLSV1_2=ON" variable.

---

I'm not sure how to close this out, but as I've been typing this, I did figure 
out how to get around the STDENV problem.  I'm going to go ahead and leave what 
I've said so far in case someone else comes across this in the future, but 
here's a work-around: 

What I was trying to do was: 
//FTPXFER  EXEC PGM=FTP,REGION=4292K,
//PARM=('POSIX(ON) ALL31(ON)',
//   'ENVAR("_CEE_ENVFILE=DD:STDENV")/(EXIT')
//STDENV   DD *
GSK_PROTOCOL_TLSV1_2=ON
//*

Where the 'ENVAR("_CEE_ENVFILE=DD:STDENV") is telling LE to look for 
environment variables in the STDENV DD.  The STDENV file wasn't being found, 
but all it has is one variable name and value.  So it occurred to me that I 
could just put the variable and value in the PARM:

//FTPXFER  EXEC PGM=FTP,REGION=4292K,
//PARM=('POSIX(ON) ALL31(ON)',
//   'ENVAR("GSK_PROTOCOL_TLSV1_2=ON")/(EXIT')

Turns out, it works!  

Thanks for all your help.
Wendell

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


Re: Passing STDENV DD to FTP via SYSIN

2020-09-10 Thread Charles Mills

And I mean that second paragraph as a serious question : tell me and I will try 
to help; not as sarcasm. CharlesSent from a mobile; please excuse the brevity.
 Original message From: Charles Mills  Date: 
9/10/20  3:27 PM  (GMT-08:00) To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Passing 
STDENV DD to FTP via SYSIN I have considerable experience in hacking FTP into 
doing unnatural acts but not enough of a UNIX person to be totally up-to-speed 
on using environment variables.What is it that you are trying to get FTP to do 
that PARM= + SYSFTPD DD * + INPUT DD * will not accomplish?Charles-Original 
Message-From: IBM Mainframe Discussion List 
[mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of Wendell LovewellSent: Thursday, 
September 10, 2020 2:59 PMTo: ibm-m...@listserv.ua.EDUSubject: Passing STDENV 
DD to FTP via SYSINHello,I'm setting up a batch job to access our FTP server 
using FTPS and TLS 1.2.  (Forgive me if that nomenclature is less than 
perfect.)I've imported certficates, built a keyring, and come up with a 
combination of FTP client parameters that will allow me to connect to the 
server and upload a file://FTPXFER  EXEC PGM=FTP,REGION=4292K,//    
PARM=('POSIX(ON) ALL31(ON)',//   
'ENVAR("_CEE_ENVFILE=DD:STDENV")/(EXIT')//OUTPUT   DD SYSOUT=*//STDENV   DD 
DISP=SHR,DSN=WRL1.FTPS.STDENV//*//* //STDENV   DD *//* 
GSK_PROTOCOL_TLSV1_2=ON//*//SYSFTPD  DD *CLIENTERRCODES   EXTENDEDEPSV4 
   TRUEEXTENSIONS   AUTH_TLSFWFRIENDLY  
 TRUEKEYRING TCPIP/FTP.KEYRINGPASSIVEIGNOREADDR  
TRUESECUREIMPLICITZOS   FALSESECURE_FTP   REQUIREDSECURE_MECHANISM  
TLSSECURE_DATACONN    PRIVATESECURE_CTRLCONN    PRIVATESECURE_HOSTNAME   
REQUIREDTLSMECHANISM  FTPTLSRFCLEVEL CCCNONOTIFY/*//INPUT   
 DD  *I'm trying to make this as self-contained as possible, and would like to 
supply the variables via SYSIN rather than require the PS file named on the 
un-commented version of the STDENV DD.  BPXBATCH is the only program I can find 
documented that says "//STDENV DD *" is supported.  FTP, at least with the PARM 
I'm using, seems to ignore 
it.--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: Passing STDENV DD to FTP via SYSIN

2020-09-10 Thread Mike Hochee
Consistent with your comment about BPXBATCH, I suspect you will need to run FTP 
(via PARM= input) under BPXBATCH (via EXEC PGM=), and then the  //STDENV DD 
will be read.  

HTH, 
Mike 

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Wendell Lovewell
Sent: Thursday, September 10, 2020 5:59 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Passing STDENV DD to FTP via SYSIN

Caution! This message was sent from outside your organization.

Hello,

I'm setting up a batch job to access our FTP server using FTPS and TLS 1.2.  
(Forgive me if that nomenclature is less than perfect.)

I've imported certficates, built a keyring, and come up with a combination of 
FTP client parameters that will allow me to connect to the server and upload a 
file:

//FTPXFER  EXEC PGM=FTP,REGION=4292K,
//PARM=('POSIX(ON) ALL31(ON)',
//   'ENVAR("_CEE_ENVFILE=DD:STDENV")/(EXIT')
//OUTPUT   DD SYSOUT=*
//STDENV   DD DISP=SHR,DSN=WRL1.FTPS.STDENV
//*
//* //STDENV   DD *
//* GSK_PROTOCOL_TLSV1_2=ON
//*
//SYSFTPD  DD *
CLIENTERRCODES   EXTENDED
EPSV4TRUE
EXTENSIONS   AUTH_TLS
FWFRIENDLY   TRUE
KEYRING TCPIP/FTP.KEYRING
PASSIVEIGNOREADDR  TRUE
SECUREIMPLICITZOS   FALSE
SECURE_FTP   REQUIRED
SECURE_MECHANISM  TLS
SECURE_DATACONNPRIVATE
SECURE_CTRLCONNPRIVATE
SECURE_HOSTNAME   REQUIRED
TLSMECHANISM  FTP
TLSRFCLEVEL CCCNONOTIFY
/*
//INPUTDD  *

I'm trying to make this as self-contained as possible, and would like to supply 
the variables via SYSIN rather than require the PS file named on the 
un-commented version of the STDENV DD.  BPXBATCH is the only program I can find 
documented that says "//STDENV DD *" is supported.  FTP, at least with the PARM 
I'm using, seems to ignore it.

Is it possible to supply STDENV to FTP via SYSIN?

I hate to admit it, but I thought "Ok, I'll just IEBGENER the variable(s) into 
a VB LRECL=255 BLKSIZE=27998 file (like the one that works), and use that.  But 
strangely, I can't get that to work either--even though SUPERC confirms the 
files match.

TIA,
Wendell

--
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: Passing STDENV DD to FTP via SYSIN

2020-09-10 Thread Paul Gilmartin
On Thu, 10 Sep 2020 16:58:52 -0500, Wendell Lovewell wrote:
>...
>//FTPXFER  EXEC PGM=FTP,REGION=4292K,
>//PARM=('POSIX(ON) ALL31(ON)',
>//   'ENVAR("_CEE_ENVFILE=DD:STDENV")/(EXIT')
>
>I'm trying to make this as self-contained as possible, and would like to 
>supply the variables via SYSIN rather than require the PS file named on the 
>un-commented version of the STDENV DD.  BPXBATCH is the only program I can 
>find documented that says "//STDENV DD *" is supported.  FTP, at least with 
>the PARM I'm using, seems to ignore it.
>
>Is it possible to supply STDENV to FTP via SYSIN?
> 
Is it possible that the PGM=FTP job step task does a DYNALLOC INFO
of STDENV to extract the pathname or DSN of STDENV and passes
that to a forked child?  A SYSIN might not be available to that child.

>I hate to admit it, but I thought "Ok, I'll just IEBGENER the variable(s) into 
>a VB LRECL=255 BLKSIZE=27998 file (like the one that works), and use that.  
>But strangely, I can't get that to work either--even though SUPERC confirms 
>the files match.
> 
Are you using a LRECL=255 SYSIN?  That's possible if you avoid
TSO SUBMIT.

Likewise, a temporary data set might be unavailable to a child
process.  If not temporary, there's the chore of cleaning it up
at job end.  Perhaps DISP=(NEW,DELETE,DELETE).  Must the
DSN be catalogued?  That might require SMS.

Oops.  Would a child address space encounter an ENQ conflict with
its own parent?

-- gil

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


Re: Passing STDENV DD to FTP via SYSIN

2020-09-10 Thread Charles Mills
I have considerable experience in hacking FTP into doing unnatural acts but not 
enough of a UNIX person to be totally up-to-speed on using environment 
variables.

What is it that you are trying to get FTP to do that PARM= + SYSFTPD DD * + 
INPUT DD * will not accomplish?

Charles


-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of Wendell Lovewell
Sent: Thursday, September 10, 2020 2:59 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Passing STDENV DD to FTP via SYSIN

Hello,

I'm setting up a batch job to access our FTP server using FTPS and TLS 1.2.  
(Forgive me if that nomenclature is less than perfect.)

I've imported certficates, built a keyring, and come up with a combination of 
FTP client parameters that will allow me to connect to the server and upload a 
file:

//FTPXFER  EXEC PGM=FTP,REGION=4292K,
//PARM=('POSIX(ON) ALL31(ON)',
//   'ENVAR("_CEE_ENVFILE=DD:STDENV")/(EXIT')
//OUTPUT   DD SYSOUT=*
//STDENV   DD DISP=SHR,DSN=WRL1.FTPS.STDENV
//*
//* //STDENV   DD *
//* GSK_PROTOCOL_TLSV1_2=ON
//*
//SYSFTPD  DD *
CLIENTERRCODES   EXTENDED
EPSV4TRUE
EXTENSIONS   AUTH_TLS
FWFRIENDLY   TRUE
KEYRING TCPIP/FTP.KEYRING
PASSIVEIGNOREADDR  TRUE
SECUREIMPLICITZOS   FALSE
SECURE_FTP   REQUIRED
SECURE_MECHANISM  TLS
SECURE_DATACONNPRIVATE
SECURE_CTRLCONNPRIVATE
SECURE_HOSTNAME   REQUIRED
TLSMECHANISM  FTP
TLSRFCLEVEL CCCNONOTIFY
/*
//INPUTDD  *

I'm trying to make this as self-contained as possible, and would like to supply 
the variables via SYSIN rather than require the PS file named on the 
un-commented version of the STDENV DD.  BPXBATCH is the only program I can find 
documented that says "//STDENV DD *" is supported.  FTP, at least with the PARM 
I'm using, seems to ignore it.

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


Passing STDENV DD to FTP via SYSIN

2020-09-10 Thread Wendell Lovewell
Hello,

I'm setting up a batch job to access our FTP server using FTPS and TLS 1.2.  
(Forgive me if that nomenclature is less than perfect.)

I've imported certficates, built a keyring, and come up with a combination of 
FTP client parameters that will allow me to connect to the server and upload a 
file:

//FTPXFER  EXEC PGM=FTP,REGION=4292K,
//PARM=('POSIX(ON) ALL31(ON)',
//   'ENVAR("_CEE_ENVFILE=DD:STDENV")/(EXIT')
//OUTPUT   DD SYSOUT=*
//STDENV   DD DISP=SHR,DSN=WRL1.FTPS.STDENV
//*
//* //STDENV   DD *
//* GSK_PROTOCOL_TLSV1_2=ON
//*
//SYSFTPD  DD *
CLIENTERRCODES   EXTENDED
EPSV4TRUE
EXTENSIONS   AUTH_TLS
FWFRIENDLY   TRUE
KEYRING TCPIP/FTP.KEYRING
PASSIVEIGNOREADDR  TRUE
SECUREIMPLICITZOS   FALSE
SECURE_FTP   REQUIRED
SECURE_MECHANISM  TLS
SECURE_DATACONNPRIVATE
SECURE_CTRLCONNPRIVATE
SECURE_HOSTNAME   REQUIRED
TLSMECHANISM  FTP
TLSRFCLEVEL CCCNONOTIFY
/*
//INPUTDD  *

I'm trying to make this as self-contained as possible, and would like to supply 
the variables via SYSIN rather than require the PS file named on the 
un-commented version of the STDENV DD.  BPXBATCH is the only program I can find 
documented that says "//STDENV DD *" is supported.  FTP, at least with the PARM 
I'm using, seems to ignore it.

Is it possible to supply STDENV to FTP via SYSIN?

I hate to admit it, but I thought "Ok, I'll just IEBGENER the variable(s) into 
a VB LRECL=255 BLKSIZE=27998 file (like the one that works), and use that.  But 
strangely, I can't get that to work either--even though SUPERC confirms the 
files match.

TIA,
Wendell

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


Re: Support for 128-bit arithmetic - was: Re: PL/I support of vector instructions?

2020-09-10 Thread Paul Gilmartin
On Thu, 10 Sep 2020 15:35:37 +, Seymour J Metz wrote:

>Yes, you can always do multiple precision that way, but there is a performance 
>hit, especially from those conditional branches. Maybe we need skip 
>instructions such as the 7090 had.

Some computer architectures have an Add-With-Carry instruction
eliminating the need for some of those conditional branches.


From:  Thomas David Rivers
Sent: Wednesday, September 9, 2020 8:35 PM

Seymour J Metz wrote:
>
You would not need vector instructions to support FIXED BIN(127,s)
(quad-word scaled or unscaled integers if s is 0.)

In fact, you could do it with 370 code (our C compiler happens to do
that for __int128 and __uint128.)

-- gil

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


Re: Support for 128-bit arithmetic - was: Re: PL/I support of vector instructions?

2020-09-10 Thread Seymour J Metz
Yes, you can always do multiple precision that way, but there is a performance 
hit, especially from those conditional branches. Maybe we need skip 
instructions such as the 7090 had.


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



From: IBM Mainframe Discussion List  on behalf of 
Thomas David Rivers 
Sent: Wednesday, September 9, 2020 8:35 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Support for 128-bit arithmetic - was: Re: PL/I support of vector 
instructions?

Seymour J Metz wrote:

>I was asking whether it supported vector instructions for FIXED, not for 
>FLOAT.; in particular, whether it supported FIXED BIN(127,0).
>
>
>--
>Shmuel (Seymour J.) Metz
>http://mason.gmu.edu/~smetz3
>
>
>
You would not need vector instructions to support FIXED BIN(127,s)
(quad-word scaled
or unscaled integers if s is 0.)

In fact, you could do it with 370 code (our C compiler happens to do
that for __int128
and __uint128.)

The problems come when consider conversions to-from other items... the
definitions
of those conversions are pretty straight-forward.  The issue is
examining all the conversion
permutations for PL/I to make sure it's implemented...   then there are
the library I/O
characteristics to consider (which are mostly handled by the conversion
answers.)
Will you need a PIC that handles this, is the maximum PIC length
sufficent (_lots_
of base-10 digits in those things.)   Do you need to read the values
from a FILE,
then you'll need CHAR -> FIXED BIN(127,s) conversion support... etc...

Our C compiler, as well as GCC, gets around this by saying you can
declare 128-bit
integers, and do basic arithmetic with them - but the runtime library
doesn't support them
(so formating for printing, for example, is up-to-you.)   That seems to
handle the current
uses for 128-bit integral arithmetic.  Of course, C doesn't have scaled
integers, making
the problem even easier there.

And - to drive the point home - let's consider this small snippet:

__int128
foo(__int128 a, __int128 b)
{
   return a + b;
}

which just adds 2 128-bit signed integers.   This is the 370 code that
is generated
from our C compiler:

* *** End of Prologue
* *
 L 15,0(0,1)
* ***  return a + b;
 LM2,5,4(1)
 AL5,32(0,1)
 BC  12,@@gen_label0
 AL4,@lit_147_0
 BC  12,@@gen_label0
 AL3,@lit_147_0
 BC  12,@@gen_label0
 AL2,@lit_147_0
@@gen_label0 DS 0H
 AL4,28(0,1)
 BC  12,@@gen_label1
 AL3,@lit_147_0
 BC  12,@@gen_label1
 AL2,@lit_147_0
@@gen_label1 DS 0H
 AL3,24(0,1)
 BC  12,@@gen_label2
 AL2,@lit_147_0
@@gen_label2 DS 0H
 AL2,20(0,1)
 STM   2,5,95(13)
 MVC   0(16,15),95(13)
* ***   }
* *  Start of Epilogue

which is quite a lot!

But - if you tell the compiler it can take advantage of more recent
architectures (with
the -march=z13 option) - that same snippet generates this (in 31-bit mode):

* *** End of Prologue
* *
 L 15,0(0,1)
* ***  return a + b;
 LMG   2,3,4(1)
 ALG   3,28(0,1)
 ALCG  2,20(0,1)
 STMG  2,3,95(13)
 MVC   0(16,15),95(13)
* ***   }
* *  Start of Epilogue

which is a better demonstration of how to do 128-bit arithmetic without
vector
instructions.

  - Dave R. -

p.s. the return value is address via the first incoming parameter
(0(0,1)) if that helps
   make sense of what's going on here.

p.p.s.  This facility would be available in LE mode too, so you _could_
compile
C code with our compiler and link it with the IBM PL/I
compiler to do your
128-bit arithmetic; with careful definitions of the C
functions an PL/I EXTRNs.
But, it might just be easier to write the PL/I PROCs to do
the various arithmetic
functions on 128-bit values held in structures - or maybe
get really fancy
and use the PL/I preprocessor to generate the code for the
basic operations.



--
riv...@dignus.comWork: (919) 676-0847
Get your mainframe programming tools at 
http://secure-web.cisco.com/1s90SO-UjL1WSVjVvb4AkJv2WPMJEueXQpFNLATgdwd3EHMXFE1iUBqoDQZLLvjq44lHvKMhIH0JF3bAw22v3WNj-8yUJAZe7Mgiw3mCCqbA5v1O3gHj_CucREhI5F4KIDLLqDUr33WO53oJQUzaLVnobKrb_3RgZorQHbo8AoYwavGFUJTobBrLageGchvdhaZUDBXFhLq5Yo9OmJSxZEUdiHJlqxHBfnJYnbhAANAAARmUTA9ujSfQOxhWM6jGJZAzQxVgEVjcGOr_sDboqRdSP-go0uNWVfVYGNqXARC_jfL0DQAAemO7MuXOB8PmLjHHe1AdIKVh48ZnxxTqJsDP8H0MiBZZCmOsOQ8zBM-eQWXzD7b8W0cJFYBTn8uSVGX5uQUhW1HZltx4z4_NhreVNI0zIiGvR490g_NhkVUZklaCY9WfOvYn3Irz-ADe3/http%3A%2F%2Fwww.dignus.com

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


--
For IBM-MAIN 

Re: REXX true/false (was Constant Identifiers)

2020-09-10 Thread Seymour J Metz
Don't forget the short lived name MPPL.


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



From: IBM Mainframe Discussion List  on behalf of CM 
Poncelet 
Sent: Wednesday, September 9, 2020 10:06 PM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: REXX true/false (was Constant Identifiers)

Yes. My post-grad thesis was on PL/I - and on its being originally
called Fortran VI in 1962, then NPL in '64, then distributed as PL/I in
'66 together with OS/360.

I wrote PL/I before Clist/CLIST and long before REXX.

Confused am I?



On 09/09/2020 05:49, Seymour J Metz wrote:
> Have you ever heard of PL/I? Much of the syntax of REXX derives from PL/I, 
> and it has two different string types: CHARACTER and BIT.
>
> With regard to the built in functions, you are once again confusing the type 
> of a variable with its contents. Would you argue that +1 in -1 are different 
> data types because one is a valid input to sqrt and the other is not?
>
>
> --
> Shmuel (Seymour J.) Metz
> http://mason.gmu.edu/~smetz3
>
>
> 
> From: IBM Mainframe Discussion List  on behalf of 
> CM Poncelet 
> Sent: Tuesday, September 8, 2020 7:53 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Re: REXX true/false (was Constant Identifiers)
>
> Mr Bridges,
>
> 1) The reason the program does not abend is it has a "SIGNAL ON SYNTAX
> NAME ERROR3" coded before the "IF TRUE THEN...", which traps the abend
> and resumes execution at label ERROR3.
>
> 2) I disagree with Mr Metz on the grounds that he argues that
> "everything in REXX is a character string" - upon which I then
> implicitly ask, "What is a non-character string and in what 3GL, 2GL,
> 1GL language (but not 0GL, as that would be microcode) do such
> non-character strings exist that do not exist in REXX?"
>
> It has nothing to do with EBCDIC and ASCII. It is that REXX supports all
> binary strings - as in the REXX functions C2D, C2X, D2X, X2B, B2X,
> BITAND, BITOR, BITXOR etc. and as applied in reading/processing
> unformatted 'raw' system dumps. To argue that "everything in REXX is a
> character string"is meaningless. It might be appropriate to argue that
> "everything in REXX is a binary string", as that would include
> "character string" - or even "everything in REXX is a string", because
> that would be sufficient in itself and would not constrain all REXX
> strings to have to be "character" ones. As I said, REXX supports all
> binary strings - not only "character" ones.
>
> Not sure whether that answers your questions, but I hope it does.
>
> Cheers, Chris Poncelet (retired sysprog)
>
>
> On 08/09/2020 16:27, Bob Bridges wrote:
>> Mr Poncelet, I'm interested in this example.  Two questions:
>>
>> 1) Once TRUE is set to a '1'b in the last two sections, why does the program
>> not abend when it encounters "IF TRUE THEN..."?  Seems to me REXX should
>> complain that TRUE is not 1 or 0.
>>
>> 2) From your preceding posts I got the impression you were disagreeing with
>> Mr Metz, that you believed REXX represented data in other forms that EBCDIC
>> character strings.  (EBCDIC in TSO REXX, that is; I'm not concerned with
>> ASCII platforms here.)  But your example seems to support his assertion.
>> Did I misunderstand you?  What am I missing?
>>
>> ---
>> Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313
>>
>> /* This is how sin happens. We don't set out to do something very wrong. We
>> make up stories that sound good to ourselves about how the thing really
>> isn't that wrong, or how it really isn't anybody else's business. / Before
>> we lie to others, we lie to ourselves. Do that, and it can be hard to find
>> the truth again, even when it is obvious nothing but the truth will do.
>> -Maggie Gallagher, 2001-08-27 */
>>
>> -Original Message-
>> From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
>> Behalf Of CM Poncelet
>> Sent: Monday, September 7, 2020 22:33
>>
>> You said, "It isn't boolean; everything in REXX is a character string."
>>
>> I agree that "it's all strings", but not that "everything in REXX is a
>> *character* string."
>>
>> Try the following:
>>
>> ARG DEBUG
>> IF ABBREV(DEBUG,D,1) THEN ,
>>   TRACE I
>>
>> SIGNAL ON SYNTAX NAME ERROR0
>> TRUE = 1
>> SAY 'TRUE NUMERIC   = 'TRUE
>> SAY 'DATATYPE TRUE  = 'DATATYPE(TRUE)
>> IF ¬TRUE THEN SAY 'NOT TRUE NUMERIC'
>> IF TRUE THEN SAY 'YES, TRUE NUMERIC'
>>
>> ERROR0:
>> SIGNAL ON SYNTAX NAME ERROR1
>> TRUE = '1'
>> SAY 'TRUE CHARACTER = 'TRUE
>> SAY 'DATATYPE TRUE  = 'DATATYPE(TRUE)
>> IF ¬TRUE THEN SAY 'NOT TRUE CHARACTER'
>> IF TRUE THEN SAY 'YES, TRUE CHARACTER'
>>
>> ERROR1:
>> SIGNAL ON SYNTAX NAME ERROR2
>> TRUE = '31'X
>> SAY 'TRUE HEXADECIMAL = 'TRUE
>> SAY 'DATATYPE TRUE  = 'DATATYPE(TRUE)
>> IF ¬TRUE THEN SAY 'NOT TRUE HEXADECIMAL'
>> IF TRUE THEN SAY 'YES, TRUE HEXADECIMAL'
>>
>> TRUE = '00110001'B
>> SAY 'TRUE BINARY HEX  = 'TRUE
>> SAY 'DATATYPE TRUE  = 'DATATYPE(TRUE)
>> IF ¬TRUE THEN SAY 'NOT TRUE 

Re: REXX true/false (was Constant Identifiers)

2020-09-10 Thread Seymour J Metz
ITYM follow on from EXEC2. Or was Mike working on REX before EXEC2?


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



From: IBM Mainframe Discussion List  on behalf of 
Rupert Reynolds 
Sent: Thursday, September 10, 2020 8:05 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: REXX true/false (was Constant Identifiers)

Confused? Difficult to say--the brash nature of this debate is clouding
things.

There is an example above which uses something like ''0001'B to
initialise a variable.

In Rexx, that is not a boolean value. Depending on which interpreter you
use, it is either a byte with contents x'01', which might be printable in
some character sets, or it's a string of seven characters '0', a character
'1' and a character 'B'. The only numbers I've found thay work in boolean
expressions are 1 and 0.

There were always going to be compromises building an interpreted language
to follow on from the EXEC interpreter on VM/SP.

Rupert



On Thu., Sep. 10, 2020, 03:06 CM Poncelet,  wrote:

> Yes. My post-grad thesis was on PL/I - and on its being originally
> called Fortran VI in 1962, then NPL in '64, then distributed as PL/I in
> '66 together with OS/360.
>
> I wrote PL/I before Clist/CLIST and long before REXX.
>
> Confused am I?
>
>
>

--
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: REXX true/false (was Constant Identifiers)

2020-09-10 Thread Bob Bridges
I dunno, though, the first part of it was entertaining.  And as I'm not a 
systems programmer (I came into mainframe security through the development 
door), many of the more on-topic threads here are opaque to me, so the 
occasional fight over COBOL or CLIST provides some diversion.

---
Bob Bridges, robhbrid...@gmail.com, cell 336 382-7313

/* Three people may keep a secret, if two of them are dead.  -Poor Richard */

-Original Message-
From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf 
Of David Crayford
Sent: Thursday, September 10, 2020 08:34

Perfect example of bike shedding! A rambling thread where people argue 
over stuff that is not really useful! IBMMAIN is difficult to read these 
days.

The good stuff is clouded by topic drift and endless arguments that go 
on forever.

--- On 2020-09-10 8:05 PM, Rupert Reynolds wrote:
> Confused? Difficult to say--the brash nature of this debate is clouding
> things.

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


Re: can DIE routines invoke macro's using linkage=system

2020-09-10 Thread Peter Relson
Joe,

How about answering Jim Mulder's question, or do you not even try reading 
the documentation before posting questions to the entire IBM-Main team?
You apparently knew what you were looking for. What was the difficulty 
with finding it?

And then you didn't even indicate which service you were curious about. 
The answer could be different for different services. There are likely 
some services not appropriate to be used from a DIE.  The answer has no 
necessary relationship to "linkage=system", although clearly something 
that requires issuing an SVC (aside from ABEND) cannot be used from a DIE.

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: REXX true/false (was Constant Identifiers)

2020-09-10 Thread David Crayford

On 2020-09-10 8:05 PM, Rupert Reynolds wrote:

Confused? Difficult to say--the brash nature of this debate is clouding
things.


Perfect example of bike shedding! A rambling thread where people argue 
over stuff that is not really useful! IBMMAIN is difficult to read these 
days.
The good stuff is clouded by topic drift and endless arguments that go 
on forever.


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


Re: REXX true/false (was Constant Identifiers)

2020-09-10 Thread Rupert Reynolds
Confused? Difficult to say--the brash nature of this debate is clouding
things.

There is an example above which uses something like ''0001'B to
initialise a variable.

In Rexx, that is not a boolean value. Depending on which interpreter you
use, it is either a byte with contents x'01', which might be printable in
some character sets, or it's a string of seven characters '0', a character
'1' and a character 'B'. The only numbers I've found thay work in boolean
expressions are 1 and 0.

There were always going to be compromises building an interpreted language
to follow on from the EXEC interpreter on VM/SP.

Rupert



On Thu., Sep. 10, 2020, 03:06 CM Poncelet,  wrote:

> Yes. My post-grad thesis was on PL/I - and on its being originally
> called Fortran VI in 1962, then NPL in '64, then distributed as PL/I in
> '66 together with OS/360.
>
> I wrote PL/I before Clist/CLIST and long before REXX.
>
> Confused am I?
>
>
>

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