Don't know what is better but here's another way.Thunder93 wrote:I don't know if there's a better way to unset and set. However, here's what I have..
Code: Select all
Macro BitSet(var, bit)
var | (1 << bit)
EndMacro
Macro BitReset(var, bit)
var & ~(1 << bit)
EndMacro
Macro BitToggle(var, bit)
var ! (1 << bit)
EndMacro
Macro BitGet(var, bit)
(var >> bit) & 1
EndMacro
; *** test ***
Structure myStruct
bitfields.w
long.l
EndStructure
Global a
Global b.myStruct
a = -1
BitReset(a, 2)
BitSet(b\bitfields, 1)
Debug BitGet(a, 1)
Debug BitGet(a, 2)
Debug BitGet(b\bitfields, 1)
Debug BitGet(b\bitfields, 2)
BitToggle(a, 1)
Debug BitGet(a, 1)
BitToggle(a, 1)
Debug BitGet(a, 1)