; The bossa nova theme from ol' C64 Wizball! ; Programmed & tracked by Linus Akesson in 1998. include all var equ SAVESSCREEN ;melodyflag equ var ;bit 0 in asm_flag1 var1 equ var ch1count equ var1+0 ch1freq equ var1+1 ch1curr equ var1+2 var2 equ var1+3 ch2count equ var2+0 ch2freq equ var2+1 ch2curr equ var2+2 call _runIndicOff call _GRBUFCLR call _GRBUFCPY_V ld bc,0102h ld de,013eh ld h,1 call _ILINE ld bc,5e02h ld de,5e3eh ld h,1 call _ILINE ld bc,0201h ld de,5d01h ld h,1 call _ILINE ld bc,023fh ld de,5d3fh ld h,1 call _ILINE ld hl,060eh ld (PENCOL),hl ld hl,txt1 ;Theme from WIZBALL call _vputs ld hl,1215h ld (PENCOL),hl ld hl,txt2 ;Linus Akesson '98 call _vputs ld hl,1e11h ld (PENCOL),hl ld hl,txt3 ;Feel the C64 vibez... call _vputs ld hl,2a06h ld (PENCOL),hl ld hl,txt4 ;(Use earphones in linkport call _vputs ld hl,300ch ld (PENCOL),hl ld hl,txt5 ;or hold an AM radio near call _vputs ld hl,3616h ld (PENCOL),hl ld hl,txt6 ;the calculator.) call _vputs res 0,(iy+asm_flag1) xor a ld (ch2freq),a restartsong: ld hl,song1 ld bc,song1len playsong: push bc ld a,(hl) inc hl bit 0,(iy+asm_flag1) jr z,ps_nomel ld (ch2freq),a ps_nomel: ld b,2 ps_l2: push bc ld b,3 ps_l1: ld a,(hl) inc hl ld (ch1freq),a push bc push hl ld b,255 ps_lt: push bc call playtones pop bc djnz ps_lt pop hl pop bc djnz ps_l1 dec hl dec hl dec hl pop bc djnz ps_l2 inc hl inc hl inc hl in a,(3) bit 3,a jr z,quit pop bc dec bc ld a,b or c jr nz,playsong ld a,(iy+asm_flag1) xor 1 ld (iy+asm_flag1),a jr restartsong quit: pop bc jp _GRBUFCLR playtones: ld hl,ch1count ld b,2 pt_lp: push hl ld a,(hl) dec a jr nz,pt_1 inc hl ld a,(hl) or a jr z,pt_1 push af inc hl ld a,(hl) xor 1 ld (hl),a pop af pt_1: pop hl ld (hl),a ld hl,ch2count djnz pt_lp ld a,(ch1curr) ld b,a ld a,(ch2curr) ld c,a ;jp setport setport: ;b & c are 0 or 1 ld a,110100b srl b rla srl c rla out (BPORT),a ret _c1 equ 80h _cs1 equ 78h _d1 equ 70h _ds1 equ 6ah _e1 equ 65h _f1 equ 60h _fs1 equ 5ah _g1 equ 56h _gs1 equ 51h _a1 equ 4ch _as1 equ 48h _h1 equ 44h _c2 equ 40h _cs2 equ 3ch _d2 equ 38h _ds2 equ 35h _e2 equ 32h _f2 equ 30h _fs2 equ 2dh _g2 equ 2bh _gs2 equ 28h _a2 equ 26h _as2 equ 24h _h2 equ 22h _c3 equ 20h _cs3 equ 1eh _d3 equ 1ch _ds3 equ 1ah _e3 equ 19h _f3 equ 18h _fs3 equ 16h _g3 equ 15h _gs3 equ 14h _a3 equ 13h _as3 equ 12h _h3 equ 11h _c4 equ 10h song1: defm _c3,_c2,_c2,_c2 ;c defm _c3,000,000,000 ; defm _c3,_g2,_g2,_g2 ; g defm _c3,_e2,_e2,_e2 ; e defm _c3,_c3,_e2,_g2 ; egc defm _c3,_c3,_e2,_g2 ; egc defm _c3,_g2,_g2,_g2 ; g defm _c3,000,000,000 ; defm _c3,_g2,_g2,_g2 ; g defm _c3,000,000,000 ; defm _c3,_c3,_e2,_g2 ; egc defm _c3,000,000,000 ; defm _c3,000,000,000 ; defm _c3,000,000,000 ; defm _c3,_c2,_c2,_c2 ;c defm _c3,000,000,000 ; defm _c3,000,000,000 ; defm _c3,000,000,000 ; defm _c3,_c2,_c2,_c2 ;c defm _c3,000,000,000 ; defm _c3,_c3,_e2,_g2 ; egc defm _c3,000,000,000 ; defm _c3,_g2,_g2,_g2 ; g defm _c3,000,000,000 ; defm _c3,_g2,_g2,_g2 ; g defm _c3,_g2,_g2,_g2 ; g defm _c3,_c3,_e2,_g2 ; egc defm _c3,_c3,_e2,_g2 ; egc defm _c3,_c2,_c2,_c2 ;c defm _c3,_c2,_c2,_c2 ;c defm _c3,_c2,_c2,_c2 ;c defm _c3,_c2,_c2,_c2 ;c defm _as2,_as1,_as1,_as1;b defm _as2,000,000,000 ; defm _as2,_g2,_g2,_g2 ; g defm _as2,_d2,_d2,_d2 ; d defm _as2,_as2,_d2,_g2 ; dgb defm _as2,_as2,_d2,_g2 ; dgb defm _as2,_g2,_g2,_g2 ; g defm _as2,000,000,000 ; defm _as2,_g2,_g2,_g2 ; g defm _as2,000,000,000 ; defm _as2,_as2,_d2,_g2 ; dgb defm _as2,000,000,000 ; defm _as2,000,000,000 ; defm _as2,000,000,000 ; defm _as2,_as1,_as1,_as1;b defm _as2,000,000,000 ; defm _as2,000,000,000 ; defm _as2,000,000,000 ; defm _as2,_as1,_as1,_as1;b defm _as2,000,000,000 ; defm _as2,_as2,_d2,_g2 ; dgb defm _as2,000,000,000 ; defm _as2,_g2,_g2,_g2 ; g defm _as2,000,000,000 ; defm _as2,_g2,_g2,_g2 ; g defm _as2,_g2,_g2,_g2 ; g defm _as2,_as2,_d2,_g2 ; dgb defm _as2,_as2,_d2,_g2 ; dgb defm _as2,_as1,_as1,_as1;b defm _as2,_as1,_as1,_as1;b defm _as2,_as1,_as1,_as1;b defm _as2,_as1,_as1,_as1;b defm _a2,_a1,_a1,_a1 ;a defm _a2,000,000,000 ; defm _a2,_e2,_e2,_e2 ; e defm _a2,_cs2,_cs2,_cs2; # defm _a2,_a2,_cs2,_e2 ; #ea defm _a2,_a2,_cs2,_e2 ; #ea defm _a2,_e2,_e2,_e2 ; e defm _a2,000,000,000 ; defm _a2,_e2,_e2,_e2 ; e defm _a2,000,000,000 ; defm _a2,_a2,_cs2,_e2 ; #ea defm _a2,000,000,000 ; defm _a2,000,000,000 ; defm _a2,000,000,000 ; defm _a2,_a1,_a1,_a1 ;a defm _a2,000,000,000 ; defm _a2,000,000,000 ; defm _a2,000,000,000 ; defm _a2,_a1,_a1,_a1 ;a defm _a2,000,000,000 ; defm _a2,_a2,_cs2,_e2 ; #ea defm _a2,000,000,000 ; defm _a2,_e2,_e2,_e2 ; e defm _a2,000,000,000 ; defm _cs3,_e2,_e2,_e2; e defm _cs3,_e2,_e2,_e2; e defm _cs3,_a2,_cs2,_e2; #ea defm _d3,_a2,_cs2,_e2; #ea defm _d3,_a1,_a1,_a1 ;a defm _e3,_a1,_a1,_a1 ;a defm _e3,_a1,_a1,_a1 ;a defm _e3,_a1,_a1,_a1 ;a defm _f3,_d2,_d2,_d2 ;d defm _f3,000,000,000 ; defm _f3,_a2,_a2,_a2 ; a defm _f3,_f2,_f2,_f2 ; f defm _f3,_d3,_f2,_a2 ; fad defm _f3,_d3,_f2,_a2 ; fad defm _f3,_a2,_a2,_a2 ; a defm _f3,000,000,000 ; defm _f3,_a2,_a2,_a2 ; a defm _f3,000,000,000 ; defm _f3,_d3,_f2,_a2 ; fad defm _f3,000,000,000 ; defm _f3,000,000,000 ; defm _f3,000,000,000 ; defm _f3,_d2,_d2,_d2 ;d defm _f3,000,000,000 ; defm _f3,000,000,000 ; defm _f3,000,000,000 ; defm _f3,_d2,_d2,_d2 ;d defm _f3,000,000,000 ; defm _f3,_d3,_f2,_a2 ; fad defm _f3,000,000,000 ; defm _f3,_a2,_a2,_a2 ; a defm _f3,000,000,000 ; defm _f3,_a2,_a2,_a2 ; a defm _f3,_a2,_a2,_a2 ; a defm _f3,_d3,_f2,_a2 ; fad defm _f3,_d3,_f2,_a2 ; fad defm _f3,_d1,_d1,_d1 ;D defm _f3,_d1,_d1,_d1 ;D defm _f3,_e1,_e1,_e1 ;E defm 0,_e1,_e1,_e1 ;E defm _f3,_f1,_f1,_f1 ;F defm _f3,000,000,000 ; defm _f3,_c2,_c2,_c2 ; c defm _f3,_gs2,_gs2,_gs2; # defm _f3,_gs2,_c2,_f2; #cf defm _f3,_gs2,_c2,_f2; #cf defm _f3,_c2,_c2,_c2 ; c defm _f3,000,000,000 ; defm _gs3,_c2,_c2,_c2; c defm _gs3,000,000,000; defm _gs3,_gs2,_c2,_f2; #cf defm _gs3,000,000,000; defm _gs3,000,000,000; defm _gs3,000,000,000; defm _gs3,_f1,_f1,_f1;f defm _gs3,000,000,000; defm _g3,000,000,000 ; defm _g3,000,000,000 ; defm _g3,_f1,_f1,_f1 ;f defm _g3,000,000,000 ; defm _g3,_gs2,_c2,_f2; #cf defm _g3,000,000,000 ; defm _g3,_c2,_c2,_c2 ; c defm _g3,000,000,000 ; defm _c4,_c2,_c2,_c2 ; c defm _c4,_c2,_c2,_c2 ; c defm _c4,_gs2,_c2,_f2; #cf defm _gs3,_gs2,_c2,_f2; #cf defm _gs3,_f1,_f1,_f1;f defm _gs3,_f1,_f1,_f1;f defm _f3,_f1,_f1,_f1 ;f defm _f3,_f1,_f1,_f1 ;f defm _g3,_c2,_c2,_c2 ;c defm _g3,000,000,000 ; defm _g3,_g2,_g2,_g2 ; g defm _g3,_e2,_e2,_e2 ; e defm _g3,_c3,_e2,_g2 ; egc defm _g3,_c3,_e2,_g2 ; egc defm _g3,_g2,_g2,_g2 ; g defm _g3,000,000,000 ; defm _g3,_g2,_g2,_g2 ; g defm _g3,000,000,000 ; defm _g3,_c3,_e2,_g2 ; egc defm _g3,000,000,000 ; defm _f3,000,000,000 ; defm _f3,000,000,000 ; defm _e3,_a1,_a1,_a1 ;a defm _e3,000,000,000 ; defm _e3,000,000,000 ; defm _e3,000,000,000 ; defm _e3,_a1,_a1,_a1 ;a defm _e3,000,000,000 ; defm _e3,_a1,_e2,_a2 ; aea defm _e3,000,000,000 ; defm _e3,_e2,_e2,_e2 ; e defm _e3,000,000,000 ; defm _e3,_e2,_e2,_e2 ; e defm _e3,_e2,_e2,_e2 ; e defm _e3,_a1,_e2,_a2 ; aea defm _e3,_a1,_e2,_a2 ; aea defm 0,_a1,_a1,_a1 ;a defm 0,_a1,_a1,_a1 ;a defm _g2,_gs1,_gs1,_gs1;# defm _a2,_gs1,_gs1,_gs1;# defm _h2,_g1,_g1,_g1 ;g defm _h2,000,000,000 ; defm _h2,_d2,_d2,_d2 ; d defm _h2,_h1,_h1,_h1 ; h defm _c3,_h1,_d2,_g2 ; hdg defm _c3,_h1,_d2,_g2 ; hdg defm _d3,_d2,_d2,_d2 ; d defm _d3,000,000,000 ; defm 0,_d2,_d2,_d2 ; d defm 0,000,000,000 ; defm _e3,_h1,_d2,_g2 ; hdg defm _e3,000,000,000 ; defm _e3,000,000,000 ; defm _e3,000,000,000 ; defm _f3,_g1,_g1,_g1 ;g defm _f3,000,000,000 ; defm 0,000,000,000 ; defm 0,000,000,000 ; defm _g3,_g1,_g1,_g1 ;g defm _g3,000,000,000 ; defm 0,_h1,_d2,_g2 ; hdg defm 0,000,000,000 ; defm _e3,_d2,_d2,_d2 ; d defm _e3,000,000,000 ; defm 0,_d2,_d2,_d2 ; d defm 0,_d2,_d2,_d2 ; d defm _d3,_h1,_d2,_g2 ; hdg defm _d3,_h1,_d2,_g2 ; hdg defm _d3,_g1,_g1,_g1 ;g defm _d3,_g1,_g1,_g1 ;g defm _d3,_g1,_g1,_g1 ;g defm _d3,_g1,_g1,_g1 ;g defm _c3,_c2,_c2,_c2 ;c defm _c3,000,000,000 ; defm _c3,_g2,_g2,_g2 ; g defm _c3,_e2,_e2,_e2 ; e defm _c3,_c3,_e2,_g2 ; egc defm _c3,_c3,_e2,_g2 ; egc defm _c3,_g2,_g2,_g2 ; g defm _c3,000,000,000 ; defm _c3,_g2,_g2,_g2 ; g defm _c3,000,000,000 ; defm _c3,_c3,_e2,_g2 ; egc defm _c3,000,000,000 ; defm _c3,000,000,000 ; defm _c3,000,000,000 ; defm _c3,_c2,_c2,_c2 ;c defm _c3,000,000,000 ; defm _c3,000,000,000 ; defm _c3,000,000,000 ; defm _c3,_c2,_c2,_c2 ;c defm _c3,000,000,000 ; defm _c3,_c3,_e2,_g2 ; egc defm _c3,000,000,000 ; defm _c3,_g2,_g2,_g2 ; g defm _c3,000,000,000 ; defm _c3,_g2,_g2,_g2 ; g defm _c3,_g2,_g2,_g2 ; g defm _c3,_c3,_e2,_g2 ; egc defm _c3,_c3,_e2,_g2 ; egc defm _c3,_c2,_c2,_c2 ;c defm _c3,_c2,_c2,_c2 ;c defm _c3,_c2,_c2,_c2 ;c defm _c3,_c2,_c2,_c2 ;c defm _c3,_c2,_c2,_c2 ;c defm _c3,000,000,000 ; defm _c3,_g2,_g2,_g2 ; g defm _c3,_e2,_e2,_e2 ; e defm _c3,_c3,_e2,_g2 ; egc defm _c3,_c3,_e2,_g2 ; egc defm _c3,_g2,_g2,_g2 ; g defm _c3,000,000,000 ; defm _c3,_g2,_g2,_g2 ; g defm _c3,000,000,000 ; defm _c3,_c3,_e2,_g2 ; egc defm _c3,000,000,000 ; defm _c3,000,000,000 ; defm _c3,000,000,000 ; defm _c3,_c2,_c2,_c2 ;c defm _c3,000,000,000 ; defm 0,000,000,000 ; defm 0,000,000,000 ; defm 0,000,000,000 ; defm 0,000,000,000 ; defm 0,000,000,000 ; defm 0,000,000,000 ; defm 0,000,000,000 ; defm 0,000,000,000 ; defm 0,000,000,000 ; defm 0,000,000,000 ; defm 0,000,000,000 ; defm 0,000,000,000 ; defm 0,000,000,000 ; defm 0,000,000,000 ; defm 0,000,000,000 ; defm 0,000,000,000 ; song1len equ ($-song1)/4 txt1: defm "Theme from WIZBALL",0 txt2: defm "Linus Akesson '98",0 txt3: defm "Feel the C64 vibez...",0 txt4: defm "(Use earphones in linkport",0 txt5: defm "or hold an AM radio near",0 txt6: defm "the calculator.)",0