¿ªÔÆÌåÓý

VM/370 & SVC #VMCE


 

I've run into SVC 8, 202 and 203, and I'd like to know if there is a manual that contains all of them, and what they do.

covers 0, 8, 12, 16, 20, & 24, but not 202 or 203.

... Mark S.


 

¿ªÔÆÌåÓý

GC20-1807 Looks right, for 202 & 203 but I think the SVC202 has been extended by mods.

As SVC 8 is a OS/MFT call it won¡¯t be documented.

?

Dave

?

From: [email protected] <[email protected]> On Behalf Of Mark A. Stevens via groups.io
Sent: 05 February 2023 21:12
To: [email protected]
Subject: [h390-vm] VM/370 & SVC #VMCE

?

I've run into SVC 8, 202 and 203, and I'd like to know if there is a manual that contains all of them, and what they do.


covers 0, 8, 12, 16, 20, & 24, but not 202 or 203.

... Mark S.


 

On Sun, 5 Feb 2023 at 16:11, Mark A. Stevens via groups.io
<marXtevens@...> wrote:

I've run into SVC 8, 202 and 203, and I'd like to know if there is a manual that contains all of them, and what they do.

SY20-0886-1_VM370_Rel_6_Vol_1_Mar79.pdf covers 0, 8, 12, 16, 20, & 24, but not 202 or 203.
The modern zVM docs explain a lot of what SVC 202 does, even though
they deprecate it. Obviously VM/370+mods doesn't implement everything,
but it's good background reading.




(The above two docs have a huge amount of overlap. Probably the first
one is best to get an understanding.)

Tony H.


 

Have a look here:?

Beginning at page 257.

Joe

On Sun, Feb 5, 2023 at 3:58 PM Tony Harminc <tharminc@...> wrote:
On Sun, 5 Feb 2023 at 16:11, Mark A. Stevens via
<marXtevens=[email protected]> wrote:
>
> I've run into SVC 8, 202 and 203, and I'd like to know if there is a manual that contains all of them, and what they do.
>
> SY20-0886-1_VM370_Rel_6_Vol_1_Mar79.pdf covers 0, 8, 12, 16, 20, & 24, but not 202 or 203.

The modern zVM docs explain a lot of what SVC 202 does, even though
they deprecate it. Obviously VM/370+mods doesn't implement everything,
but it's good background reading.




(The above two docs have a huge amount of overlap. Probably the first
one is best to get an understanding.)

Tony H.






 

On Sun, Feb 5, 2023 at 03:48 PM, Dave Wade wrote:
As SVC 8 is a OS/MFT call it won¡¯t be documented.
Dave,

Thanks for the pointer to GC20-1807-7_VM370_System_Programmers_Guide_Rel_6_4-81.pdf, Seems to start at p. 256.

This is where I got the list from SY20-0886-1_VM370_Rel_6_Vol_1_Mar79.pdf,? Figure 4, page 1-17, the SVC Interrupt "box" shows (bolding by me) ...

If PROBLEM MODE
? And ADSTOP SVC, simulate 'ADSTOP' to
virtual machine
? And an SVC 76, verify the parameters and
call DMKVER to build the error record. (A)
? And virtual machine IS In extended
mode and/or Page 0 is not in storage,
reflect interrupt to virtual machine
? Otherwise, fetch Page 0, move CP PSW
to virtual SVCOPSW, and move SVCNPSW
to the CP PSW
? If supervisor mode, run user-LPSW

If SVC 0 (Impossible condition or fatal error),
dump the machine

If SVC 8 (Link Request), (B)
pass control from one module to another

If SVC 12 (Return Request),
return control to calling module

If SVC 16, release Save Area (C)

If SVC 20, get next save area for (D)
calling module

If SVC 24, switch processing to
main processor

So ... that is why I gave the original list above.

?... Mark S.


 

On Sun, Feb 5, 2023 at 04:25 PM, Joe Monk wrote:
Beginning at page 257.
Thank you Joe. I might back up a page ;-)

?... Mark S.


 

On Sun, Feb 5, 2023 at 03:58 PM, Tony Harminc wrote:

Tony,

Thanks. I was trying to stay within the VM/370 environment, but I will also look at these.

?... Mark S.


 

Mark,

