Ok Thanks The reason I had the LA R7
I first had to get 24 bit storage for 1) dcb 2) decb though I realize it can live in 31 bit 3) decb it has to live in 31 bit 4) initial exit code has to be 24 bit Once moved I had to get the proper pointers 24 bit pointers for exlst , decb Let me corroborate I understand why I got the error After the read the first full word should be for the ECB so the low order should have an RB Or if it already posted should have the first byte x’40’ followed by completion code which could be zeros what a saw in the ECB address was the first byte x’7F’ Anyway I have to fix the read thank you > On Mar 20, 2023, at 9:52 AM, Binyamin Dissen <[email protected]> > wrote: > > First of all, the buffer address specified on READ MF=E is an RX address, not > an indirect address. > > So the read will overlay from IOBBUFF. That could cause strange results, > > You would need > > L Rx,IOBUFF > READ ADATADECB,SF,(R6),(Rx),'S',MF=E > > > Also, I do not understand why you use IHADECB in your work area rather than a > > READ label,SF,1-1,2-2,'S',MF=L > > which will reserve the storage of the appropriate size. > > I would recommend against altering the DECB directly, as the READ macro takes > care of it. > > Very strange to STORAGE OBTAIN,ADDR=(R7) followed by a LA R7 > > Back to the drawing board. > > On Mon, 20 Mar 2023 09:20:39 -0400 Joseph Reichman <[email protected]> > wrote: > > :> 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 > > -- > Binyamin Dissen <[email protected]> > http://www.dissensoftware.com > > Director, Dissen Software, Bar & Grill - Israel > > ---------------------------------------------------------------------- > 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
