At 22:23 +0200 on 12/10/2011, Binyamin Dissen wrote about Re: Quick test for empty stack?:
On Sat, 10 Dec 2011 13:09:39 -0500 "Robert A. Rosenberg" <[email protected]> wrote: :>At 12:29 -0600 on 12/09/2011, Robert Ngan wrote about Quick test for :>empty stack?: :>>Someone is getting a S0E0 abend with interrupt code of X'34'. :>My memory might be going but since X'E0' = 224 it is in the range :>that is supposedly reserved for USER SVCs? Thus is the existence of :>this ABEND Code being issued by IBM a violation of the rule that SXYY :>ABENDS are supposed to be associated with SVC YY and thus requiring :>that USER SVCs not attempt to issue any ABENDs of the form SXYY which :>IBM has hijacked? A USER SVC is supposed to have the ability to issue :>any ABEND where the YY is it's ID and X is 0-E (FXX being reserved :>for the SVC YY not defined ABEND)? I seem to remember other cases :>where IBM has hijacked ABEND codes that are supposed to belong to :>USER SVCs (although it just might just this one case and its various :>Interrupt codes). Has IBM ever published a list of USER SVC Numbers :>some of whose SXYY codes have been stolen in the documentation with a :>warning that if you use the YY number, you should not try to use the :>associated X modifier so as to avoid confusion with IBM's use of YOUR :>SXYY ABEND code. Has IBM reserved SYSTEM abends for user code? In fact, IBM takes quite a bit of the USER codes as well.
A System ABEND is issued by an SVC when something goes wrong. Thus is specific to that SVC and is supposedly keyed to that SVC's number. IOW: SVC XX [XX is the SVC Number in HEX] issues SVCs of the form SYXX [where Y is 0-E since SFXX is reserved by IBM to say SVC XX is not defined]. Thus my query since a user defined SVC E0/224 can not issue a S0E0 ABEND of its own since IBM has hijacked that ABEND code restricting the SVC to only 14 not the 15 codes it is supposed to have. I realize that most SVCs can live with only 14 ABEND codes but I have seen some Vendor Code that issues a S0XX ABEND and thus if the user does not use the Vendor's suggested SVC Number but accidentally selects one that IBM has hijacked can run into a conflict. As to IBM using USER ABENDs, that is a different issue since a USER ABEND (Uxxxx) is issued by an application and is unique to THAT application. Thus if Application X issues a U1000 then it means that the application has run into a problem 1000 as defined in its documentation. Application Y issuing a U1000 has a totally different meaning which is defined in ITS documentation. If common routines are shared between applications then the meanings would be the same iff issued by the common routines. As for IBM grabbing USER ABEND Codes this falls under the common routine exception. COBOL has a number of USER ABENDs that it can issue from runtime code but they are restricted to a set range leaving room for true user code use. The same with applies to the top-hat routines supplied by IBM with LE. My question only applies to SYSTEM ABENDs where IBM seems to be violating the assignment of the SYXX codes that are supposed to be allocated for SVC XX by using some for itself without being the owner of SVC XX. The only case where I know of IBM supplying USER SVC codes is when it issues the product (such as the case with CICS, etc.) and the EXTENDED SVCs supported by the defined Extended SVC top-hat numbers (which route to IGX as opposed to IGC modules). Many of the IBM products use these in lieu of the traditional USER SVCs.
