On 20 Jul 2007 07:48:03 -0700, in bit.listserv.ibm-main you wrote:

>On Fri, 2007-07-20 at 06:31 -0700, Ray Mullins wrote:
>> In something as compute-intensive as SMF triplets, every little bit
>> helps.
>
>The nasty part is testing bit fields in COBOL.  The LE bit test routines
>are expensive to run.  (I haven't looked recently at COBOL to see if
>there are native ways to do this that don't involve standing on one's
>head.)

I have done it (probably snitched from someone else) by moving the
switch byte to the low order byte of a half word, setting up a table
of 8 1 byte fields initialized to zero and then using the following
code.

IF SWITCH-BINARY > 127
  SUBTRACT 128 FROM SWITCH-BINARY
  MOVE 1 TO SWITCH-BYTE (1)
END-IF

IF SWITCH-BINARY > 63
  SUBTRACT 64 FROM SWITCH-BINARY
  MOVE 1 TO SWITCH-BYTE (2)
END-IF
IF SWITCH-BINARY > 31
  SUBTRACT 32 FROM SWITCH-BINARY
  MOVE 1 TO SWITCH-BYTE (3)
END-IF
IF SWITCH-BINARY > 15
  SUBTRACT 16 FROM SWITCH-BINARY
  MOVE 1 TO SWITCH-BYTE (4)
END-IF
IF SWITCH-BINARY > 7
  SUBTRACT 8 FROM SWITCH-BINARY
  MOVE 1 TO SWITCH-BYTE (5)
END-IF
IF SWITCH-BINARY > 3
  SUBTRACT 4 FROM SWITCH-BINARY
  MOVE 1 TO SWITCH-BYTE (6)
END-IF
IF SWITCH-BINARY > 1
  SUBTRACT 2 FROM SWITCH-BINARY
  MOVE 1 TO SWITCH-BYTE (7)
END-IF
IF SWITCH-BINARY = 1
  MOVE 1 TO SWITCH-BYTE (8)
END-IF

Of Course, IBM could just implement the 2002 standard for binary
characters and bit manipulation and eliminate this happy horse manure.
Incidentally, the process can be reversed to build a bit switch.  I
have used this plus the reference modified move statements to handle
SMF 30 records. 

>
>       CALL 'CEESITST' USING WORD-VALUE BIT-SELECT FC BIT-VALUE
>       IF NOT CEE000 THEN                                      
>           CALL "CEE3ABD" USING U0300, CLEANUP-CODE            
>           END-IF.

----------------------------------------------------------------------
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

Reply via email to