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;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;OBJSET,UNIT=SYSALLDA,SPACE=(80,(9000,9000)),
//            DISP=(MOD,PASS)
//*
//         PEND
//CREATE   EXEC PGM=IEFBR14
//DD13     DD DSN=&&amp;LOADLIB,DISP=(,PASS),
// DCB=(RECFM=U,LRECL=0,BLKSIZE=6144),
// SPACE=(CYL,(10,10,20)),UNIT=SYSALLDA
//DD14     DD DSN=&&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;OBJSET,DISP=(OLD,DELETE)
//*SYSLIB not needed
//SYSLMOD  DD DSN=&&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;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

Reply via email to