PROTRACKER372 PTUPLAY H
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