Changes

Jump to: navigation, search

PROTRACKER372 PTUPLAY H

1,254 bytes added, 21:49, 8 March 2020
no edit summary
PTUPLAY C��\V�W�Ÿ ;RUN=CREATE RELOC TBL ;pt3.67 micro SLOW player with 1 table ;no ini ;85 PATTERNS ;no IY! ;tempo1 MACRO pp tba_smp=MUZ+105 tba_orn=tba_smp+64 PLAYER frq_A=MUZ frq_B=MUZ+2 frq_C=MUZ+4 N_frq=MUZ+6 vol_A=MUZ+8 vol_B=MUZ+9 vol_C=MUZ+10 frq_E=MUZ+11 E_form=MUZ+13 play LD HL,int_qty DEC (HL) JP NZ,NOINS ;--- nota_A + calc_next_position --- INC HL ;LD HL,int_qtyA_qty
DEC (HL)
JP NZ,NOINS;--- nota_A + calc_next_position --- INC HL ;LD HL,A_qty DEC (HL) JR NZ,Aq_0 Ach_adr LD DE,tab_vol+16 LD A,(DE) OR A JR NZ,Ps_n0 _m1=$+2 LD (N_frq),A ;;5!!! LD D,A ;; LD (sav_SP2+1),SP Psa_beg LD HL,MUZ+201 LD A,(HL) INC A ;AAA;6 JR NZ,Ps_n1 ;NC ;6 Psa_lop LD HL,MUZ+201 Ps_n1 LD E,(HL) ;6 INC HL LD (Psa_beg+1),HL Psa_chn LD HL,0 ADD HL,DE ADD HL,DE LD SP,HL ;POP HL ;ia_pos0 LD BC,MUZ ;ADD HL,BC ;EX DE,HL ;DE=adr_chn_A POP DE POP HL ;ADD HL,BC ;HL=adr_chn_B LD (Bch_adr+1),HL POP HL ;ADD HL,BC ;HL=adr_chn_C LD (Cch_adr+1),HL sav_SP2 LD SP,0 Ps_n0 _m12=$+1 LD H,'tba_smp CALL An_clc1 LD (Ach_adr+1),DE Ai_qty LD A,0 LD (A_qty),A DJNZ Aq_0 LD H,B LD L,B LD (Asl_dsp+1),HL Aq_0 ;--- nota_B --- LD HL,B_qty DEC (HL) JR NZ,Bq_0 Bch_adr LD DE,0 _m13=$+1 LD H,'tba_smp CALL Bn_clc1 LD (Bch_adr+1),DE Bi_qty LD A,0 LD (B_qty),A DJNZ Bq_0 LD H,B LD L,B LD (Bsl_dsp+1),HL Bq_0 ;--- nota_C --- LD HL,C_qty DEC (HL) JR NZ,Cq_0 Cch_adr LD DE,0 _m14=$+1 LD H,'tba_smp CALL Cn_clc1 LD (Cch_adr+1),DE Ci_qty LD A,0 LD (C_qty),A DJNZ Cq_0 LD H,B LD L,B LD (Csl_dsp+1),HL Cq_0 ;--- install_E --- Ei_form LD A,0 ;env_form _m11=$+2 LD (E_form),A OR A JR Z,temp Ei_frq LD HL,0 ;env_frq LD (E_frq+1),HL XOR A LD L,A LD H,A LD (Ei_form+1),A LD (Esl_frq+1),HL LD (Esl_stp+1),A temp LD A,3 ;temp LD (int_qty),A NOINS play_0 LD L,0 ;smp_sl_env EXX N_add LD IX,0 ;HX=noise LX=mix LD (sav_SP1+1),SP E_ins0 JR Ei_Q Esl_ids LD HL,0 ;stp_sld_env LD (Esl_sds+1),HL Esl_ist LD A,0 ;stp_sld_p LD (E_frqEsl_stp+1),A LD (Esl_sts+1),A LD A,24 LD (E_ins0),A Ei_Q ;---- sampler_A ---- Avb_lok LD A,-1 LD H,A INC A JP Z,Avb_n0 As_adr LD SP,DUMMYSMP ;sample POP DE ;loop E=beg D=end As_dsp LD A,0 LD L,A INC A CP D JR C,As_n0 ;bug NZ/C LD A,E As_n0 LD (As_dsp+1),A SLA L SLA L ;ADD HL,HL,HL,HL ADD HL,SP LD SP,HL POP DE ;D= Nm ts ns Tm v3 v2 v1 v0 LD A,D ;E= sv +- N4 N3 N2 N1 N0 Em OR #F0 ;AND 15 LD L,A LD A,E ADD A,A As_Vsl LD A,16 JR NC,As_VslG JP M,As_n2 SUB 1 JR As_n3 As_n2 CP 31 As_n3 ADC A,0 LD (As_Vsl+1),A As_VslG ADD A,L JR C,As_n4 XOR A As_n4 CP 16 JR C,Ag_vol LD A,15 Ag_vol ADD A,#F0 LD L,A LD H,'tab_vol LD A,(HL) SRL E JR C,Am_vo0 Am_vol OR 0 Am_vo0 EXA LD A,D ;LD L,A RLCA ;LD H,A JR C,As_n5 As_Nsl LD A,0 ADD A,E BIT 5,D JR Z,As_n6 LD (As_Nsl+1),A As_n6 LD HX,A JR As_n7 As_n5 LD A,E AND 31 CP 16 JR C,As_Esl OR #F0 As_Esl ADD A,0 BIT 5,D JR Z,As_n9 LD (As_Esl+1),A As_n9 EXX ADD A,L
LD L,A
LD H,A
LD (Ei_form+1),A
LD (Esl_frq+1),HL
LD (Esl_stp+1),A
 
