Re: Comparison of compiler generated code AD 1980(ish) v 2010(ish)

2012-05-24 Thread Bernd Oppolzer
The test runs were on a z196 with current z/OS release. I didn't do the tests myself, only was told about the results, but the co-worker normally is very reliable. Regards Bernd Am 24.05.2012 12:54, schrieb Shmuel Metz (Seymour J.): In4fbd69b6.5080...@t-online.de, on 05/24/2012 at

Re: Comparison of compiler generated code AD 1980(ish) v 2010(ish)

2012-05-23 Thread Bernd Oppolzer
Update to this CALL PLIMOVE generates loop of MVCs topic: we did some further research and found out, that for CALL PLIMOVE with known length at compile time, even with EP PL/1 V3.9, there is a code sequence generated which uses MVCL, if the length is greater or equal 16384. For lengths below

Re: Comparison of compiler generated code AD 1980(ish) v 2010(ish)

2012-05-17 Thread Bernd Oppolzer
that the compiler generates the best available machine instruction for this HLL instruction. Kind regards Bernd Am Mittwoch, 16. Mai 2012 21:41 schrieb Bernd Oppolzer: First, I would like to thank you for starting this thread. I posted it to the performance people of my customer, and they told me

Re: Comparison of compiler generated code AD 1980(ish) v 2010(ish)

2012-05-16 Thread Bernd Oppolzer
First, I would like to thank you for starting this thread. I posted it to the performance people of my customer, and they told me, that they just found a similar problem with EP PL/1 3.9, that is: the PLIMOVE calls don't generate MVCLs any more, as in previous releases, but series of MVCs and

Re: Any simple tool to monitor the storage uasge ?

2012-05-04 Thread Bernd Oppolzer
Maybe you could write a function that reads the control blocks of the z/OS storage management queues and computes the overall size of the used storage blocks, per subpool? If you call this function somewhere in a loop in your main program, you could discover if one of your subroutines allocates

Re: It's feeding time in Jurassic Park . . .

2012-05-04 Thread Bernd Oppolzer
We have some experience here regarding developing portable C applications targetting z/OS mainframes (which should be little or no difference to z/VM and z/Linux) and Solaris on Sparc. Our experience is: the Sparc hardware is more critical than the z hardware, for example, a pointer to int or

Re: Does C/LE open of DD:ddname(member) use SVC 99 or FIND?

2012-05-01 Thread Bernd Oppolzer
with successive reads are its successive directory blocks. I have done this many times without incident, but I do not of course recommend it to novices. I have not myself done it in C; but Bernd Oppolzer is a careful, highly reliable reporter of his experience; and I am thus sure that it can be done

Re: Does C/LE open of DD:ddname(member) use SVC 99 or FIND?

2012-04-30 Thread Bernd Oppolzer
Don't know what it's worth, but I'm quite sure that you can read a directory of a PDS simply by issuing fopen on it as a binary file - like this directory = fopen (dd:pdsfile, rb); that is, if you don't specify member names in parantheses, you get the directory of the PDS. And, yes, if you

Re: XML Parsing

2012-04-30 Thread Bernd Oppolzer
The possible solutions are not limited to the COBOL XML PARSER; you can use ANY XML parser that supports DOM. We have our own parser which is written in ANSI C and runs on every platform including z/OS and is very small and faster than the very general products from IBM and elsewhere like, for

Re: PL/I with variable PLISTs (was: LE C calling HLASM)

2012-04-18 Thread Bernd Oppolzer
Why? I don't understand this comment, because JCL parm is always only one parm; no variable length address list ... what do I get wrong? Well, the JCL parm itself has variable length, but the length of the address list is fixed, always one. And: I dont know if the system sets the high order bit

Re: PL/I with variable PLISTs (was: LE C calling HLASM)

2012-04-11 Thread Bernd Oppolzer
I understand your motivation to do this; our site specific CALL macro also sets the high order bit on every parameter address list (even fixed length), although nobody checks it; it's merely for dump reading purposes. But: if you recall the posting of the ATTACH macro description, you are (and

Re: PL/I with variable PLISTs (was: LE C calling HLASM)

2012-04-11 Thread Bernd Oppolzer
It's true: when passing 64 bit addresses, the VL bit mechanism will not work any more, so maybe it has no future. The C stdarg mechanism has its drawbacks, but it does not rely on a specific platform or operating system, it is portable, and it works with 64 bit environments, too. This is what I

Re: Enterprise COBOL and XML attributes

