.
.\"--------------------------------------------------------------------------
.TH bits 3mLib "20 June 1999" "Straylight/Edgeware" "mLib utilities library"
-.\" octet
-.\" uint16
-.\" uint24
-.\" uint32
-.\" uint64
-.\" kludge64
-.\"
-.\" MASK_8
-.\" MASK_16
-.\" MASK_16_L
-.\" MASK_16_B
-.\" MASK_24
-.\" MASK_24_L
-.\" MASK_24_B
-.\" MASK_32
-.\" MASK_32_L
-.\" MASK_32_B
-.\" MASK_64
-.\" MASK_64_L
-.\" MASK_64_B
-.\"
-.\" SZ_8
-.\" SZ_16
-.\" SZ_16_L
-.\" SZ_16_B
-.\" SZ_24
-.\" SZ_24_L
-.\" SZ_24_B
-.\" SZ_32
-.\" SZ_32_L
-.\" SZ_32_B
-.\" SZ_64
-.\" SZ_64_L
-.\" SZ_64_B
-.\"
-.\" TY_8
-.\" TY_16
-.\" TY_16_L
-.\" TY_16_B
-.\" TY_24
-.\" TY_24_L
-.\" TY_24_B
-.\" TY_32
-.\" TY_32_L
-.\" TY_32_B
-.\" TY_64
-.\" TY_64_L
-.\" TY_64_B
-.\"
-.\" DOUINTSZ
-.\" DOUINTCONV
-.\"
+.\" @octet
+.\" @uint16
+.\" @uint24
+.\" @uint32
+.\" @uint64
+.\" @kludge64
+.
+.\" @MASK_8
+.\" @MASK_16
+.\" @MASK_16_L
+.\" @MASK_16_B
+.\" @MASK_24
+.\" @MASK_24_L
+.\" @MASK_24_B
+.\" @MASK_32
+.\" @MASK_32_L
+.\" @MASK_32_B
+.\" @MASK_64
+.\" @MASK_64_L
+.\" @MASK_64_B
+.
+.\" @SZ_8
+.\" @SZ_16
+.\" @SZ_16_L
+.\" @SZ_16_B
+.\" @SZ_24
+.\" @SZ_24_L
+.\" @SZ_24_B
+.\" @SZ_32
+.\" @SZ_32_L
+.\" @SZ_32_B
+.\" @SZ_64
+.\" @SZ_64_L
+.\" @SZ_64_B
+.
+.\" @TY_8
+.\" @TY_16
+.\" @TY_16_L
+.\" @TY_16_B
+.\" @TY_24
+.\" @TY_24_L
+.\" @TY_24_B
+.\" @TY_32
+.\" @TY_32_L
+.\" @TY_32_B
+.\" @TY_64
+.\" @TY_64_L
+.\" @TY_64_B
+.
+.\" @DOUINTSZ
+.\" @DOUINTCONV
+.
.\" @U8
.\" @U16
.\" @U24
.\" @U32
.\" @U64
.\" @U64_
-.\"
+.
.\" @LSL8
.\" @LSR8
.\" @LSL16
.\" @LSR64
.\" @LSL64_
.\" @LSR64_
-.\"
+.
.\" @ROL8
.\" @ROR8
.\" @ROL16
.\" @ROR64
.\" @ROL64_
.\" @ROR64_
-.\"
-.\" ENDSWAP16
-.\" ENDSWAP32
-.\" ENDSWAP64
-.\"
-.\" BTOH16
-.\" LTOH16
-.\" HTOB16
-.\" HTOL16
-.\" BTOH32
-.\" LTOH32
-.\" HTOB32
-.\" HTOL32
-.\" BTOH64
-.\" LTOH64
-.\" HTOB64
-.\" HTOL64
-.\"
-.\" RAW8
-.\" RAW16
-.\" RAW32
-.\" RAW64
-.\"
+.
+.\" @ENDSWAP16
+.\" @ENDSWAP32
+.\" @ENDSWAP64
+.
+.\" @BTOH16
+.\" @LTOH16
+.\" @HTOB16
+.\" @HTOL16
+.\" @BTOH32
+.\" @LTOH32
+.\" @HTOB32
+.\" @HTOL32
+.\" @BTOH64
+.\" @LTOH64
+.\" @HTOB64
+.\" @HTOL64
+.
+.\" @RAW8
+.\" @RAW16
+.\" @RAW32
+.\" @RAW64
+.
.\" @GETBYTE
.\" @PUTBYTE
-.\"
+.
.\" @LOAD8
.\" @STORE8
-.\"
+.
.\" @LOAD16_L
.\" @LOAD16_B
.\" @LOAD16
.\" @STORE16_L
.\" @STORE16_B
.\" @STORE16
-.\"
+.
.\" @LOAD24_L
.\" @LOAD24_B
.\" @LOAD24
.\" @STORE24_L
.\" @STORE24_B
.\" @STORE24
-.\"
+.
.\" @LOAD32_L
.\" @LOAD32_B
.\" @LOAD32
.\" @STORE32_L
.\" @STORE32_B
.\" @STORE32
-.\"
+.
.\" @LOAD64_L
.\" @LOAD64_B
.\" @LOAD64
.\" @STORE64_L
.\" @STORE64_B
.\" @STORE64
-.\"
+.
.\" @LOAD64_L_
.\" @LOAD64_B_
.\" @LOAD64_
.\" @STORE64_L_
.\" @STORE64_B_
.\" @STORE64_
-.\"
+.
.\" @SET64
.\" @X64
.\" @ASSIGN64
.\" @HI64
.\" @LO64
.\" @GET64
+.\" @SETBYTE64
.\" @AND64
.\" @OR64
.\" @XOR64
.BI "uint32 HI64(kludge64" x );
.BI "uint32 LO64(kludge64" x );
.IB ty " GET64(" ty ", kludge64 " x );
+.BI "void SETBYTE64(kludge64 &" z ", octet " x ", unsigned " j );
.BI "void AND64(kludge64 &" d ", kludge64 " x ", kludge64 " y );
.BI "void OR64(kludge64 &" d ", kludge64 " x ", kludge64 " y );
.BI "void XOR64(kludge64 &" d ", kludge64 " x ", kludge64 " y );
.I x
is too large.
.TP
+.BI SETBYTE( z ", " x ", " j )
+Store the value
+.I x
+in byte
+.I j
+of
+.IR z ,
+which is assumed to be initially zero.
+Bytes are numbered with the least significant being byte zero and the
+most significant being byte 7.
+.TP
.BI AND64( d ", " x ", " y )
Set
.I d