*-------------------*›* Player: MPT 2.4 *›* wersja najkrotsza *›* z mozliwych *›* Jaskier/Taquart *›*-------------------*›› opt %00100001› org $4000››*--- strona 0››adrtrl equ $8f›adrtrh equ $93›maxptr equ $97›tempo equ $98››branch equ $99›volume equ $9d›adcvol equ $a1›freq equ $a5›frqwsk equ $a9›adcdzw equ $ad›poddzw equ $b1›adrinl equ $b5›adrinh equ $b9›numdzw equ $bd›numptr equ $c1›ptrwsk equ $c5›ilespc equ $c9›licspc equ $cd›p1lsb equ $d1›p1lic equ $d5›p1pom equ $d9›p2lic equ $dd›p3max equ $e1›p3lic equ $e5›trnlic equ $e9›audzer equ $ed›licslp equ $f1›addr equ $f5›word equ $f7›zegar equ $f9›pozsng equ $fa›pozptr equ $fb›oraaud equ $fc›licz equ $fd›przech equ $fe›licptr equ $ff›musadr equ $a000››*--- program›› lda musadr› jsr init› jsr play›play lda czygrc› bne *+3› rts› ldx #0› stx oraaud› inc licz› lda pozptr› cmp maxptr› bcc r1› dec zegar› beq p1› jmp r5›p1 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 stop›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›r4 dex› bpl r2› inc pozptr›r5 ldx #3›r6 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 audzer+1› and #$10› beq w1› ldy numdzw+1› lda bsfrql,y› sta freq› lda bsfrqh,y› sta freq+1›w1 ldy #6› ldx #3› stx $d20f›w2 lda freq,x› sta $d200,y› lda volume,x› sta $d201,y› dey› dey› dex› bpl w2› lda audzer› ora audzer+1› ora audzer+2› ora audzer+3› ora oraaud› sta $d208› rts››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 #0› sta audzer,x› lda (addr),y› clc›akjmpz jsr $ffff› 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› brk› jmp typ4dz› brk› jmp typ5dz›czygrc 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› 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 adrinl,x› sta word› lda adrinh,x› sta word+1› ora word› beq typ0dz-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› 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››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››filtry dta b(4),b(2),b(0),b(0)›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)››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''››*--- inicjacja››init 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› jsr stop› lda maxptr› sta pozptr› lda #1› sta czygrc› sta zegar› dec tempo› rts››stop lda #0› sta czygrc› ldx