Difference between revisions of "PROTRACKER372 PTCONST H"

From MSX MUSIC WIKI
Jump to: navigation, search
(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 kAON="A kBEM=198 k...")
(Tags: Mobile edit, Mobile web edit)
 
(Tags: Mobile edit, Mobile web edit)
 
Line 1: Line 1:
PTconst C��C$�%#¾        MAIN "",#C6
+
PTconst C��C$�%#¾         
FD=32765
+
MAIN "",#C6
iy=23610
+
FD=32765
pg=#5B5C
+
iy=23610
pg6=#10
+
pg=#5B5C
pg4=#16
+
pg6=#10
pg3=#14
+
pg4=#16
pg7=#17
+
pg3=#14
;CS:
+
pg7=#17
kTRA="T
+
;CS:
kBEG="U
+
kTRA="T
kEND="I
+
kBEG="U
kCOP="Y
+
kEND="I
kORD="L
+
kCOP="Y
kEON="E
+
kORD="L
kAON="A
+
kEON="E
 
+
kAON="A
kBEM=198
+
kK="K
+
kBEM=198
kE="E
+
kK="K
kIns=201
+
kE="E
kSmp=172
+
kIns=201
kOrn=197
+
kSmp=172
kssA=226
+
kOrn=197
        IFN 1
+
kssA=226
;Macros keys
+
        IFN 1
kL=15
+
;Macros keys
kssL="="
+
kL=15
kHom=199
+
kssL="="
kEnd=200
+
kHom=199
kTab=6
+
kEnd=200
kTabL=7
+
kTab=6
kDelLn=12
+
kTabL=7
kssE=">
+
kDelLn=12
kssR="<
+
kssE=">
kChip=14
+
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  
 
         ELSE  
;old keys
+
        ORG TVOL-256
kL="L"
+
        INCBIN "PLYC0",512
kssL="="
+
        ORG TVOL+256
kHom=15
 
kEnd=")
 
kTab=6
 
kTabL=7
 
kDelLn=199
 
kssE=200
 
kssR="<
 
kChip=12
 
 
         ENDIF  
 
         ENDIF  
 
+
        DS #C000-$
_c000=#C000
+
        ELSE  
      IF0 ply
+
        ORG #BD00,7
mod=FrTab+#C0
+
plaer
plaer=TVOL
+
        INCBIN "PLYC0
      IFN mkvol
+
mod
        ORG TVOL
+
        ENDIF  
      ELSE
+
        IFN mkvol
        ORG TVOL-256
+
        ORG TVOL
        INCBIN "PLYC0",512
+
        DS 256
        ORG TVOL+256
+
        ENDIF  
      ENDIF
+
        ORG FrTab
        DS #C000-$
+
        DS #C0
      ELSE  
+
_ce26=mod+5;PT2SMPS
        ORG #BD00,7
+
_ce66=mod+69;PT2ORNS
plaer
+
_ce84=mod+99;PT2trxshft
        INCBIN "PLYC0
+
_ce86=mod+101;PT2TITL
mod
+
_cea4=mod+131;PT2POSS
      ENDIF  
+
lce3f=mod+30;TITL
      IFN mkvol
+
lce63=mod+66;AUTH
        ORG TVOL
+
lce84=mod+99;FRQ
        DS 256
+
lce85=lce84+1;TMP
      ENDIF  
+
lce86=lce84+2;LEN
        ORG FrTab
+
lce87=lce84+3;LP
        DS #C0
