IMHO it's clearer to just use

 READ  PDSDECB,SF,PDSDCB,address _of_READ_buffer,MF=E
 CHECK PDSDECB 


--
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3

________________________________________
From: IBM Mainframe Discussion List [[email protected]] on behalf of 
Joseph Reichman [[email protected]]
Sent: Monday, March 20, 2023 9:20 AM
To: [email protected]
Subject: BSAM READ AMODE 31 RMODE 31

           Hi



I know Charles Mills answered my question nearly 4 weeks ago but I would
just like to corroborate the I/O areas for the read can be 31 bit addressing
only the dcb and decb need to be below the line

I am running AMODE 31 RMODE 31



The DCB is below the line as well as the DECB



My read returns ok



After I set a beak point after the CHECK I get As S0D9 ABEND with a SDUMP



This the example that Charles sent to me does nt say anything about the
IOAREAS or pointers to the IOAREAS



LA Rn,PDSDCB

ST Rn,PDSDECB+8 PLACE DCB ADDRESS IN DECB

L Rn,address  of READ buffer

READ PDSDECB,SF,,(Rn),MF=E CHECK PDSDECB









This is my read



 READ  ADATADECB,SF,(R6),IOBUFF,'S',MF=E



The  IOBUFF is a full word  pointer to the storage I obtain





  Here is my code



          LA    R0,IODSECTLEN

          STORAGE OBTAIN,LENGTH=(R0),ADDR=(R6),LOC=BELOW,SP=0

          LR    R9,R6

          USING IHADCB,R9

          USING IODSECT,R6

 *

 *

          LA    R7,SYSADATA

          MVC   0(IODSECTLEN,R6),0(R7)

 *

          LA    R7,SYSDCBE-SYSADATA(,R6)

          ST    R7,DCBDCBE

          LA    R7,EX24LST-SYSADATA(,R6)

          STCM  R7,B'0111',DCBEXLSA

          LA    R7,ABND24-SYSADATA(,R6)

          STCM  R7,B'0111',ABND24ADR-SYSADATA(R6)

          LA    R7,ABENDRTN

          ST    R7,ABEND31-SYSADATA(,R6)

 *

T                  L     R0,=F'31996'

 *

          STORAGE OBTAIN,LENGTH=(R0),ADDR=(R7),LOC=RES,SP=0

 *        LA    R7,IOAREA

 *        ST    R7,IOPTR

 *

          ST    R7,IOBUFF

          MVC   OPEN_LST(OPEN_LEN),OPEN_CON

          OPEN  ((R6),INPUT),MF=(E,OPEN_LST),MODE=31

 *

          TM    DCBOFLGS,DCBOFOPN

          BZ    EXITDEBG

          USING ASMADATA,R7

          L     R10,IOBUFF

 PROCADATA DS   0H

          READ  ADATADECB,SF,(R6),IOBUFF,'S',MF=E

 *

          CHECK ADATADECB

 *

OPEN_CON OPEN (*-*,INPUT),MF=L,MODE=31

SYSADATA DCB DDNAME=SYSADATA,RECFM=VB,MACRF=RP,DSORG=PS,DCBE=SYSDCBE,EXX

               LST=EX24LST



          IHADECB DSECT=NO

DECBLEN  EQU   *-DECB

SYSDCBE  DCBE EODAD=FIN,GETSIZE=YES,LOC=ANY,RMODE31=BUFF,SYNAD=SYNAD,VEX

               RSION=1

EX24LST        DS  0F

ADATAEXLST     DC  AL1(EXLDCBAB+X'80')

ABND24ADR      DS  AL3

ABND24         DS  0H

               L   R15,ABEND31-SYSADATA(,R15)

               BSM 0,R15

ABEND31        DS  XL4

STROGE24       EQU *-EX24LST

*

  IODSECT   DSECT

ADATADCB  DS    CL(DCBLNGBS)

ADATADECB DS    CL(DECBLEN)

ADATADCBE DS    CL(DCBELENV1)

          DS    0F

INST31    DS    CL(STROGE24)

IODSECTLEN EQU  *-IODSECT





















































----------------------------------------------------------------------
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