That doesn't explain why you had LA R7 in places where you didn't need a
pointer,
LA R7,SYSADATA
MVC 0(IODSECTLEN,R6),0(R7)
Instead of the clearer
MVC 0(IODSECTLEN,R6),SYSADATA
Side issue are why you had separate moves for initialization instead of one big
move and why you didn't just use symbolic names in your E-form macros instead
of register form parameters with an otherwise extraneous LA.
You might want to read up on dependent and labelled USING pseudo-ops.
Only the WAIT service should be storing an RB address in an ECB; the ECB that
you provide in the DECB should initially have a high bit of 0. Also, the
completion code is 31 bits, and a lot of system services have codes with the
lower 24 bits zero or containig a context for the code in bits 0-7. In
particular, Many services use 7F in the high byte for normal completion.
--
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 10:10 AM
To: [email protected]
Subject: Re: BSAM READ AMODE 31 RMODE 31
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://secure-web.cisco.com/1k7iuP-MpHfkEeviZsLEOvJ_MMv-EjqmY_0lxXY1Pp_66i5LWKD0RJujd93TrMEqU63byPahnsk9XNMu-lp-Vh4V7B7UAR-9GmTTnGI2I0MzJsf3_C_vlqghTkxyKmxJmO3ABRCGC09PNhuoGnkDs88DJn4WbVoiWCKtcve-KkwlQy9yuE4Neysq7w9DypZlafB6pm49qBXwQruyMU_e5-DqJTHOuG8LtDQ0M_EC9ROLTJh8rin-CX06V9rSHtdxcVeS6te8d4v7eaG900HQnQJe3JAqljGEquahMztXZmH6j5ywxOD5Wx5LV2bWV96ZqRvTp1HQUuf6RRCRh4jpWGyYx3dsMOGrif5-qJk-JH3Gc64MJvIXXhnqUZ1UQYjbuAfLmUaJB3wMSwZ71yxIJOWZs1pKytwbyIhvEt-cpkq4/http%3A%2F%2Fwww.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
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN