On Mon, 14 May 2018 00:12:54 +0000, Jesse 1 Robinson <[email protected]> wrote:
>I was hopeful that the IEZIOB would include the missing fields. Unfortunately >it does not. Before opening an SR with IBM, I thought I'd give the List one >more shot. The $BUFFER macro changed in z/OS 2.2; we're jumping from 2.1 to >2.3 using code carried unmodified for decades (!). > >The following code demonstrates the difference. The same job will assemble >successfully under 2.1 but fail under 2.3--and presumably 2.2 as well. There >is no executable code. The segment just illustrates the assembly errors from >$BUFFER symbols missing at 2.2+. > >//ASM EXEC PGM=ASMA90,REGION=32M >//SYSTERM DD SYSOUT=* >//SYSPRINT DD SYSOUT=* >//SYPUNCH DD SYSOUT=* >//SYSLIN DD DUMMY >//SYSLIB DD DISP=SHR,DSN=OSRxx.SHASMAC <=== Use SYSLIB for appropriate z/OS >level >//SYSIN DD * >TEST$BUF AMODE 31 >TEST$BUF RMODE ANY >TEST$BUF CSECT > B STEPSTRT-TEST$BUF(,15) SKIP HEADER > DC AL1(STEPSTRT-*) > DC C'TEST$BUF_&SYSDATE._&SYSTIME' >STEPSTRT DS 0H > $BUFFER > END > >. >. >J.O.Skip Robinson >Southern California Edison Company >Electric Dragon Team Paddler >SHARE MVS Program Co-Manager >323-715-0595 Mobile >626-543-6132 Office ⇐=== NEW >[email protected] In addition to the IEZIOB MACRO mentioned by Jim Mulder, you also need to add two additional equates to get programs that use $BUFFER to Assemble correctly: IEZIOB , MVS Input/Output Block IOBDSECT EQU IOBSTDRD,0,C'J' Start of I/O Block DSECT IOBLENG EQU IOBEXTEN-IOBSTDRD+L'IOBSEEK Length of IOB I know this works because I had to code this in some programs that I support when we went to z/OS 2.2. Or you can use the JES2 $MODULE MACRO and specify $BUFFER with it, like this: $MODULE TITLE='JES2 Macros', + $BUFFER The $MODULE MACRO contains code that will include IEZIOB and generate the above equates automatically. Some comments in $MODULE: FUNCTION (when used for the 'mapping-only' case): When coding an assembly module that is not part of the JES2 product or a JES2 installation exit, the module-defining functions of $MODULE are not required. However, the JES2 control block mappings may be required, such as in SDSF or SMF exit code. In those modules, often the individual JES2 mapping macros can be used, as for MVS blocks. However, sometimes the $MODULE macro has added equates or other definitions to the JES2 mappings or, more likely, to the MVS mappings that the JES2 mappings depend on. For this reason, the $MODULE macro can be used to expand any JES2 control blocks, and/or any of the MVS control blocks that the JES2 product uses, into a module that is otherwise 'non-JES2'. Only the MVS control blocks that are required in the JES2 product are supported by $MODULE. And only the operands on those mapping macros that JES2 requires are supported. -- Dale R. Smith ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
