home *** CD-ROM | disk | FTP | other *** search
-
- ; 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
-
-