* Procedura odtwarzajaca›* PLAYERS›* by›* Michal Luberda›* Przystosowana do programu›* CMC SAMPLE MAKER››››› opt 41›››musadr equ $ffff adres modulu odtwarzajacego›play equ $ffff adres muzyki›start equ $4000›bufor equ $0600››dosvec equ $0a (2)›irqen_ equ $10›timer equ $14›apat equ $f0 (2)›adrsmp equ $f2 (2)››plarti equ $c030›setvbl equ $e45c›sysvbl equ $e45f››audf1 equ $d200›audcl equ $d201›audctl equ $d208›vcount equ $d40b›irqen equ $d20e›consol equ $d01f››runad equ $02e0›vimirq equ $0216››lenpat equ $10›› org start››› lda vimirq› ldx vimirq+$01› sta oldvim› stx oldvim+$01› lda irqen_› sta oldirq›› lda musadr+$13 aktualizowanie› sta tempo tempa›› ldx musadr muzyki› lda #$70› jsr play+$03› lda #$00› tax› jsr play+$03›› jsr clear›› lda #$00› sta czyper› sta ltmp› sta wskain› sta wska›› lda #$06 ustawienie› ldx >vblk wektora› ldy sysvbl› ldy patd1› sta apat+$01›per1 cpy #$00› beq per2› clc› lda apat› adc #lenpat› sta apat› lda apat+1› adc #$00› sta apat+1› dey› jmp per1›per2 ldy wskain› lda (apat),y› cmp #$00› beq per4› tay› dey› lda poczm,y› sta adrsmp› lda poczs,y› sta adrsmp+1› lda kons,y› sta skon› jsr setirq›per4 inc ltmp› lda ltmp› cmp tempo› bne endper› lda #$00› sta ltmp› inc wskain› lda wskain› cmp #lenpat› bne endper› lda #$00› sta wskain› inc wska›endper rts››setirq lda irq› sta vimirq› sty vimirq+$01› lda vcount› cmp vcount› beq *-3› lda #$01› sta irqen› sta czyper› rts››irq equ *› pha› tya› pha› lda vcount› cmp vcount› beq *-3› lda #$01› sta irqen›adr jmp irq1››irq2 ldy #$00› lda (adrsmp),y› lsr @› lsr @› lsr @› lsr @› ora #$10› sta audcl+$04› lda irq1› sta adr+$01› sty adr+$02› pla› tay› pla› rti››irq1 ldy #$00› lda (adrsmp),y› ora #$10› sta audcl+$04› inc adrsmp› bne ir1_› inc adrsmp+$01› lda adrsmp+$01› cmp skon› beq endirq›ir1_ lda irq2› sta adr+$01› sty adr+$02› pla› tay› pla› rti››endirq lda plarti› sta vimirq› sty vimirq+$01› lda #$00› sta czyper› sta irqen› pla› tay› pla› rti››patd1 equ $ffff adres› paternow›››track equ $ffff adres› trackow›››poczm dta b($00),b($00),b($00)›poczs dta b($00),b($00),b($00)›kons dta b($00),b($00),b($00)››czyper org *+1›skon org *+1›ltmp org *+1›wskain org *+1›wska org *+1›tempo org *+1››oldvim org *+2›oldirq org *+1›› org runad›› dta a(start)›› end of procedure.››