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

Reply via email to