; superogue (fck snippets)

ROM_PRINT   equ $203C
ROM_SETCURSOR equ $0DD9
CURSORPOS	equ $5C5B
sintab equ $8100

  org 0x8000-2

  jr hopla2
 db 0,1,65,73,77,109,111,127
hopla2:
hopla:
 ld a,'%'
 rst 0x10 
 ld a,(23689)
 cp 3
 jr nz, hopla

   ld ($5C3C),a 
   ld bc,5*32+1;33
   call ROM_SETCURSOR
   ld de,text
   push de
   ld bc,32
   call ROM_PRINT
   pop de
   
   call singen
frameloop
    halt
    ld a,ixh
    or 1
    ld iyl,a
    
    ld de,0x5800
    ld b,24
yloop:

    ld c,32
xloop:
    push bc
    ld a,b
    cp 14
    ld a,2
    jr z,storepixel

    ld a,b
    add 114
    jp p,ay
    neg
ay:
    ld b,a


    ld a,c
    add 112
    jp p,ax
    neg
ax:
    ld c,a
    
    ; get sine
    ld a,b
    and c
    add ixl
    ld h,0x81
    ld l,a
    ld a,(hl)
    ld h,a

    ld a,ixh
    rra
    jr fx1
    jr nc,fx1
fx0:
    ld a,c
    add l
    sub b
    ld l,a
    
    ld a,c
    adc l
    sub b
    rra
    rra
    and l
    jr fxdone
fx1:    
    ld a,c
    and ixl
    add h
    and l
    and b
    rra
fxdone:
    and iyl
    and 7
storepixel:
    ld h,0x80
    ld l,a
    ldi
    pop bc
    dec c
    jr nz,xloop
    djnz yloop
    inc ix
    jr frameloop

singen:
    ld de,0x00fe
    ld h,d
    ld l,d
    ld bc,sintab
sloop:
    rrc c
    sbc a
    xor h
    ld (bc),a
    add hl,de
    dec de
    dec de
    rlc c
    inc c
    jr nz,sloop
    ret

text:
 db "       ENJOY SYNERGY 2024 !!!   "


 