Use fixed-point DIV function for a generalized sine_wave table macro

This commit is contained in:
Rangi 2018-02-03 13:26:34 -05:00
parent d11cac9e83
commit b0d84c64a6
2 changed files with 5 additions and 4 deletions

View File

@ -41,8 +41,8 @@ maskbits: MACRO
; example usage in rejection sampling: ; example usage in rejection sampling:
; .loop ; .loop
; call Random ; call Random
; maskbits 30 ; maskbits 26
; cp 30 ; cp 26
; jr nc, .loop ; jr nc, .loop
x = 1 x = 1
rept 8 rept 8

View File

@ -112,10 +112,11 @@ ENDM
sine_wave: MACRO sine_wave: MACRO
x = 0.0 ; \1 samples of sin(x) from x=0 to x<32768 (pi radians)
x = 0
rept \1 rept \1
dw (sin(x) + (sin(x) & $ff)) >> 8 ; round up dw (sin(x) + (sin(x) & $ff)) >> 8 ; round up
x = x + 1024.0 ; a circle has 65536.0 "degrees" x = x + DIV(32768, \1) ; a circle has 65536 "degrees"
endr endr
ENDM ENDM