====Sinus table generators====
----
**__makesin (fast, approximated)__**
;fast generator via approximation of x^2 parabola
;Copyright © 2012 Busy, optimized by Zilogat0r
mksin: ld bc,sintab
ld d,c
mksin2: ld a,c
add a,a
add a,a
ld e,a
sbc a,a
xor e
ld e,a
ld h,d
ld l,d
rra
mksin1: add hl,de
dec a
jr nz,mksin1
ld a,64
add a,c
add a,a
sbc a,a
xor h
ld (bc),a
inc c
jr nz,mksin2
ret
sintab: ds 256
----
**__makesin (alternative)__**
; sinus maker. {C} Jordan of exodus
; a: amplitude, c: offset, hl: adr
; WARNING!!
; org xx00h
mksnt exx
ld c,a
ld b,01h
ld hl,sintabb
exx
ld e,00h
call h800e
dec e
h800e call h8011
h8011 ld b,40h
h8013 exx
ld e,(hl)
inc l
ld d,(hl)
ld a,l
add a,b
ld l,a
ld a,c
srl a
srl e
jr nc,h8022
add a,c
h8022 srl a
srl e
jr nc,h8029
add a,c
h8029 srl a
srl e
jr nc,h8030
add a,c
h8030 srl a
srl e
jr nc,h8037
add a,c
h8037 srl a
srl e
jr nc,h803e
add a,c
h803e srl a
srl e
jr nc,h8045
add a,c
h8045 srl a
srl e
jr nc,h804c
add a,c
h804c srl a
srl e
jr nc,h8053
add a,c
h8053 srl a
srl d
jr nc,h805a
add a,c
h805a srl a
srl d
jr nc,h8061
add a,c
h8061 srl a
srl d
jr nc,h8068
add a,c
h8068 srl a
adc a,d
exx
xor e
jp p,h8071
inc a
h8071 add a,c
ld (hl),a
inc l
djnz h8013
exx
ld a,b
xor 0fch
ld b,a
exx
ret
sintabb:
db 00h,00h,32h,00h
db 64h,00h,97h,00h
db 0c9h,00h,0fbh,00h
db 2dh,01h
db 5eh,01h,90h,01h
db 0c1h,01h,0f2h,01h
db 22h,02h,53h,02h
db 82h,02h
db 0b2h,02h,0e1h,02h
db 10h,03h,3eh,03h
db 6ch,03h,99h,03h
db 0c5h,03h
db 0f1h,03h,1dh,04h
db 48h,04h,72h,04h
db 9bh,04h,0c4h,04h
db 0ech,04h
db 13h,05h,3ah,05h
db 5fh,05h,84h,05h
db 0a8h,05h,0cbh,05h
db 0edh,05h
db 0fh,06h,2fh,06h
db 4fh,06h,6dh,06h
db 8ah,06h,0a7h,06h
db 0c2h,06h
db 0ddh,06h,0f6h,06h
db 0eh,07h,25h,07h
db 3bh,07h,50h,07h
db 64h,07h
db 77h,07h,88h,07h
db 99h,07h,0a8h,07h
db 0b6h,07h,0c3h,07h
db 0ceh,07h
db 0d9h,07h,0e2h,07h
db 0eah,07h,0f1h,07h
db 0f6h,07h,0fah,07h
db 0feh,07h
db 0ffh,07h,0ffh,07h
----
**Navigation: [[general]] . [[math]] . [[graphic]] . [[sound]] . [[system]] . [[other]] . back to [[start]]**