To the best of my recollection, all SVCs issued in CMS other than those in the 200s? (e.g., 202, 203), are used by OS simulation.? Thus SVC 8 is from an OS LOAD macro.? SVC 10 is GETMAIN/FREEMAIN.? SVC 6 is LINK.? Thus those are documented in VS1 or VS2 documentation of the period.? There are several more.

The SVC 8 documented posted here just a couple of messages ago is for CP's use of SVC 8.? That is NOT the same as what a CMS user will encounter, so disregard the documentation in that post.

Regards,
Bob


 

On Sun, Feb 5, 2023 at 05:16 PM, Bob Polmanter wrote:
SVC 6 is LINK
That's the one I was looking for! So I need to go digging into the OS/VS* manuals. Oh bother. Now to find the proper manual "over there."

Page 258 backs up your recollection.

CMS supports selected SVC calls generated by as and DOS/VS macros, by
simulating the effect of these macro calls. DMSITS is the initial SVC
interrupt handler. If the SET DOS command has been issued, a flag in
NUCON will indicate that DOS/VS macro simulation is to be used. Control
is then passed to DMSITS. Otherwise, as macro simulation is assumed and
DMSITS passes control to the appropriate OS simulation routine.

?... Mark S.


 

Mark,

See:
? ?

Note the last three manuals on that page ... Vol. 1 is for CP, Vol. 2 is for CMS ... Vol. 3 is for RSCS etc.

SVC 202 and 203 are for CMS ... and are defined or described on page 2-7 of that Vol. 2 manual:

?

There are overlapping SVC numbers between CP and CMS, because the CP ones only matter when you are running inside CP ... some DMKxxx modules;? CMS is running in a virtual machine (the DMSxxx modules) and has its own "set" of SVC numbers.? ?CMS also supports OS simulation so many SVC numbers come from OS/360 MVT ... to allow those OS compilers etc. to run under CMS.? ?

If you "SET DOS ON" in CMS, that swaps in a different SVC table, to emulate DOS/VS SVC numbers.

Hope that helps,

Mark S. Waterbury


 

On Sun, Feb 5, 2023 at 06:08 PM, Mark Waterbury wrote:
There are overlapping SVC numbers between CP and CMS, because the CP ones only matter when you are running inside CP ... some DMKxxx modules;? CMS is running in a virtual machine (the DMSxxx modules) and has its own "set" of SVC numbers.? ?CMS also supports OS simulation so many SVC numbers come from OS/360 MVT ... to allow those OS compilers etc. to run under CMS.? ?

If you "SET DOS ON" in CMS, that swaps in a different SVC table, to emulate DOS/VS SVC numbers.
Mark,

Thanks for the information. I was not aware of the overlap. I was aware of OS vs DOS for some stuff, but now I know about SVCs.

My focus is on the OS simulation, since the assembler code I am working with is supposed to support OS(MVS) and CMS conventions.

?... Mark S.


 

Hi, Mark,

The CMS OS simulation is fairly well described in that VM/370 Release 6 Vol 2 Mar 1979? PLM ... :-)

I hope that helps,

Mark


 

¿ªÔÆÌåÓý

Mark,

If your work is on OS SVCs and you are familiar with OS please note that the OS emulation in CMS is based on OS/MVT release 21.8.

I don¡¯t believe it was updated until VM/ESA (perhaps SP6) but this does mean some re-coding is needed if moving things from MVS

Dave

?

From: [email protected] <[email protected]> On Behalf Of Mark A. Stevens via groups.io
Sent: 07 February 2023 02:02
To: [email protected]
Subject: Re: [h390-vm] VM/370 & SVC #VMCE

?

On Sun, Feb 5, 2023 at 06:08 PM, Mark Waterbury wrote:

There are overlapping SVC numbers between CP and CMS, because the CP ones only matter when you are running inside CP ... some DMKxxx modules;? CMS is running in a virtual machine (the DMSxxx modules) and has its own "set" of SVC numbers.? ?CMS also supports OS simulation so many SVC numbers come from OS/360 MVT ... to allow those OS compilers etc. to run under CMS.? ?

If you "SET DOS ON" in CMS, that swaps in a different SVC table, to emulate DOS/VS SVC numbers.

Mark,

Thanks for the information. I was not aware of the overlap. I was aware of OS vs DOS for some stuff, but now I know about SVCs.

My focus is on the OS simulation, since the assembler code I am working with is supposed to support OS(MVS) and CMS conventions.

?... Mark S.


 

