SVC 120

26 views
Skip to first unread message

Paul Edwards

unread,
Aug 20, 2025, 8:58:39 AMAug 20
to z390
I have released a new version of PDOS/386 at pdos.org
that contains a pdld.exe that can produce z390 executables.

I made this change to see if my pdptest program (which
works on MVS 3.8J) would work on z390:

D:\devel\pdos\pdpclib>cvs diff
cvs diff: Diffing .
Index: makefile.370
===================================================================
RCS file: \cvsroot/pdos/pdpclib/makefile.370,v
retrieving revision 1.1.1.1
diff -r1.1.1.1 makefile.370
26c26
< EXTRA1=--oformat mvs --amode 31 --rmode any
---
> EXTRA1=--oformat z390 --amode 31 --rmode any
Index: pdpmvs4.bat
===================================================================
RCS file: \cvsroot/pdos/pdpclib/pdpmvs4.bat,v
retrieving revision 1.1.1.1
diff -r1.1.1.1 pdpmvs4.bat
9c9
< sleep 2
---
> rem sleep 2
11c11
< call runmvs pdpmvs2.jcl output.txt pdptest.exe
---
> rem call runmvs pdpmvs2.jcl output.txt pdptest.exe

D:\devel\pdos\pdpclib>



But I got:

C:\z390_1.8.3>bat\exec pdptest
19:59:00 pdptest   EZ390 START USING z390 1.8.3 ON J2SE 1.8.0_461 08/20/25
EZ390E error  23 undefined svc - 120
19:59:00 pdptest   EZ390 ENDED   RC=16 SEC= 0 MEM(MB)= 22 IO=1888 INS=9
C:\Z390_1~1.3\bat\ez390 ERROR: See errors on ez390 generated log file and console

C:\z390_1.8.3>


Would it be possible to support SVC 120?

(ie a "direct" call to SVC 120 - or the code that is (sometimes)
generated by the MVS 3.8J version of the GETMAIN macro)?


Thanks. Paul.

Paul Edwards

unread,
Aug 20, 2025, 11:02:18 AMAug 20
to z390
Note that there are likely to be other things I would need.

I am after some fairly minimal functionality that is
available on MVS 3.8J - the ability to open a F512
dataset for update and POINT to a record and
read/write.

That would allow me to create a z390-based pseudo-bios,
which in turn would allow me to run z/PDOS-generic.

I realize that there are alternatives provided by z390, but
any reason why the real thing - like SVC 120 - isn't supported
or supportable?

Thanks. Paul.

abeko...@gmail.com

unread,
Aug 20, 2025, 2:42:01 PMAug 20
to z390
Paul,

You raise a good question which pops up from time to time. z390 was built from the very beginning to be source-compatible only. We mimic a lot of things IBM describe in their PoP, but under the covers we try do do things differently in order avoid IP infringement litigation by IBM. They've had 'issues' with Hercules (I think) and LzLabs (quite recently) and the word "emulation" has their utmost attention. I've experienced that first-hand.

So, no - we're not planning to support SVC 120. But creating support for NOTE and POINT macros is very much thinkable, and I will happily work with you to draw up a feasible implementation of that for z390.

Kind regards,
Abe
===

Paul Edwards

unread,
Aug 22, 2025, 11:22:40 AMAug 22
to z390
Hi Abe.

My own first-hand experience with creating z/PDOS and z/PDOS-generic
is that IBM didn't do anything at all.

IBM only complained about Hercules when Turbohercules tried to force
IBM to do something (ie sell z/OS), and they pointed out PATENT
infringements.

The technology that I am implementing is almost all far more than
20 years old, and the small amount that isn't, is 25 years old. So all
out of patent - even if patents exist for the small (documented)
amount that I use.

I don't think IBM ever claims copyright infringement - we don't
have access to IBM's code in order to infringe it - even if we
wanted to - which no-one wants to - nor does anyone need to.

Regardless, I'm happy to work within the parameters you provided.

Could you see that you can reproduce my result?

Get the pdpclib source code from here:


copy mvsstart.asm and mvssupa.asm into the z390_1.8.3
directory, renaming both to mlc

Copy pdptop.mac, renaming to pdptop.cpy

create directory "mymac" and unzip maclib.zip, modgen.zip and
apvtmacs.zip from here:


(these are MVS 3.8J macros, but I have made some changes to them)


Then run:

bat\asm mvsstart sysmac(mac+mymac)

which works:

07:50:27 mvsstart  MZ390 START USING z390 1.8.3 ON J2SE 1.8.0_461 08/21/25
07:50:28 mvsstart  MZ390 ENDED   RC= 4 SEC= 1 MEM(MB)= 85 IO=11406
C:\Z390_1~1.3\bat\mz390 WARNING: See warnings on mz390 generated bal file and console


And then:

bat\asm mvssupa sysmac(mac+mymac)

which does not:

07:50:29 mvssupa   MZ390 START USING z390 1.8.3 ON J2SE 1.8.0_461 08/21/25
MZ390E MNOTE 12,'OPEN TYPE= NOT SUPPORTED'
MZ390E MNOTE 12,'SNAP INVALID MF= OPTION'
MZ390E MNOTE 12,'OPEN TYPE= NOT SUPPORTED'
MZ390E MNOTE 12,'OPEN OPTION NOT SUPPORTED - UPDAT'
MZ390E MNOTE 12,'OPEN OPTION NOT SUPPORTED - EXTEND'
MZ390E MNOTE 12,'OPEN OPTION NOT SUPPORTED - INOUT'
MZ390E MNOTE 12,'OPEN OPTION NOT SUPPORTED - OUTINX'
MZ390E MNOTE 12,'OPEN OPTION NOT SUPPORTED - OUTIN'
MZ390E MNOTE 12,'READ MF= NOT SUPPORTED'
MZ390E MNOTE 12,'UNSUPPORTED OPERAND - REPOS=Y'
MZ390E MNOTE 12,'DCB DEVD NOT SUPPORTED'
MZ390E MNOTE 12,'SHOWCB ONLY SUPPORTS RPL CURRENTLY'
MZ390E MNOTE 12,'READ MF= NOT SUPPORTED'
MZ390E MNOTE 12,'SNAP INVALID MF= OPTION'
MZ390E MNOTE 12,'SNAP INVALID MF= OPTION'
MZ390E MNOTE 12,'WRITE MF= NOT SUPPORTED'
MZ390E MNOTE 12,'WRITE MF= NOT SUPPORTED'
MZ390E MNOTE 12,'EXTRACT NOT SUPPORTED YET'
MZ390E MNOTE 12,'READ MF= NOT SUPPORTED'
MZ390E MNOTE 12,'UNSUPPORTED OPERAND - REPOS=Y'
MZ390E MNOTE 12,'DCB DEVD NOT SUPPORTED'
AZ390E error 198   (1/1071)1157            STCM  R1,7,DCBIOBAA LINK IOB TO DCB FOR DUMP FORM.ING
AZ390E error 198   (1/1106)1192            NC    DCBMACR(2),=AL1(DCBMRRD,DCBMRWRT) Strip Point
AZ390E error 198   (1/1149)1233            STCM  R14,B'0111',DCBEXLSA
AZ390E error  98   (1/1287)1484            B     OPENIN
AZ390E error 198   (1/1293)1490            MVI   DCBDSRG1,DCBDSGPO  Replace DCB DSORG=PS with PO
AZ390E error  98   (1/1294)1491            B     OPENIN



Note that changing:

mac+mymac

to just:

mymac

works. ie z390 is able to handle all the macro assembler
syntax used in my flavor of MVS 3.8J macros - which is impressive.

Which should allow me to create an executable that runs on
MVS 3.8J or z/OS - I have sent a message to the pdld author
to ask about a technical issue when I tried to do that.

However, to run under z390, I need the "mac" version to work,
for the functionality that I actually use.

Note that some of the errors - like OUTINX not being supported -
I don't actually care about. The mvssupa.asm allows for that, but
I don't actually exercise that code.

Thanks. Paul.

Paul Edwards

unread,
Aug 22, 2025, 11:45:56 AMAug 22
to z390
On Friday, August 22, 2025 at 11:22:40 PM UTC+8 Paul Edwards wrote:
works. ie z390 is able to handle all the macro assembler
syntax used in my flavor of MVS 3.8J macros - which is impressive.

Which should allow me to create an executable that runs on
MVS 3.8J or z/OS - I have sent a message to the pdld author
to ask about a technical issue when I tried to do that.

Note that the technical issue was resolved, and pdld is
indeed able to produce a valid MVS executable, and the
process of using z390 + pdld is now documented in
pdpmvs4.bat

But that doesn't resolve the problem of producing a 390
file with the same limited/somewhat minimal functionality.

BFN. Paul.

Reply all
Reply to author
Forward
0 new messages