I don't want to start a holy war on this, but in my opinion this example shows
why it is good practice to have a kind of startup macro that does the function
prologue and housekeeping for you. Because you have so much opportunities to do
coding errors in the "normal" code of your program - you don't need additional
opportunities in the function prologue. For me it was always a good feeling to
use a good and tested startup macro. Of course, it has to have parameters to
cover all your needs, RENT, NORENT, testing support, etc.
And: you can have your module throw out some JES messages on the first call,
giving module name, compile date and time, load library, where it comes from,
etc. - that's what we do.
> On Thu, 15 Apr 2010 22:47:44 +0200 L.M. wrote:
> :>Oh, very sorry, that was dumb of me to leave it out:
> :> YREGS
> :>PGM CSECT ,
> :>PGM RMODE ANY
> :>PGM AMODE 31
> :>BEGIN BAKR R14,0
> Take a good look at the following statement.
> :> LA R3,R15
> :> USING PGM,R3
> :>-----Original Message-----
> :>From: IBM Mainframe Assembler List
> :>Sent: 15. huhtikuuta 2010 22:36
> :>To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
> :>Subject: Cause of S0C4
> :>Are you using R15 as your base register?
> :> (------------------ Referenced Note Follows --------------------)
> :>Date: Thu, 15 Apr 2010 21:29:14 +0200
> :>Sorry to ask this, I know I figured it out 3 or 4 years ago, but I'm
> :>forgetting now. I've spent a LOT of time trying to find an answer.
> :>Code, basically is:
> :>LA R15,4
> :>ST R15,RC
> :>RC DS F
> :>The ST causes a S0C4. what am i missing? sorry to ask such a basic