On Mon, Feb 6, 2023 at 09:28 PM, Mark Waterbury wrote:
The CMS OS simulation is fairly well described in that VM/370 Release 6 Vol 2 Mar 1979? PLM ... :-)
One of several books/PDFs I have cracked open at this point.

Thanks!

?... Mark S.


 

On Tue, Feb 7, 2023 at 02:42 AM, Dave Wade wrote:
If your work is on OS SVCs and you are familiar with OS please note that the OS emulation in CMS is based on OS/MVT release 21.8.
I guess I'm going to need to start collecting MVT books from Bitsavers, and the like.

Thanks!

?... Mark S.


 

On Sun, Feb 5, 2023 at 03:48 PM, Dave Wade wrote:
GC20-1807 Looks right, for 202 & 203 but I think the SVC202 has been extended by mods.
I've found (and read) manuals for SVC 202/203, finally and that is taking me into the code, specifically DMSITS and DMSFNC.

(Special thanks to Olaf for writing VMFEE EXEC.)

File: $DMSITS? ASSEMBLE A1? RECFM: F LRECL:? 72(80) Lines:? 1549 Current:?? 340
????? ....+....|....+|...2....+....3|...+....4....+....5....+....6....+....7.|
===== * THE HALFWORD CODE MAY BE EITHER POSITIVE OR NEGATIVE.? A NEGATIVE??? ?
===== * CODE SPECIFIES THE SAME ROUTINE AS A POSITIVE CODE, BUT THERE IS???? ?
===== * THE FOLLOWING DIFFERENCE:? IF THE CALLED ROUTINE GIVES AN ERROR????? ?
===== * RETURN (NON-ZERO REGISTER 15), THEN A POSITIVE CODE WILL CAUSE?????? ?
===== * DMSITS TO ABEND, WHILE A NEGATIVE CODE WILL CAUSE DMSITS TO RETURN?? ?
===== * TO THE POINT WHERE THE SVC WAS INVOKED.????????????????????????????? ?
=====????????? LTR?? XR,XR?????????????????? IS THE CODE NEGATIVE??????????? ?
=====????????? BP??? *+8???????????????????? SKIP IF POSITIVE??????????????? ?
=====????????? OI??? NRMSAV+TYPFLAG-SSAVE,TPFERT SET ERROR RETURN FLAG?????? ?
=====????????? LPR?? R15,XR????????????????? GET ABSOLUTE VALUE OF CODE????? ?
=====????????? SPACE???????????????????????????????????????????????????????? ?
===== * THE ROUTINE NAME IS DETERMINED BY THE SECOND BYTE OF THE HALFWORD??? ?
===== * CODE.? THIS LEAVES SEVEN BITS OF THE FIRST BYTE WHICH MAY BE USED??? ?
===== * TO PASS INFORMATION TO THE SVC ROUTINE BY THE CALLER.??????????????? ?
=====????????? N???? R15,=A(X'FF')?????????? GET ROUTINE CODE??????????????? ?
=====????????? BZ??? NO203?????????????????? ZERO CODE IS ILLEGAL??????????? ?
=====????????? L???? R14,=V(DMSFNC3)???????? POINT TO SVC 203 FUNCTION TABLE ?
=====????????? C???? R15,0(,R14)???????????? DOES THIS EXCEED MAXIMUM CODE?? ?
=====????????? BH??? NO203?????????????????? ILLEGAL IF IT DOES????????????? ????????????????????????????????????????????


I'm trying to find out if there is documentation on the SVC 203 halfword table. DMSITS has been extended by the person bright enough to add this bit.

FSVIEW: DMSITS AUXHRC F1?????????????????? Lines 1-1/1 F80[1-79]? FSVIEW V1.2.5
HRC404DS V01 NUCEXT and SUBCOM support

What I'm not finding is any external documentation on the table (DMSFNC) that SVC 203 (DMSITS) uses to determine what happens when I pick a particular halfword value.

At this point, I'm reading through the assembler code for both of these routines to understand what is going on.

So, if you bothered to read this far, if you know anything about SVC 203 and it's use of a halfword table to determine the function required ... I'm all ears.

?... Mark S.


 

¿ªÔÆÌåÓý

Mark,

?

Well as VM/370 always was source maintained I think the source is the only documentation on which entry goes where¡­.

This manual

?

SY20-0887-1_vmLogicV2_Mar79.pdf

?

Has some more info (sequential page 39) on how the table is used, but I am not sure its helpful¡­.