temp LD A,3 ;temp
LD (int_qty),A
NOINS
play_0 LD L,0 ;smp_sl_env
EXX
N_add LD IX,0 ;HX=noise LX=mix LD (sav_SP1+1),SPE_ins0 JR Ei_QEsl_ids LD HL,0 ;stp_sld_env LD (Esl_sds+1),HLEsl_ist LD A,0 ;stp_sld_p LD (Esl_stp+1),A LD (Esl_sts+1),A LD A,24 LD (E_ins0),AEi_Q;---- sampler_A ---- Avb_lok LD A,-1 LD H,A INC A JP Z,Avb_n0 As_adr LD SP,DUMMYSMP ;sample POP DE ;loop E=beg D=endAs_dsp LD A,0 LD L,A INC A CP D JR C,As_n0 ;bug NZ/C LD A,EAs_n0 As_n7 LD (As_dsp+1),A SLA L SLA L ;ADD HL,HL,HL,HL ADD HL,SP LD SP,HL POP DE ;D= Nm ts ns Tm v3 v2 v1 v0 LD A,D ;E= sv +- N4 N3 N2 N1 N0 Em OR #F0 ;AND 15 LD L,A LD A,E ADD A,AAs_Vsl LD A,16 JR NC,As_VslG JP M,As_n2 SUB 1 JR As_n3As_n2 CP 31As_n3 ADC A,0 LD (As_Vsl+1),AAs_VslG ADD A,L JR C,As_n4 XOR AAs_n4 CP 16 JR C,Ag_vol LD A,15Ag_vol ADD A,#F0 LD L,A LD H,'tab_vol LD A,(HL) SRL E JR C,Am_vo0Am_vol OR 0Am_vo0 EXA LD A,D ;LD L,A RLCA
RLCA
;LD H,A JR C,As_n5As_Nsl LD A,0 ADD A,E BIT 5,D JR Z,As_n6 LD (As_Nsl+1),AAs_n6 LD HX,A JR As_n7 As_n5 LD A,E AND 31 CP 16 JR C,As_Esl OR #F0As_Esl ADD A,0 BIT 5,D JR Z,As_n9 LD (As_Esl+1),AAs_n9 EXX ADD A,L LD L,A EXX As_n7 LD A,D RLCA RLCA RLCA RLCA AND 9 LD LX,A POP BC ;LD A,D As_dtn LD HL,0 ;dsp_frq_smp ADD HL,BC BIT 6,D ;AND 64 JR Z,As_n10 LD (As_dtn+1),HL As_n10 EX DE,HL Ao_adr LD SP,DUMMYORN ;ornament POP BC ;loop C=beg B=end Ao_dsp LD A,0 LD L,A INC A CP B JR C,$+3 ;bug NZ/C LD A,C LD (Ao_dsp+1),A LD H,0 ADD HL,SP LD A,(As_note+1) ADD A,(HL) ;dsp_orn ADD A,A JR NC,$+3 XOR A LD L,A LD H,'tab_frq LD SP,HL POP HL ADD HL,DE Asl_dsp LD BC,0 ADD HL,BC _m3=$+2 LD (frq_A),HL Asl_stp LD A,0 DEC A JP M,Asl_s0 JR NZ,Asl_s1 Asl_tfr LD DE,0
ADD HL,DE
Asl_dsp LD BC,0
ADD HL,BC
_m3=$+2
LD (frq_A),HL
 
