Sets the value of a selected group of 2 bits into a bitarray to [0-3]
void cpct_set2Bits (void* array, u16 value, u16 index)
(2B DE) array | Pointer to the first byte of the array |
(2B HL) index | Position of the group of 2 bits in the array to be modified |
(2B BC) value | New value {0, 1, 2, 3} for the group of 2 bits at the given position. If you call from assembly, you can safely ignore B register and set only C register. |
call cpct_set2Bits_asm
Set the new value of the 2-bits group at the given position (index) in the specified array. This function assumes that the array elements have a size of 8 bits and also that the given index is not bigger than the number of 2-bits groups in the array (size of the array multiplied by 4). The value to be set is also assumed to be in the range [0-3] but other values will “work” (just the 2 Least Significant Bits will be used, so value module 4 will be inserted).
AF, BC, DE, HL
C-bindings | 57 bytes |
ASM-bindings | 53 bytes |
Case | microSecs(us) | CPU Cycles ----------------------------------------- Best (0) | 55 | 220 ----------------------------------------- 2nd (3) | 57 | 228 ----------------------------------------- 3rd (1) | 59 | 236 ----------------------------------------- Worst (2) | 61 | 244 ----------------------------------------- Asm saving | -15 | -60 -----------------------------------------