No, if you get a system BEND 0C1 then the program interrupt code was 01; the is 
no program interrupt code 0C1.

--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
עַם יִשְׂרָאֵל חַי
נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר

________________________________________
From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> on behalf of 
Joseph Reichman <reichman...@gmail.com>
Sent: Sunday, February 4, 2024 10:29 AM
To: IBM-MAIN@LISTSERV.UA.EDU
Subject: Re: Registers in the RB

Can you for proposed that I understand differentiate between a program check 
and abend
 S0C1 is a program check S0C4 is not

I understand the abend SVC 13 is not a program check
But thought S0C4 is a program check

Thank you

> On Feb 4, 2024, at 10:27 AM, Joseph Reichman <reichman...@gmail.com> wrote:
>
> Seymour thanks
>
> This Manuel is from from 1987 ?
>
> Micheal was 1976
>
> Is this still valid ?
>
> I’ll read it in really not looking for easy way out
>
> Peter R said he answered in this general thread
>
> I did look back before posting
>
> The only thing I noticed was in the case of an abend for example 0F8 the type 
> of abend issued by the SVC FLIH the registers are in the next RB or ABend 
> SVCRB
>
> I thought in the case of a program check I.E. S0C1,4 etc it would be by that 
> I mean the registers and PSW in the PRB that represented that unit of work
>
> This program that abended was initiated by synch SVC 12 but I wasn’t looking 
> at the SVRB but the PRB
>
> Thanks
>
>> On Feb 4, 2024, at 10:14 AM, Seymour J Metz <sme...@gmu.edu> wrote:
>>
>> The processing for SYNCH is the same whether it is  issued from a PRB or an 
>> SVRB; the caller's PSW goes into the old RB and the caller's general 
>> registers go into the new PRB.
>>
>> <http://wwww.bitsavers.org/pdf/ibm/370/MVS_XA/LY28-1765-0_MVS_XA_Version_2_Release_2.0_System_Logic_Library_Supervisor_Control_Jun1987.pdf>
>>  is newer.
>>
>> Sometimes they get better.
>>
>> --
>> Shmuel (Seymour J.) Metz
>> http://mason.gmu.edu/~smetz3
>> עַם יִשְׂרָאֵל חַי
>> נֵ֣צַח יִשְׂרָאֵ֔ל לֹ֥א יְשַׁקֵּ֖ר
>>
>> ________________________________________
>> From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> on behalf of 
>> Michael Stein <m...@zlvfc.com>
>> Sent: Sunday, February 4, 2024 4:06 AM
>> To: IBM-MAIN@LISTSERV.UA.EDU
>> Subject: Re: Registers in the RB
>>
>>>> On Sat, Feb 03, 2024 at 08:20:08PM -0500, Joseph Reichman wrote:
>>> It was my understanding probably erroneously that when a RB I guess I am
>>> talking about a PRB gets interrupted and that can happen in one of  two
>>> instances
>>>
>>> 1)    An SVC
>>> 2)    A Program check e.g. S0C1,4,
>>
>> There are many interrupts possible: External, I/O, Program, SVC plus a few
>> others.  Also including software caused like asynchronous exit routines.
>>
>> The bottom level of the system has to deal with these and one of it's
>> main concerns is where to save the state of whatever was running when
>> the interrupt happened.
>>
>> Since there are multiple CPUs and many many tasks & SRBs etc, it's
>> important that the state information (PSW & registers) are only saved
>> in areas others won't use at the same time otherwise they would get
>> overlay by another interrupt or processor leading to disaster.
>>
>> While the OS interrupt routines have processor related storage they can
>> only use this during the time they are disabled.  If they are going to
>> return to the interrupted work then they can restore them and return,
>> otherwise they must move/save the state elsewhere before they enable.
>>
>> For an OS task the registers and PSW are saved in task related control
>> blocks, a combination of the TCB and RBs.
>>
>> The SVC interrupt handler save state depending on the type of SVC:
>>
>> type 1: (required to hold local lock, so can use areas address space 
>> related))
>>       registers -> TCBGRS (?)
>>       PSW -> some address space related area (?)
>>
>> type 2,3,4: (doesn't require holding local lock so can't use address space
>>            related area)
>>       . SVC caller's PSW & interupt code in top RB on TCB RB chain
>>       . gets SVRB, puts SVC issuer registers into this SVRB
>>         and addes it to the top of the TCB RB chain
>>  so:
>>       . SVRB register contain the SVC issuer's registers
>>       . SVRB PSW is the SVC routines PSW
>>       . TCBGRS is the SVC routines registers
>>
>> Keep in mind that a type 2,3,4 SVC can issue another SVC (which will
>> if type 2,3,4 add another SVRB).  Or it might issue the SYNCH SVC
>> resulting in an RB being added to the RB chain (holding the SVC issuing
>> SYNCH's PSW.  Where the SVCs routine registers go I don't know.
>> Perhaps SYNCH with restore=yes is newer?
>>
>> Also IRBs for asynchronous exit routines can be added to the RB chain.
>> In this case the interrupted registers will be in the IRB register save
>> area and the interrupted PSW will be in what was the top RB before the
>> IRB was added.
>>
>> I don't know if IBM makes available current logic manuals but old ones
>> exist like:
>>
>> https://archive.org/details/bitsavers_ibm370OSVSystemLogicLibraryVol4Rel3.7Jul76_23459458
>>
>> It's not clear how much change has happened since then, but some of the
>> basic concepts likely haven't changed all that much.  Look up how the
>> SVC interrupt handler works...
>>
>> Or an yet older manual for MVT, no SRBs just tasks, usually only one CPU,
>> but similar TCB/RB structures:
>>
>> https://ia903101.us.archive.org/20/items/bitsavers_ibm360osR1TSupervisorRel17ProgramLogicNov1968_55700209/Y28-6659-3_MVT_Supervisor_Rel_17_Program_Logic_Nov1968.pdf
>>
>> PS: Do the manuals get worse the newer they are?
>>
>> ----------------------------------------------------------------------
>> 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

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

Reply via email to