Changes

Jump to: navigation, search

PROTRACKER372 PTCMPV8 H

2,006 bytes added, 21:41, 8 March 2020
no edit summary
PTCMPv8 C��·Б�В√Ц MAIN "",#C6 CMbuf DB -1 ;USED ORNS+SMPS DS 16+31 t1buf DB -1,-1,-1,-1,0 MACRO IYAi LD (IY),A INC IY ENDM MACRO IYNi LD (IY),\0 INC IY ENDM MACRO IYLi LD (IY),L INC IY ENDM MACRO IYHi LD (IY),H INC IY ENDM PatDisp LD A,(IX-0) ;-8 patdisp=$-1 IYAi LD A,(IX-0) ;-7 patdisp1=$-1 IYAi RET PUTIY PUSH AF CALL OUT7 PUSH HL LD HL,(pnter) LD A,LY SUB mod LD (HL),A INC HL LD A,HY SBC A,'mod LD (HL),A INC HL LD (pnter),HL POP HL POP AF RET cMPILE LD (CMsmpU0),A LD (CMornU0),A XOR A LD (CMPcnt),A DI CALL CMPIL CALL CMPso LD IY,iy EI IYAiIFN process CALL CLOSWIN LD A,205,(MHEXFNT+2),A CALL OUT7 ENDIF sngE=$+1 LD HL,lce84 LD DE,mod ;OR A SBC HL,DE EXD RET PUTIY ;1 CMPIL IFN process CALL PROCESS ENDIF IF0 portres LD A,97 LD (t1not),A LD (po2not),A ENDIF ;DI LD HL,CMbuf+1 LD DE,CMbuf+2 LD BC,16+31-1 LD (HL),B LDIR LD DE,l5b00+1 LD H,D,L,B LD C,250 LD (HL),L LDIR CALL OUT7 LD HL,TPROTR LD DE,mod LD C,99 LDIR LD H,D,L,E INC DE LD (HL),B LD B,3 ;на всякий случ trks LDIR LD A,(FRQn) LD (lce84),A LD A,(TEMPO) LD (lce85),A LD A,(LENG) LD (lce86),A LD B,A LD A,(LOOP) CP B JC $+3 XOR A LD (lce87),A LD HL,TPOSS LD DE,lceea CMPpos LD A,(HL) ADD A,A ADD A,(HL) LD (DE),A INC L INC DE DJNZ CMPpos LD A,-1 LD (DE),A INC DE EXD LD (sngCUR),HL LD DE,-mod ADD HL,DE LD (lce88),HL LD A,(LENG) LD C,A LD A,PATS-1 CMPmax LD B,C LD HL,TPOSS CP (HL) JZ CMPmaxQ INC L DJNZ $-4 DEC A JP P,CMPmax CMPmaxQ INC A LD (CMPlst),A LD B,A ADD A,A ADD A,B LD L,A,H,0 ADD HL,HL ;LD DE,6 ;LD H,D,L,D ;ADD HL,DE ;DJNZ $-1 sngCUR=$+1 LD DE,0 ADD HL,DE LD (sngE),HL PUSH DE LD B,3 CMP00 XOR A ;PUSH DE CMP0 IFN portres LD (CMporeA),A ENDIF PUSH AF PUSH BC CALL CMPP POP BC POP AF INC A CMPlst=$+1 CP 0 IFN process JZ CMP0Q ;PUSH AF PUSH BC BIT 0,B ;A<>0: bar увеличивается на 1 CALL OUT7Z,PROBAR POP BC ;POP AF ;LD L,A JR CMP0 ELSE JNZ CMP0 ENDIF CMP0Q ;POP HL ;INC HL,HL ;LD (sngCUR),HL ;EXD LD A,B ADD A,5 LD B,A CP 13+5 JC CMP00 POP HL
PUSH HL
LD HL,(pnter) LD A,LY SUB mod LD (HL),A INC HL LD A,HY SBC A,'mod LD (HL),A INC HL LD (pnter),HL POP HL POP AF RET  cMPILE LD (CMsmpU0),A LD (CMornU0),A XOR A LD (CMPcnt),A DI CALL CMPIL CALL CMPso LD IY,iy EI IFN process CALL CLOSWIN LD A,205,(MHEXFNT+2),A CALL OUT7 ENDIF sngE=$+1 LD HL,lce84 LD DE,mod ;OR A SBC HL,DE EXD BUF RET ;1CMPIL IFN process CALL PROCESS ENDIF IF0 portres LD A,97 LD (t1not),A LD (po2not)B,A ENDIF ;DI LD HL,CMbuf+1 LD DE,CMbuf+2 LD BC,16+31-1 LD (HL),B3
LDIR
LD DE,l5b00+1 LD H,D,L,B LD C,250 LD (HL),L LDIR CALL OUT7 LD HL,TPROTR LD DE,mod LD C,99 LDIR LD H,D,L,EBUF INC POP DE LD (HL),B LD B,3 ;на всякий случ trks LDIR LD A,(FRQn) LD (lce84),A LD A,(TEMPO) LD (lce85),A LD A,(LENG) LD (lce86),A LD B,A CMPRE60 LD A,(LOOP) CP B JC $+3 XOR A LD (lce87CMPlst),A LD HL,TPOSS LD PUSH DE,lceeaCMPpos LD A,(HL)CMPRE61 ADD A,ALDI ADD A,(HL)INC BC LD (DE),ALDI INC LBC INC DE DJNZ CMPpos LD A,-1 LD (DE),A INC DE EXD LD (sngCUR),HL LD DE,-mod ADD HL,DE LD (lce88),HL LD A,(LENG) LD C,A LD A,PATS-1CMPmax LD B,C LD HL,TPOSS CP (HL) JZ CMPmaxQ INC L DJNZ $-4
DEC A
JP P,CMPmaxCMPmaxQ INC A LD (CMPlst),A LD B,A ADD A,A ADD A,B LD L,A,H,0 ADD HL,HL ;LD DE,6 ;LD H,D,L,D ;ADD HL,DE ;DJNZ $-1sngCUR=$+1 LD DE,0 ADD HL,DE LD (sngE),HL PUSH DE LD B,3CMP00 XOR A ;PUSH DECMP0 IFN portres LD (CMporeA),A ENDIF PUSH AF PUSH BC CALL CMPP POP BC POP AF INC ACMPlst=$+1 CP 0 IFN process JZ CMP0Q ;PUSH AF PUSH BC BIT 0,B ;A<>0: bar увеличивается на 1 CALL Z,PROBAR POP BC ;POP AF ;LD L,A JR CMP0 ELSE JNZ CMP0 ENDIF CMP0Q ;POP HL ;INC HL,HL ;LD (sngCUR),HL ;EXD LD A,B ADD A,5 LD B,A CP 13+5 JC CMP00  POP HL PUSH HL LD DE,BUF LD B,3 LDIR LD HL,BUF POP DE LD B,3CMPRE60 LD A,(CMPlst) PUSH DECMPRE61 LDI INC BC LDI INC BC INC DE,DE,DE,DE DEC A JNZ CMPRE61 POP DE INC DE,DE DJNZ CMPRE60 IFN process JP CMPQ ELSE RET ENDIF CMPP PUSH BC LD L,A,H,'TPATSZ LD A,(HL),(CMPPlen),A LD A,L CALL PATtoBUF ;делает OUT7 LD IY,(sngE) IFN portres LD A,97 LD (t1not),A LD (po2not),A ENDIF POP AF ;3/8/13 CALL CMt LD (sngE),IY RET CMt LD IX,BUF LD C,A,B,0 ADD IX,BC NEG LD (patdisp),A INC A LD (patdisp1),A SUB -8+1 JZ $+4 LD A,DJt1Nn LD (CMisb-1),A LD (CMt2IY),IY ;начало трека PUSH IX LD HL,t1buf+4 XOR A ;LD (CMoldT),A LD (CMoldN),A LD (HL),A DEC HL
LD (HL),A
DEC HL
LD (HL),A DEC HL DEC A LD (HL),A DEC HL LD (HL),A DEC HL LD (HL),A CMPPlen=$+1 LD A,0 INC A CMt10 EXA LD A,(t1not) CP 96 JNC $+5 LD (po2not),A LD HL,t1buf LD A,(IX) LD C,A AND #7F JNZ CMt1NZ LD A,97,(t1not),A JP CMt1IG CMt1NZ DEC A LD (t1not),A SLA C LD A,(IX+3) RRA RRA RRA RRA AND 31 JZ $+3 CP (HL) JZ CMt1IG LD (HL),A SUB -#D0 LD (t1smp),A INC L,L LD A,(IX+3) AND #F ;JZ CMt1Nt1
LD C,A
AND #7F JNZ CMt1NZ LD A,97,(t1not),A JP CMt1IGCMt1NZ DEC A LD (t1not),A SLA C LD A,(IX+3) RRA RRA RRA RRA AND 31 JZ $+3 CP (HL) JZ CMt1IG LD (HL),A SUB -#D0 LD (t1smp),A INC L,L LD A,(IX+3) AND #F ;JZ CMt1Nt1 LD C,A LD A,(IX+4) AND #F0 CP C JZ CMt1Nt1 RRCA RRCA RRCA RRCA CP (HL) JZ CMt1No1 LD (HL),A INC C DEC C JNZ CMseFx LD A,(t1smp) IYAi LD A,(HL) DEC L SUB -#40 JR CMt1GCMseFx DEC L LD (HL),#F SUB -#F0 IYAi
LD A,(t1smp)
SUB -#30
ADD A,A
JR CMt1G
CMt1No1
DEC L
LD A,C
OR A
JZ CMt1Nt2
CP #F
JNZ CMt1Yt
CP (HL)
JZ CMt1Nt2
LD (HL),A
XOR A
JR $+3
CMt1Yt LD (HL),A
SUB -#10
IYAi
SUB #10 ;JZ CMt1NE1 CALL NZ,PatDispCMt1NE1 LD A,(t1smp) SUB -#30 ADD A,A IYAi JR CMt1INE CMt1Nt1 LD A,(t1smpHL) JR CMt1Yo2 t1smp=$+1CMt1Nt2 LD A,0CMt1G IYAi
DEC L
CMt1IG SUB -#40 JR CMt1G INC CMseFx DEC L LD (HL),#F SUB -#F0 IYAi LD A,(IXt1smp) SUB -#30 ADD A,A JR CMt1G CMt1No1 DEC L LD A,C OR A JZ CMt1Nt2 CP #F JNZ CMt1Yt CP (HL) JZ CMt1Nt2 LD (HL),A XOR A JR $+3 CMt1Yt LD (HL),A SUB -#10 IYAi SUB #10 ;INC LJZ CMt1NE1 AND CALL NZ,PatDisp CMt1NE1 LD A,(t1smp) SUB -#F30 LD C ADD A,A JZ IYAi JR CMt1INE ;JZ CMt1INo CMt1Nt1 LD A,(t1smp) JR CMt1Yo2 t1smp=$+1 CMt1Nt2 LD A,0 CMt1G IYAi ; DEC L CMt1IG INC L LD A,(IX+3) CP ;INC L AND #F JNZ $+5 CP (HL)LD C,A
JZ CMt1INE
;JZ CMt1INo ;DEC L CP #F JNZ $+5 CP (HL) JZ CMt1INE LD (HL),A INC A AND #F SUB -#B0 IYAi SUB #B0 ;JZ CMt1INE ;B0 ;Bx,Henv,Lenv CALL NZ,PatDisp CMt1INE INC L LD A,(IX+4) AND #F0 CP C JZ CMt1INo RRCA RRCA RRCA RRCA CP (HL)
JZ CMt1INo
RRCA RRCA RRCA RRCA CP (HL) JZ CMt1INo LD (HL),A SUB -#40 CMt1Yo2 IYAi CMt1INo INC L LD A,(IX+4) AND #F JZ CMt1Nv CP (HL) JZ CMt1Nv LD (HL),A SUB 64 IYAi CMt1Nv INC L JR CMt1Nn CMisb LD A,(IX-6) AND 31 CP (HL) JZ CMt1Nn LD (HL),A SUB -#20 IYAi DJt1Nn=$-CMisb CMt1Nn LD A,(IX+1) AND #F0 CALL NZ,CMcom CALL CMt1PP LD A,C CMoldN=$+1 CP 0 JZ CMt1Nb IYNi #B1 LD (CMoldN),A IYAi CMt1Nb CALL CMnot CMt1Q LD H,'CMbuf LD A,(t1buf+2) LD L,A RLA JC $+4 LD (HL),-1 LD A,(t1buf) ADD A,16 JC $+5 LD L,A LD (HL),-1 EXA OR A JP NZ,CMt10 IYAi ;#0=end of track POP IX PUSH IY ;CMPcnt=$+1 LD A,(CMPcnt) OR A JZ CMt2Q ;LD (CMt2L),A ;кол-во сделанных треков ;LD IX,lce88 ;начало треков ;LD E,(IX) ;LD D,(IX+1) ;LD HL,mod ;ADD HL,DE ;PUSH HL ;POP IX LD IX,(lce88) LD DE,mod ADD IX,DE ;LD IY,(CMt2IY) ;начало текущего трека XOR ACMt20 LD E,A ADD A,A LD L,A LD H,'l5b00 LD C,(HL) INC L LD B,(HL) ;длина старого трека LD A,E EXA LD L,(IX) INC IX LD H,(IX) LD (CMt2HL),HL ;смещ. старого трека INC IX
LD DE,mod
ADD IX,DE ;LD IY,(CMt2IY) ;начало текущего трека XOR A CMt20 LD E,A ADD A,A LD L,A LD H,'l5b00 LD C,(HL) INC L LD B,(HL) ;длина старого трека LD A,E EXA LD L,(IX) INC IX LD H,(IX) LD (CMt2HL),HL ;смещ. старого трека INC IX LD DE,mod ADD HL,DE ;PUSH IY ;POP DE ;начало текущего трека LD DE,(CMt2IY) ;начало текущего трека LD A,B OR C JZ CMt2Ncp CMt2cp LD A,(DE) CP (HL) JNZ CMt2Ncp INC HL,DE DEC BC LD A,B OR C JNZ CMt2cp CMt2Ycp POP HL ;бывший IY CMt2HL=$+1 LD DE,0 ;смещ. старого трека (к-й такой же, как новый) LD HL,CMPcnt INC (HL) LD HL,(sngCUR) LD (HL),E INC HL LD (HL),D INC HL ;INC HL,HL,HL,HL LD (sngCUR),HL CMt2IY=$+2 LD IY,0 ;как было до компиляции трека RET CMt2Ncp BIT 7,D JNZ CMtNeMEM LD A,6 OUT (-2),A JR CMt2Ycp ;память кончилась CMtNeMEM EXA INC A CMPcnt=$+1 CP 0 ;кол-во сделанных треков JNZ CMt20 CMt2Q LD HL,CMPcnt LD B,(HL) INC (HL) ;кол-во сделанных треков LD HL,(CMt2IY) PUSH HL LD DE,-mod ADD HL,DE EXD LD HL,(sngCUR) LD (HL),E INC HL LD (HL),D INC HL ;INC HL,HL,HL,HL LD (sngCUR),HL POP DE ;начало текущего трека POP HL ;бывший IY=после конца трека
PUSH HL
LD DE,-mod ADD HL,DE EXD LD HL,(sngCUR) LD (HL),E INC HL LD (HL),D INC HL ;INC HL,HL,HL,HL LD (sngCUR),HL POP DE ;начало текущего трека POP HL ;бывший IY=после конца трека PUSH HL POP IY OR A SBC HL,DE EXD LD L,B ;кол-во сделанных треков ADD HL,HL LD H,'l5b00 LD (HL),E INC L LD (HL),D ;длина трека RET CMPso LD HL,lce8a LD (pnter),HL LD IY,(sngE) XOR A CMPs PUSH AF CALL CMPsmp POP AF INC A AND 31 JNZ CMPs LD HL,lceca LD (pnter),HL CMPo PUSH AF CALL CMPorn POP AF INC A AND 15 JNZ CMPo LD (sngE),IY RET CMPsmp LD L,0 PUSH AF ADD A,'SMPS LD H,A CALL OUT4 LD DE,BUF PUSH DE POP IX LD BC,256 LDIR POP AF LD B,A ADD A,16 LD H,'CMbuf LD L,A LD A,(HL) LD L,B ADD HL,HL LD H,'TSMPSZ OR A JNZ CMsmpU OR (HL) JNZ CMsmpU0 INC A INC HL SUB (HL) DEC HL JNZ CMsmpU0 LD A,(IX+2) XOR 64 OR (IX) OR (IX+1) JNZ CMsmpU0 LD A,(IX+3) CP 15 CMsmpU0 JZ pntii ; CMsmpU CALL PUTIY LD A,(HL) IYAi INC HL LD A,(HL) IYAi LD B,A CMPS0 LD A,(IX+2) LD C,A AND 31 RLCA LD D,A LD A,C AND #20 JZ $+4 LD A,1 OR D
LD D,A
LD A,C(IX+3) AND #20 JZ $+4 LD A,1C0
OR D
IYAi LD A,C RLCA AND #80 LD D,A LD A,C RRCA RRCA RRCA AND #10 OR D LD D,A LD A,(IX+3) LD E,A AND #F OR D LD D,A LD A,E RLCA AND #C060 OR D IYAi LD A,(IX) IYAi LD A,(IX+1) IYAi LD DE,4 ADD IX,DE DJNZ CMPS0 RET pnter=$+1 pntii LD HL,0 INC HL,HL LD (pnter),HL RET CMPorn PUSH AF CALL HLOR3 CALL OUT4 LD DE,BUF LD BC,64 LDIR POP AF LD L,A,H,'CMbuf LD C,(HL) LD HL,TORNSZ ADD A,A ADD A,L LD L,A LD A,C OR A JNZ CMornU OR (HL) JNZ CMornU0 INC A INC HL SUB (HL) DEC HL JNZ CMornU0 LD A,(BUF) OR A CMornU0 JZ pntii ; CMornU CALL PUTIY PUSH IY POP DE LDI INC BC LD A,(HL) LD (DE),A INC DE LD C,A LD HL,BUF LDIR PUSH DE POP IY RET t1not=$+1 CMnot LD A,0 LD H,#D0 CP 97 JZ CMnotQ LD H,#C0 CP 96 JZ CMnotQ SUB #B0 LD H,A CMnotQ IYHi PUSH IX CMnotIX=$+2 LD IX,0 CMjp=$+1 CALL CMret LD HL,CMret,(CMjp),HL POP IX CMret RET CMcom LD C,16 SUB C JZ CMglD SUB C JZ CMglU SUB C JZ CMpor SUB C JP Z,CMso SUB C JP Z,CMoo SUB C JP Z,CMvib SUB 48 JZ CMenD SUB C JZ CMenU SUB C RET NZ LD A,(IX+2) ;CMoldT=$+1 ;CP 0 ;RET Z OR A RET Z LD A,9 LD HL,CMtm2 JR CMenDQ CMglD LD HL,CMgD2 JR $+5 CMglU LD HL,CMgU2 LD A,1 JR CMenDQ CMgD2 LD A,(IX+1) AND #F LD H,A JR CMpoQ CMgU2 LD A,(IX+1) AND #F LD H,A SCF JR CMpoQ CMenU LD HL,CMgU2 JR $+5 CMenD LD HL,CMgD2 LD A,8 CMenDQ IYAi LD (CMjp),HL RET CMpor IFN portres LD A,(po2not) CP 96 CALL NC,CMpores LD (po2not),A ENDIF LD A,C(t1not) CP 96 RET NC po2not=$+1 RLCA CP 0 RET Z LD A,2 LD HL,CMpo2 JR CMenDQ CMpo2 LD A,(IX+1) AND #80F IYAi LD A,(po2not) LD HL,FrTab ADD A,A ADD A,L LD L,A LD E,(HL) INC L LD D,(HL) LD A,(t1not) ADD A,A ADD A,FrTab LD L,A LD A,(HL) INC L LD H,(HL) LD L,A SBC HL,DE PUSH AF CALL C,NEGHL POP AF IYLi CMpoQ IYHi LD L,(IX+2),H,0 CALL C,NEGHL IYLi IYHi RET CMoo LD A,4 JR CMsoQ CMso LD A,3 CMsoQ LD HL,CMof JR CMenDQ CMvib LD A,5 LD HL,CMv2 JR CMenDQ CMof LD A,(IX+2) AND 63 IYAi RET CMtm2 LD A,(IX+2) ;LD (CMoldT),A IYAi RET CMv2 LD A,(IX+2) LD C,A AND #F0 RRCA RRCA RRCA RRCA IYAi LD A,C AND #10F IYAi RET CMt1PP LD (CMnotIX),IX EXA LD B,A EXA DJNZ CMisnot EXA DEC A EXA LD A,(CMoldN) DEC A JZ CMt1PPQ IYNi #B1 IYNi 1 CMt1PPQ CALL CMnot POP HL JP CMt1Q ;COUNT blS CMisnot LD C,1 CMisno0 LD DE,18 ADD IX,DE OR D LD HL,t1buf+1 LD DA,(IX) AND #7F JNZ CMisnoQ LD A,(IX+1) AND #F0 JNZ CMisnoQ INC L LD A,(IX+3) AND #F
LD E,A
AND JZ CMisn0x ;JZ CMisnNE CP #F OR D JNZ CMisnoQ DEC L CP (HL) LD D,A JNZ CMisnoQ CMisn0x LD A,E(IX+4) RLCA AND #60F0 OR DCP E IYAiJZ CMisnNE RRCA RRCA RRCA RRCA INC L CP (HL) JNZ CMisnoQ CMisnNE LD A,(IX+4) IYAi INC L AND #F JZ $+5 CP (HL) JNZ CMisnoQ INC L LD A,(IX+CMisb-1) IYAi OR A JNZ CMisnNQ LD DEA,4(IX-6) CP (HL) JNZ CMisnoQ ADD IX,DE CMisnNQ INC C DJNZ CMPS0CMisno0 CMisnoQ EXA SUB C EXA RET pnter LDPT3PP CALL 8026 ;CS=$merge JNC PT3PP2 CALL CLPATS CALL CLORNSM LD DE,TPATSZ+1pntii LD BC,PATS-1 LD HLH,D,0 INC HLL,HLB LD (pnterHL),HL63 RET LDIR CMPorn PT3PP2 PUSH AF;DI CALL HLOR3 CALL OUT4OUT7 LD DEA,(lce84),(FRQn),BUFA LD BCA,(lce85),(TEMPO),64A LDIR POP AF LD LA,(lce87),(LOOP),A, LD H,'CMbufl5b00 LD CBC,(HL)PATS*256 Mdiv3 LD HLA,TORNSZC ADD A,A ADD ,A,LC LD L,A LD A,C OR A JNZ CMornU OR (HL),C JNZ CMornU0 INC AC INC HL DJNZ Mdiv3 SUB (HL) CALL CLPOS DEC HL JNZ CMornU0 LD A,(BUFlce86),(LENG),A OR LD B,ACMornU0 JZ pntii ; LD IX,lceeaCMornU LD H,'l5b00 CALL PUTIY LD DE,TPOSS PUSH IY PT3POS LD L,(IX) POP LD A,(HL),(DE),A LDI INC E INC BCIX DJNZ PT3POS LD XOR A,(HL)
LD (DE),A
INC DE
LD C,A
LD HL,BUF
LDIR
PUSH DE
POP IY
RET
 