?

Dave

?

From: [email protected] <[email protected]> On Behalf Of Mark A. Stevens via groups.io
Sent: Monday, May 29, 2023 11:16 PM
To: [email protected]
Subject: Re: [h390-vm] VM/370 & SVC #VMCE

?

On Sun, Feb 5, 2023 at 03:48 PM, Dave Wade wrote:

GC20-1807 Looks right, for 202 & 203 but I think the SVC202 has been extended by mods.

I've found (and read) manuals for SVC 202/203, finally and that is taking me into the code, specifically DMSITS and DMSFNC.

(Special thanks to Olaf for writing VMFEE EXEC.)

File: $DMSITS? ASSEMBLE A1? RECFM: F LRECL:? 72(80) Lines:? 1549 Current:?? 340
????? ....+....|....+|...2....+....3|...+....4....+....5....+....6....+....7.|
===== * THE HALFWORD CODE MAY BE EITHER POSITIVE OR NEGATIVE.? A NEGATIVE??? ?
===== * CODE SPECIFIES THE SAME ROUTINE AS A POSITIVE CODE, BUT THERE IS???? ?
===== * THE FOLLOWING DIFFERENCE:? IF THE CALLED ROUTINE GIVES AN ERROR????? ?
===== * RETURN (NON-ZERO REGISTER 15), THEN A POSITIVE CODE WILL CAUSE?????? ?
===== * DMSITS TO ABEND, WHILE A NEGATIVE CODE WILL CAUSE DMSITS TO RETURN?? ?
===== * TO THE POINT WHERE THE SVC WAS INVOKED.????????????????????????????? ?
=====????????? LTR?? XR,XR?????????????????? IS THE CODE NEGATIVE??????????? ?
=====????????? BP??? *+8???????????????????? SKIP IF POSITIVE??????????????? ?
=====????????? OI??? NRMSAV+TYPFLAG-SSAVE,TPFERT SET ERROR RETURN FLAG?????? ?
=====????????? LPR?? R15,XR????????????????? GET ABSOLUTE VALUE OF CODE????? ?
=====????????? SPACE???????????????????????????????????????????????????????? ?
===== * THE ROUTINE NAME IS DETERMINED BY THE SECOND BYTE OF THE HALFWORD??? ?
===== * CODE.? THIS LEAVES SEVEN BITS OF THE FIRST BYTE WHICH MAY BE USED??? ?
===== * TO PASS INFORMATION TO THE SVC ROUTINE BY THE CALLER.??????????????? ?
=====????????? N???? R15,=A(X'FF')?????????? GET ROUTINE CODE??????????????? ?
=====????????? BZ??? NO203?????????????????? ZERO CODE IS ILLEGAL??????????? ?
=====????????? L???? R14,=V(DMSFNC3)???????? POINT TO SVC 203 FUNCTION TABLE ?
=====????????? C???? R15,0(,R14)???????????? DOES THIS EXCEED MAXIMUM CODE?? ?
=====????????? BH??? NO203?????????????????? ILLEGAL IF IT DOES????????????? ????????????????????????????????????????????


I'm trying to find out if there is documentation on the SVC 203 halfword table. DMSITS has been extended by the person bright enough to add this bit.

FSVIEW: DMSITS AUXHRC F1?????????????????? Lines 1-1/1 F80[1-79]? FSVIEW V1.2.5
HRC404DS V01 NUCEXT and SUBCOM support

What I'm not finding is any external documentation on the table (DMSFNC) that SVC 203 (DMSITS) uses to determine what happens when I pick a particular halfword value.

At this point, I'm reading through the assembler code for both of these routines to understand what is going on.

So, if you bothered to read this far, if you know anything about SVC 203 and it's use of a halfword table to determine the function required ... I'm all ears.

?... Mark S.


 

On Mon, May 29, 2023 at 06:12 PM, Dave Wade wrote:

SY20-0887-1_vmLogicV2_Mar79.pdf

?

Has some more info (sequential page 39) on how the table is used, but I am not sure its helpful¡­.

Been there, read that. ;-) Good overview, but I'm done with milk and looking for meat :-D SO ... into the code I go. At least the code is documented.

?... Mark S.


 

