Difference between revisions of "PROTRACKER372 PLAYFAS4 H"
From MSX MUSIC WIKI
(Created page with "playFAS4C���i�jTя;fast(long) player,can be INCLUDEd ;#E21 3.31 by Nick/GDC Воронеж'97 ;#D86 3.51 fix Mm<M,MOnS+eR Самара 26xii00 ;#C03 3.695 fix AlCo 1vi...") (Tags: Mobile edit, Mobile web edit) |
(Tags: Mobile edit, Mobile web edit) |
||
Line 1: | Line 1: | ||
− | playFAS4C���i�jTя;fast(long) player,can be INCLUDEd | + | playFAS4C���i�jTя |
− | ;#E21 3.31 by Nick/GDC Воронеж'97 | + | ;fast(long) player,can be INCLUDEd |
− | ;#D86 3.51 fix Mm<M,MOnS+eR Самара 26xii00 | + | ;#E21 3.31 by Nick/GDC Воронеж'97 |
− | ;#C03 3.695 fix AlCo 1vi01-26xi05 | + | ;#D86 3.51 fix Mm<M,MOnS+eR Самара 26xii00 |
− | ;#C11 3.699 fix AlCo (3xxx chnA/B when old 3xxx ends только что) | + | ;#C03 3.695 fix AlCo 1vi01-26xi05 |
− | + | ;#C11 3.699 fix AlCo (3xxx chnA/B when old 3xxx ends только что) | |
− | frq=1;all freq tables(3.4x) | + | IFN ?frq |
+ | frq=1;all freq tables(3.4x) | ||
+ | ENDIF | ||
+ | IFN ?msx | ||
+ | msx=0 | ||
+ | ENDIF | ||
+ | IFN ?smpfix | ||
+ | smpfix=1;vol,T,E/N cumulations in SMPs | ||
+ | ENDIF | ||
+ | IFN ?port3 | ||
+ | port3=1;tone port. | ||
+ | ENDIF | ||
+ | IFN ?vib6 | ||
+ | vib6=1;vibrate | ||
+ | ENDIF | ||
+ | IFN ?ts2 | ||
+ | ts2=0;2nd TS player;играет пат47 вместо пат0 и т.д. | ||
+ | ENDIF | ||
+ | |||
+ | IFN ?jp-2 | ||
+ | MACRO jp | ||
+ | JR \0 ;JP | ||
+ | ENDM | ||
+ | ENDIF | ||
+ | |||
+ | IFN ?m4-2 | ||
+ | MACRO m4 | ||
+ | SLA L,L | ||
+ | ENDM | ||
+ | ENDIF | ||
+ | |||
+ | IFN ?shut-2 | ||
+ | MACRO shut | ||
+ | ;LD HL,#E | ||
+ | IFN msx | ||
+ | LD BC,#A0 | ||
+ | ELSE | ||
+ | LD BC,-3 | ||
ENDIF | ENDIF | ||
− | IFN | + | DEC L |
− | + | OUT (C),L | |
+ | IFN msx | ||
+ | LD C,#A1 | ||
+ | ELSE | ||
+ | LD B,#BF | ||
ENDIF | ENDIF | ||
− | + | OUT (C),A;0/255 | |
− | + | JR NZ,$-10 | |
+ | ENDM | ||
+ | ENDIF | ||
+ | |||
+ | IFN ?esld-2 | ||
+ | MACRO esld | ||
+ | Eef_sld LD A,(DE) | ||
+ | INC DE | ||
+ | LD (Esl_ist+1),A | ||
+ | LD A,(DE),L,A | ||
+ | INC DE | ||
+ | LD A,(DE),H,A | ||
+ | INC DE | ||
+ | LD (Esl_ids+1),HL | ||
+ | LD A,6,(E_ins0),A | ||
+ | RET | ||
+ | ENDM | ||
+ | ENDIF | ||
+ | |||
+ | IFN ?l-2 | ||
+ | MACRO l | ||
+ | LD A,(DE) | ||
+ | INC DE | ||
+ | LD (\0),A | ||
+ | RET | ||
+ | ENDM | ||
+ | ENDIF | ||
+ | |||
+ | IF0 $-#8000 | ||
+ | StAnDaLoNe | ||
+ | ORG #C000 | ||
ENDIF | ENDIF | ||
− | IFN | + | compile |
− | + | LD HL,module | |
+ | JR install | ||
+ | JP play | ||
+ | IFN frq | ||
+ | JR stop | ||
ENDIF | ENDIF | ||
− | + | install | |
− | + | DI | |
+ | LD (sav_SP0+1),SP | ||
+ | LD (ia_pos0+1),HL | ||
+ | IFN frq | ||
+ | PUSH HL | ||
+ | LD DE,100 | ||
+ | ADD HL,DE | ||
+ | PUSH DE | ||
+ | PUSH HL | ||
+ | DEC HL | ||
+ | LD E,(HL) | ||
+ | LD HL,NT_DATA | ||
+ | LD BC,T_ | ||
+ | ADD HL,DE | ||
+ | ADD HL,DE | ||
+ | ADD HL,DE | ||
+ | LD E,(HL) | ||
+ | CALL MAKEfrq | ||
+ | POP HL | ||
+ | POP DE | ||
+ | POP BC | ||
+ | ELSE | ||
+ | LD B,H,C,L | ||
+ | LD DE,100 | ||
+ | ADD HL,DE | ||
+ | ENDIF | ||
+ | LD A,(HL) | ||
+ | INC HL | ||
+ | LD (temp+1),A | ||
+ | LD SP,HL | ||
+ | ADD HL,DE | ||
+ | LD (Psa_beg+1),HL | ||
+ | POP AF | ||
+ | LD E,A | ||
+ | ADD HL,DE | ||
+ | LD (Psa_lop+1),HL | ||
+ | POP HL | ||
+ | ADD HL,BC | ||
+ | LD (Psa_chn+1),HL | ||
+ | LD HL,tba_smp | ||
+ | ia_s0 EX DE,HL | ||
+ | POP HL | ||
+ | ADD HL,BC | ||
+ | EX DE,HL | ||
+ | LD (HL),E | ||
+ | INC L | ||
+ | LD (HL),D | ||
+ | INC L | ||
+ | JR NZ,ia_s0 | ||
+ | INC L | ||
+ | LD H,L | ||
+ | LD (A_qty),HL | ||
+ | LD (C_qty),HL | ||
+ | sav_SP0 LD SP,0 | ||
+ | stop | ||
+ | LD HL,DUMMYORN | ||
+ | LD (Ao_adr+1),HL | ||
+ | LD (Bo_adr+1),HL | ||
+ | LD (Co_adr+1),HL | ||
+ | LD (Asi_adr+1),HL | ||
+ | LD (Bsi_adr+1),HL | ||
+ | LD (Cs_adr+1),HL | ||
+ | LD (Ach_adr+1),HL | ||
+ | XOR A | ||
+ | LD (Am_vol+1),A | ||
+ | LD (Bm_vol+1),A | ||
+ | LD (Cm_vol+1),A | ||
+ | LD (Ei_form+1),A ;no glu glu after switch module | ||
+ | SUB 16 ;FIX | ||
+ | LD (Agi_vol+1),A | ||
+ | LD (Bgi_vol+1),A | ||
+ | LD (Cg_vol+1),A | ||
+ | SBC A,A | ||
+ | LD (Avb_lok+1),A | ||
+ | LD (Cvb_lok+1),A | ||
+ | LD (Bvb_lok+1),A | ||
+ | XOR A | ||
+ | IF0 frq | ||
+ | NOP | ||
+ | ENDIF | ||
+ | shut | ||
+ | RET | ||
+ | IF0 frq | ||
+ | esld | ||
ENDIF | ENDIF | ||
− | IFN ? | + | tba_smp DS 64,0 |
− | + | tba_orn DS 32,0 | |
+ | DISPLAY $ | ||
+ | tab_vol | ||
+ | frq_A DB 0,0 | ||
+ | frq_B DB 0,0 | ||
+ | frq_C DB 0,0 | ||
+ | N_frq DB 0 ;;4 | ||
+ | DB 0 ;mix ;no_use | ||
+ | vol_A DB 0 | ||
+ | vol_B DB 0 | ||
+ | vol_C DB 0 | ||
+ | frq_E DB 0,0 | ||
+ | E_form DB 0 ;;4 | ||
+ | DUMMYORN | ||
+ | DUMMYSMP | ||
+ | DS 2 | ||
+ | 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 | ||
+ | DD 0001010203030405050607070809090A | ||
+ | DD 000101020304040506070708090A0A0B | ||
+ | DD 0001020203040506060708090A0A0B0C | ||
+ | DD 00010203030405060708090A0A0B0C0D | ||
+ | DD 00010203040506070708090A0B0C0D0E | ||
+ | DD 000102030405060708090A0B0C0D0E0F | ||
+ | tab_frq | ||
+ | DS #C0 | ||
+ | IFN ?tabl-2 | ||
+ | MACRO tabl | ||
+ | IF0 port3 | ||
+ | \0ef_nsT=0 | ||
ENDIF | ENDIF | ||
− | + | IF0 vib6 | |
− | + | \0ef_vib=0 | |
− | |||
− | |||
− | |||
ENDIF | ENDIF | ||
− | + | \0_eff DW \0ef_slT ;1/2xxx | |
− | + | DW \0ef_nsT ;3xxx | |
− | + | DW \0ef_dSm ;4.xx | |
− | + | DW \0ef_dOr ;5.xx | |
− | + | DW \0ef_vib ;6.xx | |
+ | IF0 vib6 | ||
+ | DS 4,1 | ||
+ | ELSE | ||
+ | \0ef_vib LD A,(DE) | ||
+ | INC DE | ||
+ | JR \0VIB | ||
ENDIF | ENDIF | ||
− | + | DW Eef_sld | |
− | + | DW eff_tmp | |
− | + | IFN $-18!$&#FF00 | |
− | + | DISPLAY "ERROR \0_eff | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
ENDIF | ENDIF | ||
− | + | IFN vib6 | |
− | IFN | + | ;0ef_vib LD A,(DE) |
− | + | ;INC DE | |
− | + | \0VIB | |
− | INC DE | + | LD (\0vb_ist+1),A;fix fr/st |
− | + | IF0 "\0 "-"C " | |
− | + | LD (\0vb_stp+1),A | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
ENDIF | ENDIF | ||
− | + | LD A,(DE) | |
− | + | INC DE | |
− | + | LD (\0vb_ifr+1),A;fix st/fr | |
− | + | IFN "\0 "-"C " | |
− | + | LD A,6,(\0_ins4),A | |
− | |||
− | |||
− | |||
ENDIF | ENDIF | ||
− | + | RET | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
ENDIF | ENDIF | ||
− | tabl A | + | ENDM |
− | tabl B | + | ENDIF |
− | tabl C | + | tabl A |
− | + | tabl B | |
− | A_qty NOP | + | tabl C |
− | B_qty NOP | + | |
− | C_qty NOP | + | A_qty NOP |
− | play JP play_0 | + | B_qty NOP |
− | + | C_qty NOP | |
− | + | play JP play_0 | |
− | ;--- install_A ---- | + | EXX ;for B'<>1 |
− | + | LD A,#C3,(play),A | |
− | + | ;--- install_A ---- | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
XOR A | XOR A | ||
+ | LD L,A,H,A | ||
+ | LD DE,#618 | ||
+ | A_gli LD (Asl_dsp+1),HL | ||
+ | A_ins0 JR A_ins0Q | ||
+ | LD (As_dsp+1),A ;note | ||
+ | IFN smpfix | ||
+ | LD (As_Nsl+1),A | ||
+ | LD (As_Esl+1),A | ||
+ | LD (As_dtn+1),HL | ||
+ | ENDIF | ||
+ | LD (Ao_dsp+1),A ;todo VARIABLE? | ||
+ | LD (Asl_stp+1),A | ||
+ | IFN vib6 | ||
+ | LD (Avb_stp+1),A | ||
+ | ENDIF | ||
+ | Avb_cpl CPL | ||
+ | LD (Avb_lok+1),A | ||
+ | IFN port3 | ||
+ | LD A,(A_ins3) ;3.699 | ||
+ | CP E;24 ; | ||
+ | JZ $+8 ; | ||
+ | LD A,(Api_lok+1) ; | ||
+ | OR A ; | ||
+ | JZ $+7 ; | ||
+ | ENDIF | ||
+ | Asi_not LD A,0 | ||
+ | LD (As_note+1),A | ||
+ | Asi_adr LD HL,0 | ||
+ | LD (As_adr+1),HL | ||
+ | IFN smpfix | ||
+ | LD A,16 | ||
+ | LD (As_Vsl+1),A | ||
+ | ENDIF | ||
+ | A_ins0Q | ||
+ | |||
+ | Agi_vol LD A,0 ;global_volume | ||
+ | avol LD (Ag_vol+1),A | ||
+ | |||
+ | A_ins2 JR A_ins2Q | ||
+ | XOR A ;ornament | ||
+ | LD (Ao_dsp+1),A | ||
+ | Aoi_adr LD HL,0 | ||
+ | LD (Ao_adr+1),HL | ||
+ | Ami_vol LD A,0 | ||
+ | LD (Am_vol+1),A | ||
+ | A_ins2Q | ||
+ | A_ins3 JR A_ins3Q | ||
+ | ;port & sld | ||
+ | Api_stp LD A,0 | ||
+ | LD (Asl_stp+1),A | ||
+ | LD (Asl_sts+1),A | ||
+ | Api_tfr LD HL,0 | ||
+ | LD (Asl_tfr+1),HL | ||
+ | IFN port3 | ||
+ | Api_not LD A,0 | ||
+ | LD (Asl_not+1),A | ||
+ | Api_lok LD A,0 | ||
+ | LD (Asl_plk-1),A | ||
+ | ENDIF | ||
+ | IFN vib6 | ||
+ | XOR A | ||
+ | LD (Avb_stp+1),A | ||
+ | ENDIF | ||
+ | A_ins3Q | ||
+ | IFN vib6 | ||
+ | A_ins4 JR A_ins4Q | ||
+ | LD A,E;24 ;vib | ||
+ | LD (A_ins4),A | ||
+ | Avb_ist LD A,0 | ||
+ | LD (Avb_sts+1),A | ||
LD (Avb_stp+1),A | LD (Avb_stp+1),A | ||
− | + | Avb_ifr LD A,0 | |
− | + | LD (Avb_frq+1),A | |
+ | A_ins4Q | ||
+ | ENDIF | ||
+ | A_ins5 JR A_ins5Q | ||
+ | Asi_dsp LD A,0 ;disp_sample | ||
+ | LD (As_dsp+1),A | ||
+ | LD A,E;24 | ||
+ | LD (A_ins5),A | ||
+ | A_ins5Q | ||
+ | A_ins6 JR A_ins6Q | ||
+ | Aoi_dsp LD A,0 | ||
+ | LD (Ao_dsp+1),A;disp_ornament | ||
+ | LD A,E;24 | ||
+ | LD (A_ins6),A | ||
+ | A_ins6Q | ||
+ | ;--- install_B --- | ||
+ | |||
+ | XOR A | ||
+ | LD L,A,H,A | ||
+ | B_gli LD (Bsl_dsp+1),HL | ||
+ | B_ins0 JR B_ins0Q | ||
+ | LD (Bs_dsp+1),A | ||
+ | IFN smpfix | ||
+ | LD (Bs_Nsl+1),A | ||
+ | LD (Bs_Esl+1),A | ||
+ | LD (Bs_dtn+1),HL | ||
+ | ENDIF | ||
+ | LD (Bo_dsp+1),A | ||
+ | LD (Bsl_stp+1),A | ||
+ | IFN vib6 | ||
+ | LD (Bvb_stp+1),A | ||
+ | ENDIF | ||
+ | Bvb_cpl CPL | ||
+ | LD (Bvb_lok+1),A | ||
+ | IFN port3 | ||
+ | LD A,(B_ins3) ;3.699 | ||
+ | CP E;24 ; | ||
+ | JZ $+8 ; | ||
+ | LD A,(Bpi_lok+1) ; | ||
+ | OR A ; | ||
+ | JZ $+7 ; | ||
+ | ENDIF | ||
+ | Bsi_not LD A,0 | ||
+ | LD (Bs_note+1),A | ||
+ | Bsi_adr LD HL,0 | ||
+ | LD (Bs_adr+1),HL | ||
+ | IFN smpfix | ||
+ | LD A,16 | ||
+ | LD (Bs_Vsl+1),A | ||
+ | ENDIF | ||
+ | B_ins0Q | ||
+ | |||
+ | Bgi_vol LD A,0 | ||
+ | bvol LD (Bg_vol+1),A | ||
+ | |||
+ | B_ins2 JR B_ins2Q | ||
+ | XOR A | ||
+ | LD (Bo_dsp+1),A | ||
+ | Boi_adr LD HL,0 | ||
+ | LD (Bo_adr+1),HL | ||
+ | Bmi_vol LD A,0 | ||
+ | LD (Bm_vol+1),A | ||
+ | B_ins2Q | ||
+ | B_ins3 JR B_ins3Q | ||
+ | Bpi_stp LD A,0 | ||
+ | LD (Bsl_stp+1),A | ||
+ | LD (Bsl_sts+1),A | ||
+ | Bpi_tfr LD HL,0 | ||
+ | LD (Bsl_tfr+1),HL | ||
+ | IFN port3 | ||
+ | Bpi_not LD A,0 | ||
+ | LD (Bsl_not+1),A | ||
+ | Bpi_lok LD A,0 | ||
+ | LD (Bsl_plk-1),A | ||
+ | ENDIF | ||
+ | IFN vib6 | ||
+ | XOR A | ||
+ | LD (Bvb_stp+1),A | ||
+ | ENDIF | ||
+ | B_ins3Q | ||
IFN vib6 | IFN vib6 | ||
− | + | B_ins4 JR B_ins4Q | |
− | + | LD A,E;24 | |
− | + | LD (B_ins4),A | |
− | + | Bvb_ist LD A,0 | |
− | + | LD (Bvb_sts+1),A | |
− | + | LD (Bvb_stp+1),A | |
− | + | Bvb_ifr LD A,0 | |
− | + | LD (Bvb_frq+1),A | |
− | + | B_ins4Q | |
ENDIF | ENDIF | ||
− | + | B_ins5 JR B_ins5Q | |
− | + | Bsi_dsp LD A,0 | |
− | LD ( | + | LD (Bs_dsp+1),A |
+ | LD A,E;24 | ||
+ | LD (B_ins5),A | ||
+ | B_ins5Q | ||
+ | B_ins6 JR B_ins6Q | ||
+ | Boi_dsp LD A,0 | ||
+ | LD (Bo_dsp+1),A | ||
LD A,E;24 | LD A,E;24 | ||
− | LD ( | + | LD (B_ins6),A |
− | + | B_ins6Q | |
− | + | ;--- install_E --- | |
− | + | Ei_form LD A,0 ;env_form | |
− | LD ( | + | LD (E_form),A ;;4 |
+ | OR A | ||
+ | JR Z,temp | ||
+ | Ei_frq LD HL,0 ;env_frq | ||
+ | LD (E_frq+1),HL | ||
+ | XOR A | ||
+ | LD L,A,H,A | ||
+ | LD (Ei_form+1),A | ||
+ | LD (Esl_frq+1),HL | ||
+ | LD (Esl_stp+1),A | ||
+ | |||
+ | temp LD A,3,(int_qty+1),A | ||
+ | Ni_frq LD A,0,(N_frq),A ;;4 | ||
+ | |||
+ | 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,E;24 | LD A,E;24 | ||
− | LD ( | + | LD (E_ins0),A |
− | + | Ei_Q | |
− | + | ;--- nota_A + calc next position --- | |
− | + | LD HL,A_qty | |
− | + | DEC (HL) | |
− | + | LD H,E | |
− | + | ;LD L,1 ;E | |
− | + | LD B,E | |
− | + | EXX | |
− | + | JR NZ,AqtyQ | |
− | + | ;LD (avol+2),A | |
− | + | Ach_adr LD DE,tab_vol+16 | |
− | + | LD A,(DE) | |
− | + | OR A | |
− | + | JR NZ,Ps_n0 | |
− | + | LD (Ni_frq+1),A ;;5!!! | |
− | + | LD D,A ;; | |
− | + | LD (sav_SP2+1),SP | |
− | + | Psa_beg LD HL,module+201 | |
− | + | LD A,(HL) | |
− | + | ;LD E,A ;6 | |
− | + | INC A ;AAA;6 | |
− | + | JR NZ,Ps_n1 ;NC ;6 | |
− | + | Psa_lop LD HL,module+201 | |
− | + | Ps_n1 | |
− | + | IFN ts2 | |
− | + | LD A,47*3 | |
− | + | SUB (HL) | |
− | + | LD E,A | |
− | + | ELSE | |
− | + | LD E,(HL) ;6 | |
− | + | ENDIF | |
− | + | INC HL | |
− | + | LD (Psa_beg+1),HL | |
− | + | ||
− | + | Psa_chn LD HL,0 | |
− | + | ADD HL,DE | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ;--- nota_A + calc next position --- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | Ach_adr LD DE,tab_vol+16 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | Psa_beg LD HL,module+201 | ||
− | |||
− | |||
− | |||
− | |||
− | Psa_lop LD HL,module+201 | ||
− | Ps_n1 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | Psa_chn LD HL,0 | ||
ADD HL,DE | ADD HL,DE | ||
− | + | LD SP,HL | |
− | + | POP HL | |
− | + | ia_pos0 LD BC,0 | |
− | ia_pos0 LD BC,0 | + | ADD HL,BC |
− | + | EX DE,HL ;DE=adr_chn_A | |
− | + | 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 | |
− | sav_SP2 LD SP,0 | + | Ps_n0 |
− | Ps_n0 | + | LD H,'compile |
− | + | CALL An_clc1 | |
− | + | LD (Ach_adr+1),DE | |
− | + | Ai_qty LD A,0,(A_qty),A | |
− | Ai_qty LD A,0,(A_qty),A | + | AqtyQ LD A,1 |
− | AqtyQ LD A,1 | + | DJNZ $+4 |
− | + | LD A,34 | |
− | + | LD (A_gli),A | |
− | LD ( | + | EXX |
+ | LD A,B,(A_ins2),A | ||
+ | LD A,H,(A_ins0),A | ||
+ | LD A,E,(A_ins3),A | ||
+ | |||
+ | play_0 LD L,0 ;smp_sl_env | ||
+ | EXX | ||
+ | N_add LD IX,0 ;HX=noise LX=mix | ||
+ | LD (sav_SP1+1),SP | ||
+ | |||
+ | IFN ?sam1-2 | ||
+ | MACRO sam1 | ||
+ | \0vb_lok LD A,-1 | ||
+ | LD H,A | ||
+ | INC A | ||
+ | JP Z,\0vb_n0 | ||
+ | \0s_adr LD SP,DUMMYSMP ;sample | ||
+ | POP DE ;loop E=beg D=end | ||
+ | \0s_dsp LD A,0 | ||
+ | LD L,A | ||
+ | INC A | ||
+ | CP D | ||
+ | JR C,$+3 ;bug NZ/C | ||
+ | LD A,E | ||
+ | LD (\0s_dsp+1),A | ||
+ | m4 | ||
+ | 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 | ||
+ | IFN smpfix | ||
+ | OR #F0 | ||
+ | LD L,A | ||
+ | LD A,E | ||
+ | ADD A,A | ||
+ | \0s_Vsl LD A,16 | ||
+ | JR NC,\0s_VslG | ||
+ | JP M,\0s_n2 | ||
+ | SUB 1 | ||
+ | JR $+4 | ||
+ | \0s_n2 CP 31 | ||
+ | ADC A,0 | ||
+ | LD (\0s_Vsl+1),A | ||
+ | \0s_VslG | ||
+ | ADD A,L | ||
+ | JR C,$+3 | ||
+ | XOR A | ||
+ | CP 16 | ||
+ | JR C,$+4 | ||
+ | LD A,15 | ||
+ | ELSE | ||
+ | AND 15 | ||
+ | ENDIF | ||
+ | \0g_vol ADD A,#F0 | ||
+ | LD L,A,H,'tab_vol | ||
+ | LD A,(HL) | ||
+ | SRL E | ||
+ | JR C,$+4 | ||
+ | \0m_vol OR 0 | ||
+ | EXA | ||
+ | LD A,D | ||
+ | RLCA | ||
+ | JR C,\0s_n5 | ||
+ | IFN smpfix | ||
+ | \0s_Nsl LD A,0 | ||
+ | ADD A,E | ||
+ | BIT 5,D | ||
+ | JR Z,$+5 | ||
+ | LD (\0s_Nsl+1),A | ||
+ | LD HX,A | ||
+ | ELSE | ||
+ | LD HX,E | ||
+ | ENDIF | ||
+ | jp \0s_n7 | ||
+ | |||
+ | \0s_n5 LD A,E | ||
+ | AND 31 | ||
+ | CP 16 | ||
+ | JR C,$+4 | ||
+ | OR #F0 | ||
+ | IFN smpfix | ||
+ | \0s_Esl ADD A,0 | ||
+ | BIT 5,D | ||
+ | JR Z,$+5 | ||
+ | LD (\0s_Esl+1),A | ||
+ | ENDIF | ||
EXX | EXX | ||
− | + | ADD A,L | |
− | LD | + | LD L,A |
− | |||
− | |||
− | |||
EXX | EXX | ||
− | + | \0s_n7 LD A,D | |
− | + | RRCA | |
− | + | RRCA | |
− | + | AND 36 | |
− | + | ENDM | |
− | + | ENDIF | |
− | + | ||
− | + | IFN ?sam2-2 | |
− | + | MACRO sam2 | |
− | \ | + | LD LX,A |
− | + | IFN smpfix | |
− | + | POP BC | |
− | + | \0s_dtn LD HL,0 ;dsp_frq_smp | |
− | + | ADD HL,BC | |
− | + | BIT 6,D | |
− | + | JR Z,$+5 | |
− | + | LD (\0s_dtn+1),HL | |
− | + | EX DE,HL | |
− | + | ELSE | |
− | + | POP DE | |
− | + | ENDIF | |
− | POP DE | + | |
− | + | \0o_adr LD SP,DUMMYORN ;ornament | |
− | + | POP BC ;loop C=beg B=end | |
− | + | \0o_dsp LD A,0 | |
− | + | LD L,A | |
− | + | INC A | |
− | + | CP B | |
− | \ | + | JR C,$+3 ;bug NZ/C |
− | + | LD A,C | |
− | + | LD (\0o_dsp+1),A | |
− | + | LD H,0 | |
− | + | ADD HL,SP | |
− | + | IFN port3 | |
− | + | LD A,(\0s_note+1) | |
− | + | ELSE | |
− | + | \0s_note LD A,0 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | \ | ||
− | |||
− | |||
− | |||
− | |||
ENDIF | ENDIF | ||
− | + | ADD A,(HL) ;dsp_orn | |
− | + | ADD A,A | |
− | + | JR NC,$+3 | |
− | + | XOR A | |
− | + | LD L,A,H,'tab_frq | |
− | + | LD SP,HL | |
− | + | POP HL | |
− | + | ADD HL,DE | |
− | + | \0sl_dsp LD BC,0 | |
− | + | ADD HL,BC | |
− | + | LD (frq_\0),HL | |
− | + | ||
− | + | \0sl_stp LD A,0 | |
− | + | DEC A | |
− | + | JP M,\0sl_s0 | |
− | + | JR NZ,\0sl_s1 | |
− | + | \0sl_tfr LD DE,0 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | \ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
ADD HL,DE | ADD HL,DE | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
EX DE,HL | EX DE,HL | ||
− | SBC HL,DE | + | ADD HL,BC |
− | + | LD (\0sl_dsp+1),HL | |
− | + | IFN port3 | |
− | + | JR \0sl_sts ;port off/on | |
− | + | \0sl_plk | |
− | + | \0sl_not LD A,0 | |
− | + | LD L,A | |
− | + | ADD HL,HL | |
− | \0sl_sts LD A,0 | + | LD H,'tab_frq |
− | \0sl_s1 LD (\0sl_stp+1),A | + | LD SP,HL |
− | \0sl_s0 EXA | + | POP HL |
− | + | \0s_note CP 0 | |
− | \0vb_n0 LD (vol_\0),A | + | JR NC,$+3 |
− | + | EX DE,HL | |
− | \0vb_stp LD A,0 | + | SBC HL,DE |
− | + | JR C,\0sl_sts | |
− | + | LD (\0s_note+1),A | |
− | + | XOR A | |
− | + | LD L,A | |
− | + | LD (\0sl_dsp+1),HL | |
− | + | JR $+4 | |
− | + | ENDIF | |
− | \0vb_frq LD A,0 | + | \0sl_sts LD A,0 |
− | + | \0sl_s1 LD (\0sl_stp+1),A | |
− | \0vb_sts LD A,0 | + | \0sl_s0 EXA |
− | \0vb_n1 LD (\0vb_stp+1),A | + | |
− | + | \0vb_n0 LD (vol_\0),A | |
− | + | IFN vib6 | |
− | + | \0vb_stp LD A,0 | |
+ | DEC A | ||
+ | JP M,\0smpQ | ||
+ | JR NZ,\0vb_n1 | ||
+ | DEC A ;; | ||
+ | LD HL,\0vb_lok+1;; | ||
+ | XOR (HL) ;; | ||
+ | LD (HL),A ;;4 | ||
+ | \0vb_frq LD A,0 | ||
+ | JR NZ,$+4 | ||
+ | \0vb_sts LD A,0 | ||
+ | \0vb_n1 LD (\0vb_stp+1),A | ||
ENDIF | ENDIF | ||
− | sam1 A | + | \0smpQ |
− | + | ENDM | |
− | + | ENDIF | |
− | sam2 A | + | sam1 A |
− | sam1 B | + | RRCA |
− | + | RRCA | |
− | + | sam2 A | |
− | sam2 B | + | sam1 B |
− | sam1 C | + | RRCA |
− | + | OR LX | |
− | sam2 C | + | sam2 B |
− | ;---- sampler_E ---- | + | sam1 C |
− | Esl_ EXX | + | OR LX |
− | + | sam2 C | |
− | Esl_frq LD DE,0 ;stp_sl_env | + | ;---- sampler_E ---- |
− | E_frq LD HL,0 ;frq_env | + | Esl_ EXX |
− | + | LD A,L | |
− | + | Esl_frq LD DE,0 ;stp_sl_env | |
− | + | E_frq LD HL,0 ;frq_env | |
− | + | ADD A,L ;stp_smp_sl_env | |
− | Esl_stp LD A,0 | + | LD L,A |
− | + | ADD HL,DE | |
− | + | LD (frq_E),HL | |
− | + | Esl_stp LD A,0 | |
− | Esl_sds LD HL,0 | + | DEC A |
− | + | JP M,sav_SP1 | |
− | + | JR NZ,E_n0 | |
− | Esl_sts LD A,0 | + | Esl_sds LD HL,0 |
− | E_n0 LD (Esl_stp+1),A | + | ADD HL,DE |
− | + | LD (Esl_frq+1),HL | |
− | ;---- out_to_processor ---- | + | Esl_sts LD A,0 |
− | + | E_n0 LD (Esl_stp+1),A | |
− | sav_SP1 LD SP,0 | + | |
− | out_ | + | ;---- out_to_processor ---- |
− | + | ||
− | + | sav_SP1 LD SP,0 | |
− | + | out_ | |
− | + | IFN msx | |
− | + | LD DE,#A0A1 | |
− | + | LD HL,frq_A | |
− | + | DUP 6 | |
− | + | LD C,D | |
− | + | OUT (C),L | |
− | + | LD C,E | |
− | + | OUTI | |
− | + | EDUP | |
− | + | LD C,D | |
− | + | OUT (C),L | |
− | + | LD A,HX ;noise | |
− | + | LD (N_add+3),A | |
− | + | ADD A,(HL) ;;4 | |
− | + | OUT (#A1),A | |
− | + | INC L | |
− | + | OUT (C),L | |
− | + | LD A,LX ;mix TODO (HL) | |
− | + | AND %00111111 | |
− | + | OR %10000000 ;portA=input, portB=output | |
− | + | OUT (#A1),A | |
− | + | INC L | |
− | + | OUT (C),L | |
− | + | LD C,E | |
− | + | OUTI | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
DUP 4 | DUP 4 | ||
− | ADD A,A | + | LD C,D |
+ | OUT (C),L | ||
+ | LD C,E | ||
+ | OUTI | ||
+ | EDUP | ||
+ | LD A,(HL) ;;4 | ||
+ | OR A | ||
+ | JR Z,int_qty | ||
+ | LD C,D | ||
+ | OUT (C),L | ||
+ | OUT (#A1),A | ||
+ | LD (HL),0 ;;4 | ||
+ | ELSE ;zx | ||
+ | LD DE,#FFBF | ||
+ | LD BC,-3 | ||
+ | LD HL,frq_A | ||
+ | DUP 6 | ||
+ | OUT (C),L | ||
+ | LD B,E | ||
+ | OUTI | ||
+ | LD B,D | ||
+ | EDUP | ||
+ | OUT (C),L | ||
+ | LD A,HX ;noise | ||
+ | LD (N_add+3),A | ||
+ | ADD A,(HL) ;;4 | ||
+ | LD B,E | ||
+ | OUT (C),A | ||
+ | INC L | ||
+ | LD B,D | ||
+ | OUT (C),L | ||
+ | LD A,LX ;mix TODO (HL) | ||
+ | LD B,E | ||
+ | OUT (C),A | ||
+ | INC L | ||
+ | DUP 5 | ||
+ | LD B,D | ||
+ | OUT (C),L | ||
+ | LD B,E | ||
+ | OUTI | ||
EDUP | EDUP | ||
− | LD (\0gi_vol+1),A | + | LD A,(HL) ;;4 |
+ | OR A | ||
+ | JR Z,int_qty | ||
+ | LD B,D | ||
+ | OUT (C),L | ||
+ | LD B,E | ||
+ | OUT (C),A | ||
+ | LD (HL),0 ;;4 | ||
+ | ENDIF | ||
+ | |||
+ | ;--- calc_next_positon_channels --- | ||
+ | int_qty LD A,3 | ||
+ | DEC A | ||
+ | LD (int_qty+1),A | ||
+ | JR Z,notaC;if tmp=1,CALL notaB first!!! | ||
+ | DEC A | ||
+ | RET NZ | ||
+ | |||
+ | ;--- nota_B --- | ||
+ | LD HL,B_qty | ||
+ | DEC (HL) | ||
+ | LD DE,#618 | ||
+ | LD H,E | ||
+ | ;LD L,1 ;E | ||
+ | LD B,E | ||
+ | EXX | ||
+ | JR NZ,BqtyQ | ||
+ | ;LD (bvol+2),A | ||
+ | Bch_adr LD DE,0 | ||
+ | LD H,'compile | ||
+ | CALL Bn_clc1 | ||
+ | LD (Bch_adr+1),DE | ||
+ | Bi_qty LD A,0,(B_qty),A | ||
+ | BqtyQ LD A,1 | ||
+ | DJNZ $+4 | ||
+ | LD A,34 | ||
+ | LD (B_gli),A | ||
+ | EXX | ||
+ | LD A,B,(B_ins2),A | ||
+ | LD A,H,(B_ins0),A | ||
+ | ;LD A,L,(B_ins1),A | ||
+ | LD A,E,(B_ins3),A | ||
+ | RET | ||
+ | |||
+ | ;--- nota_C --- | ||
+ | notaC | ||
+ | INC A;LD A,1 | ||
+ | LD (play),A | ||
+ | LD HL,C_qty | ||
+ | DEC (HL) | ||
+ | RET NZ | ||
+ | Cch_adr LD DE,0 | ||
+ | LD H,'compile | ||
+ | CALL Cn_clc1 | ||
+ | LD (Cch_adr+1),DE | ||
+ | Ci_qty LD A,0,(C_qty),A | ||
+ | DEC B | ||
+ | RET NZ | ||
+ | LD H,B,L,B | ||
+ | LD (Csl_dsp+1),HL | ||
+ | RET | ||
+ | |||
+ | IFN ?not-2 | ||
+ | MACRO not | ||
+ | IFN "\0 "-"C " | ||
+ | \0ni_v0 LD A,47 | ||
+ | \0nivolU LD (\0vb_cpl),A | ||
+ | EXX | ||
+ | LD H,D | ||
+ | EXX | ||
+ | RET | ||
+ | \0ni_not LD (\0si_not+1),A | ||
+ | XOR A | ||
+ | LD B,1 | ||
+ | jp \0nivolU | ||
+ | ENDIF | ||
+ | \0ni_vol JR Z,\0ni_v0 | ||
+ | DUP 4 | ||
+ | ADD A,A | ||
+ | EDUP | ||
+ | LD (\0gi_vol+1),A | ||
+ | jp \0n_clc2 | ||
+ | \0ni_vqe JR Z,\0ni_v1 | ||
+ | DEC A | ||
+ | JR NZ,\0ni_e0 | ||
+ | LD A,(DE) | ||
+ | INC DE | ||
+ | LD (\0i_qty+1),A | ||
+ | jp \0n_clc2 | ||
+ | |||
+ | \0ni_e0 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 | ||
+ | \0ni_v1 LD (\0mi_vol+1),A | ||
+ | IFN "\0 "-"C " | ||
+ | EXX | ||
+ | LD B,D | ||
+ | EXX | ||
+ | ENDIF | ||
jp \0n_clc2 | jp \0n_clc2 | ||
− | + | ||
− | + | \0ni_s_o ADD A,A | |
− | + | ADD A,tba_orn | |
− | + | LD L,A | |
− | + | LD C,(HL) | |
− | + | INC L | |
− | + | LD B,(HL) | |
− | + | LD (\0oi_adr+1),BC | |
− | + | XOR A | |
− | + | \0ni_sm0 LD (\0mi_vol+1),A | |
− | + | IFN "\0 "-"C " | |
− | + | EXX | |
− | + | LD B,D | |
− | + | EXX | |
− | + | ELSE | |
− | + | XOR A | |
− | + | LD (\0o_dsp+1),A | |
− | + | ENDIF | |
− | + | LD A,(DE) | |
− | + | INC DE | |
− | + | \0nism0U ADD A,tba_smp | |
− | + | LD L,A | |
− | + | LD C,(HL) | |
− | + | INC L | |
− | \0ni_s_o ADD A,A | + | LD B,(HL) |
− | + | LD (\0si_adr+1),BC | |
− | + | \0n_clc1 LD BC,#1020 | |
− | + | \0n_clc2 LD A,(DE) | |
− | + | INC DE | |
− | + | ADD A,B | |
− | + | JR C,\0ni_s_o | |
− | + | ADD A,C | |
− | \0ni_sm0 LD (\0mi_vol+1),A | + | JR C,\0ni_smp |
− | + | ADD A,B | |
− | + | JR C,\0ni_vol | |
− | + | ADD A,B | |
− | + | JR C,\0ni_vqe | |
− | + | ADD A,96 | |
− | + | JR C,\0ni_not | |
− | + | ADD A,B | |
− | + | JR C,\0ni_orn | |
− | + | IF0 "\0 "-"B " | |
− | + | ADD A,C | |
− | \0nism0U ADD A,tba_smp | + | JR C,\0ni_noi |
− | + | ADD A,B | |
− | + | ELSE | |
− | + | ADD A,48 | |
− | + | ENDIF | |
− | + | JR C,\0ni_vse | |
− | \0n_clc1 LD BC,#1020 | + | RLA |
− | \0n_clc2 LD A,(DE) | + | LD HL,-256&\0_eff+.(\0_eff+30) |
− | + | ADD A,L | |
− | + | LD L,A | |
− | + | LD A,(HL) | |
− | + | INC L | |
− | + | LD H,(HL) | |
− | + | LD L,A | |
− | + | PUSH HL | |
− | + | IF0 "\0 "-"C " | |
− | + | IFN port3 | |
− | + | LD A,(Cs_note+1) | |
− | + | LD (CnsTnxt+1),A | |
− | + | ENDIF | |
− | + | ENDIF | |
− | + | jp \0n_clc2 | |
− | + | IF0 "\0 "-"B " | |
− | + | \0ni_noi LD (Ni_frq+1),A;global_noise | |
− | + | jp \0n_clc2 | |
− | + | ENDIF | |
− | + | \0ni_vse JR Z,\0ni_sm0 | |
− | + | 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 | |
− | + | jp \0ni_sm0 | |
− | + | ||
− | + | \0ni_smp RET Z | |
− | + | ADD A,A | |
− | + | jp \0nism0U | |
− | + | ||
− | + | \0ni_orn ADD A,A | |
− | + | ADD A,tba_orn | |
− | + | LD L,A | |
− | + | LD C,(HL) | |
− | + | INC L | |
− | \0ni_noi LD (Ni_frq+1),A;global_noise | + | LD B,(HL) |
− | + | LD (\0oi_adr+1),BC | |
− | + | IFN "\0 "-"C " | |
− | \0ni_vse JR Z,\0ni_sm0 | + | EXX |
− | + | LD B,D | |
− | + | EXX | |
− | + | ELSE | |
− | + | XOR A | |
− | + | LD (Co_dsp+1),A | |
− | + | ENDIF | |
− | + | jp \0n_clc1 | |
− | + | ENDM | |
− | + | ENDIF | |
− | + | not A | |
− | \0ni_smp RET Z | + | not B |
− | + | Cgi_vol=Cg_vol | |
− | + | Cmi_vol=Cm_vol | |
− | + | Coi_adr=Co_adr | |
− | \0ni_orn ADD A,A | + | Csi_adr=Cs_adr |
− | + | Cni_v0 | |
− | + | IFN vib6 | |
− | + | LD (Cvb_stp+1),A | |
− | + | ENDIF | |
− | + | DEC A | |
− | + | LD (Cvb_lok+1),A | |
− | + | RET | |
− | + | not C | |
− | + | Cni_not LD (Cs_note+1),A | |
− | + | XOR A | |
− | + | LD H,A,L,A | |
− | XOR A | + | LD (Cs_dsp+1),A |
− | LD (Co_dsp+1),A | + | LD (Co_dsp+1),A |
− | + | LD (Csl_stp+1),A | |
− | + | LD (Cvb_lok+1),A | |
− | ENDM | + | IFN vib6 |
+ | LD (Cvb_stp+1),A | ||
+ | ENDIF | ||
+ | IFN smpfix | ||
+ | LD (Cs_Nsl+1),A | ||
+ | LD (Cs_Esl+1),A | ||
+ | LD (Cs_dtn+1),HL | ||
+ | LD A,16,(Cs_Vsl+1),A | ||
+ | ENDIF | ||
+ | LD B,1 | ||
+ | RET | ||
+ | |||
+ | ;---- special_effects_COM.xxxx ---- | ||
+ | Aef_dSm LD A,6,(A_ins5),A | ||
+ | l Asi_dsp+1 | ||
+ | Aef_dOr LD A,6,(A_ins6),A | ||
+ | l Aoi_dsp+1 | ||
+ | Bef_dSm LD A,6,(B_ins5),A | ||
+ | l Bsi_dsp+1 | ||
+ | Bef_dOr LD A,6,(B_ins6),A | ||
+ | l Boi_dsp+1 | ||
+ | Cef_dSm l Cs_dsp+1 | ||
+ | Cef_dOr l Co_dsp+1 | ||
+ | |||
+ | Cpi_stp=Csl_stp | ||
+ | Cpi_tfr=Csl_tfr | ||
+ | IFN ?_slT-2 | ||
+ | MACRO _slT | ||
+ | \0ef_slT LD A,(DE) | ||
+ | INC DE | ||
+ | LD (\0pi_stp+1),A | ||
+ | IF0 "\0 "-"C " | ||
+ | LD (\0sl_sts+1),A | ||
+ | ENDIF | ||
+ | LD A,(DE),L,A | ||
+ | INC DE | ||
+ | LD A,(DE),H,A | ||
+ | INC DE | ||
+ | LD (\0pi_tfr+1),HL | ||
+ | IFN port3 | ||
+ | LD A,\0sl_sts-\0sl_plk | ||
+ | LD (\0pi_lok+1),A;port_off | ||
+ | ENDIF | ||
+ | ENDM | ||
+ | ENDIF | ||
+ | _slT A | ||
+ | EXX | ||
+ | LD E,D | ||
+ | EXX | ||
+ | RET | ||
+ | _slT B | ||
+ | EXX | ||
+ | LD E,D | ||
+ | EXX | ||
+ | RET | ||
+ | _slT C | ||
+ | IFN vib6 | ||
+ | XOR A | ||
+ | LD (Cvb_stp+1),A | ||
ENDIF | ENDIF | ||
− | + | RET | |
− | + | ||
− | + | IFN port3 | |
− | + | IFN ?_nsT-2 | |
− | + | MACRO _nsT | |
− | + | \0ef_nsT LD A,(DE) | |
− | + | INC DE | |
− | + | LD (\0pi_stp+1),A | |
− | + | IF0 "\0 "-"C " | |
− | + | LD (\0sl_sts+1),A | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | \ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
ENDIF | ENDIF | ||
− | + | INC DE | |
− | + | INC DE | |
− | + | LD A,(DE),L,A | |
− | + | INC DE | |
− | + | LD A,(DE),H,A | |
− | + | INC DE | |
− | + | LD (\0pi_tfr+1),HL | |
− | + | XOR A | |
− | + | LD B,A | |
− | + | ENDM | |
− | + | ENDIF | |
− | + | _nsT A | |
− | + | LD (Api_lok+1),A;port_on | |
− | + | ; LD HL,Asi_not+1 | |
− | + | ; LD A,(HL) | |
− | + | LD A,(Asi_not+1) | |
− | + | LD (Api_not+1),A | |
− | + | ;LD A,(As_note+1) | |
− | + | ; LD (HL),A | |
− | + | EXX | |
− | + | LD E,D | |
− | + | EXX | |
− | + | RET | |
− | + | _nsT B | |
− | + | LD (Bpi_lok+1),A | |
− | + | ; LD HL,Bsi_not+1 | |
− | + | ; LD A,(HL) | |
− | + | LD A,(Bsi_not+1) | |
− | + | LD (Bpi_not+1),A | |
− | + | ;LD A,(Bs_note+1) | |
− | + | ; LD (HL),A | |
− | + | EXX | |
− | + | LD E,D | |
− | + | EXX | |
− | LD | + | RET |
− | + | _nsT C | |
+ | IFN vib6 | ||
+ | LD (Cvb_stp+1),A | ||
ENDIF | ENDIF | ||
− | + | LD (Csl_plk-1),A | |
− | + | LD HL,Cs_note+1 | |
− | + | LD A,(HL) | |
− | + | LD (Csl_not+1),A | |
− | + | CnsTnxt LD (HL),0 | |
− | + | RET | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
ENDIF | ENDIF | ||
− | + | ||
− | + | eff_tmp l temp+1 | |
− | + | IFN frq | |
− | + | esld | |
− | + | MAKEfrq | |
− | + | ;Roshin | |
− | + | INC HL | |
− | + | EX DE,HL | |
− | eff_tmp l temp+1 | + | ADD HL,BC |
− | + | LD A,(DE) | |
− | esld | + | LD (COPF3),A |
− | MAKEfrq | + | INC DE |
− | ;Roshin | + | LD A,(DE) |
− | + | ADD A,C | |
− | + | LD C,A | |
− | + | ADC A,B | |
− | + | SUB C | |
− | + | LD B,A | |
− | + | PUSH BC | |
− | + | LD DE,tab_frq | |
− | + | PUSH DE | |
− | + | LD B,12 | |
− | + | COPF1 PUSH BC | |
− | + | LD C,(HL) | |
− | + | INC HL | |
− | + | PUSH HL | |
− | + | LD B,(HL) | |
− | + | PUSH DE | |
− | + | EX DE,HL | |
− | COPF1 PUSH BC | + | LD DE,23 |
− | + | LD HX,8 | |
− | + | COPF2 SRL B | |
+ | RR C | ||
+ | ;COPF3 NOP ;AND A | ||
+ | LD A,C | ||
+ | COPF3 ADC A,D ;=ADC 0 | ||
+ | LD (HL),A | ||
+ | INC HL | ||
+ | LD A,B | ||
+ | ADC A,D | ||
+ | LD (HL),A | ||
+ | ADD HL,DE | ||
+ | DEC HX | ||
+ | JR NZ,COPF2 | ||
+ | POP DE | ||
+ | INC DE,DE | ||
+ | POP HL | ||
+ | INC HL | ||
+ | POP BC | ||
+ | DJNZ COPF1 | ||
+ | |||
+ | POP HL | ||
+ | POP DE | ||
+ | |||
+ | ;LD A,E | ||
+ | ;CP TCOLD_1 | ||
+ | ;JR NZ,CORR_1 | ||
+ | ;LD A,#FD,(FrTab+#2E),A | ||
+ | CORR_1 LD A,(DE) | ||
+ | AND A | ||
+ | RET Z | ||
+ | INC DE | ||
+ | RRA | ||
PUSH HL | PUSH HL | ||
− | + | PUSH AF | |
− | + | ADD A,A | |
− | + | LD C,A | |
− | + | ADD HL,BC | |
− | + | POP AF | |
− | + | INC (HL) | |
− | + | JR NC,$+4 | |
− | ; | + | DEC (HL),(HL) |
− | + | POP HL | |
− | + | ;AND A | |
− | + | ;SBC HL,BC | |
− | + | JR CORR_1 | |
− | + | ||
+ | NT_DATA | ||
+ | DB T_NEW_0-T_ | ||
+ | ADC A,D | ||
+ | DB TCNEW_0-T_ | ||
+ | ;DB T_OLD_0-T_ | ||
+ | ;AND A | ||
+ | ;DB TCOLD_0-T_ | ||
+ | |||
+ | DB T_NEW_1-T_ | ||
+ | AND A | ||
+ | DB TCNEW_1-T_ | ||
+ | ;DB T_OLD_1-T_ | ||
+ | ;AND A | ||
+ | ;DB TCOLD_1-T_ | ||
+ | |||
+ | DB T_NEW_2-T_ | ||
+ | ADC A,D | ||
+ | DB TCNEW_2-T_ | ||
+ | ;DB T_OLD_2-T_ | ||
+ | ;NOP | ||
+ | ;DB TCOLD_2-T_ | ||
+ | |||
+ | DB T_NEW_3-T_ | ||
ADC A,D | ADC A,D | ||
− | + | DB TCNEW_3-T_ | |
− | + | ;DB T_OLD_3-T_ | |
− | + | ;NOP | |
− | + | ;DB TCOLD_3-T_ | |
− | + | T_ | |
− | + | ;COLD_0 DB #00+1,#04+1,#08+1,#0A+1,#0C+1,#0E+1,#12+1,#14+1 | |
− | + | ; DB #18+1,#24+1,#3C+1,0 | |
− | + | TCNEW_1 | |
− | + | TCOLD_1 DB #5C+1,0 | |
− | + | ;COLD_2 DB #30+1,#36+1,#4C+1,#52+1,#5E+1,#70+1,#82,#8C,#9C | |
− | + | ; DB #9E,#A0,#A6,#A8,#AA,#AC,#AE,#AE,0 | |
− | + | TCNEW_3 DB #56+1 | |
− | + | TCOLD_3 DB #1E+1,#22+1,#24+1,#28+1,#2C+1,#2E+1,#32+1,#BE+1,0 | |
− | + | TCNEW_0 DB #1C+1,#20+1,#22+1,#26+1,#2A+1,#2C+1,#30+1,#54+1 | |
− | + | DB #BC+1,#BE+1,0 | |
− | + | TCNEW_2 DB #1A+1,#20+1,#24+1,#28+1,#2A+1,#3A+1,#4C+1,#5E+1 | |
− | + | DB #BA+1,#BC+1,#BE+1,0 | |
− | + | ||
− | + | ;first 12 values of tone tables | |
− | + | ||
− | + | T_NEW_1 | |
− | + | T_OLD_1 DW #0EF8*2,#0E10*2,#0D60*2,#0C80*2,#0BD8*2,#0B28*2 | |
− | + | DW #0A88*2,#09F0*2,#0960*2,#08E0*2,#0858*2,#07E0*2 | |
− | + | ;_OLD_2 DW #0D3E*2,#0C80*2,#0BCC*2,#0B22*2,#0A82*2,#09EC*2 | |
− | + | ; DW #095C*2,#08D6*2,#0858*2,#07E0*2,#076E*2,#0704*2 | |
− | + | T_NEW_3 | |
− | + | T_OLD_3 DW #0CDA*2,#0C22*2,#0B73*2,#0ACF*2,#0A33*2,#09A1*2 | |
− | + | DW #0917*2,#0894*2,#0819*2,#07A4*2,#0737*2,#06CF*2 | |
− | + | T_OLD_0=T_OLD_3+2 | |
− | + | T_NEW_0=T_OLD_3+2 | |
− | + | DW #066D*2 | |
− | + | T_NEW_2 DW #0D10*2,#0C55*2,#0BA4*2,#0AFC*2,#0A5F*2,#09CA*2 | |
− | + | DW #093D*2,#08B8*2,#083B*2,#07C5*2,#0755*2,#06EC*2 | |
− | + | ENDIF | |
− | + | ||
− | + | DISPLAY $-compile | |
− | + | IFN vib6 | |
− | + | Cvb_ifr=Cvb_frq | |
− | + | Cvb_ist=Cvb_sts | |
− | + | ENDIF | |
− | + | IFN port3 | |
− | + | Cpi_lok=Csl_plk-2 | |
− | + | ENDIF | |
− | + | IF0 ?StAnDaLoNe | |
− | + | module | |
− | + | INCBIN "*.m" | |
− | + | ENDIF | |
− | + | IF0 frq | |
− | + | plyend | |
− | + | ORG tab_frq | |
− | + | IF0 .{module+99}-0 | |
− | + | ;INCBIN "tb_PT | |
− | + | DD 220C730BCF0A330AA109170994081908A4073707CF066D06 | |
− | + | DD 1106BA0567051A05D0048B044A040C04D2039B0367033703 | |
− | + | DD 0803DD02B4028D026802460225020602E901CE01B4019B01 | |
− | + | DD 84016E015A0146013401230112010301F500E700DA00CE00 | |
− | + | DD C200B700AD00A3009A009100890082007A0073006D006700 | |
− | + | DD 61005C00560052004D004900450041003D003A0036003300 | |
− | + | DD 31002E002B00290027002400220020001F001D001B001A00 | |
− | + | DD 180017001600140013001200110010000F000E000D000C00 | |
− | + | ENDIF | |
− | + | IF0 .{module+99}-1 | |
− | + | ;INCBIN "tb_ST | |
− | + | DD F80E100E600D800CD80B280B880AF0096009E0085808E007 | |
− | + | DD 7C070807B0064006EC0594054405F804B00470042C04FD03 | |
− | T_ | + | DD BE03840358032003F602CA02A2027C02580238021602F801 |
− | ;COLD_0 DB #00+1,#04+1,#08+1,#0A+1,#0C+1,#0E+1,#12+1,#14+1 | + | DD DF01C201AC0190017B01650151013E012C011C010A01FC00 |
− | ; DB #18+1,#24+1,#3C+1,0 | + | DD EF00E100D600C800BD00B200A8009F0096008E0085007E00 |
− | TCNEW_1 | + | DD 770070006B0064005E00590054004F004B00470042003F00 |
− | TCOLD_1 DB #5C+1,0 | + | DD 3B003800350032002F002C002A0027002500230021001F00 |
− | ;COLD_2 DB #30+1,#36+1,#4C+1,#52+1,#5E+1,#70+1,#82,#8C,#9C | + | DD 1D001C001A00190017001600150013001200110010000F00 |
− | ; DB #9E,#A0,#A6,#A8,#AA,#AC,#AE,#AE,0 | + | ENDIF |
− | TCNEW_3 DB #56+1 | + | IF0 .{module+99}-2 |
− | TCOLD_3 DB #1E+1,#22+1,#24+1,#28+1,#2C+1,#2E+1,#32+1,#BE+1,0 | + | ;INCBIN "tb_ASM |
− | TCNEW_0 DB #1C+1,#20+1,#22+1,#26+1,#2A+1,#2C+1,#30+1,#54+1 | + | DD 100D550CA40BFC0A5F0ACA093D09B8083B08C5075507EC06 |
− | + | DD 88062A06D2057E052F05E5049E045C041D04E203AB037603 | |
− | TCNEW_2 DB #1A+1,#20+1,#24+1,#28+1,#2A+1,#3A+1,#4C+1,#5E+1 | + | DD 44031503E902BF02980272024F022E020F02F101D501BB01 |
− | + | DD A2018B01740160014C013901280117010701F900EB00DD00 | |
− | + | DD D100C500BA00B000A6009D0094008C0084007C0075006F00 | |
− | ;first 12 values of tone tables | + | DD 690063005D00580053004E004A00460042003E003B003700 |
− | + | DD 340031002F002C00290027002500230021001F001D001C00 | |
− | T_NEW_1 | + | DD 1A00190017001600150014001200110010000F000E000D00 |
− | T_OLD_1 DW #0EF8*2,#0E10*2,#0D60*2,#0C80*2,#0BD8*2,#0B28*2 | + | ENDIF |
− | + | IF0 .{module+99}-3 | |
− | ;_OLD_2 DW #0D3E*2,#0C80*2,#0BCC*2,#0B22*2,#0A82*2,#09EC*2 | + | ;INCBIN "tb_REAL |
− | ; DW #095C*2,#08D6*2,#0858*2,#07E0*2,#076E*2,#0704*2 | + | DD DA0C220C730BCF0A330AA109170994081908A4073707CF06 |
− | T_NEW_3 | + | DD 6D061106BA0567051A05D0048B044A040C04D2039B036703 |
− | T_OLD_3 DW #0CDA*2,#0C22*2,#0B73*2,#0ACF*2,#0A33*2,#09A1*2 | + | DD 37030803DD02B4028D026802460225020602E901CE01B401 |
− | + | DD 9B0184016E015A0146013401230112010301F500E700DA00 | |
− | T_OLD_0=T_OLD_3+2 | + | DD CE00C200B700AD00A3009A009100890082007A0073006D00 |
− | T_NEW_0=T_OLD_3+2 | + | DD 670061005C00560052004D004900450041003D003A003600 |
− | + | DD 330031002E002B00290027002400220020001F001D001B00 | |
− | T_NEW_2 DW #0D10*2,#0C55*2,#0BA4*2,#0AFC*2,#0A5F*2,#09CA*2 | + | DD 1A00180017001600140013001200110010000F000E000D00 |
− | + | ENDIF | |
− | + | ORG plyend | |
− | + | ENDIF | |
− | DISPLAY $-compile | + | IF0 ?StAnDaLoNe |
− | + | ORG #7000 | |
− | Cvb_ifr=Cvb_frq | + | CALL compile |
− | Cvb_ist=Cvb_sts | + | play_l EI |
− | + | HALT | |
− | + | CALL play | |
− | Cpi_lok=Csl_plk-2 | + | LD A,#7F |
− | + | IN A,(-2) | |
− | + | RRA | |
− | module | + | JR C,play_l |
− | + | LD L,#E | |
− | + | XOR A | |
− | + | shut | |
− | plyend | + | RET |
− | + | ENDIF 0858*2,#07E0*2 | |
− | IF0 .{module+99}-0 | + | ;_OLD_2 DW #0D3E*2,#0C80*2,#0BCC*2,#0B22*2,#0A82*2,#09EC*2 |
− | + | ; DW #095C*2,#08D6*2,#0858*2,#07E0*2,#076E*2,#0704*2 | |
− | + | T_NEW_3 | |
− | + | T_OLD_3 DW #0CDA*2,#0C22*2,#0B73*2,#0ACF*2,#0A33*2,#09A1*2 | |
− | + | DW #0917*2,#0894*2,#0819*2,#07A | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | ENDIF | ||
− | IF0 .{module+99}-1 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ENDIF | ||
− | IF0 .{module+99}-2 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ENDIF | ||
− | IF0 .{module+99}-3 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ENDIF | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | play_l EI | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ;_OLD_2 DW #0D3E*2,#0C80*2,#0BCC*2,#0B22*2,#0A82*2,#09EC*2 | ||
− | ; DW #095C*2,#08D6*2,#0858*2,#07E0*2,#076E*2,#0704*2 | ||
− | T_NEW_3 | ||
− | T_OLD_3 DW #0CDA*2,#0C22*2,#0B73*2,#0ACF*2,#0A33*2,#09A1*2 | ||
− |
Latest revision as of 20:08, 8 March 2020
playFAS4C���i�jTя
;fast(long) player,can be INCLUDEd ;#E21 3.31 by Nick/GDC Воронеж'97 ;#D86 3.51 fix Mm<M,MOnS+eR Самара 26xii00 ;#C03 3.695 fix AlCo 1vi01-26xi05 ;#C11 3.699 fix AlCo (3xxx chnA/B when old 3xxx ends только что) IFN ?frq frq=1;all freq tables(3.4x) ENDIF IFN ?msx msx=0 ENDIF IFN ?smpfix smpfix=1;vol,T,E/N cumulations in SMPs ENDIF IFN ?port3 port3=1;tone port. ENDIF IFN ?vib6 vib6=1;vibrate ENDIF IFN ?ts2 ts2=0;2nd TS player;играет пат47 вместо пат0 и т.д. ENDIF IFN ?jp-2 MACRO jp JR \0 ;JP ENDM ENDIF IFN ?m4-2 MACRO m4 SLA L,L ENDM ENDIF IFN ?shut-2 MACRO shut ;LD HL,#E IFN msx LD BC,#A0 ELSE LD BC,-3 ENDIF DEC L OUT (C),L IFN msx LD C,#A1 ELSE LD B,#BF ENDIF OUT (C),A;0/255 JR NZ,$-10 ENDM ENDIF IFN ?esld-2 MACRO esld Eef_sld LD A,(DE) INC DE LD (Esl_ist+1),A LD A,(DE),L,A INC DE LD A,(DE),H,A INC DE LD (Esl_ids+1),HL LD A,6,(E_ins0),A RET ENDM ENDIF IFN ?l-2 MACRO l LD A,(DE) INC DE LD (\0),A RET ENDM ENDIF IF0 $-#8000 StAnDaLoNe ORG #C000 ENDIF compile LD HL,module JR install JP play IFN frq JR stop ENDIF install DI LD (sav_SP0+1),SP LD (ia_pos0+1),HL IFN frq PUSH HL LD DE,100 ADD HL,DE PUSH DE PUSH HL DEC HL LD E,(HL) LD HL,NT_DATA LD BC,T_ ADD HL,DE ADD HL,DE ADD HL,DE LD E,(HL) CALL MAKEfrq POP HL POP DE POP BC ELSE LD B,H,C,L LD DE,100 ADD HL,DE ENDIF LD A,(HL) INC HL LD (temp+1),A LD SP,HL ADD HL,DE LD (Psa_beg+1),HL POP AF LD E,A ADD HL,DE LD (Psa_lop+1),HL POP HL ADD HL,BC LD (Psa_chn+1),HL LD HL,tba_smp ia_s0 EX DE,HL POP HL ADD HL,BC EX DE,HL LD (HL),E INC L LD (HL),D INC L JR NZ,ia_s0 INC L LD H,L LD (A_qty),HL LD (C_qty),HL sav_SP0 LD SP,0 stop LD HL,DUMMYORN LD (Ao_adr+1),HL LD (Bo_adr+1),HL LD (Co_adr+1),HL LD (Asi_adr+1),HL LD (Bsi_adr+1),HL LD (Cs_adr+1),HL LD (Ach_adr+1),HL XOR A LD (Am_vol+1),A LD (Bm_vol+1),A LD (Cm_vol+1),A LD (Ei_form+1),A ;no glu glu after switch module SUB 16 ;FIX LD (Agi_vol+1),A LD (Bgi_vol+1),A LD (Cg_vol+1),A SBC A,A LD (Avb_lok+1),A LD (Cvb_lok+1),A LD (Bvb_lok+1),A XOR A IF0 frq NOP ENDIF shut RET IF0 frq esld ENDIF tba_smp DS 64,0 tba_orn DS 32,0 DISPLAY $ tab_vol frq_A DB 0,0 frq_B DB 0,0 frq_C DB 0,0 N_frq DB 0 ;;4 DB 0 ;mix ;no_use vol_A DB 0 vol_B DB 0 vol_C DB 0 frq_E DB 0,0 E_form DB 0 ;;4 DUMMYORN DUMMYSMP DS 2 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 DD 0001010203030405050607070809090A DD 000101020304040506070708090A0A0B DD 0001020203040506060708090A0A0B0C DD 00010203030405060708090A0A0B0C0D DD 00010203040506070708090A0B0C0D0E DD 000102030405060708090A0B0C0D0E0F tab_frq DS #C0 IFN ?tabl-2 MACRO tabl IF0 port3 \0ef_nsT=0 ENDIF IF0 vib6 \0ef_vib=0 ENDIF \0_eff DW \0ef_slT ;1/2xxx DW \0ef_nsT ;3xxx DW \0ef_dSm ;4.xx DW \0ef_dOr ;5.xx DW \0ef_vib ;6.xx IF0 vib6 DS 4,1 ELSE \0ef_vib LD A,(DE) INC DE JR \0VIB ENDIF DW Eef_sld DW eff_tmp IFN $-18!$&#FF00 DISPLAY "ERROR \0_eff ENDIF IFN vib6 ;0ef_vib LD A,(DE) ;INC DE \0VIB LD (\0vb_ist+1),A;fix fr/st IF0 "\0 "-"C " LD (\0vb_stp+1),A ENDIF LD A,(DE) INC DE LD (\0vb_ifr+1),A;fix st/fr IFN "\0 "-"C " LD A,6,(\0_ins4),A ENDIF RET ENDIF ENDM ENDIF tabl A tabl B tabl C A_qty NOP B_qty NOP C_qty NOP play JP play_0 EXX ;for B'<>1 LD A,#C3,(play),A ;--- install_A ---- XOR A LD L,A,H,A LD DE,#618 A_gli LD (Asl_dsp+1),HL A_ins0 JR A_ins0Q LD (As_dsp+1),A ;note IFN smpfix LD (As_Nsl+1),A LD (As_Esl+1),A LD (As_dtn+1),HL ENDIF LD (Ao_dsp+1),A ;todo VARIABLE? LD (Asl_stp+1),A IFN vib6 LD (Avb_stp+1),A ENDIF Avb_cpl CPL LD (Avb_lok+1),A IFN port3 LD A,(A_ins3) ;3.699 CP E;24 ; JZ $+8 ; LD A,(Api_lok+1) ; OR A ; JZ $+7 ; ENDIF Asi_not LD A,0 LD (As_note+1),A Asi_adr LD HL,0 LD (As_adr+1),HL IFN smpfix LD A,16 LD (As_Vsl+1),A ENDIF A_ins0Q Agi_vol LD A,0 ;global_volume avol LD (Ag_vol+1),A A_ins2 JR A_ins2Q XOR A ;ornament LD (Ao_dsp+1),A Aoi_adr LD HL,0 LD (Ao_adr+1),HL Ami_vol LD A,0 LD (Am_vol+1),A A_ins2Q A_ins3 JR A_ins3Q ;port & sld Api_stp LD A,0 LD (Asl_stp+1),A LD (Asl_sts+1),A Api_tfr LD HL,0 LD (Asl_tfr+1),HL IFN port3 Api_not LD A,0 LD (Asl_not+1),A Api_lok LD A,0 LD (Asl_plk-1),A ENDIF IFN vib6 XOR A LD (Avb_stp+1),A ENDIF A_ins3Q IFN vib6 A_ins4 JR A_ins4Q LD A,E;24 ;vib LD (A_ins4),A Avb_ist LD A,0 LD (Avb_sts+1),A LD (Avb_stp+1),A Avb_ifr LD A,0 LD (Avb_frq+1),A A_ins4Q ENDIF A_ins5 JR A_ins5Q Asi_dsp LD A,0 ;disp_sample LD (As_dsp+1),A LD A,E;24 LD (A_ins5),A A_ins5Q A_ins6 JR A_ins6Q Aoi_dsp LD A,0 LD (Ao_dsp+1),A;disp_ornament LD A,E;24 LD (A_ins6),A A_ins6Q ;--- install_B --- XOR A LD L,A,H,A B_gli LD (Bsl_dsp+1),HL B_ins0 JR B_ins0Q LD (Bs_dsp+1),A IFN smpfix LD (Bs_Nsl+1),A LD (Bs_Esl+1),A LD (Bs_dtn+1),HL ENDIF LD (Bo_dsp+1),A LD (Bsl_stp+1),A IFN vib6 LD (Bvb_stp+1),A ENDIF Bvb_cpl CPL LD (Bvb_lok+1),A IFN port3 LD A,(B_ins3) ;3.699 CP E;24 ; JZ $+8 ; LD A,(Bpi_lok+1) ; OR A ; JZ $+7 ; ENDIF Bsi_not LD A,0 LD (Bs_note+1),A Bsi_adr LD HL,0 LD (Bs_adr+1),HL IFN smpfix LD A,16 LD (Bs_Vsl+1),A ENDIF B_ins0Q Bgi_vol LD A,0 bvol LD (Bg_vol+1),A B_ins2 JR B_ins2Q XOR A LD (Bo_dsp+1),A Boi_adr LD HL,0 LD (Bo_adr+1),HL Bmi_vol LD A,0 LD (Bm_vol+1),A B_ins2Q B_ins3 JR B_ins3Q Bpi_stp LD A,0 LD (Bsl_stp+1),A LD (Bsl_sts+1),A Bpi_tfr LD HL,0 LD (Bsl_tfr+1),HL IFN port3 Bpi_not LD A,0 LD (Bsl_not+1),A Bpi_lok LD A,0 LD (Bsl_plk-1),A ENDIF IFN vib6 XOR A LD (Bvb_stp+1),A ENDIF B_ins3Q IFN vib6 B_ins4 JR B_ins4Q LD A,E;24 LD (B_ins4),A Bvb_ist LD A,0 LD (Bvb_sts+1),A LD (Bvb_stp+1),A Bvb_ifr LD A,0 LD (Bvb_frq+1),A B_ins4Q ENDIF B_ins5 JR B_ins5Q Bsi_dsp LD A,0 LD (Bs_dsp+1),A LD A,E;24 LD (B_ins5),A B_ins5Q B_ins6 JR B_ins6Q Boi_dsp LD A,0 LD (Bo_dsp+1),A LD A,E;24 LD (B_ins6),A B_ins6Q ;--- install_E --- Ei_form LD A,0 ;env_form LD (E_form),A ;;4 OR A JR Z,temp Ei_frq LD HL,0 ;env_frq LD (E_frq+1),HL XOR A LD L,A,H,A LD (Ei_form+1),A LD (Esl_frq+1),HL LD (Esl_stp+1),A temp LD A,3,(int_qty+1),A Ni_frq LD A,0,(N_frq),A ;;4 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,E;24 LD (E_ins0),A Ei_Q ;--- nota_A + calc next position --- LD HL,A_qty DEC (HL) LD H,E ;LD L,1 ;E LD B,E EXX JR NZ,AqtyQ ;LD (avol+2),A Ach_adr LD DE,tab_vol+16 LD A,(DE) OR A JR NZ,Ps_n0 LD (Ni_frq+1),A ;;5!!! LD D,A ;; LD (sav_SP2+1),SP Psa_beg LD HL,module+201 LD A,(HL) ;LD E,A ;6 INC A ;AAA;6 JR NZ,Ps_n1 ;NC ;6 Psa_lop LD HL,module+201 Ps_n1 IFN ts2 LD A,47*3 SUB (HL) LD E,A ELSE LD E,(HL) ;6 ENDIF 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,0 ADD HL,BC EX DE,HL ;DE=adr_chn_A 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 LD H,'compile CALL An_clc1 LD (Ach_adr+1),DE Ai_qty LD A,0,(A_qty),A AqtyQ LD A,1 DJNZ $+4 LD A,34 LD (A_gli),A EXX LD A,B,(A_ins2),A LD A,H,(A_ins0),A LD A,E,(A_ins3),A play_0 LD L,0 ;smp_sl_env EXX N_add LD IX,0 ;HX=noise LX=mix LD (sav_SP1+1),SP IFN ?sam1-2 MACRO sam1 \0vb_lok LD A,-1 LD H,A INC A JP Z,\0vb_n0 \0s_adr LD SP,DUMMYSMP ;sample POP DE ;loop E=beg D=end \0s_dsp LD A,0 LD L,A INC A CP D JR C,$+3 ;bug NZ/C LD A,E LD (\0s_dsp+1),A m4 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 IFN smpfix OR #F0 LD L,A LD A,E ADD A,A \0s_Vsl LD A,16 JR NC,\0s_VslG JP M,\0s_n2 SUB 1 JR $+4 \0s_n2 CP 31 ADC A,0 LD (\0s_Vsl+1),A \0s_VslG ADD A,L JR C,$+3 XOR A CP 16 JR C,$+4 LD A,15 ELSE AND 15 ENDIF \0g_vol ADD A,#F0 LD L,A,H,'tab_vol LD A,(HL) SRL E JR C,$+4 \0m_vol OR 0 EXA LD A,D RLCA JR C,\0s_n5 IFN smpfix \0s_Nsl LD A,0 ADD A,E BIT 5,D JR Z,$+5 LD (\0s_Nsl+1),A LD HX,A ELSE LD HX,E ENDIF jp \0s_n7 \0s_n5 LD A,E AND 31 CP 16 JR C,$+4 OR #F0 IFN smpfix \0s_Esl ADD A,0 BIT 5,D JR Z,$+5 LD (\0s_Esl+1),A ENDIF EXX ADD A,L LD L,A EXX \0s_n7 LD A,D RRCA RRCA AND 36 ENDM ENDIF IFN ?sam2-2 MACRO sam2 LD LX,A IFN smpfix POP BC \0s_dtn LD HL,0 ;dsp_frq_smp ADD HL,BC BIT 6,D JR Z,$+5 LD (\0s_dtn+1),HL EX DE,HL ELSE POP DE ENDIF \0o_adr LD SP,DUMMYORN ;ornament POP BC ;loop C=beg B=end \0o_dsp LD A,0 LD L,A INC A CP B JR C,$+3 ;bug NZ/C LD A,C LD (\0o_dsp+1),A LD H,0 ADD HL,SP IFN port3 LD A,(\0s_note+1) ELSE \0s_note LD A,0 ENDIF ADD A,(HL) ;dsp_orn ADD A,A JR NC,$+3 XOR A LD L,A,H,'tab_frq LD SP,HL POP HL ADD HL,DE \0sl_dsp LD BC,0 ADD HL,BC LD (frq_\0),HL \0sl_stp LD A,0 DEC A JP M,\0sl_s0 JR NZ,\0sl_s1 \0sl_tfr LD DE,0 ADD HL,DE EX DE,HL ADD HL,BC LD (\0sl_dsp+1),HL IFN port3 JR \0sl_sts ;port off/on \0sl_plk \0sl_not LD A,0 LD L,A ADD HL,HL LD H,'tab_frq LD SP,HL POP HL \0s_note CP 0 JR NC,$+3 EX DE,HL SBC HL,DE JR C,\0sl_sts LD (\0s_note+1),A XOR A LD L,A LD (\0sl_dsp+1),HL JR $+4 ENDIF \0sl_sts LD A,0 \0sl_s1 LD (\0sl_stp+1),A \0sl_s0 EXA \0vb_n0 LD (vol_\0),A IFN vib6 \0vb_stp LD A,0 DEC A JP M,\0smpQ JR NZ,\0vb_n1 DEC A ;; LD HL,\0vb_lok+1;; XOR (HL) ;; LD (HL),A ;;4 \0vb_frq LD A,0 JR NZ,$+4 \0vb_sts LD A,0 \0vb_n1 LD (\0vb_stp+1),A ENDIF \0smpQ ENDM ENDIF sam1 A RRCA RRCA sam2 A sam1 B RRCA OR LX sam2 B sam1 C OR LX sam2 C ;---- 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 ;stp_smp_sl_env LD L,A ADD HL,DE 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_ IFN msx LD DE,#A0A1 LD HL,frq_A DUP 6 LD C,D OUT (C),L LD C,E OUTI EDUP LD C,D OUT (C),L LD A,HX ;noise LD (N_add+3),A ADD A,(HL) ;;4 OUT (#A1),A INC L OUT (C),L LD A,LX ;mix TODO (HL) AND %00111111 OR %10000000 ;portA=input, portB=output OUT (#A1),A INC L OUT (C),L LD C,E OUTI DUP 4 LD C,D OUT (C),L LD C,E OUTI EDUP LD A,(HL) ;;4 OR A JR Z,int_qty LD C,D OUT (C),L OUT (#A1),A LD (HL),0 ;;4 ELSE ;zx LD DE,#FFBF LD BC,-3 LD HL,frq_A DUP 6 OUT (C),L LD B,E OUTI LD B,D EDUP OUT (C),L LD A,HX ;noise LD (N_add+3),A ADD A,(HL) ;;4 LD B,E OUT (C),A INC L LD B,D OUT (C),L LD A,LX ;mix TODO (HL) LD B,E OUT (C),A INC L DUP 5 LD B,D OUT (C),L LD B,E OUTI EDUP LD A,(HL) ;;4 OR A JR Z,int_qty LD B,D OUT (C),L LD B,E OUT (C),A LD (HL),0 ;;4 ENDIF ;--- calc_next_positon_channels --- int_qty LD A,3 DEC A LD (int_qty+1),A JR Z,notaC;if tmp=1,CALL notaB first!!! DEC A RET NZ ;--- nota_B --- LD HL,B_qty DEC (HL) LD DE,#618 LD H,E ;LD L,1 ;E LD B,E EXX JR NZ,BqtyQ ;LD (bvol+2),A Bch_adr LD DE,0 LD H,'compile CALL Bn_clc1 LD (Bch_adr+1),DE Bi_qty LD A,0,(B_qty),A BqtyQ LD A,1 DJNZ $+4 LD A,34 LD (B_gli),A EXX LD A,B,(B_ins2),A LD A,H,(B_ins0),A ;LD A,L,(B_ins1),A LD A,E,(B_ins3),A RET ;--- nota_C --- notaC INC A;LD A,1 LD (play),A LD HL,C_qty DEC (HL) RET NZ Cch_adr LD DE,0 LD H,'compile CALL Cn_clc1 LD (Cch_adr+1),DE Ci_qty LD A,0,(C_qty),A DEC B RET NZ LD H,B,L,B LD (Csl_dsp+1),HL RET IFN ?not-2 MACRO not IFN "\0 "-"C " \0ni_v0 LD A,47 \0nivolU LD (\0vb_cpl),A EXX LD H,D EXX RET \0ni_not LD (\0si_not+1),A XOR A LD B,1 jp \0nivolU ENDIF \0ni_vol JR Z,\0ni_v0 DUP 4 ADD A,A EDUP LD (\0gi_vol+1),A jp \0n_clc2 \0ni_vqe JR Z,\0ni_v1 DEC A JR NZ,\0ni_e0 LD A,(DE) INC DE LD (\0i_qty+1),A jp \0n_clc2 \0ni_e0 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 \0ni_v1 LD (\0mi_vol+1),A IFN "\0 "-"C " EXX LD B,D EXX ENDIF jp \0n_clc2 \0ni_s_o ADD A,A ADD A,tba_orn LD L,A LD C,(HL) INC L LD B,(HL) LD (\0oi_adr+1),BC XOR A \0ni_sm0 LD (\0mi_vol+1),A IFN "\0 "-"C " EXX LD B,D EXX ELSE XOR A LD (\0o_dsp+1),A ENDIF LD A,(DE) INC DE \0nism0U ADD A,tba_smp LD L,A LD C,(HL) INC L LD B,(HL) LD (\0si_adr+1),BC \0n_clc1 LD BC,#1020 \0n_clc2 LD A,(DE) INC DE ADD A,B JR C,\0ni_s_o ADD A,C JR C,\0ni_smp ADD A,B JR C,\0ni_vol ADD A,B JR C,\0ni_vqe ADD A,96 JR C,\0ni_not ADD A,B JR C,\0ni_orn IF0 "\0 "-"B " ADD A,C JR C,\0ni_noi ADD A,B ELSE ADD A,48 ENDIF JR C,\0ni_vse RLA LD HL,-256&\0_eff+.(\0_eff+30) ADD A,L LD L,A LD A,(HL) INC L LD H,(HL) LD L,A PUSH HL IF0 "\0 "-"C " IFN port3 LD A,(Cs_note+1) LD (CnsTnxt+1),A ENDIF ENDIF jp \0n_clc2 IF0 "\0 "-"B " \0ni_noi LD (Ni_frq+1),A;global_noise jp \0n_clc2 ENDIF \0ni_vse JR Z,\0ni_sm0 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 jp \0ni_sm0 \0ni_smp RET Z ADD A,A jp \0nism0U \0ni_orn ADD A,A ADD A,tba_orn LD L,A LD C,(HL) INC L LD B,(HL) LD (\0oi_adr+1),BC IFN "\0 "-"C " EXX LD B,D EXX ELSE XOR A LD (Co_dsp+1),A ENDIF jp \0n_clc1 ENDM ENDIF not A not B Cgi_vol=Cg_vol Cmi_vol=Cm_vol Coi_adr=Co_adr Csi_adr=Cs_adr Cni_v0 IFN vib6 LD (Cvb_stp+1),A ENDIF DEC A LD (Cvb_lok+1),A RET not C Cni_not LD (Cs_note+1),A XOR A LD H,A,L,A LD (Cs_dsp+1),A LD (Co_dsp+1),A LD (Csl_stp+1),A LD (Cvb_lok+1),A IFN vib6 LD (Cvb_stp+1),A ENDIF IFN smpfix LD (Cs_Nsl+1),A LD (Cs_Esl+1),A LD (Cs_dtn+1),HL LD A,16,(Cs_Vsl+1),A ENDIF LD B,1 RET ;---- special_effects_COM.xxxx ---- Aef_dSm LD A,6,(A_ins5),A l Asi_dsp+1 Aef_dOr LD A,6,(A_ins6),A l Aoi_dsp+1 Bef_dSm LD A,6,(B_ins5),A l Bsi_dsp+1 Bef_dOr LD A,6,(B_ins6),A l Boi_dsp+1 Cef_dSm l Cs_dsp+1 Cef_dOr l Co_dsp+1 Cpi_stp=Csl_stp Cpi_tfr=Csl_tfr IFN ?_slT-2 MACRO _slT \0ef_slT LD A,(DE) INC DE LD (\0pi_stp+1),A IF0 "\0 "-"C " LD (\0sl_sts+1),A ENDIF LD A,(DE),L,A INC DE LD A,(DE),H,A INC DE LD (\0pi_tfr+1),HL IFN port3 LD A,\0sl_sts-\0sl_plk LD (\0pi_lok+1),A;port_off ENDIF ENDM ENDIF _slT A EXX LD E,D EXX RET _slT B EXX LD E,D EXX RET _slT C IFN vib6 XOR A LD (Cvb_stp+1),A ENDIF RET IFN port3 IFN ?_nsT-2 MACRO _nsT \0ef_nsT LD A,(DE) INC DE LD (\0pi_stp+1),A IF0 "\0 "-"C " LD (\0sl_sts+1),A ENDIF INC DE INC DE LD A,(DE),L,A INC DE LD A,(DE),H,A INC DE LD (\0pi_tfr+1),HL XOR A LD B,A ENDM ENDIF _nsT A LD (Api_lok+1),A;port_on ; LD HL,Asi_not+1 ; LD A,(HL) LD A,(Asi_not+1) LD (Api_not+1),A ;LD A,(As_note+1) ; LD (HL),A EXX LD E,D EXX RET _nsT B LD (Bpi_lok+1),A ; LD HL,Bsi_not+1 ; LD A,(HL) LD A,(Bsi_not+1) LD (Bpi_not+1),A ;LD A,(Bs_note+1) ; LD (HL),A EXX LD E,D EXX RET _nsT C IFN vib6 LD (Cvb_stp+1),A ENDIF LD (Csl_plk-1),A LD HL,Cs_note+1 LD A,(HL) LD (Csl_not+1),A CnsTnxt LD (HL),0 RET ENDIF eff_tmp l temp+1 IFN frq esld MAKEfrq ;Roshin INC HL EX DE,HL ADD HL,BC LD A,(DE) LD (COPF3),A INC DE LD A,(DE) ADD A,C LD C,A ADC A,B SUB C LD B,A PUSH BC LD DE,tab_frq PUSH DE LD B,12 COPF1 PUSH BC LD C,(HL) INC HL PUSH HL LD B,(HL) PUSH DE EX DE,HL LD DE,23 LD HX,8 COPF2 SRL B RR C ;COPF3 NOP ;AND A LD A,C COPF3 ADC A,D ;=ADC 0 LD (HL),A INC HL LD A,B ADC A,D LD (HL),A ADD HL,DE DEC HX JR NZ,COPF2 POP DE INC DE,DE POP HL INC HL POP BC DJNZ COPF1 POP HL POP DE ;LD A,E ;CP TCOLD_1 ;JR NZ,CORR_1 ;LD A,#FD,(FrTab+#2E),A CORR_1 LD A,(DE) AND A RET Z INC DE RRA PUSH HL PUSH AF ADD A,A LD C,A ADD HL,BC POP AF INC (HL) JR NC,$+4 DEC (HL),(HL) POP HL ;AND A ;SBC HL,BC JR CORR_1 NT_DATA DB T_NEW_0-T_ ADC A,D DB TCNEW_0-T_ ;DB T_OLD_0-T_ ;AND A ;DB TCOLD_0-T_ DB T_NEW_1-T_ AND A DB TCNEW_1-T_ ;DB T_OLD_1-T_ ;AND A ;DB TCOLD_1-T_ DB T_NEW_2-T_ ADC A,D DB TCNEW_2-T_ ;DB T_OLD_2-T_ ;NOP ;DB TCOLD_2-T_ DB T_NEW_3-T_ ADC A,D DB TCNEW_3-T_ ;DB T_OLD_3-T_ ;NOP ;DB TCOLD_3-T_ T_ ;COLD_0 DB #00+1,#04+1,#08+1,#0A+1,#0C+1,#0E+1,#12+1,#14+1 ; DB #18+1,#24+1,#3C+1,0 TCNEW_1 TCOLD_1 DB #5C+1,0 ;COLD_2 DB #30+1,#36+1,#4C+1,#52+1,#5E+1,#70+1,#82,#8C,#9C ; DB #9E,#A0,#A6,#A8,#AA,#AC,#AE,#AE,0 TCNEW_3 DB #56+1 TCOLD_3 DB #1E+1,#22+1,#24+1,#28+1,#2C+1,#2E+1,#32+1,#BE+1,0 TCNEW_0 DB #1C+1,#20+1,#22+1,#26+1,#2A+1,#2C+1,#30+1,#54+1 DB #BC+1,#BE+1,0 TCNEW_2 DB #1A+1,#20+1,#24+1,#28+1,#2A+1,#3A+1,#4C+1,#5E+1 DB #BA+1,#BC+1,#BE+1,0 ;first 12 values of tone tables T_NEW_1 T_OLD_1 DW #0EF8*2,#0E10*2,#0D60*2,#0C80*2,#0BD8*2,#0B28*2 DW #0A88*2,#09F0*2,#0960*2,#08E0*2,#0858*2,#07E0*2 ;_OLD_2 DW #0D3E*2,#0C80*2,#0BCC*2,#0B22*2,#0A82*2,#09EC*2 ; DW #095C*2,#08D6*2,#0858*2,#07E0*2,#076E*2,#0704*2 T_NEW_3 T_OLD_3 DW #0CDA*2,#0C22*2,#0B73*2,#0ACF*2,#0A33*2,#09A1*2 DW #0917*2,#0894*2,#0819*2,#07A4*2,#0737*2,#06CF*2 T_OLD_0=T_OLD_3+2 T_NEW_0=T_OLD_3+2 DW #066D*2 T_NEW_2 DW #0D10*2,#0C55*2,#0BA4*2,#0AFC*2,#0A5F*2,#09CA*2 DW #093D*2,#08B8*2,#083B*2,#07C5*2,#0755*2,#06EC*2 ENDIF DISPLAY $-compile IFN vib6 Cvb_ifr=Cvb_frq Cvb_ist=Cvb_sts ENDIF IFN port3 Cpi_lok=Csl_plk-2 ENDIF IF0 ?StAnDaLoNe module INCBIN "*.m" ENDIF IF0 frq plyend ORG tab_frq IF0 .{module+99}-0 ;INCBIN "tb_PT DD 220C730BCF0A330AA109170994081908A4073707CF066D06 DD 1106BA0567051A05D0048B044A040C04D2039B0367033703 DD 0803DD02B4028D026802460225020602E901CE01B4019B01 DD 84016E015A0146013401230112010301F500E700DA00CE00 DD C200B700AD00A3009A009100890082007A0073006D006700 DD 61005C00560052004D004900450041003D003A0036003300 DD 31002E002B00290027002400220020001F001D001B001A00 DD 180017001600140013001200110010000F000E000D000C00 ENDIF IF0 .{module+99}-1 ;INCBIN "tb_ST DD F80E100E600D800CD80B280B880AF0096009E0085808E007 DD 7C070807B0064006EC0594054405F804B00470042C04FD03 DD BE03840358032003F602CA02A2027C02580238021602F801 DD DF01C201AC0190017B01650151013E012C011C010A01FC00 DD EF00E100D600C800BD00B200A8009F0096008E0085007E00 DD 770070006B0064005E00590054004F004B00470042003F00 DD 3B003800350032002F002C002A0027002500230021001F00 DD 1D001C001A00190017001600150013001200110010000F00 ENDIF IF0 .{module+99}-2 ;INCBIN "tb_ASM DD 100D550CA40BFC0A5F0ACA093D09B8083B08C5075507EC06 DD 88062A06D2057E052F05E5049E045C041D04E203AB037603 DD 44031503E902BF02980272024F022E020F02F101D501BB01 DD A2018B01740160014C013901280117010701F900EB00DD00 DD D100C500BA00B000A6009D0094008C0084007C0075006F00 DD 690063005D00580053004E004A00460042003E003B003700 DD 340031002F002C00290027002500230021001F001D001C00 DD 1A00190017001600150014001200110010000F000E000D00 ENDIF IF0 .{module+99}-3 ;INCBIN "tb_REAL DD DA0C220C730BCF0A330AA109170994081908A4073707CF06 DD 6D061106BA0567051A05D0048B044A040C04D2039B036703 DD 37030803DD02B4028D026802460225020602E901CE01B401 DD 9B0184016E015A0146013401230112010301F500E700DA00 DD CE00C200B700AD00A3009A009100890082007A0073006D00 DD 670061005C00560052004D004900450041003D003A003600 DD 330031002E002B00290027002400220020001F001D001B00 DD 1A00180017001600140013001200110010000F000E000D00 ENDIF ORG plyend ENDIF IF0 ?StAnDaLoNe ORG #7000 CALL compile play_l EI HALT CALL play LD A,#7F IN A,(-2) RRA JR C,play_l LD L,#E XOR A shut RET ENDIF 0858*2,#07E0*2 ;_OLD_2 DW #0D3E*2,#0C80*2,#0BCC*2,#0B22*2,#0A82*2,#09EC*2 ; DW #095C*2,#08D6*2,#0858*2,#07E0*2,#076E*2,#0704*2 T_NEW_3 T_OLD_3 DW #0CDA*2,#0C22*2,#0B73*2,#0ACF*2,#0A33*2,#09A1*2 DW #0917*2,#0894*2,#0819*2,#07A