PROTRACKER372 PTUPLAY H
From MSX MUSIC WIKI
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,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 (Esl_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 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 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,A Bs_Vsl LD A,16 JR NC,Bs_VslG JP M,Bs_n2 SUB 1 JR Bs_n3 Bs_n2 CP 31 Bs_n3 ADC A,0 LD (Bs_Vsl+1),A Bs_VslG ADD A,L JR C,Bs_n4 XOR A Bs_n4 CP 16 JR C,Bg_vol LD A,15 Bg_vol ADD A,#F0 LD L,A LD H,'tab_vol LD A,(HL) SRL E JR C,Bm_vo0 Bm_vol OR 0 Bm_vo0 EXA LD A,D ;LD L,A RLCA ;LD H,A JR C,Bs_n5 Bs_Nsl LD A,0 ADD A,E BIT 5,D JR Z,Bs_n6 LD (Bs_Nsl+1),A Bs_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 JR Z,Bs_n9 LD (Bs_Esl+1),A Bs_n9 EXX ADD A,L LD L,A EXX Bs_n7 LD A,D RRCA RRCA RRCA AND 18 OR LX LD LX,A POP BC ;LD A,D Bs_dtn LD HL,0 ADD HL,BC BIT 6,D ;AND 64 JR Z,Bs_n10 LD (Bs_dtn+1),HL Bs_n10 EX DE,HL Bo_adr LD SP,DUMMYORN POP BC Bo_dsp LD A,0 LD L,A INC A CP B JR C,Bo_n0 LD A,C Bo_n0 LD (Bo_dsp+1),A LD H,0 ADD HL,SP LD A,(Bs_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 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,Bsl_sts LD (Bs_note+1),A XOR A LD L,A LD (Bsl_dsp+1),HL JR $+4 Bsl_sts LD A,0 Bsl_s1 LD (Bsl_stp+1),A Bsl_s0 EXA _m8=$+2 Bvb_n0 LD (vol_B),A Bvb_stp LD A,0 DEC A JP M,Cvb_lok JR NZ,Bvb_n1 DEC A ;; LD HL,Bvb_lok+1;; XOR (HL) ;; LD (HL),A ;;4 Bvb_frq LD A,0 JR NZ,Bvb_n1 Bvb_sts LD A,0 Bvb_n1 LD (Bvb_stp+1),A ;---- sampler_C ---- Cvb_lok LD A,-1 LD H,A INC A JP Z,Cvb_n0 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 ;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,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 ;LD 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 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 (Bg_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 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 A,(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 - vibrato Aef_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_vib Bef_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_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 (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 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 AnsQ Cef_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_smp smpPP ADD A,tba_smp LD L,A LD C,(HL) INC L LD B,(HL) XOR A 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,2,2,3,4,5,6,6,7,8,9,10,10,11,12 DB 0,1,2,3,3,4,5,6,7,8,9,10,10,11,12,13 DB 0,1,2,3,4,5,6,7,7,8,9,10,11,12,13,14 DB 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 tab_frq DS #C0 Eef_sld LD A,(DE) ;sld_env LD (Esl_ist+1),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 DE GETHL EX DE,HL LD E,(HL) INC HL LD D,(HL) 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 (SP),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