Start improving sprite movement engine (to do: identify bit flags)

Introduce maskbits N[, S]: optionally shift the bitmask
This commit is contained in:
Rangi
2018-05-23 12:48:14 -04:00
parent 4e776d4fa6
commit 32b92ca51c
8 changed files with 150 additions and 135 deletions

View File

@@ -36,8 +36,10 @@ jumptable: MACRO
ENDM
maskbits: MACRO
; masks just enough bits to cover the argument
; masks just enough bits to cover the first argument
; the second argument is an optional shift amount
; e.g. "maskbits 26" becomes "and %00011111" (since 26 - 1 = %00011001)
; and "maskbits 3, 2" becomes "and %00001100" (since "maskbits 3" becomes %00000011)
; example usage in rejection sampling:
; .loop
; call Random
@@ -50,7 +52,11 @@ if x + 1 < (\1)
x = x << 1 | 1
endc
endr
if _NARG == 2
and x << (\2)
else
and x
endc
ENDM
calc_sine_wave: MACRO