+
lce88=lce84+4;trxshft
_ce26=mod+5;PT2SMPS
+
lce8a=lce84+6;SMPS0-1F
_ce66=mod+69;PT2ORNS
+
lceca=mod+169;ORNS0-F
_ce84=mod+99;PT2trxshft
+
lceea=mod+201;POSS(pat*3,-1)
_ce86=mod+101;PT2TITL
+
_cea4=mod+131;PT2POSS
+
la79e=#A79E;STPOSS(pat+1)
lce3f=mod+30;TITL
+
la99e=#A99E;STLEN-1
lce63=mod+66;AUTH
+
la9bf=#A9BF;STORNS
lce84=mod+99;FRQ
+
labbf=#ABBF;STTMP
lce85=lce84+1;TMP
+
labc0=#ABC0;STPATLEN,STPPATLENS
lce86=lce84+2;LEN
+
labc1=#ABC1;,#6000->la000STPATS
lce87=lce84+3;LP
+
lce88=lce84+4;trxshft
+
;STPrecode_c000>la000
lce8a=lce84+6;SMPS0-1F
+
labf9=#ABF9;,#6000->la000STPPATS
lceca=mod+169;ORNS0-F
+
labdf=#ABDF;STPLP
lceea=mod+201;POSS(pat*3,-1)
+
 
+
la000=#A000;,#2000->ld000STLDADR
la79e=#A79E;STPOSS(pat+1)
+
ld000=#D000;pg7
la99e=#A99E;STLEN-1
+
;pg7
la9bf=#A9BF;STORNS
+
_d000=#D000;scrollers
labbf=#ABBF;STTMP
+
;pg4
labc0=#ABC0;STPATLEN,STPPATLENS
+
SMPS=#C000
labc1=#ABC1;,#6000->la000STPATS
+
ORNS=#E000
 
+
winbuf=#F000
;STPrecode_c000>la000
+
        ORG #C000,pg6
labf9=#ABF9;,#6000->la000STPPATS
+
TDHL
labdf=#ABDF;STPLP
+
wassin
 
+
s=32768
la000=#A000;,#2000->ld000STLDADR
+
c=777
ld000=#D000;pg7
+
        DUP 128
;pg7
+
        DB s>7
_d000=#D000;scrollers
+
a=s
;pg4
+
s=s+c
SMPS=#C000
+
c=c-(a-32768/1610)
ORNS=#E000
+
        EDUP
winbuf=#F000
+
INPAGE
        ORG #C000,pg6
+
        LD E,B
TDHL
+
sad0    LD L,E
wassin
+
        RES 7,L
s=32768
+
        LD D,'SIN+15
c=777
+
        LD BC,#1010
        DUP 128
+
        XOR A
        DB s>7
+
sad1    EXD
a=s
+
        LD (HL),C
s=s+c
+
        SLA (HL)
c=c-(a-32768/1610)
+
        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  
 
         EDUP  
INPAGE
+
        BIT 0,H
        LD E,B
+
        LD HL,#40B1
sad0    LD L,E
+
        JNZ PRFONSCRL
        RES 7,L
+
        LD HL,#4FC0,B,31
        LD D,'SIN+15
+
        LD (HL),C
        LD BC,#1010
+
        INC L
        XOR A
+
        DJNZ $-2
sad1    EXD
+
        LD (HL),#F0
        LD (HL),C
+
        LD DE,#1A06
        SLA (HL)
+
        CALL pRSprRR,pRSprRR
        EXD
+
        LD E,10
        BIT 7,E
+
        CALL pRSprRR
        JZ sader
+
        LD DE,#700,C,8;10
        SUB (HL)
+
PRFONSCR0
        JNC $+3
+
        CALL pRSprPM
        DEC C
+
        DEC C
        JR sadq
+
        JNZ PRFONSCR0
sader  ADD A,(HL)
+
        LD DE,#1806
        JNC $+3
+
        CALL pRSprPM2
        INC C
+
        INC E
sadq    DEC D
+
        CALL pRSprPM2,pRSprPM2
        DJNZ sad1
+
        LD DE,#1D0D
        INC E
+
        CALL pRSprPM
        JNZ sad0
+
        LD E,6
        CALL 8026
+
        CALL pRSprPM2
        JC $+7
+
        INC E
        LD A,201,(IMnOFF),A
+
        CALL pRSprPM
        LD DE,#4020
+
pRSprPM2
        LD HL,TDHL
+
        CALL pRSprPM
        LD B,E
+
pRSprPM
MKDHL  LD (HL),E
+
        LD HL,SprPM,B,8
        INC L