Hi Mark,
I wrote the HRC404DS mod. Nucleus extensions first appeared?in VM/SP. IBM needed a way
to relocate code containing CMS APIs that used the DC AL4(Error address), or sometimes
just DC AL4(*+4). VM/SP started?allowing DC AL4(1) to specify?an error return address.
Allowing that construct allowed any code containing the *+4 value to work, and to be relocatable.
Bob Bolch

On Mon, May 29, 2023 at 7:12?PM Dave Wade <dave.g4ugm@...> wrote:

Mark,

?

Well as VM/370 always was source maintained I think the source is the only documentation on which entry goes where¡­.

This manual

?

SY20-0887-1_vmLogicV2_Mar79.pdf

?

Has some more info (sequential page 39) on how the table is used, but I am not sure its helpful¡­.

?

Dave

?

From: [email protected] <[email protected]> On Behalf Of Mark A. Stevens via
Sent: Monday, May 29, 2023 11:16 PM
To: [email protected]
Subject: Re: [h390-vm] VM/370 & SVC #VMCE

?

On Sun, Feb 5, 2023 at 03:48 PM, Dave Wade wrote:

GC20-1807 Looks right, for 202 & 203 but I think the SVC202 has been extended by mods.

I've found (and read) manuals for SVC 202/203, finally and that is taking me into the code, specifically DMSITS and DMSFNC.

(Special thanks to Olaf for writing VMFEE EXEC.)

File: $DMSITS? ASSEMBLE A1? RECFM: F LRECL:? 72(80) Lines:? 1549 Current:?? 340
????? ....+....|....+|...2....+....3|...+....4....+....5....+....6....+....7.|
===== * THE HALFWORD CODE MAY BE EITHER POSITIVE OR NEGATIVE.? A NEGATIVE??? ?
===== * CODE SPECIFIES THE SAME ROUTINE AS A POSITIVE CODE, BUT THERE IS???? ?
===== * THE FOLLOWING DIFFERENCE:? IF THE CALLED ROUTINE GIVES AN ERROR????? ?
===== * RETURN (NON-ZERO REGISTER 15), THEN A POSITIVE CODE WILL CAUSE?????? ?
===== * DMSITS TO ABEND, WHILE A NEGATIVE CODE WILL CAUSE DMSITS TO RETURN?? ?
===== * TO THE POINT WHERE THE SVC WAS INVOKED.????????????????????????????? ?
=====????????? LTR?? XR,XR?????????????????? IS THE CODE NEGATIVE??????????? ?
=====????????? BP??? *+8???????????????????? SKIP IF POSITIVE??????????????? ?
=====????????? OI??? NRMSAV+TYPFLAG-SSAVE,TPFERT SET ERROR RETURN FLAG?????? ?
=====????????? LPR?? R15,XR????????????????? GET ABSOLUTE VALUE OF CODE????? ?
=====????????? SPACE???????????????????????????????????????????????????????? ?
===== * THE ROUTINE NAME IS DETERMINED BY THE SECOND BYTE OF THE HALFWORD??? ?
===== * CODE.? THIS LEAVES SEVEN BITS OF THE FIRST BYTE WHICH MAY BE USED??? ?
===== * TO PASS INFORMATION TO THE SVC ROUTINE BY THE CALLER.??????????????? ?
=====????????? N???? R15,=A(X'FF')?????????? GET ROUTINE CODE??????????????? ?
=====????????? BZ??? NO203?????????????????? ZERO CODE IS ILLEGAL??????????? ?
=====????????? L???? R14,=V(DMSFNC3)???????? POINT TO SVC 203 FUNCTION TABLE ?
=====????????? C???? R15,0(,R14)???????????? DOES THIS EXCEED MAXIMUM CODE?? ?
=====????????? BH??? NO203?????????????????? ILLEGAL IF IT DOES????????????? ????????????????????????????????????????????


I'm trying to find out if there is documentation on the SVC 203 halfword table. DMSITS has been extended by the person bright enough to add this bit.

FSVIEW: DMSITS AUXHRC F1?????????????????? Lines 1-1/1 F80[1-79]? FSVIEW V1.2.5
HRC404DS V01 NUCEXT and SUBCOM support

What I'm not finding is any external documentation on the table (DMSFNC) that SVC 203 (DMSITS) uses to determine what happens when I pick a particular halfword value.

At this point, I'm reading through the assembler code for both of these routines to understand what is going on.

So, if you bothered to read this far, if you know anything about SVC 203 and it's use of a halfword table to determine the function required ... I'm all ears.

?... Mark S.