"JB" <Joerg.Brehe@[EMAIL PROTECTED]
> wrote:
>Now I have used SVC99 (ALLOC) only with the DSNAME's from RDJFCB
>(Information Retrieval) and a create a new DDNAME for every DSNAME.
>SVC99 gives no error. After this I try to open my DCB with OPEN instead
>of openj. No error. While using EXCP I get an Error 0C4/4 from outside
>of my programm. I think the CVT.
>
>
>
>**snip***
>GET the STORAGE for the DCB's
> SR R0,R0
> LH R0,NORTRVD GET NUMBER OF DATASETS
> LR R3,R0 SAVE NUMBER OF VOLS
> MH R0,=Y(RECINLN) MULT BY EXCP DCB LENGTH
> STORAGE OBTAIN,LENGTH=(R0),LOC=(BELOW,ANY),
>ADDR=DCBADDRL
> LR R4,R1 POINT TO AREA FOR FIRST DCB
> XC IDTDCBA,IDTDCBA
> ST R4,IDTDCBA SAVE PTR TO FIRST DCB
>
>**snip***
>After this I put the the new DDName in my DCB.
>
> L R5,JFCBADDR point to storage of JFCBS
>OPENLO1 MVC 0(RECINLN,R4),RECIN BUILD A DCB
> MVC 40(8,R4),44(R5) MOVE DDNAME TO DCB
> LA R5,176(,R5) POINT TO NEXT JFCB
> OPEN ((R4),INPUT)
>LTR R15,R15 BNZ
>FEHLER LA
>R4,RECINLN(,R4) POINT TO NEXT DCB
>After this I try to set the DCBDEBAD for the CVT
>
> L R0,TTR
> XR R1,R1
> L R1,IDTDCBA+44 IDTDCBA is the address of the current DCB
From what you are doing elsewhere, it looks like IDTDCBA is a four
byte field containing the DCB address. So you are not going to get the
DEB address at IDTDCBA+44.
Something like
L R1,IDTDCBA
L R1,44(,R1)
would make more sense.
However, if it was up to me, I would ensure the high byte of the DEB
address was clean, although it probably does not matter if you are
running AMODE 24. I would also use the available dsects for DCB, JFCB,
CVT etc instead of all those hard coded offsets and lengths.
Andy Wood
woodag@[EMAIL PROTECTED]


|