diff options
Diffstat (limited to 'macros/code.asm')
-rw-r--r-- | macros/code.asm | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/macros/code.asm b/macros/code.asm index 5ec214d50..799c27d45 100644 --- a/macros/code.asm +++ b/macros/code.asm @@ -35,10 +35,9 @@ jumptable: MACRO jp hl ENDM -; Many mobile functions were dummied out in localization. -mobile EQUS "ret" - maskbits: MACRO +; masks just enough bits to cover the argument +; e.g. "maskbits 26" becomes "and %00011111" (since 26 - 1 = %00011001) ; example usage in rejection sampling: ; .loop ; call Random @@ -47,8 +46,8 @@ maskbits: MACRO ; jr nc, .loop x = 1 rept 8 -if \1 > x -x = (x + 1) * 2 +- 1 +if x + 1 < (\1) +x = x << 1 | 1 endc endr and x |