Feature request: Indexable bit-of-word, as in MHR[V101+1]:[V102+2]. Might not ever need the fixed "+2" offset in the bit index, but included it for consistency with normal DM indexing.
Just stick your mask into bit memory, and use CASTS for DWORD reference, otherwise you have complete control of bit level and mask level indirection.
Since you need to also look at your bits as DWORDs, you will need to start your mask on a 32-bit boundary, e.g. C0 or C32, etc.
When indexing the MASK as a DWORD, make sure your index is on a 32 bit boundary, e.g. V0 = 0, 32, 64, etc.:
C[V0]:SD
When indexing the MASK as a BIT, well, it's just the native bit offset:
C[V0]
Basically, whenever you need indirect addressing, make sure you make your base data-block's native data type be the resolution of your indirect addressing needs. You can always use casts to look at the higher level resolution at a lower numeric resolution, making sure you start the array on BYTE, WORD or DWORD boundary.
Bits and DWORDS/REALs: Start on 0, 32, 64, 96, etc.
Bits and WORD: Start on 0, 16, 32, 48, etc.
Bits and BYTE: Start on 0, 8, 16, 24, etc.
BYTEs and DWORD/REAL: Start on 0, 4, 8, 12, etc.
BYTES and WORD: Start on 0, 2, 4, 6
WORDs and DWORD/REAL: Start on 0, 2, 4, 6, 8