Hi Abe.

Indeed, I have been using z390 for the last 2 days and it's
going pretty well.

Still waiting for my membership to be approved here:

https://groups.google.com/g/z390

I also couldn't find out how to link two object files together.

But that's OK, because I will be using pdld for that anyway.


As such, I have created what is hopefully a z/OS load module here:

https://pdos.org/rm64test.zip

There is a doit.bat that shows how it was created.

It uses a freshly-built pdld.exe to create the pdptest.exe z/OS
load module (in iebcopy + ftp rdw format).

Hopefully this is a valid RMODE 64 load module, if someone
would like to try it out.


I also raised (at github) an unrelated issue I found on the way.

Also I would like to know where the 390 executable format is documented,
mainly the first 32 bytes:

C:\z390_1.8.3\demo>hexdump hello.390
000000  31303032 54463F3F 000000A0 00000000  1002TF??........
000010  00000000 90ECD00C 45FF0068 00000000  ........E..h....
000020  00000000 00000000 00000000 00000000  ................
000030  00000000 00000000 00000000 00000000  ................
000040  00000000 00000000 00000000 00000000  ................
000050  00000000 00000000 00000000 00000000  ................
000060  00000000 C4C5D4D6 40404040 F0F861F1  ........@@@@..a.
000070  F661F2F5 F1F54BF5 F9404040 50FD0008  .a....K..@@@P...
000080  50DF0004 18DFA715 000A000F 0000C8C5  P...............
000090  D3D3D640 E6D6D9D3 C4F60A23 41F00000  ...@.......#A...
0000A0  58D0D004 58E0D00C 982CD01C 07FEF6F6  X...X....,......
0000B0  F6F6F6F6                             ....

C:\z390_1.8.3\demo>


Thanks. Paul.




On Sat, 16 Aug 2025 07:19:16 +0200, Abe Kornelis <[email protected]> wrote:

>Paul,
>
>z390 has already been mentioned in this thread.
>There's a web site at www.z390.org - but it has not seen enough
>maintenance for quite a while, unfortunately.
>Current version can be obtained from github.com/z390development/z390
>You can either clone the repo or download from the "Releases".
>
>Kind regards & Happy programming,
>Abe Kornelis
>==========
>
>
>On 15/08/2025 05:38, Paul Edwards wrote:
>> On Thu, 14 Aug 2025 20:26:14 -0400, Joseph Reichman <[email protected]> 
>> wrote:
>>
>> Hi Joseph.
>>
>> I am interested in RMODE 64 on z/OS too. And have
>> some questions too.
>>
>>
>> Page 196 shows that RMODE 64 exists as a concept:
>>
>> https://publib.boulder.ibm.com/epubs/pdf/iea2b2b1.pdf
>>
>> On page 199 I can see V() references in the RLD.
>>
>> Where are VD() references documented?
>>
>>
>>
>>
>>> It seems you can run a program that is rmode64
>>> With synchx linkx  and attachx
>> Does this mean that you can't go EXEC PGM=
>> and have the program potentially go above 4 GiB?
>>
>>
>> Page 291 shows that AMODE=64 exists, but not RMODE=64
>> But perhaps if the RMODE is ANY, z/OS can further check
>> the internals of the load module and decide to locate
>> it above 4 GiB?
>>
>>
>> I don't have direct access to z/OS. Would someone be
>> able to assemble this (it may need corrections) and
>> give me the object code for ONE and TWO, plus the
>> resulting load module unloaded with IEBCOPY and
>> transferred with ftp binary with locsite rdw
>>
>> Thanks. Paul.
>>
>>
>>
>> //PDPMVS   JOB CLASS=C,REGION=0K,TIME=1440
>> //*
>> //PDPASM   PROC LIST='NOLIST'
>> //ASM      EXEC PGM=ASMA90,
>> //   PARM='DECK,&LIST,TERM'
>> //SYSLIB   DD DSN=SYS1.MACLIB,DISP=SHR,DCB=BLKSIZE=32720
>> //         DD DSN=&&amp;amp;MACLIB,DISP=(OLD,PASS)
>> //         DD DSN=SYS1.MODGEN,DISP=SHR
>> //SYSUT1   DD UNIT=SYSALLDA,SPACE=(CYL,(20,10))
>> //SYSUT2   DD UNIT=SYSALLDA,SPACE=(CYL,(20,10))
>> //SYSUT3   DD UNIT=SYSALLDA,SPACE=(CYL,(20,10))
>> //SYSTERM  DD SYSOUT=*
>> //SYSPRINT DD SYSOUT=*
>> //SYSLIN   DD DUMMY
>> //SYSGO    DD DUMMY
>> //SYSPUNCH DD DSN=&&amp;amp;OBJSET,UNIT=SYSALLDA,SPACE=(80,(9000,9000)),
>> //            DISP=(MOD,PASS)
>> //*
>> //         PEND
>> //CREATE   EXEC PGM=IEFBR14
>> //DD13     DD DSN=&&amp;amp;LOADLIB,DISP=(,PASS),
>> // DCB=(RECFM=U,LRECL=0,BLKSIZE=6144),
>> // SPACE=(CYL,(10,10,20)),UNIT=SYSALLDA
>> //DD14     DD DSN=&&amp;amp;MACLIB,DISP=(,PASS),
>> // DCB=(RECFM=FB,LRECL=80,BLKSIZE=6160),
>> // SPACE=(CYL,(10,10,20)),UNIT=SYSALLDA
>> //*
>> //ONE      EXEC PDPASM,LIST='LIST'
>> //SYSIN  DD  *
>> ***********************************************************************
>> *                                                                     *
>> *  This program written by Paul Edwards.                              *
>> *  Released to the public domain                                      *
>> *                                                                     *
>> ***********************************************************************
>> ***********************************************************************
>> *                                                                     *
>> *  ONE - call TWO to set R15                                          *
>> *                                                                     *
>> ***********************************************************************
>> *
>>          PRINT GEN
>> * YREGS was not part of the SYS1.MACLIB shipped with MVS 3.8j
>> * so may not be available, so do our own defines instead.
>> *         YREGS
>> R0       EQU   0
>> R1       EQU   1
>> R2       EQU   2
>> R3       EQU   3
>> R4       EQU   4
>> R5       EQU   5
>> R6       EQU   6
>> R7       EQU   7
>> R8       EQU   8
>> R9       EQU   9
>> R10      EQU   10
>> R11      EQU   11
>> R12      EQU   12
>> R13      EQU   13
>> R14      EQU   14
>> R15      EQU   15
>> SUBPOOL  EQU   0
>>          CSECT
>> *
>>          ENTRY ONE
>> ONE      DS    0H
>>          SAVE  (14,12),,ONE
>>          LR    R10,R15
>>          USING ONE,R10
>>          LR    R9,R13
>>          LA    R13,SAVEAREA
>>          LG    R15,=VD(TWO)
>>          LGR   R0,R14
>>          BALR  R14,R15
>>          LGR   R14,R0
>>          LR    R13,R9
>> *         LA    R15,0
>>          RETURN (14,12),RC=(15)
>> SAVEAREA DS    19F
>>          END
>> /*
>> //TWO    EXEC PDPASM,LIST='LIST'
>> //SYSIN  DD  *
>> ***********************************************************************
>> *                                                                     *
>> *  This program written by Paul Edwards.                              *
>> *  Released to the public domain                                      *
>> *                                                                     *
>> ***********************************************************************
>> ***********************************************************************
>> *                                                                     *
>> *  return 5 in R15                                                    *
>> *                                                                     *
>> ***********************************************************************
>> *
>>          PRINT GEN
>> * YREGS was not part of the SYS1.MACLIB shipped with MVS 3.8j
>> * so may not be available, so do our own defines instead.
>> *         YREGS
>> R0       EQU   0
>> R1       EQU   1
>> R2       EQU   2
>> R3       EQU   3
>> R4       EQU   4
>> R5       EQU   5
>> R6       EQU   6
>> R7       EQU   7
>> R8       EQU   8
>> R9       EQU   9
>> R10      EQU   10
>> R11      EQU   11
>> R12      EQU   12
>> R13      EQU   13
>> R14      EQU   14
>> R15      EQU   15
>> SUBPOOL  EQU   0
>>          CSECT
>> *
>>          ENTRY TWO
>> TWO      DS    0H
>>          LA    R15,5
>>          BR    R14
>>          END
>> /*
>> //*
>> //LKED     EXEC PGM=IEWL,PARM='MAP,LIST,AMODE=64,RMODE=ANY'
>> //SYSLIN   DD DSN=&&amp;amp;OBJSET,DISP=(OLD,DELETE)
>> //*SYSLIB not needed
>> //SYSLMOD  DD DSN=&&amp;amp;LOADLIB(PDPTEST),DISP=(OLD,PASS)
>> //SYSUT1   DD UNIT=SYSALLDA,SPACE=(CYL,(2,1))
>> //SYSPRINT DD SYSOUT=*
>> //SYSABEND DD SYSOUT=*
>> //SYSIN DD *
>> /*
>> //*
>> //PDPTEST  EXEC PGM=PDPTEST,PARM='',
>> //         COND=(4,LT,LKED)
>> //STEPLIB  DD  DSN=&&amp;amp;LOADLIB,DISP=(OLD,PASS)
>> //SYSPRINT DD  SYSOUT=*
>> //SYSTERM  DD  SYSOUT=*
>> //SYSABEND DD  SYSOUT=*
>> //SYSIN    DD  DUMMY
>> //*
>> //
>>
>> ----------------------------------------------------------------------
>> For IBM-MAIN subscribe / signoff / archive access instructions,
>> send email to [email protected] with the message: INFO IBM-MAIN
>
>----------------------------------------------------------------------
>For IBM-MAIN subscribe / signoff / archive access instructions,
>send email to [email protected] with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to