home *** CD-ROM | disk | FTP | other *** search
/ Energy 2 / Energy_2_1996_Taquart_pl_Side_E_a.atr / tmc111.arc / TMCPLAY.ASM < prev    next >
Assembly Source File  |  1988-09-01  |  13KB  |  1 lines

  1. *---------------*¢*  TMC  Player  *¢*Jaskier/Taquart*¢*---------------*¢¢ opt 6¢ org $ac00¢¢byte equ $fa¢bajt equ $fb¢addr equ $fc¢adrsng equ $fe¢¢player equ *¢ jmp init¢ jmp play¢ jmp sound¢¢maxvol dta b(15)¢volume dta d'        '¢freqen dta d'        '¢kanal  dta d'        '¢aktwys dta d'        '¢numdzw dta d'        '¢audctl dta d'        '¢aud1   dta b(0)¢aud2   dta b(0)¢¢voltab dta d'                '¢ dta d'        !!!!!!!!'¢ dta d'    !!!!!!!!""""'¢ dta d'   !!!!!"""""###'¢ dta d'  !!!!""""####$$'¢ dta d'  !!!"""###$$$%%'¢ dta d'  !!"""##$$$%%&&'¢ dta d'  !!""##$$%%&&'''''¢ dta d' !!""##$$%%&&''''('¢ dta d' !!""#$$%%&''''(()'¢ dta d' !!"##$%%&''''())*'¢ dta d' !!"#$$%&''''()**+'¢ dta d' !""#$%&&''()**+,'¢ dta d' !"##$%&''()**+,-'¢ dta d' !"#$%&''''()*+,-.'¢ dta d' !"#$%&''()*+,-./'¢¢frqtab dta b(0),b($f1),b($e4),b($d7)¢ dta b($cb),b($c0),b($b5),b($aa)¢ dta b($a1),b($98),b($8f),b($87)¢ dta b($7f),b($78),b($72),b($6b)¢ dta b($65),b($5f),b($5a),b($55)¢ dta b($50),b($4b),b($47),b($43)¢ dta b($3f),b($3c),b($38),b($35)¢ dta b($32),b($2f),b($2c),b($2a)¢ dta b($27),b($25),b($23),b($21)¢ dta b($1f),b($1d),b($1c),b($1a)¢ dta b($18),b($17),b($16),b($14)¢ dta b($13),b($12),b($11),b($10)¢ dta b(15),b(14),b(13),b(12)¢ dta b(11),b(10),b(9),b(8)¢ dta b(7),b(6),b(5),b(4)¢ dta b(3),b(2),b(1),b(0)¢¢ dta b(0),b($f2),b($e6),b($da)¢ dta b($ce),b($bf),b($b6),b($aa)¢ dta b($a1),b($98),b($8f),b($89)¢ dta b($80),b($7a),b($71),b($6b)¢ dta b($65),b($5f),b($5c),b($56)¢ dta b($50),b($4d),b($47),b($44)¢ dta b($3e),b($3c),b($38),b($35)¢ dta b($32),b($2f),b($2d),b($2a)¢ dta b($28),b($25),b($23),b($21)¢ dta b($1f),b($1d),b($1c),b($1a)¢ dta b($18),b($17),b($16),b($14)¢ dta b($13),b($12),b($11),b($10)¢ dta b(15),b(14),b(13),b(12)¢ dta b(11),b(10),b(9),b(8)¢ dta b(7),b(6),b(5),b(4)¢ dta b(3),b(2),b(1),b(0)¢¢ dta b(0),b($ff),b($f1),b($e4)¢ dta b($d8),b($ca),b($c0),b($b5)¢ dta b($ab),b($a2),b($99),b($8e)¢ dta b($87),b($7f),b($79),b($73)¢ dta b($70),b($66),b($61),b($5a)¢ dta b($55),b($52),b($4b),b($48)¢ dta b($43),b($3f),b($3c),b($39)¢ dta b($37),b($33),b($30),b($2d)¢ dta b($2a),b($28),b($25),b($24)¢ dta b($21),b($1f),b($1e),b($1c)¢ dta b($1b),b($19),b($17),b($16)¢ dta b($15),b($13),b($12),b($11)¢ dta b($10),b(15),b(14),b(13)¢ dta b(12),b(11),b(10),b(9)¢ dta b(8),b(7),b(6),b(5)¢ dta b(4),b(3),b(2),b(1)¢¢ dta b(0),b($f3),b($e6),b($d9)¢ dta b($cc),b($c1),b($b5),b($ad)¢ dta b($a2),b($99),b($90),b($88)¢ dta b($80),b($79),b($72),b($6c)¢ dta b($66),b($60),b($5b),b($55)¢ dta b($51),b($4c),b($48),b($44)¢ dta b($40),b($3c),b($39),b($35)¢ dta b($32),b($2f),b($2d),b($2a)¢ dta b($28),b($25),b($23),b($21)¢ dta b($1f),b($1d),b($1c),b($1a)¢ dta b($18),b($17),b($16),b($14)¢ dta b($13),b($12),b($11),b($10)¢ dta b(15),b(14),b(13),b(12)¢ dta b(11),b(10),b(9),b(8)¢ dta b(7),b(6),b(5),b(4)¢ dta b(3),b(2),b(1),b(0)¢¢basslo dta b(0),b($f2),b($33),b($96)¢ dta b($e2),b($38),b($8c),b($00)¢ dta b($6a),b($e8),b($6a),b($ef)¢ dta b($80),b($08),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($06),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)¢¢basshi dta b(0),b(13),b(13),b(12)¢ dta b(11),b(11),b(10),b(10)¢ dta b(9),b(8),b(8),b(7)¢ dta b(7),b(7),b(6),b(6)¢ dta b(5),b(5),b(5),b(4)¢ dta b(4),b(4),b(4),b(3)¢ dta b(3),b(3),b(3),b(3)¢ dta b(2),b(2),b(2),b(2)¢ dta b(2),b(2),b(2),b(1)¢ dta b(1),b(1),b(1),b(1)¢ dta b(1),b(1),b(1),b(1)¢ dta b(1),b(1),b(1),b(0)¢ dta b(0),b(0),b(0),b(0)¢ dta b(0),b(0),b(0),b(0)¢ dta b(0),b(0),b(0),b(0)¢ dta b(0),b(0),b(0),b(0)¢¢czygrx dta d'        '¢pozwpt dta d'        '¢delay  dta d'        '¢numptr dta d'        '¢poddzw dta d'        '¢wysdzw dta d'        '¢znksz  dta d'        '¢frq    dta d'        '¢vol1ch dta d'        '¢vol2ch dta d'        '¢adcvl1 dta d'        '¢adcvl2 dta d'        '¢adrsnl dta d'        '¢adrsnh dta d'        '¢slupy  dta d'        '¢opad1  dta d'        '¢opad2  dta d'        '¢lopad1 dta d'        '¢lopad2 dta d'        '¢typ    dta d'        '¢param  dta d'        '¢pomoc1 dta d'        '¢pomoc2 dta d'        '¢czekaj dta d'        '¢dtyp   dta d'        '¢ltyp   dta d'        '¢ilperm dta d'        '¢aperm  dta d'        '¢dperm  dta d'        '¢lperm  dta d'        '¢kolejn dta d'        '¢tempo  dta b(0)¢ltempo dta b(0)¢pozptr dta b(0)¢czygrc dta b(0)¢¢przeci dta b(4),b(5),b(6),b(7)¢ dta b(0),b(1),b(2),b(3)¢audtb1 dta b(4),b(2),b(0),b(0)¢ dta b(4),b(2),b(0),b(0)¢audtb2 dta b(0),b(16),b(0),b(8)¢ dta b(0),b(16),b(0),b(8)¢¢play lda czygrc¢ beq r1-3¢ lda pozptr¢ cmp #64¢ bcc r1¢ dec ltempo¢ beq *+5¢ jmp sound¢¢ ldx #7¢ lda #0¢p1 sta pozwpt,x¢ sta delay,x¢ dex¢ bpl p1¢ sta pozptr¢ tax¢ ldy #15¢p2 lda (adrsng),y¢ bpl p3¢ dey¢ lda (adrsng),y¢ bpl *+5¢ jmp stop¢ stx addr¢ asl @¢ asl @¢ rol addr¢ asl @¢ rol addr¢ asl @¢ rol addr¢zm0 adc #0¢ sta adrsng¢ lda addr¢zm1 adc #0¢ sta adrsng+1¢ bcc p2-2¢p3 sta numptr,x¢ dey¢ lda (adrsng),y¢ sta poddzw,x¢ inx¢ dey¢ bpl p2¢ clc¢ lda adrsng¢ adc #16¢ sta adrsng¢ bcc *+4¢ inc adrsng+1¢ jmp sound¢¢r1 dec ltempo¢ bpl r1-3¢ inc pozptr¢ lda tempo¢ sta ltempo¢ ldx #7¢r2 dec delay,x¢ bmi *+5¢ jmp r14¢ ldy numptr,x¢zm2 lda $ffff,y¢ sta addr¢zm3 lda $ffff,y¢ sta addr+1¢ ldy pozwpt,x¢r3 lda (addr),y¢ bne r4¢ jsr nparam¢ jmp r13¢r4 cmp #$40¢ bcs r5¢ adc poddzw,x¢ sta wysdzw,x¢ jsr nparam¢ ldy numdzw,x¢ jsr dzwiek¢ jmp r13¢r5 bne r8¢ iny¢ inc pozwpt,x¢ lda (addr),y¢ bpl r6¢ sta bajt¢ jsr nparam¢ lda bajt¢r6 and #$7f¢ bne r7¢ lda #64¢ sta pozptr¢ bne r13¢r7 sta tempo¢ sta ltempo¢ bne r13¢r8 cmp #$80¢ bcs r11¢ and #$3f¢ adc poddzw,x¢ sta wysdzw,x¢ iny¢ inc pozwpt,x¢ lda (addr),y¢ and #127¢ bne r9¢ lda #64¢ sta pozptr¢ bne r10¢r9 sta tempo¢ sta ltempo¢r10 jsr nparam¢ ldy numdzw,x¢ jsr dzwiek¢ jmp r13¢r11 cmp #$c0¢ bcs r12¢ and #$3f¢ sta numdzw,x¢ iny¢ inc pozwpt,x¢ jmp r3¢r12 and #$3f¢ sta delay,x¢r13 inc pozwpt,x¢r14 dex¢ bmi sound¢ jmp r2¢¢sound ldx #7¢p5 lda czygrx,x¢ beq p6¢ jsr graj¢ lda audctl,x¢ and audtb1,x¢ beq p6¢ ldy #71¢ lda (addr),y¢ clc¢ adc aktwys,x¢ sta aktwys+2,x¢ tay¢ lda frqtab,y¢ sec¢ adc pomoc1,x¢ sta frq+2,x¢p6 dex¢ bpl p5¢¢ asl maxvol¢ asl maxvol¢ asl maxvol¢ asl maxvol¢ inx¢ stx addr¢ stx addr+1¢ ldx #7¢p9 txa¢ tay¢ lda vol1ch,y¢ bne p10¢ ldy przeci,x¢ lda vol2ch,y¢ bne p10¢ txa¢ tay¢ lda #0¢p10 sta byte¢ tya¢ sta kanal,x¢ lda frq,y¢ sta freqen,x¢ lda audctl,y¢ sta bajt¢ ora addr+1¢ sta addr+1¢ lda bajt¢ and audtb1,x¢ beq p11¢ lda frq+2,y¢ sta freqen+2,x¢p11 lda bajt¢ and audtb2,x¢ beq p12¢ lda aktwys,y¢ and #$3f¢ tay¢ iny¢ sty addr¢ lda basshi-1,y¢ sta freqen,x¢ jmp p13¢p12 ldy addr¢ beq p13¢ lda basslo-1,y¢ sta freqen,x¢ lda #0¢ sta addr¢p13 lda byte¢ ora maxvol¢ tay¢ lda voltab,y¢ ldy kanal,x¢ ora znksz,y¢ sta volume,x¢ cpx #4¢ bne p14¢ lda addr+1¢ sta aud2¢ lda #0¢ sta addr+1¢p14 dex¢ bpl p9¢ lsr maxvol¢ lsr maxvol¢ lsr maxvol¢ lsr maxvol¢ lda addr+1¢quit ldx #3¢ stx $d21f¢ stx $d20f¢ ldx freqen+4¢ ldy freqen¢ stx $d210¢ sty $d200¢ ldx volume+4¢ ldy volume¢ stx $d211¢ sty $d201¢ ldx freqen+5¢ ldy freqen+1¢ stx $d212¢ sty $d202¢ ldx volume+5¢ ldy volume+1¢ stx $d213¢ sty $d203¢ ldx freqen+6¢ ldy freqen+2¢ stx $d214¢ sty $d204¢ ldx volume+6¢ ldy volume+2¢ stx $d215¢ sty $d205¢ ldx freqen+7¢ ldy freqen+3¢ stx $d216¢ sty $d206¢ ldx volume+7¢ ldy volume+3¢ stx $d217¢ sty $d207¢ sta aud1¢ ldx aud2¢ stx $d218¢ sta $d208¢ rts¢¢graj lda adrsnl,x¢ sta addr¢ lda adrsnh,x¢ sta addr+1¢ ldy slupy,x¢ cpy #63¢ beq n6¢ inc slupy,x¢ inc slupy,x¢ inc slupy,x¢ lda (addr),y¢ and #$f0¢ sta znksz,x¢ lda (addr),y¢ and #15¢ sec¢ sbc adcvl1,x¢ bpl n1¢ lda #0¢n1 sta vol1ch,x¢ iny¢ lda (addr),y¢ and #15¢ sec¢ sbc adcvl2,x¢ bpl n2¢ lda #0¢n2 sta vol2ch,x¢ lda (addr),y¢ and #$f0¢ beq n8¢ bpl n3¢ ldy #73¢ lda (addr),y¢ ldy slupy,x¢ dey¢ dey¢ bpl n4¢n3 lda #0¢n4 sta audctl,x¢ lda (addr),y¢ and #$70¢ beq n9¢ lsr @¢ lsr @¢ sta n5+1¢ lda #0¢ sta pomoc1,x¢ iny¢ lda (addr),y¢n5 bcc *¢ nop¢ nop¢ nop¢ nop¢ jmp a1¢ nop¢ jmp a2¢ nop¢ jmp a3¢ nop¢ jmp a4¢ nop¢ jmp a5¢ nop¢ jmp a6¢ nop¢ jmp a7¢n6 lda opad1,x¢ beq n7¢ dec lopad1,x¢ bne n7¢ sta lopad1,x¢ lda vol1ch,x¢ and #15¢ beq n7¢ dec vol1ch,x¢n7 lda opad2,x¢ beq n8¢ dec lopad2,x¢ bne n8¢ sta lopad2,x¢ lda vol2ch,x¢ and #15¢ beq n8¢ dec vol2ch,x¢n8 ldy #72¢ lda (addr),y¢ sta audctl,x¢n9 lda aperm,x¢ clc¢ adc #63¢ tay¢ lda (addr),y¢ adc wysdzw,x¢ sta aktwys,x¢ tay¢ lda frqtab,y¢ sta frq,x¢ dec lperm,x¢ bpl m1¢ lda dperm,x¢ sta lperm,x¢ lda kolejn,x¢ beq m6¢ clc¢ adc aperm,x¢ sta aperm,x¢ beq m7¢ cmp ilperm,x¢ bne m1¢ lda #$fe¢m7 clc¢ adc #1¢ sta kolejn,x¢ bne m1¢m6 inc aperm,x¢ lda ilperm,x¢ cmp aperm,x¢ bcs m1¢ lda #0¢ sta aperm,x¢m1 lda czekaj,x¢ beq m2¢ dec czekaj,x¢ rts¢m2 lda pomoc2,x¢ sta byte¢ lda param,x¢ sta bajt¢ jsr m4¢ dec ltyp,x¢ bpl m4-1¢ lda byte¢ sta pomoc2,x¢ lda bajt¢ sta param,x¢ lda dtyp,x¢ sta ltyp,x¢ rts¢m4 lda typ,x¢ sta m5+1¢m5 bpl *¢ jmp typ0¢ nop¢ jmp typ1¢ nop¢ jmp typ2¢ nop¢ jmp typ3¢ nop¢ jmp typ4¢ nop¢ jmp typ5¢ nop¢ jmp typ6¢ nop¢ jmp typ7¢¢typ1 lda byte¢ inc byte¢ and #3¢ lsr @¢ bcc t2¢ bne typ6¢ lda bajt¢t1 sta pomoc1,x¢ clc¢ adc frq,x¢ sta frq,x¢typ0 rts¢t2 lda #0¢ sta pomoc1,x¢ rts¢typ2 jsr t5¢ jmp t1¢typ3 jsr t5¢ clc¢ adc aktwys,x¢ jmp a5¢typ4 lda byte¢ sta pomoc1,x¢ clc¢ adc frq,x¢t3 sta frq,x¢ lda byte¢ clc¢ adc bajt¢ sta byte¢ rts¢typ5 lda aktwys,x¢ sec¢ sbc byte¢ sta aktwys,x¢ tay¢ lda frqtab,y¢ jmp t3¢typ6 lda frq,x¢ sec¢ sbc bajt¢ sta frq,x¢ sec¢ lda #0¢ sbc bajt¢ sta pomoc1,x¢ rts¢typ7 lda ltyp,x¢ bne typ0¢ lda bajt¢ bpl t4¢ lda vol2ch,x¢ beq typ0¢ lda vol1ch,x¢ cmp #15¢ beq typ0¢ inc vol1ch,x¢ rts¢t4 lda vol1ch,x¢ beq typ0¢ lda vol2ch,x¢ cmp #15¢ beq typ0¢ inc vol2ch,x¢ rts¢t5 ldy byte¢ lda bajt¢ bmi t6¢ iny¢ iny¢t6 dey¢ tya¢ sta byte¢ cmp bajt¢ bne t7¢ lda bajt¢ eor #$ff¢ sta bajt¢t7 tya¢ rts¢¢a2 adc frq,x¢a1 sta frq,x¢ rts¢a3 ldy wysdzw,x¢ adc frqtab,y¢ sta frq,x¢ tya¢ sta aktwys,x¢ rts¢a4 and $d20a¢ sta frq,x¢ rts¢a7 adc wysdzw,x¢a5 sta aktwys,x¢ tay¢ lda frqtab,y¢ sta frq,x¢ rts¢a6 sta aktwys,x¢ tay¢ lda frq,x¢ adc frqtab,y¢ sta frq,x¢ rts¢¢nparam iny¢ inc pozwpt,x¢ lda (addr),y¢ lsr @¢ lsr @¢ lsr @¢ lsr @¢ sta adcvl1,x¢ lda (addr),y¢ and #15¢ sta adcvl2,x¢ rts¢¢songx jsr stop¢ ldy #15¢zm4 lda #0¢ sta adrsng¢zm5 lda #0¢ sta adrsng+1¢d5 txa¢ beq inic¢d3 lda (adrsng),y¢ bpl d4¢ dex¢d4 clc¢ lda adrsng¢ adc #16¢ sta adrsng¢ bcc d5¢ inc adrsng+1¢ bcs d5¢¢playx jsr stop¢ lda #0¢ sta addr¢ txa¢ asl @¢ asl @¢ rol addr¢ asl @¢ rol addr¢ asl @¢ rol addr¢zm6 adc #0¢ sta adrsng¢ lda addr¢zm7 adc #0¢ sta adrsng+1¢inic lda #64¢ sta pozptr¢ lda #1¢ sta ltempo¢ sta czygrc¢ rts¢¢init cmp #$10¢ bcc songx¢ cmp #$20¢ bcc playx¢ cmp #$30¢ bcs *+5¢ jmp d2¢ cmp #$40¢ bcs i1¢ txa¢ and #15¢ beq i1-1¢ sta tempo¢ rts¢i1 cmp #$50¢ bcc stop¢ cmp #$60¢ bcs i2¢ lda #0¢i3 sta czygrc¢ rts¢i2 cmp #$70¢ bcc i3¢¢ lda #1¢ sta ltempo¢ lda #64¢ sta pozptr¢ sty addr¢ stx addr+1¢ ldy #30¢ lda (addr),y¢ sta tempo¢ lda addr¢ clc¢ adc #32¢ sta zm8+1¢ bcc *+3¢ inx¢ stx zm8+2¢ clc¢ adc #$40¢ sta zm9+1¢ bcc *+3¢ inx¢ stx zm9+2¢ clc¢ adc #$40¢ sta zm2+1¢ bcc *+3¢ inx¢ stx zm2+2¢ clc¢ adc #$80¢ sta zm3+1¢ bcc *+3¢ inx¢ stx zm3+2¢ clc¢ adc #$80¢ sta adrsng¢ sta zm0+1¢ sta zm4+1¢ sta zm6+1¢ bcc *+3¢ inx¢ stx adrsng+1¢ stx zm1+1¢ stx zm5+1¢ stx zm7+1¢¢stop ldy #7¢ lda #0¢ sta czygrc¢d9 sta $d200,y¢ sta $d210,y¢ sta volume,y¢ sta vol1ch,y¢ sta vol2ch,y¢ sta audctl,y¢ sta czygrx,y¢ dey¢ bpl d9¢ sta $d208¢ sta $d218¢ sta aud1¢ sta aud2¢ rts¢¢d1 sta vol1ch,x¢ sta vol2ch,x¢ sta audctl,x¢ lda wysdzw,x¢ sta aktwys,x¢ rts¢d0 tya¢ eor #$f0¢ lsr @¢ lsr @¢ lsr @¢ lsr @¢ sta adcvl1,x¢ tya¢ and #15¢ eor #15¢ sta adcvl2,x¢ rts¢d2 and #7¢ sta addr¢ txa¢ ldx addr¢ and #$3f¢ beq d0¢ sta wysdzw,x¢dzwiek lda #0¢ sta czygrx,x¢zm8 lda $ffff,y¢ sta adrsnl,x¢ sta addr¢zm9 lda $ffff,y¢ sta adrsnh,x¢ sta addr+1¢ ora addr¢ beq d1¢ ldy #74¢ lda (addr),y¢ sta opad1,x¢ sta lopad1,x¢ iny¢ lda (addr),y¢ sta opad2,x¢ sta lopad2,x¢ iny¢ lda (addr),y¢ and #$70¢ lsr @¢ lsr @¢ sta typ,x¢ lda (addr),y¢ and #15¢ sta param,x¢ lda (addr),y¢ bpl d7¢ lda param,x¢ eor #$ff¢ clc¢ adc #1¢ sta param,x¢d7 iny¢ lda (addr),y¢ sta czekaj,x¢ iny¢ lda (addr),y¢ and #$3f¢ sta dtyp,x¢ sta ltyp,x¢ iny¢ lda (addr),y¢ and #$80¢ beq d8¢ lda #1¢d8 sta kolejn,x¢ lda (addr),y¢ and #$70¢ lsr @¢ lsr @¢ lsr @¢ lsr @¢ sta ilperm,x¢ bne d6¢ sta kolejn,x¢d6 lda (addr),y¢ and #15¢ sta dperm,x¢ sta lperm,x¢ dey¢ lda (addr),y¢ and #$c0¢ clc¢ adc wysdzw,x¢ sta wysdzw,x¢ sta aktwys,x¢ tay¢ lda frqtab,y¢ sta frq,x¢ lda #0¢ sta slupy,x¢ sta pomoc1,x¢ sta pomoc2,x¢ sta aperm,x¢ lda #1¢ sta czygrx,x¢ rts¢¢endplr end¢