t1not=$+1
CMnot
LD A,0
LD H,#D0
CP 97
JZ CMnotQ
LD H,#C0
CP 96
JZ CMnotQ
SUB #B0
LD H,A
CMnotQ IYHi
PUSH IX
CMnotIX=$+2
LD IX,0
CMjp=$+1
CALL CMret
LD HL,CMret,(CMjp),HL
POP IX
CMret RET
CMcom
LD C,16
SUB C
JZ CMglD
SUB C
JZ CMglU
SUB C
JZ CMpor
SUB C
JP Z,CMso
SUB C
JP Z,CMoo
SUB C
JP Z,CMvib
SUB 48
JZ CMenD
SUB C
JZ CMenU
SUB C
RET NZ
LD A,(IX+2)
;CMoldT=$+1
;CP 0
;RET Z
OR A
RET Z
LD A,9
LD HL,CMtm2
JR CMenDQ
CMglD
LD HL,CMgD2
JR $+5
CMglU
LD HL,CMgU2
LD A,1
JR CMenDQ
CMgD2
LD A,(IX+1)
AND #F
LD H,A
JR CMpoQ
CMgU2
LD A,(IX+1)
AND #F
LD H,A
SCF
JR CMpoQ
CMenU
LD HL,CMgU2
JR $+5
CMenD
LD HL,CMgD2
LD A,8
CMenDQ IYAi
LD (CMjp),HL
RET
CMpor
IFN portres
LD A,(po2not)
CP 96
CALL NC,CMpores
LD (po2not),A
ENDIF
LD A,(t1not)
CP 96
RET NC
po2not=$+1
CP 0
RET Z
LD A,2
LD HL,CMpo2
JR CMenDQ
CMpo2
LD A,(IX+1)
AND #F
IYAi
LD A,(po2not)
LD HL,FrTab
ADD A,A
ADD A,L
LD L,A
LD E,(HL)
INC L
LD D,(HL)
LD A,(t1not)
ADD A,A
ADD A,FrTab
LD L,A
LD A,(HL)
INC L
LD H,(HL)
LD L,A
SBC HL,DE
PUSH AF
CALL C,NEGHL
POP AF
IYLi
CMpoQ
IYHi
LD L,(IX+2),H,0
CALL C,NEGHL
IYLi
IYHi
RET
CMoo
LD A,4
JR CMsoQ
CMso
LD A,3
CMsoQ LD HL,CMof
JR CMenDQ
CMvib
LD A,5
LD HL,CMv2
JR CMenDQ
CMof
LD A,(IX+2)
AND 63
IYAi
RET
CMtm2
LD A,(IX+2)
;LD (CMoldT),A
IYAi
RET
CMv2
LD A,(IX+2)
LD C,A
AND #F0
RRCA
RRCA
RRCA
RRCA
IYAi
LD A,C
AND #F
IYAi
RET
CMt1PP
LD (CMnotIX),IX
EXA
LD B,A
EXA
DJNZ CMisnot
EXA
DEC A
EXA
LD A,(CMoldN)
DEC A
JZ CMt1PPQ
IYNi #B1
IYNi 1
CMt1PPQ CALL CMnot
POP HL
JP CMt1Q
 
