PROTRACKER372 JP PTCONST H

From MSX MUSIC WIKI
Revision as of 03:06, 8 March 2020 by Kumokosi (talk | contribs) (Created page with "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 kA...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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 
        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 
        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