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:
; .loop
; call Random
; maskbits 30
; cp 30
; maskbits 26
; cp 26
; jr nc, .loop
x = 1
rept 8

View File

@ -112,10 +112,11 @@ ENDM
sine_wave: MACRO
x = 0.0
; \1 samples of sin(x) from x=0 to x<32768 (pi radians)
x = 0
rept \1
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
ENDM