;COUNT blS
CMisnot
LD C,1
CMisno0 LD DE,18
ADD IX,DE
LD HL,t1buf+1
LD A,(IX)
AND #7F
JNZ CMisnoQ
LD A,(IX+1)
AND #F0
JNZ CMisnoQ
INC L
LD A,(IX+3)
AND #F
LD E,A
JZ CMisn0x
;JZ CMisnNE
CP #F
JNZ CMisnoQ
DEC L
CP (HL)
JNZ CMisnoQ
CMisn0x LD A,(IX+4)
AND #F0
CP E
JZ CMisnNE
RRCA
RRCA
RRCA
RRCA
INC L
CP (HL)
JNZ CMisnoQ
CMisnNE LD A,(IX+4)
INC L
AND #F
JZ $+5
CP (HL)
JNZ CMisnoQ
INC L
LD A,(CMisb-1)
OR A
JNZ CMisnNQ
LD A,(IX-6)
CP (HL)
JNZ CMisnoQ
CMisnNQ INC C
DJNZ CMisno0
CMisnoQ EXA
SUB C
EXA
RET
LDPT3PP
CALL 8026 ;CS=merge
JNC PT3PP2
CALL CLPATS
CALL CLORNSM
LD DE,TPATSZ+1
LD BC,PATS-1
LD H,D,L,B
LD (HL),63
LDIR
PT3PP2
;DI
CALL OUT7
LD A,(lce84),(FRQn),A
LD A,(lce85),(TEMPO),A
LD A,(lce87),(LOOP),A
LD H,'l5b00
LD BC,PATS*256
Mdiv3 LD A,C
ADD A,A,A,C
LD L,A
LD (HL),C
INC C
DJNZ Mdiv3
CALL CLPOS
LD A,(lce86),(LENG),A
LD B,A
LD IX,lceea
LD H,'l5b00
LD DE,TPOSS
PT3POS LD L,(IX)
LD A,(HL),(DE),A
INC E
INC IX DJNZ PT3POS XOR A LD (DE),A INC E JNZ $-2 LD HL,lce3f LD DE,TTITLE LD C,32 LDIR LD HL,lce63 LD DE,TAUTHOR LD C,33;32 ;3.7 for TS LDIR CALL PT3PATS CALL PT3SMP CALL PT3ORN JP GETPATLEN ;LD HL,(TPOSS),H,'TPATSZ ;LD A,(HL),(PATLEN),A ;IF process ;LD IY,iy ;ENDIF ;RET IFN process PROCESS LD A,201,(MHEXFNT+2),A XOR A LD (PROBARX),A LD BC,mPROCES CALL WINDUM LD HL,tPROCES JP PRMENU mPROCES DB 4,#C,#1C,#10,#47 tPROCES DB 6,#11,0,"PROCESSIN",#C7 CMPQ XOR A ;2 PROBAR PUSH AF PROBARY=$+1 PROBARX=$+2 LD DE,1 OR A ;A=0: 100% LD B,1 JNZ PROBAR0 LD A,#2A ;? SUB D JC PROBARQ JZ PROBARQ LD B,A PROBAR0 LD A,"0" CALL PRADD INC D DJNZ PROBAR0 LD (PROBARY),DE PROBARQ POP AF RET ENDIF IFN portres CMpores CMporeA=$+1 LD A,0 LD HL,TPOSS LD B,(HL) INC L cMpore0 CP (HL) JZ $+6 LD B,(HL) INC L JNZ cMpore0 LD A,B ;пред.паттерн CALL AtoPAT LD HL,(patdisp),H,0 ADD HL,DE LD B,#40 LD DE,18 LD A,(HL) AND #7F DEC A LD C,A cMpore1 LD A,(HL) AND #7F JZ cMpore2 DEC A CP 96 JZ $+3 LD C,A cMpore2 ADD HL,DE DJNZ cMpore1 CALL OUT7 LD A,C RET ENDIF LDPT2PP LD A,32 LD (ts48),A LD A,1,(FRQn),A CALL CLPATS CALL CLSMPS ;DICLos? CLORNSM? CALL CLORNS LD DE,TPATSZ+1 LD BC,PATS-1 LD H,D,L,B LD (HL),63 LDIR CALL PT2PP2 XOR A LD (POS),A RET PT2PP2 CALL OUT7 LD HL,mod LD A,(HL),(TEMPO),A INC HL LD A,(HL),(LENG),A INC HL PUSH AF LD A,(HL),(LOOP),A LD HL,_ce86 LD DE,TTITLE LD BC,30 LDIR LD A," " LD (DE),A INC DE LD (DE),A LD HL,TAUTHOR LD DE,TAUTHOR+1 LD (HL),A LD C,31 LDIR POP AF LD C,A LD HL,_cea4 LD DE,TPOSS LDIR
XOR A
LD (POS),A
RET
PT2PP2
CALL OUT7
LD HL,mod
LD A,(HL),(TEMPO),A
INC HL
LD A,(HL),(LENG),A
INC HL
PUSH AF
LD A,(HL),(LOOP),A
LD HL,_ce86
LD DE,TTITLE
LD BC,30
LDIR
LD A," "
LD (DE),A
INC DEE JNZ $-2 CALL PT2SMP CALL PT2ORN CALL PT2PATS GETPATLEN LD HL,(DETPOSS),A LD HLH,TAUTHOR'TPATSZ LD DEA,TAUTHOR+1 LD (HL),(PATLEN),A LD C,31 RET LDIR PT3PATS POP AF CALL OUT7 LD CB,APATS-1 PT3P0 LD HL,_cea4TPOSS PT3P1 LD DEA,TPOSS(HL) LDIR CP B JZ PT3P0Q XOR A INC L JNZ PT3P1 DJNZ PT3P0 PT3P0Q LD A,B,(DEPT3Plst),A INC E JNZ $-2 CALL PT2SMP CALL PT2ORN CALL PT2PATSGETPATLEN LD LD HL,(TPOSSlce88) LD DE,Hmod ADD HL,'TPATSZDE XOR A PT3P2 PUSH AF CALL KILLBUF LD AE,(HL),(PATLEN),A RET PT3PATS CALL OUT7 LD B,PATS-1PT3P0 LD INC HL,TPOSSPT3P1 LD AD,(HL) CP B JZ PT3P0Q INC LHL JNZ PT3P1 DJNZ PT3P0 PUSH HLPT3P0Q LD A,B3,(PT3PlstPT3Edsp),A LD IX,BUF+3 CALL PT3PAPP POP HL LD E,(lce88HL) INC HL LD DED,mod(HL) ADD INC HL,DE XOR APT3P2 PUSH AF CALL KILLBUFHL LD EA,8,(HLPT3Edsp),A INC HL;LD (PT3putN+1),A ;noise ON LD DIX,(HL)BUF+8 INC HL CALL PT3PAPP PUSH POP HL LD A,3E,(PT3EdspHL),A LD IX,BUF+3 CALL PT3PAPP POP INC HL LD ED,(HL) INC HL LD D,( PUSH HL) INC HL;XOR A PUSH HL LD A,8,(PT3Edsp),A ;LD (PT3putN+1),A ;noise ONOFF LD A,13,(PT3Edsp),A LD IX,BUF+813 CALL PT3PAPP POP HL LD E,(HL) POP AF INC HL LD ;D,(HL)=patlen-1 INC HLCALL PATfrBUF PUSH HL PT3Plst=$+1 ;XOR A CP 0 ;LD (PT3putN+1),A ;noise OFF RET Z LD A,13,(PT3Edsp),INC A LD IX,BUF+13 JR PT3P2 CALL PT3PAPP POP HL ;на 99% совпадает с PT3PATS POP AF PT2PATS;D=patlen-1 CALL PATfrBUFOUT7PT3Plst=$+1 LD B,31 CP 0 PT2P0 LD HL,TPOSS RET Z PT2P1 LD A,(HL) INC A CP B JR PT3P2 JZ PT2P0Q INC L;на 99% совпадает с PT3PATS JNZ PT2P1PT2PATS DJNZ PT2P0 CALL OUT7 PT2P0Q LD A,B,31(PT2Plst),APT2P0 LD HL,TPOSS(_ce84)PT2P1 LD ADE,(mod ADD HL),DE CP B XOR A JZ PT2P0Q PT2P2 PUSH AF INC LCALL KILLBUF JNZ PT2P1 DJNZ PT2P0PT2P0Q LD A,BE,(PT2PlstHL),A LD INC HL, LD D,(_ce84HL) LD DE,mod INC HL ADD PUSH HL,DE XOR LD A,3PT2P2 PUSH AF LD IX,BUF+3 CALL KILLBUFPT2PAPP POP HL LD E,(HL) INC HL LD D,(HL) INC HL PUSH HL LD A,38 LD IX,BUF+38 CALL PT2PAPP POP HL LD E,(HL) INC HL LD D,(HL) INC HL PUSH HL LD A,813 LD IX,BUF+813 CALL PT2PAPP POP HL LD E,(HL) POP AF INC HLCALL PATfrBUF LD D,(HL) PT2Plst=$+1 INC HL CP 0 PUSH HL RET Z LD INC A,13 JR PT2P2 PT3PAPP EXD LD IXDE,BUF+13mod CALL PT2PAPP POP ADD HL,DE POP AF XOR A CALL PATfrBUF LD (PT3orN),APT2Plst=$+1 LD (PT3n),A CP 0 LD D,A RET Z PT3PAP0 LD BC,#1020 INC LD A,(HL) JR PT2P2PT3PAPP INC HL EXD OR A LD DE,mod RET Z ADD HLA,DEB XOR JC PT3orn ADD A,C LD (PT3orN), JC PT3smp ADD A LD (PT3n),AB LD D JP C,PT3vol ADD A,BPT3PAP0 LD BC JP C,#1020PT3Et LD ADD A,(HL)96 INC HL JC PT3note OR A RET Z ADD A,B JC PT3orn JP C,PT3newO ADD A,C JC PT3smp JP C,PT3nois ADD A,B JP C,PT3volPT3Etyp ADD A,B JP C,PT3EtPT3com PT3blN ADD LD A,96(HL) JC PT3note INC HL ADD DEC A,B JP C LD (PT3bls),PT3newO ADD A,C JP C,PT3nois JR PT3PAP0 ADD A,B PT3bls=$+1 JP C,PT3Etyp PT3blQ ADD LD A,B0 JP PT3com OR APT3blN JZ PT3PAP0 LD AE,(HL) INC HL DEC A LD (PT3bls)BC,A18 JR PT3PAP0 PT3bl0 INC D CALL PT3putNPT3bls=$+1 ADD IX,BCPT3blQ DEC E LD A,0 JNZ PT3bl0 OR JR PT3PAP0 PT3note INC D INC A JZ PT3PAP0 LD B,A LD EA,(IX) AND #80 OR B LD (IX),A CALL PT3putN CALL PT3cU LD BC,18 ADD IX,BC JR PT3blQ PT3orn ;Fx,smp*2 RRCA RRCA RRCA RRCA LD (PT3orN),A OR (IX+4) LD (IX+4),A LD A,#F ;LD (PT3typ),A LD (IX+3),A PT3oQ LD A,(HL) INC HL RLCA RLCA LD B,A AND #80 LD (IX),A LD A,B RLA OR (IX+3) LD (IX+3),A JP PT3PAP0 PT3smp JZ PT3bl ;end of note CP 16 JC $+6 SET 7,(IX) AND #F RLCA RLCA RLCA RLCA OR (IX+3) LD (IX+3),A JP PT3PAP0 PT3bl INC D CALL PT3putN CALL PT3cU LD BC,18 ADD IX,BC JP PT3blQ PT3vol JZ PT3res OR (IX+4) LD (IX+4),A JP PT3PAP0 PT3res LD A,(IX) AND #80 OR 97 LD (IX),A CALL PT3putN CALL PT3cU LD BC,18 ADD IX,BC INC D JP PT3blQ PT3Et JNZ PT3nEof ;B0=envoff LD A,#F ;LD (PT3typ),A OR (IX+3) LD (IX+3),A JP PT3eQ PT3nEof DEC A JP Z,PT3blN ;LD (PT3typ),A LD B,A LD A,(IX+3) AND #F0 OR B LD (IX+3),A CALL PT3env PT3orN=$+1 PT3eQ LD A,0 OR (IX+4) LD (IX+4),A JP PT3PAP0 PT3env PUSH HL PUSH IX POP HL PT3Edsp=$+1 LD BC,0 OR A SBC HL,BC LD B,H LD C,L POP HL LD A,(HL) INC HL LD (BC),A INC BC LD A,(HL) INC HL LD (BC),A RET PT3newO RLCA RLCA RLCA RLCA LD (PT3orN),A LD B,A JNZ PT3nXF0X LD A,(IX+3) AND #F JNZ PT3nXF0X LD A,(IX+3) OR #F LD (IX+3),A PT3nXF0X LD A,(IX+4) AND #F OR B LD (IX+4),A ;PT3typ=$+1 ;LD A,0 ;OR (IX+3) ;LD (IX+3),A JP PT3PAP0 PT3nois LD (PT3n),A JP PT3PAP0 ;4 PT3putN ;LD A,0 ;OR A ;RET Z LD A,LX ;проверяем channel=B RRA RET C LD (IX-6),0 PT3n=$-1 RET PT3Etyp JNZ PT3EnO LD A,#F ;LD (PT3typ),A OR (IX+3) LD (IX+3),A JR PT3EtyQ PT3EnO ;LD (PT3typ),A OR (IX+3) LD (IX+3),A CALL PT3env PT3EtyQ LD A,(PT3orN) OR (IX+4) LD (IX+4),A JP PT3oQ PT3jp=$+1 PT3cU CALL PT3ret PUSH HL LD HL,PT3ret LD (PT3jp),HL POP HL PT3ret RET PT3com PUSH HL DEC A LD HL,PT3glis JZ PT3cQ DEC A LD HL,PT3port JZ PT3cQ DEC A LD HL,PT3so JZ PT3cQ DEC A LD HL,PT3oo JZ PT3cQ DEC A LD HL,PT3vib JZ PT3cQ SUB 3 LD HL,PT3egl JZ $+5 LD HL,PT3tmp PT3cQ LD (PT3jp),HL POP HL JP PT3PAP0 PT3tmp LD A,(HL) INC HL LD (IX+2),A LD (IX+1),#B0 RET PT3port LD A,(HL) OR #30 LD (IX+1),A INC HL,HL,HL PUSH DE LD E,(HL) INC HL LD D,(HL) INC HL EXD LD A,H OR A ;JP P,$+6 CALL M,NEGHL XIX2EPOP EXD IFN goodpak LD (IX+2),E POP DE RET ELSE LD A,E POP DE IX2A LD (IX+2),A RET ENDIF PT3so LD A,(HL) INC HL LD (IX+1),#40 IFN goodpak LD (IX+2),A RET ELSE JR IX2A ENDIF PT3oo LD A,(HL) INC HL LD (IX+1),#50 IFN goodpak LD (IX+2),A RET ELSE JR IX2A ENDIF PT3vib LD A,(HL) RRCA RRCA RRCA RRCA INC HL OR (HL) INC HL LD (IX+1),#60 IFN goodpak LD (IX+2),A RET ELSE JR IX2A ENDIF PT3glis PUSH DE LD A,(HL) OR #10 LD C,A INC HL LD E,(HL) INC HL LD D,(HL) INC HL EXD ;LD A,H ;OR A LD (IX+1),C BIT 7,H JZ PT3gl1 ;JP P,PT3gl1 CALL NEGHL LD A,C AND #F OR #20 LD (IX+1),A PT3gl1 EXD LD (IX+2),E POP DE RET PT3egl PUSH DE LD A,(HL) OR #90 LD C,A INC HL LD E,(HL) INC HL LD D,(HL) INC HL EXD ;LD A,H ;OR A LD (IX+1),C BIT 7,H JZ PT3egl9 ;JP P,PT3egl9 CALL NEGHL LD A,C AND #F OR #A0 LD (IX+1),A PT3egl9 IFN goodpak EXD LD (IX+2),E POP DE RET ELSE JR XIX2EPOP ENDIF PT2orn RLCA RLCA RLCA RLCA LD (PT2orN),A LD B,A LD A,(IX+4) AND #F OR B LD (IX+4),A PT2typ=$+1 LD A,0 OR (IX+3) LD (IX+3),A JR PT2PAP0 PT2blN LD (PT2bls),A JR PT2PAP0 PT2vol OR (IX+4) LD (IX+4),A JR PT2PAP0 PT2tmp LD (IX+1),#B0 LD A,(HL) JR IX2P2P PT2port LD (IX+1),#31 LD A,(HL) INC HL INC HL OR A JP P,IX2P2P NEG JR IX2P2P PT2glis LD (IX+1),#11 LD A,(HL) BIT 7,A JZ $+8 LD (IX+1),#21 NEG IX2P2P LD (IX+2),A INC HL JR PT2PAP0 PT2PAPP LD (PT2Edsp),A EXD LD DE,mod ADD HL,DE XOR A LD (PT2typ),A LD (PT2orN),A LD D,A PT2PAP0 LD C,16 LD A,(HL) INC HL OR A RET Z ADD A,32 JC PT2smp ADD A,96 JC PT2note ADD A,C JP C,PT2env ADD A,C JC PT2orn ADD A,64 JC PT2blN ADD A,C JC PT2vol INC A JZ PT2tmp INC A JZ PT2glis INC A JZ PT2port INC A JZ PT2PAP0 LD A,(HL) INC HL PUSH HL LD BC,(PT2Edsp) DEC BC,BC PUSH IX POP HL SBC HL,BC PT2NOI LD (HL),A ;noise
LD BC,18
PT3bl0 INC D CALL PT3putN ADD IX,BC DEC E JNZ PT3bl0 JR PT3PAP0PT3note INC D INC A LD B,A LD A,(IX) AND #80 OR B LD (IX),A CALL PT3putN CALL PT3cU LD BC,18 ADD IX,BC JR PT3blQPT3orn;Fx,smp*2 RRCA RRCA RRCA RRCA LD (PT3orN),A OR (IX+4) LD (IX+4),A LD A,#F ;LD (PT3typ),A LD (IX+3),APT3oQ LD A,(HL) INC HL RLCA RLCA LD B,A AND #80 LD (IX),A LD A,B RLA OR (IX+3) LD (IX+3),A JP PT3PAP0PT3smp JZ PT3bl ;end of note CP 16 JC $+6 SET 7,(IX) AND #F RLCA RLCA RLCA RLCA OR (IX+3) LD (IX+3),A JP PT3PAP0PT3bl INC D CALL PT3putN CALL PT3cU LD BC,18 ADD IX,BC JP PT3blQPT3vol JZ PT3res OR (IX+4) LD (IX+4),A JP PT3PAP0PT3res LD A,(IX) AND #80 OR 97 LD (IX),A CALL PT3putN CALL PT3cU LD BC,18 ADD IX,BC INC D JP PT3blQPT3Et JNZ PT3nEof;B0=envoff LD A,#F ;LD (PT3typ),A OR (IXBUF+3) LD (IX+3),A JP PT3eQPT3nEof DEC A JP Z,PT3blN ;LD (PT3typ),A LD B,A LD A,(IX+3) AND #F0 OR B LD (IX+3),A CALL PT3envPT3orN=$+1PT3eQ LD A,0 OR (IX+4) LD (IX+4),A JP PT3PAP0PT3env PUSH HL PUSH IX POP HLPT3Edsp=$+1 LD BC,0 OR A480
SBC HL,BC
LD BADD HL,HBC LD C,LJC PT2NOI POP HL LD A,(HL) JR PT2PAP0 PT2smp INC HL JZ PT2res LD (BC),A CP 16 INC BC JC $+6 LD A SET 7,(HLIX) INC HL LD (BC),A AND #F RET PT3newO RLCA RLCA RLCA RLCA LD OR (PT3orNIX+3),A LD B,A JNZ PT3nXF0X LD A,(IX+3),A AND #F JR PT2PAP0 JNZ PT3nXF0X PT2res LD A,(IX+3)96 OR #F PT2note INC A LD (IX+3)B,APT3nXF0X LD A,(IX+4) AND #F80 OR B LD (IX+4),A;PT3typ PT2bl INC D LD BC,18 ADD IX,BC PT2bls=$+1 ; LD A,0 ; OR A JZ PT2PAP0 INC D ADD IX,BC DEC A JNZ $-4 JR PT2PAP0 PT2env JZ PT2bl CP #F LD (PT2typ),A JNZ PT2norn OR (IX+3) ; LD (IX+3),A JP PT3PAP0 JR PT2eQPT3nois PT2norn OR (IX+3) LD (PT3nIX+3),A JP PT3PAP0 PUSH HL;4 PUSH IXPT3putN POP HL ; PT2Edsp=$+1 LD ABC,0 ; OR A ;RET Z SBC HL,BC LD AB,H,LX ;проверяем channel=B RRA RET C LD (IX-6),0LPT3n=$-1 INC BC RET PT3Etyp JNZ PT3EnO POP HL LD A,#F ;LD (PT3typHL),A OR (IX+3) INC HL LD (IX+3BC),A JR PT3EtyQ DEC BCPT3EnO ; LD A,(PT3typHL),A OR (IX+3) INC HL LD (IX+3BC),A CALL PT3env PT2orN=$+1PT3EtyQ PT2eQ LD A,(PT3orN)0
OR (IX+4)
LD (IX+4),A
JP PT3oQPT2PAP0 PT3SMP LD A,1PT3jp=$ LD HL,lce8a+12 PT3SMP0 PUSH AF CALL OUT7 LD E,(HL) INC HL LD D,(HL)PT3cU INC HL CALL PT3retEX (SP),HL PUSH HL ;AF LD A,E OR D JZ PT3SMPQ LD HL,mod ADD HL,DE LD DE,BUF PUSH DE POP IX LD B,2;BC,258 LDIR POP AF PUSH AF ADD A,A LD L,A,H,'TSMPSZ LD A,(IX),(HL),A INC L LD B,(IX+1),(HL),B POP AF PUSH AF ADD A,'SMPS LD H,A XOR A LD L,A CP B JZ PT3SMPQ CALL OUT4 PT3SMP1 LD A,(IX+2+2),(HL),A INC HL LD A,(IX+3+2),(HL),A INC HL LD A,(IX+0+2),D,A AND #3F RRA ;SRL A JNC $+4 OR #20 LD C,A LD A,(IX+1+2),E,A AND #F INC HL LD (HL),A LD A,D;(IX+0+2) AND #C0 OR (HL) LD (HL),A LD A,E AND #80 RRCA OR C LD C,A LD A,E AND #10 RLCA RLCA RLCA OR C DEC HL LD (HL),PT3retA INC HL LD A,E RRCA AND #30 OR (HL) LD (PT3jpHL),A INC HL LD DE,4 ADD IX,DE DJNZ PT3SMP1 PT3SMPQ POP AF
POP HL
PT3ret RET PT3com PUSH HL DEC INC A LD HL,PT3glis AND 31 JZ PT3cQ JNZ PT3SMP0 DEC A RET LD HL,PT3port JZ PT3cQ PT2SMP DEC A LD HL,PT3so JZ PT3cQ DEC A LD HL,PT3oo1 JZ PT3cQ DEC A LD HL,PT3vib_ce26 JZ PT3cQ PT2SMP0 PUSH AF SUB 3 CALL OUT7 LD HLE,PT3egl JZ $+5 LD (HL,PT3tmpPT3cQ LD (PT3jp),HL POP INC HL JP PT3PAP0PT3tmp LD AD,(HL) INC HL LD EX (IX+2SP),AHL LD (IX+1),#B0PUSH HL ;AF RET PT3port LD A,(HL)E OR #30D JZ PT2SMPQ LD (IX+1)HL,Amod INC HL, ADD HL,HL PUSH DE LD EDE,(HL)BUF INC HL PUSH DE LD D,(HL) POP IX INC HL EXD LD AB,H OR A 2;JP PBC,$+6 CALL M,NEGHLXIX2EPOP#C6 EXD IFN goodpak LD (IX+2),E LDIR POP DEAF RET PUSH AF ELSE LD ADD A,EA POP DEIX2A LD (IX+2)L,A,H,'TSMPSZ RET ENDIF PT3so LD A,(HL) INC HL LD (IX+1),#40 IFN goodpak LD (IX+2HL),A RET ELSE JR IX2A INC L ENDIF PT3oo LD AB,(HL) INC HL LD (IX+1),#50 IFN goodpak LD (IX+2HL),AB RET POP AF ELSE JR IX2A ENDIF PUSH AFPT3vib LD ADD A,(HL) RRCA RRCA RRCA RRCA INC HL OR (HL) INC HL'SMPS LD (IX+1)H,#60A IFN goodpak XOR A LD (IX+2)L,A RET CALL OUT4 ELSE JR IX2A ENDIF PT3glis PUSH DE PT2SMP1 LD A,(HLIX+0+2) OR #10
LD C,A
INC HL LD E,(HL) INC HL LD D,(HL) INC HL EXD ;LD A,H ;OR A LD (IX+1),C RRCA BIT 7,H JZ PT3gl1 RRCA ;JP P,PT3gl1 RRCA CALL NEGHL LD A,C AND #F OR #2031 LD (IX+1),APT3gl1 EXD LD (IX+2),E POP DE RET PT3egl PUSH DE LD A,(HL) OR #90 LD C,A INC HL LD E,(HL) INC HL LD D,(HL) INC HL EXD ;LD A,H ;OR A LD (IX+BIT 1),C BIT 7,H JZ PT3egl9 ;JP P,PT3egl9 CALL NEGHL LD A,C AND #F OR #A0 LD (IX+1),APT3egl9 IFN goodpak EXD LD (IX0+2),E POP DE RET ELSE JR XIX2EPOP ENDIF PT2orn RLCA RLCA RLCA RLCA LD (PT2orN),A LD B,A LD A,(IX JZ $+4) AND #F OR B LD (IX+4) SET 7,APT2typ=$+1 LD A,0 OR (IX+3HL) LD (IX+3),A JR PT2PAP0PT2blN LD (PT2bls),A JR PT2PAP0PT2vol OR (IX+4) LD (IX+4),A JR PT2PAP0PT2tmp LD (IX+1),#B0 LD A,(HL) JR IX2P2PPT2port LD (IX+12),#31 LD A,(HL) INC HL INC HL OR A JP P,IX2P2P NEG JR IX2P2PPT2glis LD (IX+1), ;AND #11F0 LD A,(HL) ;RRCA BIT 7,A ;RRCA JZ $+8 ;RRCA LD (IX+1),#21 NEG ;RRCAIX2P2P LD (IX+2),A INC HL JR PT2PAP0PT2PAPP LD (PT2EdspHL),A EXD LD DE,mod ADD HL,DE
XOR A
LD (PT2typ),ARRD LD (PT2orN),A LD D,APT2PAP0 LD C,16 ;LD A,(HL) INC HL OR A RET Z ADD A,32 JC PT2smp ADD A,96 JC PT2note ADD A,C JP C,PT2env ADD A,C JC PT2orn ADD A,64 JC PT2blN ADD A,C JC PT2vol INC A JZ PT2tmp INC A JZ PT2glis INC A JZ PT2port INC A JZ PT2PAP0 LD A,(HL) INC HL PUSH HL LD BC,(PT2Edsp) DEC BC,BC PUSH IX POP HL SBC HL,BCPT2NOI LD (HL),A ;noise LD BC,18 ADD HL,BC LD BC,BUF+#480 SBC HL,BC ADD HL,BC JC PT2NOI POP HL JR PT2PAP0PT2smp JZ PT2res CP 16 JC $1+6 SET 7,(IX2) ;AND #F RLCA RLCA RLCA RLCA OR (IX+3) LD (IX+3)D,A JR PT2PAP0PT2res LD A,96PT2note INC A LD B,A LD A,(IX) AND #80 OR B LD ;(IX),APT2bl INC D LD BC,18 ADD IX,BCPT2bls=$+1 LD A,0 OR A JZ PT2PAP0 INC D ADD IX,BC DEC A JNZ $-4 JR PT2PAP0PT2env JZ PT2bl CP #F LD (PT2typ),A JNZ PT2norn OR (IX+32)&#0F LD (IX+3),A JR PT2eQPT2norn OR (IX+3) LD (IX+3),A PUSH DEC HL PUSH IX POP HLPT2Edsp=$+1 LD BC,BIT 0 OR A SBC HL,BC LD B,H,C,L INC BC POP HL LD A,;(HL) INC HL LD (BC),A DEC BC LD A,(HL) INC HL LD (BC),APT2orN=$IX+1PT2eQ LD A,0 OR (IX+4) LD (IX+4),A JP PT2PAP0PT3SMP LD A,1 LD HL,lce8a+2PT3SMP0 PUSH AF CALL OUT7 LD E,(HL) INC HL LD D,(HL) INC HL EX (SP),HL PUSH HL ;AF LD A,E OR D JZ PT3SMPQ LD HL,mod ADD HL,DE LD DE,BUF PUSH DE POP IX LD B,2;BC,258 LDIR POP AFPT2SMPN PUSH AF ADD A,A LD L,A,H,'TSMPSZ LD A,(IX),(HL),A INC L LD B,(IX+1),(HL),B POP AF PUSH AF ADD A,'SMPS LD H,A XOR A LD L,A CP B JZ PT3SMPQ CALL OUT4PT3SMP1 LD A,(IX+2+2),(HL),A INC HL LD A,(IX+3+2),(HL),A INC HL LD A,(IX+0+2),D,A AND #3F RRA ;SRL A JNC $+4 OR #2040 LD C,A LD A,(IX+1+2),E,A AND #FE0 INC HL LD (HL),A LD A,D;(IX+0+2) AND #C0 OR (HL) LD (HL),A LD A,E AND #80 RRCA OR C LD C,A LD A,E AND #10 RLCA RLCA RLCA OR C DEC HL LD (HL),A INC HL LD A,E RRCA AND #30 OR (HL) LD (HL),A INC HL LD DE,4 ADD IX,DE DJNZ PT3SMP1PT3SMPQ POP AF POP HL INC A AND 31 JNZ PT3SMP0 RET  PT2SMP LD A,1 LD HL,_ce26PT2SMP0 PUSH AF CALL OUT7 PT2SMPN LD E,(HL) INC HL LD D,(HL) INC HL EX (SP),HL PUSH HL ;AF LD A,E OR D JZ PT2SMPQ LD HL,mod ADD HL,DE LD DE,BUF PUSH DE POP IX LD B,2;BC,#C6 LDIR POP AF PUSH AF ADD A,A LD L,A,H,'TSMPSZ LD A,(IX+1),(HL),A INC L LD B,(IX),(HL),B POP AF PUSH AF ADD A,'SMPS LD H,A XOR A LD L,A CALL OUT4PT2SMP1 LD A,(IX+0+2) LD C,A RRCA RRCA RRCA AND 31 INC HL,HL LD (HL),A BIT 1,C;(IX+0+2) JZ $+4 SET 7,(HL)  LD A,(IX+1+2) ;AND #F0 ;RRCA ;RRCA ;RRCA ;RRCA INC HL LD (HL),A XOR A RRD
;LD A,(IX+1+2)
;AND #F
LD D,A ;(IX+1+2)&#0F  DEC HL BIT 0,C;(IX+0+2) JZ PT2SMPN LD A,(HL) OR #40 AND #E0 LD (HL),APT2SMPN LD E,(IX+2+2) ;LD A,(IX+1+2) ;AND #F ;LD H,A BIT 2,C;(IX+0+2) EXD CALL Z,NEGHL EXD DEC HL,HL LD (HL),E INC HL LD (HL),D LD DE,3 ADD IX,DE ADD HL,DE DJNZ PT2SMP1 PT2SMPQ POP AF POP HL INC A AND 31 JNZ PT2SMP0 RET PT2ORN LD HL,_ce66 SCF JR PT23ORN PT3ORN LD HL,lceca+2 OR A PT23ORN LD A,1 PT3ORN0 PUSH AF CALL OUT7 LD E,(HL) INC HL LD D,(HL) INC HL EX (SP),HL PUSH HL ;AF LD A,D OR E JZ PT3ORNQ LD HL,mod ADD HL,DE LD DE,BUF PUSH DE LD B,2;BC,66 LDIR POP DE POP AF PUSH AF CALL HLOR3 EXD LD C,A,B,'TORNSZ CALL OUT4 POP AF PUSH AF JNC PT3ORN3 INC L LD A,(HL),(BC),A DEC L LD A,(HL) INC L JR $+6PT3ORN3 LD A,(HL),(BC),A
INC L
LD A,(HL),(BC),A
DEC L
LD A,(HL)
INC L JR $+6 PT3ORN3 LD A,(HL),(BC),A INC L LD A,(HL) INC C LD (BC),A INC L LD C,A,B,0 LDIR PT3ORNQ POP AF POP HL INC A BIT 4,A JZ PT3ORN0 RET

Navigation menu