+
pRSprU
        LD (HL),D
+
        PUSH DE,HL
        INC L
+
        CALL DE2SCR
        CALL DDE
+
        POP DE
        DJNZ MKDHL
+
pRSpr0  LD A,(DE),(HL),A
        RET
+
        INC HL,DE
GETAYER
+
        LD A,(DE),(HL),A
        JZ IMnOFF
+
        INC DE
      ;LD (ITEMFLG),A
+
        DEC HL
        LD HL,(ARXY),A,L
+
        INC H
        SUB 8
+
        DJNZ pRSpr0
        CP 32
+
        POP DE
        JNC IMnOFF
+
        INC E
        LD A,H
+
        RET  
        LD HL,CLST3,DE,PLoffC
+
pRSprRR
        CP #D4
+
        LD HL,SprRRR,B,6
        JNC IMabc
+
        JR pRSprU
        LD L,CLST2,DE,PLoffB
+
        CP #AC
+
VlN
        JNC IMabc
+
        PUSH BC,HL
        LD L,CLST1,DE,PLoffA
+
VlN0    LD (HL),C
        CP #88
+
        CALL DHL
        JC IMnOFF
+
        DJNZ VlN0
      LD A,(WBUFTOP+1)
+
        POP HL,BC
      INC A ;edsmp
+
        RET  
      JZ IMnOFF
+
SprPM
IMabc  LD A,(DE),(HL),A
+
        DD 0101100011017C7C110110000101AAAA
      ;INC HL
+
SprRRR
      ;LD (HL),A
+
        DD 0000222033303BB833302220
        CPL
+
Tfonscr
        LD (DE),A
+
        DB "Tempo      04      Disk Options",6,0,1
IMnOFF
+
        DB "Position    00        Clears",6,0,2
      LD A,(WBUFTOP+1)
+
        DB "Pattern    00        Compiler",6,0,3
      INC A  ;edsmp
+
        DB "Length      01      Decompiler",6,0,4
        LD A,#11,HL,8
+
        DB "Loop to    00      Play  Melody",6,0,5
        LD DE,rgbufA
+
        DB "Volume      0F      Play Pattern",6,0,6
      CALL NZ,GETRG
+
DB "Edit patt.  00        About Me        Sample 01        01"
        LD A,#16,HL,#209
+
DB 6,0,7
        LD DE,rgbufB
+
DB "Patt length 64      Edit  Melody      Ornam. 01        01"
        CALL GETRG
+
DB 6,2,8
        LD A,#1B,HL,#40A
+
DB "Octave    04        Set_up"
        LD DE,rgbufC
+
DB 6,2,9
GETRG
+
DB "Edit step 00",6,38,9,"Pattern 00    Home00",6,0,10
        LD (ZZC),A
+
DB "Edit data OFF ----",6,38,10,"Channel 01        01",6,0,11
        LD BC,-3
+
DB "Auto env. OFF  1:1",6,38,11,"Begin  00        00"
        OUT (C),L
+
DB 6,23,11,"Chip 01"
        IN A,(C)
+
DB 6,0,12
        OUT (C),H
+
DB "Music:",6,38,12,"End    63      Exchange"
        IN L,(C)
+
DB "  by:",6,39,13,"Volume  Tone  +00 ",6,0,14
        INC H
+
DB "      ---- ---- ----            ----            ----",#A0
        OUT (C),H
+
FONATRS
        CPL
+
        INCBIN "FONATRS
        AND #F
+
end;(320=#140)
        ADD A,'SIN
+
SIN=$+#23F/256<8
        LD H,A
+
        DISPLAY "SKIP BEFORE SIN=",SIN-MEMOBUF-#140
        IN A,(C)
+
        DISPLAY "SINEND=",SIN+#1000
        BIT 3,A
+
PRFONSCR
        CPL
+
        IFN mkvol
        JZ $+3
+
        LD HL,#11
        XOR A
+
        LD D,H,E,H
        AND 7
+
        L
        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
 

Latest revision as of 03:05, 8 March 2020

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