Asl_stp LD A,0
DEC A
JP M,Asl_s0
JR NZ,Asl_s1
Asl_tfr LD DE,0
ADD HL,DE
EX DE,HL
ADD HL,BC
LD (Asl_dsp+1),HL
JR Asl_sts ;port off/on
Asl_plk
Asl_not LD A,0
LD L,A
ADD HL,HL
LD H,'tab_frq
LD SP,HL
POP HL
As_note CP 0
JR NC,$+3
EX DE,HL
ADD HL,BC LD (Asl_dsp+1),HL JR Asl_sts ;port off/on Asl_plk Asl_not LD A,0 LD L,A ADD HL,HL LD H,'tab_frq LD SP,HL POP HL As_note CP 0 JR NC,$+3 EX DE,HL SBC HL,DE JR C,Asl_sts LD (As_note+1),A XOR A LD L,A LD (Asl_dsp+1),HL JR $+4 Asl_sts LD A,0 Asl_s1 LD (Asl_stp+1),A Asl_s0 EXA _m7=$+2 Avb_n0 LD (vol_A),A Avb_stp LD A,0 DEC A JP M,Bvb_lok JR NZ,Avb_n1 DEC A ;; LD HL,Avb_lok+1;; XOR (HL) ;; LD (HL),A ;;4 Avb_frq LD A,0 JR NZ,Avb_n1 Avb_sts LD A,0 Avb_n1 LD (Avb_stp+1),A ;---- sampler_B ---- Bvb_lok LD A,-1 LD H,A INC A JP Z,Bvb_n0 Bs_adr LD SP,DUMMYSMP POP DE Bs_dsp LD A,0 LD L,A INC A CP D JR C,Bs_n0 LD A,E Bs_n0 LD (Bs_dsp+1),A SLA L SLA L ;ADD HL,HL,HL,HL ADD HL,SP LD SP,HL POP DE LD A,D OR #F0 ;AND 15 LD L,A LD A,E ADD A,ABs_Vsl LD A,16 JR NC,Bs_VslG JP M,Bs_n2 SUB 1 JR Bs_n3Bs_n2 CP 31Bs_n3 ADC A,0 LD (Bs_Vsl+1),ABs_VslG ADD A,L JR C,Bs_n4 XOR ABs_n4 CP 16 JR C,Bg_vol LD A,15Bg_vol ADD A,#F0 LD L,A LD H,'tab_vol LD A,(HL) SRL E JR C,Bm_vo0Bm_vol OR 0Bm_vo0 EXA LD A,D ;LD L,A RLCA ;LD H,A JR C,Bs_n5Bs_Nsl LD A,0 ADD A,E BIT 5,D JR Z,Bs_n6 LD (Bs_Nsl+1),ABs_n6 LD HX,A JR Bs_n7 Bs_n5 LD A,E AND 31 CP 16 JR C,Bs_Esl
OR #F0
Bs_Esl ADD A,0 BIT 5,D;AND 15 JR Z,Bs_n9 LD (Bs_Esl+1),ABs_n9 EXX ADD A,L LD L,A EXX Bs_n7 LD A,DE RRCA RRCA RRCA AND 18 OR LX LD LX ADD A,A POP BC ; Bs_Vsl LD A,D16Bs_dtn LD HL JR NC,0Bs_VslG ADD HL JP M,BCBs_n2 BIT 6,D SUB 1 JR Bs_n3 ;AND 64 Bs_n2 CP 31 JR Z Bs_n3 ADC A,Bs_n100 LD (Bs_dtnBs_Vsl+1),HLABs_n10 EX DE,HLBs_VslG Bo_adr LD SP,DUMMYORN POP BCBo_dsp LD ADD A,0 LD L,A INC A CP B JR C,Bo_n0Bs_n4 LD XOR A,CBo_n0 Bs_n4 LD (Bo_dsp+1),ACP 16 LD H JR C,0Bg_vol ADD HL,SP LD A,(Bs_note+1)15 Bg_vol ADD A,(HL)#F0 ADD A,A JR NC,$+3 XOR A LD L,A LD H,'tab_frqtab_vol LD SPA,(HL POP HL ADD HL,DEBsl_dsp LD BC,0 ADD HL,BC_m5=$+2 LD (frq_B),HL SRL EBsl_stp LD A,0 DEC A JP M,Bsl_s0 JR NZC,Bsl_s1Bm_vo0Bsl_tfr LD DE, Bm_vol OR 0 ADD HL,DE Bm_vo0 EXA EX DE,HL ADD HL,BC LD (Bsl_dsp+1),HL JR Bsl_stsBsl_plkBsl_not LD A,0D ;LD L,A ADD HL,HL RLCA ;LD H,'tab_frqA LD SP,HL POP HLBs_note CP 0 JR NC,$+3 EX DE,HL SBC HL,DE JR C,Bsl_sts LD (Bs_note+1),A XOR A LD L,A LD (Bsl_dsp+1),HLBs_n5 JR $+4Bsl_sts LD A,0Bsl_s1 LD (Bsl_stp+1),ABsl_s0 EXA  _m8=$+2Bvb_n0 Bs_Nsl LD (vol_B),ABvb_stp LD A,0 DEC ADD A JP M,Cvb_lokE JR NZ BIT 5,Bvb_n1D DEC A ;; LD HL,Bvb_lok+1;; XOR (HL) ;; LD (HL),A ;;4Bvb_frq LD A,0 JR NZZ,Bvb_n1Bs_n6Bvb_sts LD A,0Bvb_n1 LD (Bvb_stpBs_Nsl+1),A ;---- sampler_C ---- Cvb_lok Bs_n6 LD A,-1 LD HHX,A INC A JR Bs_n7 JP Z,Cvb_n0 Cs_adr LD SP,DUMMYSMP POP DECs_dsp Bs_n5 LD A,0E LD L,A AND 31 INC A CP D16 JR C,Cs_n0Bs_Esl LD A,ECs_n0 LD (Cs_dsp+1),A SLA L SLA L ;ADD HL,HL,HL,HL ADD HL,SP LD SP,HL POP DE LD A,D OR #F0 ;AND 15 LD L,A LD A,E Bs_Esl ADD A,A0Cs_Vsl LD A BIT 5,16D JR NCZ,Cs_VslGBs_n9 JP M,Cs_n2 SUB 1 JR Cs_n3Cs_n2 CP 31Cs_n3 ADC A,0 LD (Cs_VslBs_Esl+1),ACs_VslG Bs_n9 EXX
ADD A,L
JR C,Cs_n4
XOR A
Cs_n4 CP 16
JR C,Cg_vol
LD A,15
Cg_vol ADD A,#F0
LD L,A
LD H,'tab_vol LD A,(HL) SRL E JR C,Cm_vo0Cm_vol OR 0Cm_vo0 EXA LD A,D ;LD L,A RLCA EXX ;LD H,A JR C,Cs_n5Cs_Nsl LD A,0 ADD A,E BIT 5,D JR Z,Cs_n6 LD (Cs_Nsl+1),ACs_n6 Bs_n7 LD HX,A JR Cs_n7 Cs_n5 LD A,E AND 31 CP 16 JR C,Cs_Esl OR #F0Cs_Esl ADD A,0 BIT 5,D JR Z,Cs_n9 LD (Cs_Esl+1),ACs_n9 EXX ADD A,L LD L,A EXX Cs_n7 LD A,DRRCA
RRCA
RRCA
;RRCA AND 3618 OR LX LD LX,A POP BC ;LD A,DCs_dtn Bs_dtn LD HL,0 ADD HL,BC BIT 6,D ;AND 64 JR Z,Cs_n10Bs_n10 LD (Cs_dtnBs_dtn+1),HLCs_n10 Bs_n10 EX DE,HL Co_adr Bo_adr LD SP,DUMMYORN POP BCCo_dsp Bo_dsp LD A,0 LD L,A INC A CP B JR C,Co_n0Bo_n0 LD A,CCo_n0 Bo_n0 LD (Co_dspBo_dsp+1),A LD H,0 ADD HL,SP LD A,(Cs_noteBs_note+1) ADD A,(HL) ADD A,A JR NC,$+3 XOR A LD L,A LD H,'tab_frq LD SP,HL POP HL ADD HL,DE Bsl_dsp LD BC,0 ADD HL,BC _m5=$+2 LD (frq_B),HL Bsl_stp LD A,0 DEC A JP M,Bsl_s0 JR NZ,Bsl_s1 Bsl_tfr LD DE,0
ADD HL,DE
Csl_dsp LD BC,0
ADD HL,BC
_m6=$+2
LD (frq_C),HL
 