2012-04-10 Thread Bernd Oppolzer
We have a home grown XML generator tool, which is controlled by something which we call interface description. This interface description can be derived from XML schema definitions and is translated by a special translator to PL/1 or C include files (containing structure definitions containing

Re: PL/I with variable PLISTs (was: LE C calling HLASM)

2012-04-10 Thread Bernd Oppolzer
I don't know if it helps you, but using C I would code the two calls this way: rc = THEFUNCTION (magic, inputbuffer,inputlength, NULL, NULL); rc = THEFUNCTION (magic, inputbuffer,inputlength, outputbuffer,outputlength); Note that the parameters that are probably integers are prefixed with

Fwd: Re: PL/I with variable PLISTs (was: LE C calling HLASM)

2012-04-10 Thread Bernd Oppolzer
Sorry, the ! should be a | bitwise or operator in C I mixed up bitwise or in C with logical or in PL/1 Kind regards Bernd Original-Nachricht Betreff:Re: PL/I with variable PLISTs (was: LE C calling HLASM) Datum: Tue, 10 Apr 2012 23:23:39 +0200 Von:Bernd

Fwd: Fwd: Re: PL/I with variable PLISTs (was: LE C calling HLASM)

2012-04-10 Thread Bernd Oppolzer
, it is a C program, returning an int (the retcode). Kind regards Bernd Original-Nachricht Betreff:Fwd: Re: PL/I with variable PLISTs (was: LE C calling HLASM) Datum: Tue, 10 Apr 2012 23:26:51 +0200 Von:Bernd Oppolzer bernd.oppol...@t-online.de Antwort an: IBM

Re: PL/I with variable PLISTs (was: LE C calling HLASM)

2012-04-10 Thread Bernd Oppolzer
generated by central repository, so that there are no different alignment considerations from the three languages (and all structure components match) Kind regards Bernd Am 10.04.2012 23:31, schrieb Phil Smith: Bernd Oppolzer wrote: I don't know if it helps you, but using C I would code the two

Re: PL/I with variable PLISTs (was: LE C calling HLASM)

2012-04-10 Thread Bernd Oppolzer
Pure speculation on my part: There are some systems or software components that require that on all calls (even when the number of parameters is fixed) the last parameter address has the high order bit set. I recall GDDM, where this was the case. When I wanted to call GDDM routines from

Re: PL/I with variable PLISTs (was: LE C calling HLASM)

2012-04-10 Thread Bernd Oppolzer
I would not blame PL/1 for this. It is not OK IMHO to request the caller to set the high order bit on the last parameter, when the number of the parameters is fixed (see also my GDDM example on the other post). This is not required by any OS convention, at least that's my understanding. Kind

Re: PL/I with variable PLISTs (was: LE C calling HLASM)

2012-04-10 Thread Bernd Oppolzer
- they are comfortable sometimes, like with printf etc, but you can live without them. Kind regards Bernd Am 11.04.2012 01:07, schrieb Paul Gilmartin: On Wed, 11 Apr 2012 00:48:33 +0200, Bernd Oppolzer wrote: I would not blame PL/1 for this. It is not OK IMHO to request the caller to set

Re: LE C calling HLASM

2012-04-07 Thread Bernd Oppolzer
How do you do this at runtime in a fast way? I would first walk up the save area, get the entry point address of the caller and look if there is the LE signature at position 4 (X'01' followed by 'CEE'), so I know that is is a PL/1 or C compiler (maybe COBOL, too, I'm not sure about this). Then I

Re: LE C calling HLASM

2012-04-07 Thread Bernd Oppolzer
Maybe my misunderstanding is: I'm assuming that I am called dynamically and not linked to the caller (because at our site, we have ONLY dynamic calls). Kind regards Bernd Am 07.04.2012 09:40, schrieb Bernd Oppolzer: How do you do this at runtime in a fast way? I would first walk up

Re: Macro Assembler Question

2012-04-01 Thread Bernd Oppolzer
My experience with macro assembler is some ten years ago, but: finding the number of parameters in the list and indexing across the list is IMHO only possible for positional parameters, but here we have keyword parameters. positional: LABEL MACNAME A,B,C keyword: LABEL MACNAME P1=A,P2=B,P3=C

Re: LE enclave calls another LE enclave

2012-03-31 Thread Bernd Oppolzer
Thank you very much, I'll take a look at all that. Kind regards Bernd Am 30.03.2012 19:55, schrieb Steve Comstock: On 3/30/2012 9:15 AM, Bernd Oppolzer wrote: Am 30.03.2012 14:45, schrieb Steve Comstock: My notes seem to indicate that using LINK from Assembler to a PL/I main creates

Re: LE enclave calls another LE enclave

2012-03-31 Thread Bernd Oppolzer
Furthermore, you can call non-LE programs from LE programs and later call LE programs from these non-LE programs, if you do the following: - propagate R12 to the lower LE program - take care of the values in the locations after offset 72 in the savearea (NAB etc.); if you pass these values

Re: LE enclave calls another LE enclave

2012-03-31 Thread Bernd Oppolzer
Bernd Am 31.03.2012 14:39, schrieb Steve Comstock: [top posting] Yikes! And I thought Colorado was the wild, wooly west. But n! You win. On 3/31/2012 5:45 AM, Bernd Oppolzer wrote: Furthermore, you can call non-LE programs from LE programs and later call LE programs from these non-LE

Re: LE enclave calls another LE enclave

2012-03-30 Thread Bernd Oppolzer
is the preferred way for an LE enclave to call or build another LE enclave? Kind regards Bernd Am 29.03.2012 23:28, schrieb Steve Comstock: On 3/29/2012 3:11 PM, Bernd Oppolzer wrote: Ok, thank you, you gave me something to think about. Maybe I should try to call the mains in a different way. Now my co

Re: LE enclave calls another LE enclave

2012-03-30 Thread Bernd Oppolzer
Am 30.03.2012 14:45, schrieb Steve Comstock: My notes seem to indicate that using LINK from Assembler to a PL/I main creates a nested enclave, which I guess is what you are seeing. I don't see anyway to call a PL/I main without the main creating an enclave. I also see this note: PL/I

Re: LE enclave calls another LE enclave

2012-03-29 Thread Bernd Oppolzer
Ok, thank you, you gave me something to think about. Maybe I should try to call the mains in a different way. Now my co-worker is off for holidays for three weeks, I will try to run some tests myself. I'll keep you informed. The mains are in fact compiled with RENT and DLL options and linked as

Re: LE enclave calls another LE enclave

2012-03-28 Thread Bernd Oppolzer
back to the testcase database (to verify the changes done by the test object and to enable regression testing). Kind regards Bernd Am Mittwoch, 28. März 2012 03:02 schrieben Sie: In 4f71e7c6.7080...@t-online.de, on 03/27/2012 at 06:16 PM, Bernd Oppolzer bernd.oppol...@t-online.de said

LE enclave calls another LE enclave

2012-03-27 Thread Bernd Oppolzer
Hello all, we have a problem that is not easy to describe. Let me try it. We are building a test supporting system, which allows to do tests of software components. The system consists of the following modules or parts: A - driver, written in ASSEMBLER. The driver builds a LE enclave, so

Re: CICS vs IMS

2012-02-16 Thread Bernd Oppolzer
I'm not really an expert on this topic. We're an IMS shop, but all the IMS topics are hidden behind a site specific application framework, so that most of IMS is not visible to the applications. In my earlier life, I worked at a company, which used CICS on VSE. So my impression is: - CICS is

Re: IBM Doing Some Restructuring?

2012-02-13 Thread Bernd Oppolzer
Fred Brooks' Law: Adding manpower to a late software project makes it later. already 1960s, IIRC Kind regards Bernd Am 13.02.2012 08:24, schrieb Edward Jaffe: On 2/12/2012 11:41 AM, Chris Craddock wrote: The (evidently popular) idea that you can pick a random group of (cheap) gunslingers

Re: Is there a separate discussion list somewhere for XLC?

2012-02-10 Thread Bernd Oppolzer
There is a C370-List, too, but it is very quiet - almost no traffic the last months or years. If you want, you can try to discuss some topics with me offline - I'm not sure, if I can help you, but we can give it a try. My english needs yet to be improved ... Kind regards Bernd Am

Re: XML

2012-02-10 Thread Bernd Oppolzer
In the company I am working for, XML is more and more used for every kind of interface. For example if you have a system that is capable to get its input from outside (like commands to be executed), it is very likely that we will design the system so that it will get its commands or inputs in

Re: What precompiler/compiler options are required to have a PLI program dynamically call DSNHLI?

2012-02-03 Thread Bernd Oppolzer
We replaced the DSNHLI entries provided by IBM by a homegrown CSECT (with ALIAS DSNHLI) which does the following: - check if connection is already established by examining a statically stored address (which was initialized to zero) - if not zero, this is the address of the IBM interface, call

Re: AutoCoder

2012-01-17 Thread Bernd Oppolzer
We are a big insurance company in Germany, and we do PL/1 until today. We also do ASM and C, but no COBOL - never. I heard some years ago that only about 5 % of the mainframe programs are PL/1, compared to 80 % COBOL. Don't know, if the numbers are correct. Most PL/1 users are in southern

Re: AutoCoder

2012-01-17 Thread Bernd Oppolzer
Sorry, I forgot: many PL/1 users in Switzerland, too. Kind regards Bernd Am 18.01.2012 00:53, schrieb Bernd Oppolzer: We are a big insurance company in Germany, and we do PL/1 until today. We also do ASM and C, but no COBOL - never. I heard some years ago that only about 5

Re: Compiling C++ by LE V1.8 and running on LE V1.13+ ?

2012-01-12 Thread Bernd Oppolzer
Normally, there is no problem in running even very old C modules on newer versions of the OS. We did this for years. Another thing is, if you have changes in MQ, for example - that is, if you try to run your C programs on a new release of MQ - that may or may not work. In this case, we

Re: cpu / machine identification

2011-12-27 Thread Bernd Oppolzer
For our system, we have the need to create UUIDs, which contain in the right part a twelve byte hex number which identifies the machine uniquely world-wide (at least, that's the idea). The left part is a (kind of) inverted timestamp. We do this using some information from CSRSI and the LPAR

Re: Braces, Brackets, Broken braces, and Parentheses

2011-11-23 Thread Bernd Oppolzer
Same in Germany, all are called Klammer, () - Klammer (runde Klammer only, if they need to be distinguished from the others) [] - eckige Klammer (square) {} - geschweifte Klammer (curly) - spitze Klammer The word parenthese is seldom used. Regards Bernd Am 22.11.2011 09:26, schrieb

Re: Terminology RE: USS

2011-11-18 Thread Bernd Oppolzer
I never knew how to call this sign correctly: in Germany, it's simply called: und (that's: and) or Kaufmanns und, that is, merchant's and. Almost nobody here knows what an ampersand is. But some day one of my co-workers called it Brezel - you know, what a brezel is? Look here:

Re: C newbie - pass a LDAP handle out to calling routine

2011-11-08 Thread Bernd Oppolzer
Cool, the newer versions of PL/1 support this, too, when using the BYVALUE keyword on the ENTRY declarations: DCL CFUNC ENTRY (BIN FIXED (31) BYVALUE, BIN FLOAT (53) BYVALUE, POINTER BYVALUE) RETURNS (BIN FIXED(31)); and then: DCL X BIN FIXED (31); DCL Y BIN FLOAT (53); DCL P POINTER INIT

Re: C newbie - pass a LDAP handle out to calling routine

2011-11-06 Thread Bernd Oppolzer
When calling C routines from other languages like COBOL or PL/1 (or FORTRAN), you have to take into account that in C the parameters are passed by value, whereas the other languages pass them by reference, that is, addresses of the variables. The solution is simple: to construct your C

Re: CMS load module format

2011-09-30 Thread Bernd Oppolzer
Hello all, following this discussion yesterday, I tried to play a little bit with Hercules for the first time. I followed one of the links below and succeeded so far with installing Hercules and a VM/370 R6 installation which does IPL, and I have some X3270 sessions to connect to VM. I did

VM/370 R6 on Hercules

2011-09-30 Thread Bernd Oppolzer
I would like to thank you all. I fixed the problem with the PL/1-F compiler on VM/370 R6 on Hercules, it works now. Also the Stanford Pascal Compiler, which generates PCODE370 as intermediate code, then 370 code. And ASSEMBLER and FORTRAN, of course. There are some other languages, which I have

Re: 0C4 when calling OPENSSL function SHA1

2011-06-30 Thread Bernd Oppolzer
no information about the compile options used to build the openssl package. When I changed my main function to RENT, everything ran fine. Kind regards Bernd Am 29.06.2011 15:11, schrieb Bernd Oppolzer: Dear colleagues, I have to call the openssl package on z/OS to do some encryption work. Now I built

Mixing XPLINK and Non-XPLINK

2011-06-30 Thread Bernd Oppolzer
I'm still fighting with the OPENSSL package. It works for me, if I'm calling it from my C main program, but it would be nicer, if I could call the functions from PL/1. But I have only a XPLINK version of the OPENSSL libraries which someone else built for me, and no sources available. So I first

Re: Mixing XPLINK and Non-XPLINK

2011-06-30 Thread Bernd Oppolzer
Thank you very much, this was really helpful ! With XPLINK(ON) specified as a LE runtime parameter it worked. Kind regards Bernd Am 30.06.2011 19:33, schrieb Denis Gäbler: The caller PL/I does not neccessarily have to be an XPLINK program, but you will require an LE enclave with

0C4 when calling OPENSSL function SHA1

2011-06-29 Thread Bernd Oppolzer
Dear colleagues, I have to call the openssl package on z/OS to do some encryption work. Now I built a C main function to call a routine which did run successfully at another site. Because the openssl library uses XPLINK linkage, we decided to do so, too. But when I first call a function from the

Re: System Programming C (SPC) in MQS Exits

2011-06-04 Thread Bernd Oppolzer
04.06.2011 03:40, schrieb David Crayford: On 3/06/2011 9:20 PM, Bernd Oppolzer wrote: Hello David, yes, we are using EDCXSTRL. But anyway: iconv is part of the RTL runtime package, this is a large module called CEESG003. Part of this module is the RTL malloc routine, too. The references between

Re: System Programming C (SPC) in MQS Exits

2011-06-04 Thread Bernd Oppolzer
yes, I guess, I have to do something like that; don't use iconv() any more and do the conversion some other way. We have also sourcecode examples of some other exits available, where code conversions are done by using inline tables; maybe we can copy some code from there. Thank you, kind regards

Re: System Programming C (SPC) in MQS Exits

2011-06-03 Thread Bernd Oppolzer
that you are using EDCXSTRL and not EDCXSTRT? On 2/06/2011 3:22 PM, Bernd Oppolzer wrote: Hello, we have the following problem: we recently got the responsibility for the site-specific MQS exits. These MQS exits are written using SPC (System Programming C). This is recommended by MQS

System Programming C (SPC) in MQS Exits

2011-06-02 Thread Bernd Oppolzer
Hello, we have the following problem: we recently got the responsibility for the site-specific MQS exits. These MQS exits are written using SPC (System Programming C). This is recommended by MQS, or maybe it is a restriction of the MQS environment. We link the exit with the SCEESPC lib and

fopen and CICS

2011-03-19 Thread Bernd Oppolzer
Hello, we (suddenly) feel the need to give our large insurance math package, which is written in C, to a fellow company, so that they can use it, too. The problem is: the math package needs to do fopen to get access to some large (kind of) database files, where it gets its calculation base

Re: DB2 Performance

2011-03-01 Thread Bernd Oppolzer
To solve the problem finally, you will have some DB2 expert to examine the SQLs that the remote users are sending. Because very often the people outside send the SQL through end user tools, they are not well trained and could do much better. This will cost some money at the start, but in the long

Re: REXX, the new Cobol ?

2011-01-06 Thread Bernd Oppolzer
big grin :-) I do: download files to Win or OS/2 using FTP oder RECEIVE, then KEDIT the file (big applause to Mansfield Group) then insert a special char at the split points, e.g. % then set hex on change /%/x'0d0a'/* * then save the file and reopen (or upload to z/OS). Same technique for

Calling XPLINK program object from PL/1 (subject changed)

2011-01-04 Thread Bernd Oppolzer
--- cross posted to the PL/1 mailing list --- Thank you for your answer. I will take a look at the 3.9 documentation. We are using 3.6 and 3.7, planning to migrate to 3.9 this year. I've read the LE programming guide of z/OS 1.10, and from there I took the information that COBOL and PL/1 are

Re: Linking Code from z/OS Unix archives in Batch JCL?

2011-01-02 Thread Bernd Oppolzer
Thank you very much, it worked! Now the remaining problem is: I had to compile my module with XPLINK and LONGNAME, and I had to link it to a PDSE, because without XPLINK, the references to the functions in the library don't get resolved; same is true, if I don't use LONGNAME, and LONGNAME needs

Linking Code from z/OS Unix archives in Batch JCL?

2010-12-31 Thread Bernd Oppolzer
Is it possible to link code directly from z/OS Unix archive files? I tried it this way: //LKED EXEC PROC=WCIEWL, // AMODE=31,RMODE=ANY,REUS=RENT, // SYSLMOD='ADPSAE.LEHR.GRP20.LOAD', // SYSOUT=A, // SYSLIN='TEMPDSN' //SYSINDD * INCLUDE

OPENSSL calls from Mainframe C

2010-12-30 Thread Bernd Oppolzer
Hello all, I need to compile a ANSI C program on the mainframe, which does calls to the OPENSSL library. The OPENSSL library is located in the z/OS Unix filesystem, and the header files for the compile, too. I've not much experience with z/OS Unix. Our compile jobs deal with classical MVS

Simple JCL Question

2010-08-19 Thread Bernd Oppolzer
Hello IBM-Main, can I split a PARM on the EXEC statement, which is too long, in two parts (on two lines), without having a comma inserted? Thanks, regards Bernd -- For IBM-MAIN subscribe / signoff / archive access

Re: Simple JCL Question

2010-08-19 Thread Bernd Oppolzer
Thanks! worked! Kind regards Bernd Steve Comstock schrieb: Bernd Oppolzer wrote: Hello IBM-Main, can I split a PARM on the EXEC statement, which is too long, in two parts (on two lines), without having a comma inserted? Thanks, regards Bernd Yes. For example: //STEPPER EXEC PGM

Re: optimizing compilers

2010-08-17 Thread Bernd Oppolzer
with the tapes, and IBM and Telefunken employees brought and fetched the tapes from the train stations. This was done several times during the bootstrapping process. Old stories ... Kind regards Bernd David Crayford schrieb: Bernd Oppolzer wrote: john gilmore schrieb: declare (pi value

Re: optimizing compilers

2010-08-16 Thread Bernd Oppolzer
john gilmore schrieb: declare (pi value(3.14159_26535_89793_23846), sqrt_pi value(sqrt(pi)) binary float(52) ; What I find most interesting in this example: will the sqrt(pi) function call be evaluated at compile time? I hope so. What I expect from an optimizing compiler, is, at

Re: COBOL vs. Java

2010-07-16 Thread Bernd Oppolzer
I recently heard a rumour at our site about IBM not recommending the use of java with DB2 on the mainframe due to problems with open DB2 cursors across java subprograms. It was reported to be a problem of the IBM mainframe java implementation, and IBM seems to be working on it. I don't quite

Re: partially initialized structures in C (3)

2010-05-20 Thread Bernd Oppolzer
Hello Dave, thank you for your answers. Yes, the reason for my confusion was twofold: first, the documentation of IBM, which states that the remaining components of partially initialized automatic structures are not initialized, which is not conforming to the ANSI standard and is not what

Re: partially initialized structures in C (3)

2010-05-19 Thread Bernd Oppolzer
. Bernd Oppolzer wrote: Sorry for the missing line feeds. C statement: *scp1215ein in1215 = { 0 }; Pseudo ASSEMBLER (structure starts at 272(r13)): STr6,a5:d272:l4(,r13,272) MVI a5:d276:l1(r13,276),0 C statement: *scp1215aus

Re: partially initialized structures in C (3)

2010-05-19 Thread Bernd Oppolzer
Hello David, which version of the compiler did generate the MVC instructions? was this with or without the INITAUTO option? We use the z/OS v1.6 version, and this version only generates the MVI, not the MVCs. We will not use INITAUTO due to serious performance degradation. At the moment,

Re: partially initialized structures in C - solved

2010-05-19 Thread Bernd Oppolzer
Hello David and all others, I have to apologize. The MVC instructions which initialize the rest of the structure come very late, some 40 instructions later, after the function prologue, so I didn't realize them. But in fact, you are right, David, they are there, and the structure is

partially initialized structures in C

2010-05-18 Thread Bernd Oppolzer
Hello all, sorry for asking this question on IBM-Main, but the C370 list is so silent that I doubt that anyone is actually listening. We observed a sort of problem today which showed up as a 0C4 abend due to a not proper initialized pointer component of a C structure. Further examination

partially initialized structures in C (2)

2010-05-18 Thread Bernd Oppolzer
the rest of the structure to zero. But such a instruction is not generated by the compiler. ??? Kind regards Bernd Bernd Oppolzer schrieb: Hello all, sorry for asking this question on IBM-Main, but the C370 list is so silent that I doubt that anyone is actually listening. We observed a sort

partially initialized structures in C (3)

2010-05-18 Thread Bernd Oppolzer
at 296(r13)): STr6,a5:d296:l4(,r13,296) MVI a5:d300:l1(r13,300),0 Kind regards Bernd Bernd Oppolzer schrieb: To make it clear: see above The ST operations initialize the first components of the structures, which are fullwords. This is what should be done, according to the IBM C

Re: partially initialized structures in C

2010-05-18 Thread Bernd Oppolzer
of these 2000 C programs :-) (and many of these have gone through other hands through the past 15 years). Kind regards Bernd McKown, John schrieb: -Original Message- From: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] On Behalf Of Bernd Oppolzer Sent: Tuesday, May 18

Re: partially initialized structures in C

2010-05-18 Thread Bernd Oppolzer
Yes, with respect to the IBM description, it works correct. But the IBM description is wrong with respect to the ANSI C definition. I also checked the language references of some other compilers, that is, SGI or Microsoft. In all other cases, the remaining structure components are initialized

Re: FTP problem

2010-03-18 Thread Bernd Oppolzer
The problem is, IMHO, that the file is stored on Windows with LF delimiters. This is probably not due to a previous FTP transfer from Unix to Windows, but some other way. The file exists and cannot be changed. Now the question is, how to transfer it to z/OS? I don't believe that the Windows FTP

Re: FTP problem

2010-03-18 Thread Bernd Oppolzer
sorry all, should have read all the other posts. if FTPing such a file with LF using text transfer, the 0x0a will probably not trigger a new line on the z/OS dataset, correct? so the single 0x0a does not mean new line to the windows FTP client, and several lines of windows are combined into

Re: More calumny: Secret Service Uses 1980s Mainframe

2010-03-03 Thread Bernd Oppolzer
Hello all, I have two machines with OS/2 V 3 still running, and it is not called WARP, but there was a version V3 already called WARP, too, AFAIK. (The machines are from 1997 and 1999, by the way, and they still have the original IBM SCSI drives, no problems so far). The blue screen is not

Re: Long LLE list

2010-02-17 Thread Bernd Oppolzer
Thanks for the comments so far. 1. yes, the loop is looking for the same module every time. 2. yes, it is called VERY often. And yes, there are many modules in the LLE list (hundreds to thousands; this is a production IMS region with virtually all the modules we have). 3. the loop is very

Long LLE list

2010-02-16 Thread Bernd Oppolzer
Dear Colleagues, I have the following problem: a piece of software that I'm not allowed to change due to legal reasons walks through the LLE list to look for a specific module. And it does this very often. I cannot change this behaviour. This consumes 5 percent of CPU of some of our production

LLE list on subtasks

2010-02-15 Thread Bernd Oppolzer
If a subtask issues a LOAD macro for the same module that has already been loaded by the mother task (RENT, REUS), will there be an entry in the subtasks LLE list for this module or not? I'm kind of sure that the module will be reused, but I'm not sure about the entry in the LLE list. Can someone

Re: Word-1 of the Conventional Save Area

2010-02-06 Thread Bernd Oppolzer
We did this, too, in our site-specific standard start-and-end-macro. So odd addresses in the RET field in the save areas show that the active save area is above this position (in forward direction). But this is kind of redundant, if you have reg 13. But sometimes, when debugging, you are happy

Re: Word-1 of the Co nventional Save Area #8207;

2010-02-04 Thread Bernd Oppolzer
No. Most compiled languages, including PL/1, don't do forward chaining. We did it by ourselves for years to make the SYSUDUMPs more readable. But in the end we gave up and wrote our own dump routine which follows the back chain starting from reg 13. In the LE manuals it is explicitly stated

Re: Word-1 of the Co nventional Save Area #8207;

2010-02-04 Thread Bernd Oppolzer
A similar topic: entry points in SYSUDUMPs Save Area Trace can have a message attached, containing, for example, function names, compile dates etc., if the machine codes at the entry are coded in the right way. That is, Branch, one byte length field, the message. Our home grown start macro

Re: Timestamp comparison

2010-01-18 Thread Bernd Oppolzer
it would be better to ask at DB2-L, but the answer is something like SELECT ... FROM CUSTOMER_ORDER WHERE TS_COLUMN = CURRENT TIMESTAMP - 2 YEARS; Specify the columns you want in the result in the select list (replacing the three dots), the correct table name and qualifier after FROM and the

Re: y2k10 problem with credit cards in Germany

2010-01-09 Thread Bernd Oppolzer
Cool. Interesting, that I did not find this obvious work-around by myself. Maybe my brain refuses to take such ways of correcting one error by inserting another into account. Happy new year 200A to you all :-) Robert A. Rosenberg schrieb: At 23:34 +0100 on 01/08/2010, Bernd Oppolzer wrote

y2k10 problem with credit cards in Germany

2010-01-08 Thread Bernd Oppolzer
This is true. 30 million cards have the chip with the logic error on it. It seems as if the BCD representation of the year 2010 is unterstood by the card logic as 2016, and so the card is treated as not valid any more, but this is only a wild guess. The repair steps discussed are the

Re: y2k10 problem with credit cards in Germany

2010-01-08 Thread Bernd Oppolzer
as 2016? Thanks! Don On Fri, Jan 8, 2010 at 5:00 AM, Bernd Oppolzer bernd.oppol...@t-online.dewrote: This is true. 30 million cards have the chip with the logic error on it. It seems as if the BCD representation of the year 2010 is unterstood by the card logic as 2016, and so the card

Re: y2k10 problem with credit cards in Germany

2010-01-08 Thread Bernd Oppolzer
IMHO, this sounds far too optimistic. First, not all machines and POS terminals have been reconfigured, only most of. And this can be done, AFAIK, only inside Germany, but due to legal issues, not in other european countries, and german people, passing their holidays there at the moment (skiing

Re: y2k10 problem with credit cards in Germany

2010-01-08 Thread Bernd Oppolzer
the work around is: don't use the chip - use the magnetic stripe instead ! John P. Baker schrieb: Gil, Personally, I think that any work around is absurd. Somebody really screwed up, and a lot of people are being inconvenienced. What I am afraid of is exactly the kind of scenario you

Re: y2k10 problem with credit cards in Germany

2010-01-08 Thread Bernd Oppolzer
My guess at the moment, too, is, that the ATM tells the chip on the card the current date in BCD, and the card interprets it as 2016 and returns an error code expired to the ATM. But recent news sound as if the truth is more complicated. The communication between the EMV chip and the ATM

Re: Why is JCL so bad?

2010-01-04 Thread Bernd Oppolzer
The german mainframe Telefunken TR 440 had a command language in 1970 already, which was the same for batch and dialog. No need to learn different languages like JCL and TSO command languages, and you could do all the things you can do with the JCL of today, even more (define your own

Re: C++ fstream, iostream and z/OS

2009-12-19 Thread Bernd Oppolzer
If it helps: you can open a PDS or PDSE without a member name using fopen () in binary mode and read the directory. After having read the member names, you can fopen the individual members, if you want. Kind regards Bernd David Stephens schrieb: There's no doubt that z/OS specific functions

Re: Is there a good mailing list or forum for mainframe C/C++ specifically?

2009-12-03 Thread Bernd Oppolzer
I would like to second that. With some of the new MS compilers, you have to define a symbol _CRT_SECURE_NO_DEPRECATE; if not, you get warning messages on every call of strcpy, sprintf and so on. While I agree that the NULL terminated strings and the C string library are a bad idea from the

Re: editting testing COBOL code

2009-12-03 Thread Bernd Oppolzer
IMHO, if thinking about development on workstations, you should first split your application in two pieces: one piece (batch driver), which does the reading and writing of the 4GB+ datasets, and presents the data on a record base to the second piece, which does all the calculations and

Re: user-written MVS subsystems

2009-11-17 Thread Bernd Oppolzer
Thank you all for your contributions. First, this was posted on IBM-MAIN erroneously. It was only meant to appear on the ASSEMBLER List. But thank you for your feedback anyway, it was of great help. Second, the subsystems do some significant work, for example, fast communication between IMS

user-written MVS subsystems

2009-11-16 Thread Bernd Oppolzer
Dear listers, at my customer's site there are some user-written MVS subsystems, written in the 80s and 90s. They seem to be very important and are in production use every day. Now I was asked to take responsibility for them, because the guy who wrote them will be retired soon. I started

Re: load modules for CICS, IMS, DB2 and TSO

2009-09-19 Thread Bernd Oppolzer
Hello Frank, maybe this is all correct, but I'd like to throw your attention to one very important fact: the different DSNHLIs are not at all the same. So if you want to build - as we did at our site - a kind of general interface, which works in all environments, you have to rename all the

Re: Antwort: passing parameter data in BPXBATCH

2009-09-17 Thread Bernd Oppolzer
fopen (testlib, r) -- looks for file userid.testlib - TSO logic fopen (\'testlib\', r) -- looks for file testlib - MVS dataset fopen (dd:testlib, r) -- looks for dd-name there are additional filename conventions for HFS files This is how C (or LE) runtime works. kind regards Bernd Michael

Re: CEEPIPI incorrect recovery processing?

2009-09-15 Thread Bernd Oppolzer
I'm very interested to see how this discussion will proceed. Maybe someone of IBM wants to participate. By similar issues we ended up with the following solution: we wrote an LE exit, which we tried to activate in all environments, that is, batch, TSO and IMS, in our case. Programming languages

  1   2   >