You are correct sir 

Will make Binyamin changes and try it tonite 

> On Mar 20, 2023, at 11:07 AM, Seymour J Metz <[email protected]> wrote:
> 
> 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

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to