*-----------------*›* Player MPT 2.4 *›* Jaskier/Taquart *›*-----------------*›› opt 6› org $4000››*--- strona 0››addr equ $ec ,$ed›word equ $ee ,$ef›audzer equ $f0 ,$f1 ,$f2 ,$f3›licslp equ $f4 ,$f5 ,$f6 ,$f7›lensmp equ $f8›lsbmsb equ $f9›adrs1 equ $fa ,$fb›adrs2 equ $fc ,$fd›adrsmp equ $fe ,$ff››*--- program›› jmp init››play lda czygrc› bne *+3› rts› lda #0› sta oraaud› inc licz› lda pozptr› cmp maxptr› bcc r1› dec zegar› beq p1› jmp r5›p1 ldx #0› stx pozptr›p2 lda #0› sta ptrwsk,x› sta licspc,x› lda adrtrl,x› sta addr› lda adrtrh,x› sta addr+1› ldy pozsng›p3 lda (addr),y› iny› cmp #$ff› beq p5› cmp #$fe› bne p6›p4 jmp inic2›p5 lda (addr),y› bmi p4› asl @› tay› sty pozsng› jmp p3›p6 sta numptr,x› lda (addr),y› sta poddzw,x›p7 inx› cpx #4› bne p2› iny› sty pozsng› jmp r5›r1 dec zegar› bpl r5› lda tempo› sta zegar› ldx #3›r2 dec licspc,x› bpl r4› lda numptr,x› asl @› tay›aptrlz lda $ffff,y› sta addr› iny›aptrhz lda $ffff,y› sta addr+1› ora addr› beq r4› lda ptrwsk,x› sta licptr› jsr newdzw› ldy licptr› iny› tya› sta ptrwsk,x› lda ilespc,x› sta licspc,x› cpx #2› bne r4› lda adcvol,x› eor #$f› asl @› asl @› asl @› asl @› adc volstb› adc #0› sta volsmp+2›r4 dex› bpl r2› inc pozptr›r5 ldx #1› lda typsmp› cmp #2› beq r6› ldx #3›r6 lda typsmp› cmp #2› bne r7› cpx kansmp› beq r8›r7 jmp dzwiek›r8 lda audzer,x› and filtry,x› beq r9› ldy #$28› lda (addr),y› clc› adc numdzw,x› jsr czest› sec› adc p1pom,x› sta freq+2,x›r9 dex› bpl r6› lda #3› sta $d20f› lda audzer+1› and #$10› beq w1› ldy numdzw+1› lda bsfrql,y› sta freq› lda bsfrqh,y› sta freq+1›w1 lda freq› sta $d200› lda freq+1› sta $d202› lda freq+2› sta $d204› lda freq+3› sta $d206› lda volume› ldx #$ff› ldy typsmp› cpy #1› bne w2› ldx kansmp› beq w3›w2 sta $d201›w3 lda volume+1› cpx #1› beq w4› sta $d203›w4 cpy #2› beq w6› lda volume+2› cpx #2› beq w5› sta $d205›w5 lda volume+3› cpx #3› beq w6› sta $d207›w6 lda audzer› ora audzer+1› ora audzer+2› ora audzer+3› ora oraaud› sta $d208› rts›filtry dta b(4),b(2),b(0),b(0)››dzwiek lda adrinl,x› sta addr› lda adrinh,x› sta addr+1› ora addr› bne d0› sta volume,x› sta audzer,x› jmp r9›d0 ldy licslp,x› cpy #$20› beq d3› lda (addr),y› sec› sbc adcvol,x› bit sprvol› beq d1› and #$f0›d1 sta volume,x› iny› lda (addr),y› sta przech› iny› sty licslp,x› and #7› beq d4› tay› lda akcadl-1,y› sta akjmpz+1› lda akcadh-1,y› sta akjmpz+2› lda przech› lsr @› lsr @› lsr @› lsr @› lsr @› ora #$28› tay› lda (addr),y› clc›akjmpz jsr $ffff›d2 lda #0› sta audzer,x› jmp r9›d3 lda p3max,x› beq d4› dec p3lic,x› bne d4› sta p3lic,x› lda volume,x› and #15› beq d4› dec volume,x›d4 ldy #$23› lda (addr),y› sta audzer,x› lda trnlic,x› clc› adc #$25› tay› and #3› sta trnlic,x› dey› lda (addr),y› adc adcdzw,x› sta numdzw,x› jsr czest+2› sta freq,x› lda p2lic,x› beq d5› dec p2lic,x› jmp r8›d5 lda branch,x› sta p1jmpz+1›p1jmpz bpl *› jmp typ0dz› brk› jmp typ1dz› brk› jmp typ2dz› brk› jmp typ3dz›czygrc dta b(0)› jmp typ4dz›zapisx dta b(0)› jmp typ5dz›zapisy dta b(0)› jmp typ6dz›sprvol dta b($10)› jmp typ7dz››newdzw lda #0› sta adcvol,x› ldy licptr› dey›new iny› lda (addr),y› cmp #$fe› bne q0› sty licptr› rts›q0 cmp #$e0› bcc q1› lda maxptr› sta pozptr› bne new›q1 cmp #$d0› bcc q2› and #15› sta tempo› sta zegar› bpl new›q2 cmp #$c0› bcc q3› and #15› eor #15› sta adcvol,x› bpl new›q3 cmp #$80› bcc q4› and #$3f› sta ilespc,x› bpl new›q4 cmp #$40› bcc q5› iny› sty licptr› and #$1f› sta numsmp,x› asl @› tay›ainslz lda $ffff,y› sta adrinl,x› iny›ainshz lda $ffff,y› sta adrinh,x› jmp newdzw››q5 sty licptr› sta przech› clc› adc poddzw,x› sta adcdzw,x› lda typsmp› beq n9› cmp #2› beq n8› lda numsmp,x› cmp #$1f› bne n9› lda przech› sec› sbc #1›n6 and #15› tay› lda (adrsmp),y› sta adrs2+1› tya› ora #$10› tay› lda (adrsmp),y› sta lensmp› ldy #1› ora adrs2+1› bne n7› ldy #0›n7 sty czysmp› lda #0› sta adrs2› sta adrinl,x› sta adrinh,x› txa› asl @› sta wsksmp› stx kansmp› rts›n8 cpx #2› bcs nb›n9 lda adrinl,x› sta word› lda adrinh,x› sta word+1› ora word› beq na-1› ldy #$20› lda (word),y› and #15› sta p1lsb,x› lda (word),y› and #$70› lsr @› lsr @› sta branch,x› iny› lda (word),y› asl @› asl @› pha› and #$3f› sta p2lic,x› pla› and #$c0› sta frqwsk,x› iny› lda (word),y› sta p3max,x› sta p3lic,x› lda #0› sta licslp,x› sta trnlic,x› sta p1lic,x› sta p1pom,x› lda adcdzw,x› sta numdzw,x› jsr czest› sta freq,x› cpx kansmp› beq na› rts›na ldy #$ff› sty kansmp› iny› sty czysmp› rts›nb cpx #2› bne nd› ldy adcdzw+2› lda frsmpl,y› sta smpl1z+1› lda frsmph,y› sta smpl2z+1› lda #0› sta lsbmsb› sta adrs1› lda numsmp+2› and #15› tay› lda (adrsmp),y› sta adrs1+1› tya› ora #$10› tay› lda (adrsmp),y› sta smpl3z+1› ora adrs1+1› bne nc› sta smpl1z+1› sta smpl2z+1›nc rts›nd lda numsmp+3› and #15› tay› lda (adrsmp),y› sta adrs2+1› tya› ora #$10› tay› lda (adrsmp),y› ora adrs2+1› beq ne› lda (adrsmp),y› sec› sbc adrs2+1› sta lensmp› lda #0› sta adrs2› lda #$8d› bne nf›ne lda #$ad›nf sta drum2z› sta drum1z› lda #$18› sta $d207› rts››typ0dz lda licz› and #7› lsr @› lsr @› bcc t2› bne typ1dz› lda p1lsb,x›t1 clc› sta p1pom,x› adc freq,x› sta freq,x› jmp r8›t2 lda #0› sta p1pom,x› jmp r8›typ1dz lda freq,x› sec› sbc p1lsb,x› sta freq,x› sec› lda #0› sbc p1lsb,x› sta p1pom,x› jmp r8›typ2dz lda p1lic,x› clc› sta p1pom,x› adc freq,x›t3 sta freq,x› clc› lda p1lic,x› adc p1lsb,x› sta p1lic,x› jmp r8›typ3dz lda numdzw,x› sec› sbc p1lic,x›t4 sta numdzw,x› jsr czest› jmp t3›typ4dz lda #0› sec› sbc p1lic,x› sta p1pom,x› lda freq,x› sec› sbc p1lic,x› jmp t3›typ5dz lda numdzw,x› clc› adc p1lic,x› jmp t4›typ6dz jsr t5› jmp t1›typ7dz jsr t5› clc› adc numdzw,x› jsr a3› jmp r8›t5 ldy p1lic,x› lda p1lsb,x› bmi t6› iny› iny›t6 dey› tya› sta p1lic,x› cmp p1lsb,x› bne t7› lda p1lsb,x› eor #$ff› sta p1lsb,x›t7 lda p1lic,x› rts›czest and #$3f› ora frqwsk,x› tay›t1frqz lda $ffff,y› rts››akcadl dta l(a1),l(a0),l(a2)› dta l(a4),l(a5),l(a6),l(a8)›akcadh dta h(a1),h(a0),h(a2)› dta h(a4),h(a5),h(a6),h(a8)›audora dta b($40),b(0),b($20),b(0)››a0 adc freq,x›a1 sta freq,x› rts›a2 adc adcdzw,x›a3 sta numdzw,x› jsr czest› sta freq,x› rts›a4 sta freq,x› lda audora,x› bpl a7›a5 sta freq,x› lda #$80› bne a7›a6 sta freq,x› lda #1›a7 ora oraaud› sta oraaud› rts›a8 and $d20a› sta freq,x›a9 rts››bsfrql equ *-1› dta b($f2),b($33),b($96)› dta b($e2),b($38),b($8c),b(0)› dta b($6a),b($e8),b($6a),b($ef)› dta b($80),b(8),b($ae),b($46)› dta b($e6),b($95),b($41),b($f6)› dta b($b0),b($6e),b($30),b($f6)› dta b($bb),b($84),b($52),b($22)› dta b($f4),b($c8),b($a0),b($7a)› dta b($55),b($34),b($14),b($f5)› dta b($d8),b($bd),b($a4),b($8d)› dta b($77),b($60),b($4e),b($38)› dta b($27),b($15),b(6),b($f7)› dta b($e8),b($db),b($cf),b($c3)› dta b($b8),b($ac),b($a2),b($9a)› dta b($90),b($88),b($7f),b($78)› dta b($70),b($6a),b($64),b($5e)››bsfrqh equ *-1› dta c' '› dta c''› dta c''› dta c''››volstb dta d'8888888888888888'› dta d'667777888889999:'› dta d'556667788899:::;'› dta d'455667788899::;;'› dta d'44556677899::;;<'› dta d'34456677899::;<<'› dta d'33455677899:;;<='› dta d'23445677899:;<<='› dta d'2334566789::;<=='› dta d'2234566789::;<=>'› dta d'1234566789::;<=>'› dta d'1234556789:;;<=>'› dta d'1234456789:;<<=>'› dta d'1233456789:;<==>'› dta d'1223456789:;<=>>'› dta d'0123456789:;<=>?'››frsmpl dta b($20),b($22),b($24),b($26),b($29)› dta b($2b),b($2e),b($30),b($33),b($37)› dta b($3a),b($3d),b($41),b($45),b($49)› dta b($4d),b($52),b($57),b($5c),b($61)› dta b($67),b($6e),b($74),b($7b),b($82)› dta b($8a),b($92),b($9b),b($a4),b($ae)› dta b($b8),b($c3),b($cf),b($dc),b($e9)› dta b($f6),b(5),b($15),b($25),b($37)› dta b($49),b($5d),b($71),b($87),b($9f)› dta b($b8),b($d2),b($ed),b($b),b($2a)› dta b($4b),b($6e),b($93),b($ba),b($e3)› dta b($f),b($3e),b($70),b($a4),b($db)››frsmph dta d' '› dta d' '› dta d' !!!!!!!!!'› dta d'!!!"""""""#####'››*--- inicjacja››iniadl dta l(inic0),l(inic2)› dta l(inic4),l(inic5)› dta l(inic6),l(inic7)› dta l(inic8),l(inic9)›iniadh dta h(inic0),h(inic2)› dta h(inic4),h(inic5)› dta h(inic6),h(inic7)› dta h(inic8),h(inic9)››init stx zapisx› sty zapisy› and #7› tay› lda iniadl,y› sta inic1+1› lda iniadh,y› sta inic1+2›inic1 jmp $ffff››inic0 lda zapisy› ldx zapisx› sta ainslz+1› sta ainshz+1› stx ainslz+2› stx ainshz+2› clc› adc #$40› sta aptrlz+1› sta aptrhz+1› bcc i2› inx›i2 stx aptrlz+2› stx aptrhz+2› clc› adc #$80› sta t1frqz+1› bcc i4› inx›i4 stx t1frqz+2› inx› sta j4+1› stx j4+2› ldx #9›j4 lda $ffff,x› sta adrtrl,x› dex› bpl j4› dec tempo››inic2 lda #0› sta czygrc› ldx ressmp+1› sta adrs1+1› lda #$ad› sta drum2z› sta drum1z› ldy #0› sty smpl1z+1› sty smpl2z+1›k2 ldx $d40b› lda (adrs2),y› lsr @› lsr @› lsr @› lsr @› ora #$10›drum1z sta $d207› jsr k6›k3 cpx $d40b› beq k3› sta $d205› ldx $d40b› lda (adrs2),y› inc adrs2› bne k4› inc adrs2+1› dec lensmp› bne k4› lda #$ad› sta drum2z› sta drum1z› lda #8›k4 ora #$10›drum2z sta $d207› jsr k6›k5 cpx $d40b› beq k5› sta $d205› lda typsmp› bne k2› rts››k6 clc› lda lsbmsb›smpl1z adc #0› sta lsbmsb› lda adrs1›smpl2z adc #0› sta adrs1› bcc k7› inc adrs1+1› lda adrs1+1›smpl3z cmp #0› bne k7› sty smpl1z+1› sty smpl2z+1› rts›k7 lda (adrs1),y› bit lsbmsb› bmi k8› lsr @› lsr @› lsr @› lsr @›k8 and #15› tay›volsmp lda volstb,y› ldy #0› rts››inic9 ldy #0› sty typsmp› sty czysmp› dey› sty kansmp› rts››*--- zmienne››adrtrl org *+4›adrtrh org *+4›maxptr org *+1›tempo org *+1››branch org *+4›volume org *+4›adcvol org *+4›freq org *+4›frqwsk org *+4›adcdzw org *+4›poddzw org *+4›adrinl org *+4›adrinh org *+4›numdzw