123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- ; ***********************************************************
- ; *** Music routine taken from 'ZOOM.ASM'. ***
- ; *** Optimized by Yoshi ***
- ; ***********************************************************
- play_music:
- sep #$30
- lda #$ff
- sta $2140
- rep #$10
- ldx.w #$7fff
- - lda.l $028000,x
- sta.l $7f0000,x
- lda.l $038000,x
- sta.l $7f8000,x
- dex
- bpl -
- stz $00fd
- stz $00fe
- lda #$7f
- sta $00ff
- ina ; Oh boy. Actually stores #$80. :-)
- sta $2100
-
- stz $4200
- sei
- jsr res1
- sep #$30
- - lda $2140
- bne -
- lda #$e0
- sta $2143
- lda #$ff
- sta $2142
- lda #$01
- sta $2141
- sta $2140
- - lda $2140
- cmp #$01
- bne -
- - lda $2140
- cmp #$55
- bne -
- lda $0207
- sta $2141
- lda #$07
- sta $2140
- - lda $2140
- cmp #$07
- bne -
- - lda $2140
- cmp #$55
- bne -
- cli
- rts
- res1 php
- jsr res2
- plp
- stz $2140
- rts
- res2 php
- rep #$30
- ;ldy.w #$0000
- lda.w #$bbaa
- - cmp $2140
- bne -
- sep #$20
- lda #$cc
- bra B1
- B4 lda [$fd],y
- iny
- xba
- lda #$00
- bra B2
- B3 xba
- lda [$fd],y
- iny
- xba
- B5 cmp $2140
- bne B5
- ina
- B2 rep #$20
- sta $2140
- sep #$20
- dex
- bne B3
- - cmp $2140
- bne -
- - adc #$03
- beq -
- B1 pha
- rep #$20
- lda [$fd],y
- iny
- iny
- tax
- lda [$fd],y
- iny
- iny
- sta $2142
- sep #$20
- cpx.w #$0001
- lda #$00
- rol
- sta $2141
- adc #$7f
- pla
- sta $2140
- - cmp $2140
- bne -
- bvs B4
- plp
- rts
- pla
- sta $2140
- - cmp $2140
- bne -
- bvs B5
- plp
- rts
|