You could use TRT to test the last byte, after some tedious coding of the
table.  N.B. I mean using the table codes to identify +/0/-/invalid; not
just the 0/non-0 typical use.

You could PACK the field, or just the last byte (which is just a
nibble-swap), and CP to =P'0'.  The cond. code tells you what you want to
know.  You could also use AP =P'0', which returns the same cond. code, but
also normalizes the sign... but only in your test field, of course.

Or, you could use
IF TM,lastByte,B'11110000',O
 It's +  F (or not signed, if you like that interpretation)
ELSEIF TM,lastByte,B'00010000',O
 It's -  B or D
ELSE
 It's +  A, C, or E
ENDIF
Note that this is a pure sign check, i.e. 0 is not special.

The last is more instructions, but I'd guess that it would perform the best
if that matters.

sas


On Fri, Feb 11, 2022 at 1:01 PM Dave Clark <[email protected]> wrote:

>         I know that x'F1' and x'C1' are positive and that x'D1' is
> negative.  But what if I find x'A1', x'B1', or x'E1' for overpunch values?
>  What is the shortest way (in terms of assembler instructions) to validate
> these into just two classes -- positive and negative?
>
>

Reply via email to