Donald Likens wrote:

>The follow code supports a FIFO control block chain in CSA. When nothing is in 
>the queue the first and last pointers are zero. It must not be working 
>properly because one of my users gets orphan control blocks periodically.

How does that user know these blocks are 'orphaned'?


>Does anyone see the problem in this code? 

Hard to see, but lets get going...

>CSAMSEGF DS    AD      Pointer to FIRST CB 
>CSAMSEGL DS    AD      Pointer to last CB in chain
>MSEGNEXT DS    AD      NEXT Control block in chain

Please post the full coding. Those comments are not helpful.


>         STG   R8,OPERAND1R           (REPLACES CSAMSEGL)             
>         XC    OPERAND1,OPERAND1      (COMPARISON VALUE)              
>         XC    OPERAND3,OPERAND3      (COMPARISON VALUE)              
>         STG   R8,OPERAND3R           (REPLACES WHERE OPERAND4 POINTS)

... etc. ... 

how are all those OPERAND... filled-in/loaded with values? I'm asking because 
they are defined as DS and I don't see (or missed somehow) how these variables 
are filled-in/loaded with values.

Or are they GETMAINed and then filled in with values?

Are all these ORG statements on a full-word boundary?

Can you post the RMODE + AMODE of those code segment?

Alternatively, can you re-post your question on Assembler-L? There are great 
gurus waiting there to help!

Groete / Greetings
Elardus Engelbrecht

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

Reply via email to