Csl_stp LD A,0
DEC A
JP M,Csl_s0
JR NZ,Csl_s1
Csl_tfr LD DE,0
ADD HL,DE
EX DE,HL
ADD HL,BC
LD (Csl_dsp+1),HL
JR Csl_sts
Csl_plk
Csl_not LD A,0
LD L,A
ADD HL,HL
LD H,'tab_frq
LD SP,HL
POP HL
Cs_note CP 0
JR NC,$+3
EX DE,HL
ADD HL,BC LD (Bsl_dsp+1),HL JR Bsl_sts Bsl_plk Bsl_not LD A,0 LD L,A ADD HL,HL LD H,'tab_frq LD SP,HL POP HL Bs_note CP 0 JR NC,$+3 EX DE,HL SBC HL,DE JR C,Csl_stsBsl_sts LD (Cs_noteBs_note+1),A XOR A LD L,A LD (Csl_dspBsl_dsp+1),HL JR $+4Csl_sts Bsl_sts LD A,0Csl_s1 Bsl_s1 LD (Csl_stpBsl_stp+1),ACsl_s0 Bsl_s0 EXA _m9 _m8=$+2Cvb_n0 Bvb_n0 LD (vol_Cvol_B),ACvb_stp Bvb_stp LD A,0 DEC A JP M,Esl_Cvb_lok JR NZ,Cvb_n1Bvb_n1 DEC A ;; LD HL,Cvb_lokBvb_lok+1;; XOR (HL) ;; LD (HL),A ;;4Cvb_frq Bvb_frq LD A,0 JR NZ,Cvb_n1Bvb_n1Cvb_sts Bvb_sts LD A,0Cvb_n1 Bvb_n1 LD (Cvb_stpBvb_stp+1),A ;---- sampler_E sampler_C ---- Esl_ EXX Cvb_lok LD A,-1 LD H,A INC A JP Z,LCvb_n0 Esl_frq Cs_adr LD SP,DUMMYSMP POP DE Cs_dsp LD A,0 LD L,A INC A CP D JR C,Cs_n0 LD A,E Cs_n0 LD (Cs_dsp+1),A SLA L SLA L ;stp_sl_envADD HL,HL,HL,HL ADD HL,SPE_frq LD SP,HL POP DE LD A,D OR #F0 ;AND 15 LD L,A LD A,E ADD A,A Cs_Vsl LD A,16 JR NC,Cs_VslG JP M,Cs_n2 SUB 1 JR Cs_n3 Cs_n2 CP 31 Cs_n3 ADC A,0 LD (Cs_Vsl+1),A Cs_VslG ADD A,L JR C,Cs_n4 XOR A Cs_n4 CP 16 JR C,Cg_vol LD A,15 Cg_vol ADD A,#F0 LD L,A LD H,'tab_vol LD A,(HL) SRL E JR C,Cm_vo0 Cm_vol OR 0 Cm_vo0 EXA LD A,D ;LD L,A RLCA ;frq_envLD H,A JR C,Cs_n5 Cs_Nsl LD A,0 ADD A,E BIT 5,D JR Z,Cs_n6 LD (Cs_Nsl+1),A Cs_n6 LD HX,A JR Cs_n7 Cs_n5 LD A,E AND 31 CP 16 JR C,Cs_Esl OR #F0 Cs_Esl ADD A,0 BIT 5,D JR Z,Cs_n9 LD (Cs_Esl+1),A Cs_n9 EXX
ADD A,L
LD L,A
EXX
Cs_n7 LD A,D
RRCA
RRCA
;RRCA
AND 36
OR LX
LD LX,A
POP BC
;LD A,D
Cs_dtn LD HL,0
ADD HL,BC
BIT 6,D
;AND 64
JR Z,Cs_n10
LD (Cs_dtn+1),HL
Cs_n10 EX DE,HL
Co_adr LD SP,DUMMYORN
POP BC
Co_dsp LD A,0
LD L,A
INC A
CP B
JR C,Co_n0
LD A,C
Co_n0 LD (Co_dsp+1),A
LD H,0
ADD HL,SP
LD A,(Cs_note+1)
ADD A,(HL)
ADD A,A
JR NC,$+3
XOR A
LD L,A
LD H,'tab_frq
LD SP,HL
POP HL
ADD HL,DE
Csl_dsp LD BC,0
ADD HL,BC
_m6=$+2
LD (frq_C),HL
Csl_stp LD A,0
DEC A
JP M,Csl_s0
JR NZ,Csl_s1
Csl_tfr LD DE,0
ADD HL,DE
EX DE,HL ADD HL,BC LD (Csl_dsp+1),HL JR Csl_sts Csl_plk Csl_not LD A,0 LD L,A ADD HL,HL LD H,'tab_frq LD SP,HL POP HL Cs_note CP 0 JR NC,$+3 EX DE,HL SBC HL,DE JR C,Csl_sts LD (Cs_note+1),A XOR A LD L,A LD (Csl_dsp+1),HL JR $+4 Csl_sts LD A,0 Csl_s1 LD (Csl_stp+1),A Csl_s0 EXA _m9=$+2 Cvb_n0 LD (vol_C),A Cvb_stp LD A,0 DEC A JP M,Esl_ JR NZ,Cvb_n1 DEC A ;; LD HL,Cvb_lok+1;; XOR (HL) ;; LD (HL),A ;;4 Cvb_frq LD A,0 JR NZ,Cvb_n1 Cvb_sts LD A,0 Cvb_n1 LD (Cvb_stp+1),A ;---- sampler_E ---- Esl_ EXX LD A,L Esl_frq LD DE,0 ;stp_sl_env E_frq LD HL,0 ;frq_env ADD A,L LD L,A ADD HL,DE _m10=$+2 LD (frq_E),HL Esl_stp LD A,0 DEC A JP M,sav_SP1 JR NZ,E_n0 Esl_sds LD HL,0 ADD HL,DE LD (Esl_frq+1),HL Esl_sts LD A,0 E_n0 LD (Esl_stp+1),A ;---- out_to_processor ---- sav_SP1 LD SP,0 out_ LD DE,#FFBF LD C,-3 _m4=$+2 LD HL,frq_A LD A,7 CALL OUTER LD A,HX ;noise LD (N_add+3),A ADD A,(HL) OUT (C),A INC L LD B,D OUT (C),L LD A,LX ;mix LD B,E OUT (C),A INC L LD A,6 CALL OUTER OR (HL) RET Z OUT (C),A LD (HL),0 ;;4 RET  ;--- nota_A --- Ani_vol JR NZ,Ani_v0 LD (Avb_stp+1),A DEC A LD (Avb_lok+1),A
RET
;--- nota_A --- Ani_vol JR NZ,Ani_v0 LD (Avb_stp+1),A DEC A LD (Avb_lok+1),A RET Ani_v0 DUP 4 ADD A,A EDUP LD (Ag_vol+1),A JP An_clc2 Ani_s_o CALL ornPP LD (Ao_adr+1),BC Ani_vse CALL NZ,EiPP Ani_sm0 LD (Am_vol+1),A XOR A LD (Ao_dsp+1),A LD A,(DE) INC DE JR Anism0U ; Ani_smp RET Z ; ADD A,A ; Anism0U CALL smpPP LD (As_adr+1),BC An_clc1 LD BC,#1020 An_clc2 LD A,(DE) INC DE ADD A,B JR C,Ani_s_o ADD A,C JR C,Ani_smp ADD A,B JR C,Ani_vol ADD A,B JR C,Ani_vqe ADD A,96 JR C,Ani_not ADD A,B JR C,Ani_orn ADD A,48 JR C,Ani_vse LD HL,A_eff+30 LD BC,As_note+1 CALL NPUSH JR An_clc1 Ani_vqe JR Z,Ani_v1 DEC A JR NZ,Ani_e0 LD A,(DE) LD (Ai_qty+1),A INC DE JR An_clc2 Ani_e0 CALL EiPP Ani_v1 LD (Am_vol+1),A JR An_clc2 Ani_orn CALL ornPP LD (Ao_adr+1),BC LD (Ao_dsp+1),A JR An_clc1 Ani_not LD (As_note+1),A XOR A LD H,A LD L,A LD (As_dsp+1),A LD (As_Nsl+1),A LD (As_Esl+1),A LD (Ao_dsp+1),A LD (Asl_stp+1),A LD (Avb_lok+1),A LD (Avb_stp+1),A ;LD (Asl_dsp+1),HL LD (As_dtn+1),HL LD A,16 LD (As_Vsl+1),A ;JR LDB1 LD B,1 RET ;--- nota_B --- Bni_vol JR NZ,Bni_v0 LD (Bvb_stp+1),A DEC A LD (Bvb_lok+1),A RET Bni_v0 DUP 4 ADD A,A EDUP LD (Ao_dspBg_vol+1),A JP Bn_clc2 Bni_s_o CALL ornPP LD (Bo_adr+1),BC Bni_vse CALL NZ,EiPP Bni_sm0 LD (Bm_vol+1),A XOR A LD (Bo_dsp+1),A LD A,(DE) INC DE JR Bnism0U ; Bni_smp RET Z ; ADD A,A ; Bnism0U CALL smpPP LD (Bs_adr+1),BC Bn_clc1 LD BC,#1020 Bn_clc2 LD A,(DE) INC DE ADD A,B JR C,Bni_s_o ADD A,C JR C,Bni_smp ADD A,B JR C,Bni_vol ADD A,B JR C,Bni_vqe ADD A,96 JR C,Bni_not ADD A,B JR C,Bni_orn ADD A,C JR C,Bni_noi ADD A,B JR C,Bni_vse LD HL,B_eff+30 LD BC,Bs_note+1 CALL NPUSH JR Bn_clc1 Bni_not LD (Bs_note+1),A XOR A LD H,A LD L,A LD (Bs_dsp+1),A LD (Bs_Nsl+1),A LD (Bs_Esl+1),A LD (Bo_dsp+1),A LD (Bsl_stp+1),A LD (Bvb_lok+1),A LD (Bvb_stp+1),A ;LD (Bsl_dsp+1),HL LD (Bs_dtn+1),HL LD A,16 LD (Bs_Vsl+1),A LDB1 LD B,1 RET _m2=$+2 Bni_noi LD (N_frq),A;GLOBALnoise JR Bn_clc2 Bni_vqe JR Z,Bni_v1 DEC A JR NZ,Bni_e0 LD A,(DE) LD (Bi_qty+1),A INC DE JR Bn_clc2 Bni_e0 CALL EiPP Bni_v1 LD (Bm_vol+1),A JR Bn_clc2 Bni_orn CALL ornPP LD (Bo_adr+1),BC LD (Bo_dsp+1),A JR Bn_clc1 ;--- nota_C --- Cni_not LD (Cs_note+1),A XOR A LD H,A LD L,A LD (Cs_dsp+1),A LD (Cs_Nsl+1),A LD (Cs_Esl+1),A LD (Co_dsp+1),A LD (Csl_stp+1),A LD (Cvb_lok+1),A LD (Cvb_stp+1),A ;LD (Csl_dsp+1),HL LD (Cs_dtn+1),HL LD A,16 LD (Cs_Vsl+1),A ;JR LDB1 LD B,1 RET Cni_vol JR NZ,Cni_v0 LD (Cvb_stp+1),A DEC A LD (Cvb_lok+1),A RET Cni_v0 DUP 4 ADD A,A EDUP LD (Cg_vol+1),A JP Cn_clc2 Cni_s_o CALL ornPP LD (Co_adr+1),BC Cni_vse CALL NZ,EiPP Cni_sm0 LD (Cm_vol+1),A XOR A LD (Co_dsp+1),A LD A,(DE) INC DE JR Cnism0U ; Cni_smp RET Z ; ADD A,A ; Cnism0U CALL smpPP LD (Cs_adr+1),BC Cn_clc1 LD BC,#1020 Cn_clc2 LD A,(DE) INC DE ADD A,B JR C,Cni_s_o ADD A,C JR C,Cni_smp ADD A,B JR C,Cni_vol ADD A,B JR C,Cni_vqe ADD A,96 JR C,Cni_not ADD A,B JR C,Cni_orn ADD A,48 JR C,Cni_vse LD HL,C_eff+30 LD BC,Cs_note+1 CALL NPUSH JR Cn_clc1 Cni_vqe JR Z,Cni_v1 DEC A JR NZ,Cni_e0 LD A,(DE) LD (Ci_qty+1),A INC DE JR Cn_clc2 Cni_e0 CALL EiPP Cni_v1 LD (Cm_vol+1),A JR Cn_clc2 Cni_orn CALL ornPP LD (Co_adr+1),BC LD (Co_dsp+1),A JR Cn_clc1 ;---- special_effects_COM.xxxx ---- EiPP LD (Ei_form+1),A
LD A,(DE)
INC DE
JR Anism0U ;Ani_smp RET Z ; ADD A,A ;Anism0U CALL smpPP LD (As_adrEi_frq+12),BC An_clc1 LD BC,#1020An_clc2 LD A,(DE) INC DE ADD A,B JR C,Ani_s_o ADD A,C JR C,Ani_smp ADD A,B JR C,Ani_vol ADD A,B JR C,Ani_vqe ADD A,96 JR C,Ani_not ADD A,B JR C,Ani_orn ADD A,48 JR C,Ani_vse LD HL,A_eff+30 LD BC,As_note+1 CALL NPUSH JR An_clc1 Ani_vqe JR Z,Ani_v1 DEC A JR NZ,Ani_e0
LD A,(DE)
LD (Ai_qty+1),A
INC DE
JR An_clc2LD (Ei_frq+1),A LD A,16 RET ;16 Aef_dSm LD A,(DE) ;dsp_smp INC DE LD (As_dsp+1),A ;;si RET Bef_dSm LD A,(DE) INC DEAni_e0 CALL EiPP LD (Bs_dsp+1),A ;;si RET Ani_v1 Cef_dSm LD A,(DE) INC DE LD (Am_volCs_dsp+1),A RET A_eff DW Aef_slT ;1xxx,2xxx - sld_tone DW Aef_nsT ;3xxx - port_note DW Aef_dSm ;4.xx - dsp_smp DW Aef_dOr ;5.xx - dsp_orn DW Aef_vib ;6.xx - vibrato Aef_vib LD A,(DE) INC DE JR An_clc2Aef_vjrAni_orn DW Eef_sld ;9xxx,Axxx - sld_env CALL ornPP DW eff_tmp ;B.xx - temp Aef_vjr LD (Ao_adrAvb_sts+1),BCA;fix fr/st;;ist LD (Ao_dspAvb_stp+1),A LD A,(DE) INC DE LD (Avb_frq+1),A;fix st/fr;;ifr RET B_eff DW Bef_slT DW Bef_nsT DW Bef_dSm DW Bef_dOr DW Bef_vib Bef_vib LD A,(DE) INC DE JR An_clc1Bef_vjr DW Eef_sldAni_not DW eff_tmp Bef_vjr LD (As_noteBvb_sts+1),A;fix fr/st;;ist XOR LD (Bvb_stp+1),A LD A,(DE) INC DE LD (Bvb_frq+1),A;fix st/fr;;ifr RET C_eff DW Cef_slT DW Cef_nsT DW Cef_dSm DW Cef_dOr DW Cef_vib int_qty DB 1 A_qty DB 1 B_qty DB 1 C_qty DB 1 DW Eef_sld DW eff_tmp Cef_vib LD A,(DE) INC DE LD (Cvb_sts+1),A;fix fr/st LD (Cvb_stp+1),A LD A,(DE) INC DE LD (Cvb_frq+1),A;fix st/fr RET Aef_nsT CALL Aef_slT ;LD H(Asl_pfr+1),HL ;;pi CALL GETHL LD (Asl_tfr+1),HL ;;pi LD (Asl_plk-1),A;port_on ;;pi_lok LD HL,As_note+1 ;;si LD A,(HL) LD (Asl_not+1),A ;;pi AnsQ EXA LD (HL),A LD LB,0 RET Bef_nsT CALL Bef_slT ;LD (Bsl_pfr+1),HL ;;pi CALL GETHL LD (Bsl_tfr+1),HL ;;pi LD (Bsl_plk-1),A ;;pi_lok LD HL,Bs_note+1 ;;si LD A,(HL) LD (As_dspBsl_not+1),A ;;pi JR AnsQ Cef_nsT CALL Cef_slT ;LD (As_NslCsl_pfr+1),AHL CALL GETHL LD (As_EslCsl_tfr+1),HL LD (Csl_plk-1),A LD HL,Cs_note+1 LD A,(HL) LD (Ao_dspCsl_not+1),A JR AnsQ Aef_slT LD A,(DE) LD (Asl_stp+1),A ;;pi LD (Avb_lokAsl_sts+1),A CALL IGETHL ;sld_ton LD (Asl_tfr+1),HL ;;pi
LD (Avb_stp+1),A
; LD (Asl_dsp+1)A,HLAsl_sts-Asl_plk LD (As_dtn+Asl_plk-1),HLA;port_off ;;pi RET Bef_slT LD A,16(DE) LD (As_VslBsl_stp+1),A ;;JR LDB1pi LD B(Bsl_sts+1),1A RET CALL IGETHL LD (Bsl_tfr+1),HL ;;--- nota_B --- Bni_vol JR NZ,Bni_v0pi
LD (Bvb_stp+1),A
DEC LD A,Bsl_sts-Bsl_plk LD (Bvb_lok+Bsl_plk-1),A ;;pi RET Bni_v0 DUP 4 ADD Cef_slT LD A,A(DE) EDUP LD (Bg_volCsl_stp+1),A JP Bn_clc2Bni_s_o CALL ornPP LD (Bo_adrCsl_sts+1),BCABni_vse CALL NZ,EiPPIGETHLBni_sm0 LD (Bm_volCsl_tfr+1),AHL XOR A LD (Bo_dspCvb_stp+1),A LD A,(DE)Csl_sts-Csl_plk INC DE JR Bnism0U ;Bni_smp RET Z ; ADD A,A ;Bnism0U CALL smpPP LD (Bs_adr+Csl_plk-1),BCA RET Bn_clc1 LD BC,#1020 eff_tmpBn_clc2 LD A,(DE) INC DE ADD A DISPLAY $,B"=#XX00" JR C,Bni_s_o tab_vol ADD A,C INC DE JR C LD (temp+1),Bni_smp ADD A,B JR C,Bni_vol RET ADD A,B JR C,Bni_vqe ornPP ADD A,96 JR C,Bni_not ADD A,B JR C,Bni_orn ADD A,Ctba_orn-tba_smp JR C,Bni_noi smpPP ADD A,B JR C,Bni_vse LD HL,B_eff+30 LD BC,Bs_note+1 CALL NPUSH JR Bn_clc1 Bni_not LD (Bs_note+1),A XOR A LD H,Atba_smp
LD L,A
LD C,(Bs_dsp+1HL),A INC L LD B,(Bs_Nsl+1HL), XOR A LD (Bs_Esl+RET ;11 DUMMYORN DUMMYSMP DB 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1 DB 0,0,0,0,1,1,1,1,1,1,1,1,2,2,2,2 DB 0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3 DB 0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4 DB 0,0,1,1,1,2,2,2,3,3,3,4,4,4,5,5 DB 0,0,1,1,2,2,2,3,3,4,4,4,5,5,6,6 DB 0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7 DB 0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8 DB 0,1,1,2,2,3,4,4,5,5,6,7,7,8,8,9 DB 0,1,1,2,3,3,4,5,5,6,7,7,8,9,9,10 DB 0,1,1,2,3,4,4,5,6,7,7,8,9,10,10,11 DB 0,1),A2,2,3,4,5,6,6,7,8,9,10,10,11,12 LD (Bo_dsp+ DB 0,1),A2,3,3,4,5,6,7,8,9,10,10,11,12,13 LD (Bsl_stp+ DB 0,1),A2,3,4,5,6,7,7,8,9,10,11,12,13,14 LD (Bvb_lok+ DB 0,1),A2,3,4,5,6,7,8,9,10,11,12,13,14,15 tab_frq DS #C0 Eef_sld LD A,(Bvb_stp+1DE),A ;sld_env ; LD (Bsl_dspEsl_ist+1),HLA ;;stp CALL IGETHL LD (Bs_dtnEsl_ids+1),HL ;;sds LD A,166 LD (Bs_Vsl+1E_ins0),ALDB1 RET ;16 OUTI OUTER LD B,1D RET  _m2=$+2Bni_noi LD OUT (N_frqC),A;GLOBALnoiseL JR Bn_clc2 Bni_vqe JR ZLD B,Bni_v1E
DEC A
JR NZ,Bni_e0OUTER-2 RET ;10 Aef_dOr LD A,(DE) ;dsp_orn INC DE LD (Bi_qtyAo_dsp+1),A ;;oi RET Bef_dOr LD A,(DE) INC DE JR Bn_clc2 Bni_e0 CALL EiPPBni_v1 LD (Bm_volBo_dsp+1),A ;;oi JR Bn_clc2 RET Bni_orn CALL ornPP Cef_dOr LD A,(Bo_adr+1DE),BC INC DE LD (Bo_dspCo_dsp+1),A JR Bn_clc1 RET ;6 IGETHL INC DE;--- nota_C --- GETHL EX DE,HLCni_not LD E,(Cs_note+1HL) INC HL LD D,A(HL) INC HL EX DE,HL XOR A LD HRET ;9 NPUSH RLA ADD A,AL
LD L,A
LD (Cs_dsp+1),A LD (Cs_Nsl+1),A LD (Cs_Esl+1),A LD (Co_dsp+1),A LD (Csl_stp+1),A LD (Cvb_lok+1),A LD (Cvb_stp+1),A ;LD (Csl_dsp+1),HL LD (Cs_dtn+1),HL LD A,16 LD (Cs_Vsl+1),A ;JR LDB1 LD B,1 RET  Cni_vol JR NZ,Cni_v0 LD (Cvb_stp+1),A DEC A LD (Cvb_lok+1),A RET Cni_v0 DUP 4 ADD A,A EDUP LD (Cg_vol+1),A JP Cn_clc2Cni_s_o CALL ornPP LD (Co_adr+1),BCCni_vse CALL NZ,EiPPCni_sm0 LD (Cm_vol+1),A XOR A LD (Co_dsp+1),A LD A,(DE) INC DE JR Cnism0U ;Cni_smp RET Z ; ADD A,A ;Cnism0U CALL smpPP LD (Cs_adr+1),BC Cn_clc1 LD BC,#1020Cn_clc2 LD A,(DE) INC DE ADD A,B JR C,Cni_s_o ADD A,C JR C,Cni_smp ADD A,B JR C,Cni_vol ADD A,B JR C,Cni_vqe ADD A,96 JR C,Cni_not ADD A,B JR C,Cni_orn ADD A,48 JR C,Cni_vse LD HL,C_eff+30 LD BC,Cs_note+1 CALL NPUSH JR Cn_clc1 Cni_vqe JR Z,Cni_v1 DEC A JR NZ,Cni_e0 LD A,(DE) LD (Ci_qty+1),A INC DE JR Cn_clc2 Cni_e0 CALL EiPPCni_v1 LD (Cm_vol+1),A JR Cn_clc2Cni_orn CALL ornPP LD (Co_adr+1),BC LD (Co_dsp+1),A JR Cn_clc1 ;---- special_effects_COM.xxxx ---- EiPP LD (Ei_form+1),A LD A,(DE) INC DE LD (Ei_frq+2),A LD A,(DE) INC DE LD (Ei_frq+1),A LD A,16 RET ;16 Aef_dSm LD A,(DE) ;dsp_smp INC DE LD (As_dsp+1),A ;;si RET Bef_dSm LD AH,(DE) INC DE LD (Bs_dsp+1),A ;;si RET Cef_dSm LD A,(DE) INC DE LD (Cs_dsp+1),A RET  'A_eff DW Aef_slT ;1xxx,2xxx - sld_tone DW Aef_nsT ;3xxx - port_note DW Aef_dSm ;4.xx - dsp_smp DW Aef_dOr ;5.xx - dsp_orn DW Aef_vib ;6.xx - vibratoAef_vib LD A,(DE) INC DE JR Aef_vjr DW Eef_sld ;9xxx,Axxx - sld_env DW eff_tmp ;B.xx - temp Aef_vjr LD (Avb_sts+1),A;fix fr/st;;ist LD (Avb_stp+1),A LD A,(DE) INC DE LD (Avb_frq+1),A;fix st/fr;;ifr RET  B_eff DW Bef_slT DW Bef_nsT DW Bef_dSm DW Bef_dOr DW Bef_vibBef_vib LD A,(DE) INC DE JR Bef_vjr DW Eef_sld DW eff_tmp Bef_vjr LD (Bvb_sts+1),A;fix fr/st;;ist LD (Bvb_stp+1),A LD A,(DE) INC DE LD (Bvb_frq+1),A;fix st/fr;;ifr RET  C_eff DW Cef_slT DW Cef_nsT DW Cef_dSm DW Cef_dOr DW Cef_vibint_qty DB 1A_qty DB 1B_qty DB 1C_qty DB 1 DW Eef_sld DW eff_tmp Cef_vib LD A,(DE) INC DE LD (Cvb_sts+1),A;fix fr/st LD (Cvb_stp+1),A LD A,(DE) INC DE LD (Cvb_frq+1),A;fix st/fr RET  Aef_nsT CALL Aef_slT ;LD (Asl_pfr+1),HL ;;pi CALL GETHL LD (Asl_tfr+1),HL ;;pi LD (Asl_plk-1),A;port_on ;;pi_lok LD HL,As_note+1 ;;si
LD A,(HL)
LD (Asl_not+1),A ;;piAnsQ EXA LD (HL),A LD B,0 RET Bef_nsT CALL Bef_slT ;LD (Bsl_pfr+1),HL ;;pi CALL GETHL LD (Bsl_tfr+1),HL ;;pi LD (Bsl_plk-1),A ;;pi_lok LD HL,Bs_note+1 ;;si LD A,(HL) LD (Bsl_not+1),A ;;pi JR AnsQCef_nsT CALL Cef_slT ;LD (Csl_pfr+1),HL CALL GETHL LD (Csl_tfr+1),HL LD (Csl_plk-1),A LD HL,Cs_note+1 LD A,(HL) LD (Csl_not+1),A JR AnsQ Aef_slT LD A,(DE) LD (Asl_stp+1),A ;;pi LD (Asl_sts+1),A CALL IGETHL ;sld_ton LD (Asl_tfr+1),HL ;;pi LD (Avb_stp+1),A LD A,Asl_sts-Asl_plk LD (Asl_plk-1),A;port_off ;;pi RET  Bef_slT LD A,(DE) LD (Bsl_stp+1),A ;;pi LD (Bsl_sts+1),A CALL IGETHL LD (Bsl_tfr+1),HL ;;pi LD (Bvb_stp+1),A LD A,Bsl_sts-Bsl_plk LD (Bsl_plk-1),A ;;pi RET  Cef_slT LD A,(DE) LD (Csl_stp+1),A LD (Csl_sts+1),A CALL IGETHL LD (Csl_tfr+1),HL LD (Cvb_stp+1),A LD A,Csl_sts-Csl_plk LD (Csl_plk-1),A RET  eff_tmp LD A,(DE)DISPLAY $,"=#XX00"tab_vol INC DE LD (temp+1),A RET  ornPP ADD A,A ADD A,tba_orn-tba_smpsmpPP ADD A,tba_smp LD L,A LD C,(HL) INC L LD B,(HL) XOR A RET ;11DUMMYORNDUMMYSMPDB 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1DB 0,0,0,0,1,1,1,1,1,1,1,1,2,2,2,2DB 0,0,0,1,1,1,1,1,2,2,2,2,2,3,3,3DB 0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4DB 0,0,1,1,1,2,2,2,3,3,3,4,4,4,5,5DB 0,0,1,1,2,2,2,3,3,4,4,4,5,5,6,6DB 0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7DB 0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8DB 0,1,1,2,2,3,4,4,5,5,6,7,7,8,8,9DB 0,1,1,2,3,3,4,5,5,6,7,7,8,9,9,10DB 0,1,1,2,3,4,4,5,6,7,7,8,9,10,10,11DB 0,1,2,2,3,4,5,6,6,7,8,9,10,10,11,12DB 0,1,2,3,3,4,5,6,7,8,9,10,10,11,12,13DB 0,1,2,3,4,5,6,7,7,8,9,10,11,12,13,14DB 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15tab_frq DS #C0Eef_sld LD A,(DE) ;sld_env LD (Esl_ist+1)H,A ;;stp CALL IGETHL LD (Esl_ids+1),HL ;;sds LD A,6 LD (E_ins0),A RET ;16  OUTI OUTER LD B,D OUT (C),L LD B,E DEC A JR NZ,OUTER-2 RET ;10 Aef_dOr LD A,(DE) ;dsp_orn INC DE LD (Ao_dsp+1),A ;;oi RET Bef_dOr LD A,(DE) INC DE LD (Bo_dsp+1),A ;;oi RET Cef_dOr LD A,(DE) INC DE LD (Co_dsp+1),A RET ;6 IGETHL INC DEGETHL EX DE,HL LD E,(HL) INC HL LD D,(HLSP) INC HL EX DE,HL XOR A RET ;9 NPUSH RLA ADD A,L LD L,A ;LD H,'A_eff LD A,(HL) INC L LD H,(HL) LD L,A EX (SPBC),HL LD A,(BC) EXA JP (HL) ;11 LENP=$-PLAYER DISPLAY "SIZE=",LENP T_m DW _m1 DW _m2 DW _m3 DW _m4 DW _m5 DW _m6 DW _m7 DW _m8 DW _m9 DW _m10 DW _m11 DW _m12 DW _m13 DW _m14 T_m_l=$-T_m/2 ENDM IF0 $-#8000 MUZ P1 LOCAL pp ENDL ORG #C000 P2 pp ORG $ LD IX,#7000 LD HL,P1 LD DE,P2 LD BC,LENP CP0 LD A,(DE) SUB (HL) JR Z,CPOK CP #40 JR NZ,ERR LD (IX),E LD (IX+1),D INC IX,IX CPOK INC HL,DE DEC BC LD A,B OR C JR NZ,CP0 RET ERR LD HL,0 LD DE,#5800 LD BC,768 LDIR RET ELSE pp ENDIF D (Avb_stp+1),A LD A,Asl_sts-Asl_plk LD (Asl_plk-1),A;port_off ;;pi RET Bef_slT LD A,(DE) LD (Bsl_stp+1),A ;;pi LD

Navigation menu