Hans Visser wrote:
> Walt,
>
> i don't think you're right.
>
> he is looping from the end of the buffer to the beginning.
>
> SRCHLOOP CR R7,R8 start of buffer reached?
> BE FINAL yes, exit
> CLC 0(R9,R8),FILTER 'filter('found?
> BE BADRC yes,
> S R8,ONE subtract 1 from pointer
> B SRCHLOOP try from previous position
Walt _IS_ right, assuming that this is in the program somewhere:
R9 EQU 9 Register 9 EQUATE
That makes this instruction (above):
> CLC 0(R9,R8),FILTER 'filter('found?
the exact same thing as if the following had been coded:
| CLC 0(9,R8),FILTER 'filter('found?
which is almost certainly NOT what is wanted. I assume that:
| FILTER DC CL7'FILTER('
is also in the program somewhere. Thus, the CLC instruction,
above, should have been written:
| CLC 0(7,R8),FILTER 'filter('found?
or, better yet, like this:
| CLC FILTER,0(R8) 'filter('found?
assuming that FILTER is defined correctly in the program
such that the implied length is correct (as I did, above).
--
WB
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html