Thanks
MVC 0(IODSECTLEN,R6),SYSADATA
LA R7,SYSDCBE
ST R7,DCBDCBE
LA R7,EX24LST
STCM R7,B'0111',DCBEXLSA
LA R7,ABND24
STCM R7,B'0111',ABND24ADR-SYSADATA(R6)
LA R7,ABENDRTN
ST R7,ABEND31-SYSADATA(,R6)
-----Original Message-----
From: IBM Mainframe Discussion List <[email protected]> On Behalf Of
Seymour J Metz
Sent: Monday, March 20, 2023 11:07 AM
To: [email protected]
Subject: Re: BSAM READ AMODE 31 RMODE 31
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-KkwlQy9yuE4Ney
> sq7w9DypZlafB6pm49qBXwQruyMU_e5-DqJTHOuG8LtDQ0M_EC9ROLTJh8rin-CX06V9rS
> HtdxcVeS6te8d4v7eaG900HQnQJe3JAqljGEquahMztXZmH6j5ywxOD5Wx5LV2bWV96ZqR
> vTp1HQUuf6RRCRh4jpWGyYx3dsMOGrif5-qJk-JH3Gc64MJvIXXhnqUZ1UQYjbuAfLmUaJ
> B3wMSwZ71yxIJOWZs1pKytwbyIhvEt-cpkq4/http%3A%2F%2Fwww.dissensoftware.c
> om
>
> 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
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN