Changes

Jump to: navigation, search

PROTRACKER372 PTCONST H

538 bytes added, 03:05, 8 March 2020
no edit summary
PTconst C��C$�%#¾ MAIN "",#C6 FD=32765 iy=23610 pg=#5B5C pg6=#10 pg4=#16 pg3=#14 pg7=#17 ;CS: kTRA="T kBEG="U kEND="I kCOP="Y kORD="L kEON="E kAON="A kBEM=198 kK="K kE="E kIns=201 kSmp=172 kOrn=197 kssA=226 IFN 1 ;Macros keys kL=15 kssL="=" kHom=199 kEnd=200 kTab=6 kTabL=7 kDelLn=12 kssE="> kssR="< kChip=14 ELSE ;old keys kL="L" kssL="=" kHom=15 kEnd=") kTab=6 kTabL=7 kDelLn=199 kssE=200 kssR="< kChip=12 ENDIF _c000=#C000 IF0 ply mod=FrTab+#C0 plaer=TVOL IFN mkvol ORG TVOL
ELSE
;old keys ORG TVOL-256kL= INCBIN "LPLYC0",512kssL="="kHom=15kEnd=")kTab=6kTabL=7kDelLn=199kssE=200kssR="<kChip=12 ORG TVOL+256
ENDIF
 _c000=#C000 IF0 plymod=FrTab+#C0plaer=TVOL IFN mkvol ORG TVOL ELSE ORG TVOL-256 INCBIN "PLYC0",512 ORG TVOL+256 ENDIF DS #C000-$ ELSE ORG #BD00,7 plaer INCBIN "PLYC0 mod ENDIF IFN mkvol ORG TVOL DS 256 ENDIF ORG FrTab DS #C0 _ce26=mod+5;PT2SMPS _ce66=mod+69;PT2ORNS _ce84=mod+99;PT2trxshft _ce86=mod+101;PT2TITL _cea4=mod+131;PT2POSS lce3f=mod+30;TITL lce63=mod+66;AUTH lce84=mod+99;FRQ lce85=lce84+1;TMP lce86=lce84+2;LEN lce87=lce84+3;LP lce88=lce84+4;trxshft lce8a=lce84+6;SMPS0-1F lceca=mod+169;ORNS0-F lceea=mod+201;POSS(pat*3,-1) la79e=#A79E;STPOSS(pat+1) la99e=#A99E;STLEN-1 la9bf=#A9BF;STORNS labbf=#ABBF;STTMP labc0=#ABC0;STPATLEN,STPPATLENS labc1=#ABC1;,#6000->la000STPATS ;STPrecode_c000>la000 labf9=#ABF9;,#6000->la000STPPATS labdf=#ABDF;STPLP la000=#A000;,#2000->ld000STLDADR ld000=#D000;pg7 ;pg7 _d000=#D000;scrollers ;pg4 SMPS=#C000 ORNS=#E000 winbuf=#F000 ORG #C000,pg6 TDHL wassin s=32768 c=777 DUP 128 DB s>7 a=s s=s+c c=c-(a-32768/1610) EDUP INPAGE LD E,B sad0 LD L,E RES 7,L LD D,'SIN+15 LD BC,#1010 XOR A sad1 EXD LD (HL),C SLA (HL) EXD BIT 7,E JZ sader SUB (HL) JNC $+3 DEC C JR sadq sader ADD A,(HL) JNC $+3 INC C sadq DEC D DJNZ sad1 INC E JNZ sad0 CALL 8026 JC $+7 LD A,201,(IMnOFF),A LD DE,#4020 LD HL,TDHL LD B,E MKDHL LD (HL),E INC L LD (HL),D INC L CALL DDE DJNZ MKDHL RET GETAYER JZ IMnOFF ;LD (ITEMFLG),A LD HL,(ARXY),A,L SUB 8 CP 32 JNC IMnOFF LD A,H LD HL,CLST3,DE,PLoffC CP #D4 JNC IMabc LD L,CLST2,DE,PLoffB CP #AC JNC IMabc LD L,CLST1,DE,PLoffA CP #88 JC IMnOFF LD A,(WBUFTOP+1) INC A ;edsmp JZ IMnOFF IMabc LD A,(DE),(HL),A ;INC HL ;LD (HL),A CPL LD (DE),A IMnOFF LD A,(WBUFTOP+1) INC A ;edsmp LD A,#11,HL,8 LD DE,rgbufA CALL NZ,GETRG LD A,#16,HL,#209 LD DE,rgbufB CALL GETRG LD A,#1B,HL,#40A LD DE,rgbufC GETRG LD (ZZC),A LD BC,-3 OUT (C),L IN A,(C) OUT (C),H IN L,(C) INC H OUT (C),H CPL AND #F ADD A,'SIN LD H,A IN A,(C) BIT 3,A CPL JZ $+3 XOR A AND 7 LD C,A EXD IFN skipABC LD B,1 CP (HL) LD (HL),A JR Z,$+3 INC B INC HL LD A,E CP (HL) LD (HL),A JR Z,$+3 INC B INC HL LD A,D CP (HL) LD (HL),A JR Z,$+3 INC B INC HL LD A,(HL) INC HL CP (HL) LD (HL),A JR NZ,$+4 DEC B RET Z ELSE LD A,(HL) ENDIF PUSH BC,DE INC HL LD E,(HL) INC HL LD D,(HL) LD B,A,C,A EXD LD (CLSTSP+1),SP JP (HL) CLSTSP LD SP,0 POP DE,BC ZZC=$+1 LD B,0 EXX LD B,4 zz0 EXX b=7 DUP 4 EXD LD A,L ADD A,C LD L,A,E,(HL) EXD ADD A,C LD E,A,H,'TDHL,A,(HL) OR B INC L LD H,(HL),L,A SET b,(HL) LD A,(DE),L,A,H,'TDHL,A,(HL) OR B INC L LD H,(HL),L,A SET b-1,(HL) b=b-2 EDUP INC B EXX DJNZ zz0 RET CLSTAN3 s=#403F DUP 3 DUP 4 DUP 8 LD SP,s PUSH BC,BC s=s+256 EDUP s=s-#7E0 EDUP JP CLSTSP s=s-#85 EDUP CLSTlen=$-CLSTAN3/3 CLSTAN2=CLSTAN3+CLSTlen CLSTAN1=CLSTAN2+CLSTlen rgbufA IFN skipABC DS 3,#AA ENDIF CLST1 NOP IFN skipABC NOP ENDIF DW CLSTAN1 rgbufB IFN skipABC DS 3,#AA ENDIF CLST2 NOP IFN skipABC NOP ENDIF DW CLSTAN2 rgbufC IFN skipABC DS 3,#AA ENDIF CLST3 NOP IFN skipABC NOP ENDIF DW CLSTAN3 lb000=#B000;#1000<->COMFROM COMFROM DISP lb000 INCLUDE "PTCMP*",#46 ENT ENDC DISPLAY "COM/DECOM=",$-COMFROM IF0 frqrosh tab2frq INCBIN "KOZASM DW #CDA tab0frq INCBIN "KOZPT tab1frq INCBIN "KOZST ELSE NT_DATA DB T_NEW_0-T_ ADC A,D DB TCNEW_0-T_ DB T_NEW_1-T_ OR A DB TCNEW_1-T_ DB T_NEW_2-T_ ADC A,D DB TCNEW_2-T_ DB T_NEW_3-T_ ADC A,D DB TCNEW_3-T_ T_ TCNEW_1 TCOLD_1 DB #5C+1,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 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 MEMOBUF;(320=#140) SIN=$+#23F/256<8 DISPLAY "SKIP BEFORE SIN=",SIN-MEMOBUF-#140 DISPLAY "SINEND=",SIN+#1000 PRFONSCR IFN mkvol LD HL,#11 LD D,H,E,H LD IX,TVOL+16 LD B,#10 INITV2 PUSH HL ADD HL,DE EXD SBC HL,HL INITV1 LD A,L RLA LD A,H ADC A,0 LD (IX),A INC IX ADD HL,DE INC B LD A,B AND 15 JNZ INITV1 POP HL LD A,E CP #77 JR NZ,$+3 INC E INC B DJNZ INITV2 ENDIF LD HL,#48E1,BC,#4810 CALL VlN LD L,#E5 CALL VlN LD L,#E7 CALL VlN LD L,#EF CALL VlN LD L,#F7 CALL VlN LD L,#FF CALL VlN LD HL,#4715,BC,#2281 CALL VlN LD L,#1A CALL VlN LD L,#1F DEC C CALL VlN LD L,#10,C,1 CALL VlN INC L PRFONSCRL DUP 3 LD BC,#4FF LD (HL),C INC L DJNZ $-2 INC L
EDUP
INPAGE LD E,Bsad0 LD L,E RES 7,L LD D,'SIN+15 LD BC,#1010 XOR Asad1 EXD LD (HL),C SLA (HL) EXD BIT 7,E JZ sader SUB (HL) JNC $+3 DEC C JR sadqsader ADD A,(HL) JNC $+3 INC Csadq DEC D DJNZ sad1 INC E JNZ sad0 CALL 8026 JC $+7 LD A,201,(IMnOFF),A LD DE,#4020 LD HL,TDHL LD B,EMKDHL LD (HL),E INC L LD (HL),D INC L CALL DDE DJNZ MKDHL RET GETAYER JZ IMnOFF ;LD (ITEMFLG),A LD HL,(ARXY),A,L SUB 8 CP 32 JNC IMnOFF LD A,H LD HL,CLST3,DE,PLoffC CP #D4 JNC IMabc LD L,CLST2,DE,PLoffB CP #AC JNC IMabc LD L,CLST1,DE,PLoffA CP #88 JC IMnOFF LD A,(WBUFTOP+1) INC A ;edsmp JZ IMnOFFIMabc LD A,(DE),(HL),A ;INC HL ;LD (HL),A CPL LD (DE),AIMnOFF LD A,(WBUFTOP+1) INC A ;edsmp LD A,#11,HL,8 LD DE,rgbufA CALL NZ,GETRG LD A,#16,HL,#209 LD DE,rgbufB CALL GETRG LD A,#1B,HL,#40A LD DE,rgbufCGETRG LD (ZZC),A LD BC,-3 OUT (C),L IN A,(C) OUT (C),H IN L,(C) INC H OUT (C),H CPL AND #F ADD A,'SIN LD H,A IN A,(C) BIT 3,A CPL JZ $+3 XOR A AND 7 LD C,A EXD IFN skipABC LD B,1 CP (HL) LD (HL),A JR Z,$+3 INC B INC HL LD A,E CP (HL) LD (HL),A JR Z,$+3 INC B INC HL LD A,D CP (HL) LD (HL),A JR Z,$+3 INC B INC HL LD A,(HL) INC HL CP (HL) LD (HL),A JR NZ,$+4 DEC B RET Z ELSE LD A,(HL) ENDIF PUSH BC,DE INC HL LD E,(HL) INC HL LD D,(HL) LD B,A,C,A EXD LD (CLSTSP+1),SP JP (HL)CLSTSP LD SP,0 POP DE,BCZZC=$+1 LD B,0 EXX LD B,4zz0 EXX b=7 DUP 4 EXD LD A,L ADD A,C LD L,A,E,(HL) EXD ADD A,C LD E,A,H,'TDHL,A,(HL) OR B INC L LD H,(HL),L,A SET b,(HL) LD A,(DE),L,A,H,'TDHL,A,(HL) OR B INC L LD H,(HL),L,A SET b-1,(HL)b=b-2 EDUP INC B EXX DJNZ zz0 RET  CLSTAN3s=#403F DUP 3 DUP 4 DUP 8 LD SP,s PUSH BC,BCs=s+256 EDUP s=s-#7E0 EDUP JP CLSTSPs=s-#85 EDUP CLSTlen=$-CLSTAN3/3CLSTAN2=CLSTAN3+CLSTlenCLSTAN1=CLSTAN2+CLSTlen rgbufA IFN skipABC DS 3,#AA ENDIF CLST1 NOP IFN skipABC NOP ENDIF DW CLSTAN1rgbufB IFN skipABC DS 3,#AA ENDIF CLST2 NOP IFN skipABC NOP ENDIF DW CLSTAN2rgbufC IFN skipABC DS 3,#AA ENDIF CLST3 NOP IFN skipABC NOP ENDIF DW CLSTAN3 lb000=#B000;#1000<->COMFROMCOMFROM DISP lb000 INCLUDE "PTCMP*",#46 ENT ENDCDISPLAY "COM/DECOM=",$-COMFROM IF0 frqroshtab2frq INCBIN "KOZASM DW #CDAtab0frq INCBIN "KOZPTtab1frq INCBIN "KOZST ELSE NT_DATA DB T_NEW_0-T_ ADC A,D DB TCNEW_0-T_  DB T_NEW_1-T_ OR A DB TCNEW_1-T_  DB T_NEW_2-T_ ADC A,D DB TCNEW_2-T_  DB T_NEW_3-T_ ADC A,D DB TCNEW_3-T_T_TCNEW_1TCOLD_1 DB #5C+1,0TCNEW_3 DB #56+1TCOLD_3 DB #1E+1,#22+1,#24+1,#28+1,#2C+1,#2E+1,#32+1,#BE+1,0TCNEW_0 DB #1C+1,#20+1,#22+1,#26+1,#2A+1,#2C+1,#30+1,#54+1 DB #BC+1,#BE+1,0TCNEW_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_1T_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*2T_NEW_3T_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*2T_OLD_0=T_OLD_3+2T_NEW_0=T_OLD_3+2 DW #066D*2T_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 MEMOBUF;(320=#140)SIN=$+#23F/256<8 DISPLAY "SKIP BEFORE SIN=",SIN-MEMOBUF-#140 DISPLAY "SINEND=",SIN+#1000PRFONSCR IFN mkvol LD HL,#11 LD D,H,E,H LD IX,TVOL+16 LD B,#10INITV2 PUSH HL ADD HL,DE EXD SBC HL,HLINITV1 LD A,L RLA LD A,H ADC A,0 LD (IX),A INC IX ADD HL,DE INC B LD A,B AND 15 JNZ INITV1 POP HL LD A,E CP #77 JR NZ,$+3 INC E INC B DJNZ INITV2 ENDIF LD HL,#48E1,BC,#4810 CALL VlN LD L,#E5 CALL VlN LD L,#E7 CALL VlN LD L,#EF CALL VlN LD L,#F7 CALL VlN LD L,#FF CALL VlN LD HL,#4715,BC,#2281 CALL VlN LD L,#1A CALL VlN LD L,#1F DEC C CALL VlN LD L,#10,C,1 CALL VlN INC LPRFONSCRL DUP 3 LD BC,#4FF LD (HL),C INC L DJNZ $-2 INC L EDUP BIT 0,H LD HL,#40B1 JNZ PRFONSCRL LD HL,#4FC0,B,31 LD (HL),C INC L DJNZ $-2 LD (HL),#F0 LD DE,#1A06 CALL pRSprRR,pRSprRR LD E,10 CALL pRSprRR LD DE,#700,C,8;10 PRFONSCR0 CALL pRSprPM DEC C JNZ PRFONSCR0 LD DE,#1806 CALL pRSprPM2 INC E CALL pRSprPM2,pRSprPM2 LD DE,#1D0D CALL pRSprPM LD E,6 CALL pRSprPM2 INC E CALL pRSprPM pRSprPM2 CALL pRSprPM pRSprPM LD HL,SprPM,B,8 pRSprU PUSH DE,HL CALL DE2SCR POP DE pRSpr0 LD A,(DE),(HL),A INC HL,DE LD A,(DE),(HL),A INC DE DEC HL INC H DJNZ pRSpr0 POP DE INC E RET pRSprRR LD HL,SprRRR,B,6 JR pRSprU VlN PUSH BC,HL VlN0 LD (HL),C CALL DHL DJNZ VlN0 POP HL,BC RET SprPM DD 0101100011017C7C110110000101AAAA SprRRR DD 0000222033303BB833302220 Tfonscr DB "Tempo 04 Disk Options",6,0,1 DB "Position 00 Clears",6,0,2 DB "Pattern 00 Compiler",6,0,3 DB "Length 01 Decompiler",6,0,4 DB "Loop to 00 Play Melody",6,0,5 DB "Volume 0F Play Pattern",6,0,6 DB "Edit patt. 00 About Me Sample 01 01" DB 6,0,7 DB "Patt length 64 Edit Melody Ornam. 01 01" DB 6,2,8 DB "Octave 04 Set_up" DB 6,2,9 DB "Edit step 00",6,38,9,"Pattern 00 Home00",6,0,10 DB "Edit data OFF ----",6,38,10,"Channel 01 01",6,0,11 DB "Auto env. OFF 1:1",6,38,11,"Begin 00 00" DB 6,23,11,"Chip 01" DB 6,0,12 DB "Music:",6,38,12,"End 63 Exchange" DB " by:",6,39,13,"Volume Tone +00 ",6,0,14 DB " ---- ---- ---- ---- ----",#A0 FONATRS INCBIN "FONATRS end;(320=#140) SIN=$+#23F/256<8 DISPLAY "SKIP BEFORE SIN=",SIN-MEMOBUF-#140 DISPLAY "SINEND=",SIN+#1000 PRFONSCR IFN mkvol LD HL,#11 LD D,H,E,H L

Navigation menu