Difference between revisions of "PROTRACKER372 PTCMPV8 H"
From MSX MUSIC WIKI
(Created page with "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...") (Tags: Mobile edit, Mobile web edit) |
(Tags: Mobile edit, Mobile web edit) |
||
Line 1: | Line 1: | ||
− | PTCMPv8 C��·Б�В√Ц MAIN "",#C6 | + | PTCMPv8 C��·Б�В√Ц |
− | CMbuf DB -1 ;USED ORNS+SMPS | + | MAIN "",#C6 |
− | + | CMbuf DB -1 ;USED ORNS+SMPS | |
− | t1buf DB -1,-1,-1,-1,0 | + | 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 | |
− | PatDisp | + | ENDM |
− | + | PatDisp | |
− | patdisp=$-1 | + | LD A,(IX-0) ;-8 |
− | + | patdisp=$-1 | |
− | + | IYAi | |
− | patdisp1=$-1 | + | LD A,(IX-0) ;-7 |
− | + | patdisp1=$-1 | |
− | RET | + | IYAi |
− | + | RET | |
− | PUSH AF | + | PUTIY |
− | CALL | + | 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 | ||
+ | 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 | ||
+ | RET | ||
+ | ;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 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 | PUSH HL | ||
− | + | LD DE,BUF | |
− | + | LD B,3 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | LD DE, | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
LDIR | LDIR | ||
− | + | LD HL,BUF | |
− | + | POP DE | |
− | + | LD B,3 | |
− | + | CMPRE60 | |
− | + | LD A,(CMPlst) | |
− | + | PUSH DE | |
− | LD HL, | + | CMPRE61 |
− | + | LDI | |
− | + | INC BC | |
− | + | LDI | |
− | + | INC BC | |
− | + | INC DE,DE,DE,DE | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | LD A,( | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | INC | ||
− | INC DE | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
DEC A | 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 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | CMPP | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | CMt | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | ;LD (CMoldT),A | ||
− | |||
− | |||
− | |||
LD (HL),A | LD (HL),A | ||
DEC HL | DEC HL | ||
− | + | LD (HL),A | |
− | + | DEC HL | |
− | + | DEC A | |
− | + | LD (HL),A | |
− | + | DEC HL | |
− | + | LD (HL),A | |
− | CMPPlen=$+1 | + | DEC HL |
− | + | LD (HL),A | |
− | + | CMPPlen=$+1 | |
− | CMt10 EXA | + | LD A,0 |
− | + | INC A | |
− | + | CMt10 EXA | |
− | + | LD A,(t1not) | |
− | + | CP 96 | |
− | + | JNC $+5 | |
− | LD A,(IX) | + | 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 | 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) | LD A,(t1smp) | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
IYAi | IYAi | ||
− | + | LD A,(HL) | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | LD A,( | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
DEC L | DEC L | ||
− | + | SUB -#40 | |
− | + | JR CMt1G | |
− | + | CMseFx | |
− | + | 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,PatDisp | ||
+ | CMt1NE1 LD A,(t1smp) | ||
+ | SUB -#30 | ||
+ | ADD A,A | ||
+ | IYAi | ||
+ | JR CMt1INE | ||
+ | |||
+ | CMt1Nt1 | ||
+ | LD A,(t1smp) | ||
+ | JR CMt1Yo2 | ||
+ | |||
+ | t1smp=$+1 | ||
+ | CMt1Nt2 | ||
+ | LD A,0 | ||
+ | CMt1G IYAi | ||
+ | DEC L | ||
+ | CMt1IG INC L | ||
+ | LD A,(IX+3) | ||
+ | ;INC L | ||
+ | AND #F | ||
+ | LD C,A | ||
JZ CMt1INE | JZ CMt1INE | ||
− | LD (HL),A | + | ;JZ CMt1INo |
− | + | ;DEC L | |
− | + | CP #F | |
− | + | JNZ $+5 | |
− | + | CP (HL) | |
− | + | JZ CMt1INE | |
− | + | LD (HL),A | |
− | ;Bx,Henv,Lenv | + | INC A |
− | + | AND #F | |
− | CMt1INE INC L | + | 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 | JZ CMt1INo | ||
− | + | RRCA | |
− | + | RRCA | |
− | CMt1Yo2 IYAi | + | RRCA |
− | CMt1INo INC L | + | RRCA |
− | + | CP (HL) | |
− | + | JZ CMt1INo | |
− | + | LD (HL),A | |
− | + | SUB -#40 | |
− | + | CMt1Yo2 IYAi | |
− | + | CMt1INo INC L | |
− | + | LD A,(IX+4) | |
− | + | AND #F | |
− | CMt1Nv INC L | + | JZ CMt1Nv |
− | + | CP (HL) | |
− | CMisb | + | JZ CMt1Nv |
− | + | LD (HL),A | |
− | + | SUB 64 | |
− | + | IYAi | |
− | + | CMt1Nv INC L | |
− | + | JR CMt1Nn | |
− | + | CMisb | |
− | + | LD A,(IX-6) | |
− | DJt1Nn=$-CMisb | + | AND 31 |
− | CMt1Nn LD A,(IX+1) | + | CP (HL) |
− | + | JZ CMt1Nn | |
− | + | LD (HL),A | |
− | + | SUB -#20 | |
− | + | IYAi | |
− | CMoldN=$+1 | + | DJt1Nn=$-CMisb |
− | + | CMt1Nn LD A,(IX+1) | |
− | + | AND #F0 | |
− | + | CALL NZ,CMcom | |
− | + | CALL CMt1PP | |
− | + | LD A,C | |
− | CMt1Nb CALL CMnot | + | CMoldN=$+1 |
− | CMt1Q LD H,'CMbuf | + | 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 | |
− | ;CMPcnt=$+1 | + | 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 | LD DE,mod | ||
− | ADD HL,DE | + | ADD IX,DE |
− | + | ;LD IY,(CMt2IY) ;начало текущего трека | |
− | + | XOR A | |
− | + | CMt20 LD E,A | |
− | + | ADD A,A | |
− | + | LD L,A | |
− | + | LD H,'l5b00 | |
− | CMt2cp LD A,(DE) | + | LD C,(HL) |
− | + | INC L | |
− | + | LD B,(HL) ;длина старого трека | |
− | + | LD A,E | |
− | + | EXA | |
− | + | LD L,(IX) | |
− | + | INC IX | |
− | + | LD H,(IX) | |
− | CMt2Ycp POP HL ;бывший IY | + | LD (CMt2HL),HL ;смещ. старого трека |
− | CMt2HL=$+1 | + | 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) | |
− | CMt2IY=$+2 | + | JNZ CMt2Ncp |
− | + | INC HL,DE | |
− | + | DEC BC | |
− | CMt2Ncp | + | LD A,B |
− | + | OR C | |
− | + | JNZ CMt2cp | |
− | + | CMt2Ycp POP HL ;бывший IY | |
− | + | CMt2HL=$+1 | |
− | + | LD DE,0 ;смещ. старого трека (к-й такой же, как новый) | |
− | CMtNeMEM | + | LD HL,CMPcnt |
− | + | INC (HL) | |
− | + | LD HL,(sngCUR) | |
− | CMPcnt=$+1 | + | LD (HL),E |
− | + | INC HL | |
− | + | LD (HL),D | |
− | CMt2Q LD HL,CMPcnt | + | 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 | PUSH HL | ||
− | POP IY | + | 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 ;начало текущего трека | |
− | CMPso | + | POP HL ;бывший IY=после конца трека |
− | + | PUSH HL | |
− | + | POP IY | |
− | + | OR A | |
− | + | SBC HL,DE | |
− | CMPs PUSH AF | + | EXD |
− | + | LD L,B ;кол-во сделанных треков | |
− | + | ADD HL,HL | |
− | + | LD H,'l5b00 | |
− | + | LD (HL),E | |
− | + | INC L | |
− | + | LD (HL),D ;длина трека | |
− | + | RET | |
− | CMPo PUSH AF | + | CMPso |
− | + | LD HL,lce8a | |
− | + | LD (pnter),HL | |
− | + | LD IY,(sngE) | |
− | + | XOR A | |
− | + | CMPs PUSH AF | |
− | + | CALL CMPsmp | |
− | + | POP AF | |
− | CMPsmp | + | 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) | |
− | CMsmpU0 JZ pntii ; | + | JNZ CMsmpU0 |
− | CMsmpU | + | INC A |
− | + | INC HL | |
− | + | SUB (HL) | |
− | + | DEC HL | |
− | + | JNZ CMsmpU0 | |
− | + | LD A,(IX+2) | |
− | + | XOR 64 | |
− | + | OR (IX) | |
− | CMPS0 LD A,(IX+2) | + | 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 D,A | ||
− | + | LD A,(IX+3) | |
− | + | AND #C0 | |
− | |||
− | |||
OR D | OR D | ||
− | + | IYAi | |
− | + | LD A,C | |
− | + | RLCA | |
− | + | AND #80 | |
− | IYAi | + | LD D,A |
− | LD A, | + | LD A,C |
− | + | RRCA | |
− | AND # | + | RRCA |
− | LD D,A | + | RRCA |
− | LD A,C | + | 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 #60 | ||
+ | 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,(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 | 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 | LD (DE),A | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
INC E | 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 | |
− | PROCESS | + | 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 | |
− | mPROCES DB 4,#C,#1C,#10,#47 | + | PROBAR |
− | tPROCES DB 6,#11,0,"PROCESSIN",#C7 | + | PUSH AF |
− | CMPQ | + | PROBARY=$+1 |
− | + | PROBARX=$+2 | |
− | ;2 | + | LD DE,1 |
− | PROBAR | + | OR A ;A=0: 100% |
− | + | LD B,1 | |
− | PROBARY=$+1 | + | JNZ PROBAR0 |
− | PROBARX=$+2 | + | 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 | |
− | PROBAR0 LD A,"0" | + | PROBARQ POP AF |
− | + | RET | |
− | + | ENDIF | |
− | + | IFN portres | |
− | + | CMpores | |
− | PROBARQ POP AF | + | CMporeA=$+1 |
− | + | LD A,0 | |
− | + | LD HL,TPOSS | |
− | + | LD B,(HL) | |
− | CMpores | + | INC L |
− | CMporeA=$+1 | + | cMpore0 CP (HL) |
− | + | JZ $+6 | |
− | + | LD B,(HL) | |
− | + | INC L | |
− | + | JNZ cMpore0 | |
− | cMpore0 CP (HL) | + | 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 | |
− | cMpore1 LD A,(HL) | + | JZ $+3 |
− | + | LD C,A | |
− | + | cMpore2 ADD HL,DE | |
− | + | DJNZ cMpore1 | |
− | + | CALL OUT7 | |
− | + | LD A,C | |
− | + | RET | |
− | cMpore2 ADD HL,DE | + | ENDIF |
− | + | LDPT2PP | |
− | + | LD A,32 | |
− | + | LD (ts48),A | |
− | + | LD A,1,(FRQn),A | |
− | + | CALL CLPATS | |
− | LDPT2PP | + | 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 | XOR A | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
LD (DE),A | LD (DE),A | ||
− | INC | + | INC E |
− | LD ( | + | JNZ $-2 |
− | + | CALL PT2SMP | |
− | + | CALL PT2ORN | |
− | + | CALL PT2PATS | |
− | + | GETPATLEN | |
− | + | LD HL,(TPOSS),H,'TPATSZ | |
− | + | LD A,(HL),(PATLEN),A | |
− | + | RET | |
− | + | PT3PATS | |
− | + | CALL OUT7 | |
− | + | LD B,PATS-1 | |
− | + | PT3P0 LD HL,TPOSS | |
− | + | PT3P1 LD A,(HL) | |
− | + | CP B | |
− | + | JZ PT3P0Q | |
− | + | INC L | |
− | + | JNZ PT3P1 | |
− | + | DJNZ PT3P0 | |
− | + | PT3P0Q LD A,B,(PT3Plst),A | |
− | + | LD HL,(lce88) | |
− | LD | + | LD DE,mod |
− | + | ADD HL,DE | |
− | + | XOR A | |
− | + | PT3P2 PUSH AF | |
− | + | CALL KILLBUF | |
− | + | LD E,(HL) | |
− | + | INC HL | |
− | + | LD D,(HL) | |
− | + | INC HL | |
− | + | PUSH HL | |
− | + | LD A,3,(PT3Edsp),A | |
− | + | LD IX,BUF+3 | |
− | + | CALL PT3PAPP | |
− | + | POP HL | |
− | + | LD E,(HL) | |
− | + | INC HL | |
− | + | LD D,(HL) | |
− | + | INC HL | |
− | + | PUSH HL | |
− | + | LD A,8,(PT3Edsp),A | |
− | + | ;LD (PT3putN+1),A ;noise ON | |
− | + | LD IX,BUF+8 | |
− | + | CALL PT3PAPP | |
− | + | POP HL | |
− | LD | + | LD E,(HL) |
− | + | INC HL | |
− | + | LD D,(HL) | |
− | + | INC HL | |
− | + | PUSH HL | |
− | + | ;XOR A | |
− | + | ;LD (PT3putN+1),A ;noise OFF | |
− | + | LD A,13,(PT3Edsp),A | |
− | + | LD IX,BUF+13 | |
− | + | CALL PT3PAPP | |
− | + | POP HL | |
− | + | POP AF | |
− | + | ;D=patlen-1 | |
− | + | CALL PATfrBUF | |
− | + | PT3Plst=$+1 | |
− | + | CP 0 | |
− | + | RET Z | |
− | + | INC A | |
− | + | JR PT3P2 | |
− | + | ||
− | + | ;на 99% совпадает с PT3PATS | |
− | + | PT2PATS | |
− | + | CALL OUT7 | |
− | + | LD B,31 | |
− | + | PT2P0 LD HL,TPOSS | |
− | + | PT2P1 LD A,(HL) | |
− | + | CP B | |
− | + | JZ PT2P0Q | |
− | + | INC L | |
− | + | JNZ PT2P1 | |
− | + | DJNZ PT2P0 | |
− | + | PT2P0Q LD A,B,(PT2Plst),A | |
− | + | LD HL,(_ce84) | |
− | + | LD DE,mod | |
− | + | ADD HL,DE | |
− | + | XOR A | |
− | + | PT2P2 PUSH AF | |
− | + | CALL KILLBUF | |
− | + | LD E,(HL) | |
− | + | INC HL | |
− | + | LD D,(HL) | |
− | + | INC HL | |
− | + | PUSH HL | |
− | + | LD A,3 | |
− | + | LD IX,BUF+3 | |
− | + | CALL PT2PAPP | |
− | + | POP HL | |
− | + | LD E,(HL) | |
− | + | INC HL | |
− | + | LD D,(HL) | |
− | + | INC HL | |
− | + | PUSH HL | |
− | + | LD A,8 | |
− | + | LD IX,BUF+8 | |
− | + | CALL PT2PAPP | |
− | + | POP HL | |
− | + | LD E,(HL) | |
− | + | INC HL | |
− | + | LD D,(HL) | |
− | + | INC HL | |
− | + | PUSH HL | |
− | + | LD A,13 | |
− | + | LD IX,BUF+13 | |
− | + | CALL PT2PAPP | |
− | + | POP HL | |
− | + | POP AF | |
− | + | CALL PATfrBUF | |
− | + | PT2Plst=$+1 | |
− | + | CP 0 | |
− | + | RET Z | |
− | + | INC A | |
− | + | JR PT2P2 | |
− | + | PT3PAPP | |
− | + | EXD | |
− | + | LD DE,mod | |
− | + | ADD HL,DE | |
− | + | XOR A | |
− | + | LD (PT3orN),A | |
− | + | LD (PT3n),A | |
− | + | LD D,A | |
− | + | PT3PAP0 LD BC,#1020 | |
− | + | LD A,(HL) | |
− | + | INC HL | |
− | + | OR A | |
− | + | RET Z | |
− | + | ADD A,B | |
− | + | JC PT3orn | |
− | + | ADD A,C | |
− | + | JC PT3smp | |
− | + | ADD A,B | |
− | + | JP C,PT3vol | |
− | + | ADD A,B | |
− | + | JP C,PT3Et | |
− | + | ADD A,96 | |
− | + | JC PT3note | |
− | + | ADD A,B | |
− | + | JP C,PT3newO | |
− | + | ADD A,C | |
− | + | JP C,PT3nois | |
− | + | ADD A,B | |
− | + | JP C,PT3Etyp | |
− | + | ADD A,B | |
− | + | JP PT3com | |
− | + | PT3blN | |
− | + | LD A,(HL) | |
− | + | INC HL | |
− | + | DEC A | |
− | + | LD (PT3bls),A | |
− | + | JR PT3PAP0 | |
− | + | ||
− | + | PT3bls=$+1 | |
− | + | PT3blQ | |
− | + | LD A,0 | |
− | + | OR A | |
− | + | JZ PT3PAP0 | |
− | + | LD E,A | |
− | + | LD BC,18 | |
− | + | PT3bl0 INC D | |
− | + | CALL PT3putN | |
− | + | ADD IX,BC | |
− | + | DEC E | |
− | + | JNZ PT3bl0 | |
− | + | JR PT3PAP0 | |
− | + | PT3note | |
− | + | 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 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 | LD BC,18 | ||
− | + | ADD HL,BC | |
− | + | LD BC,BUF+#480 | |
− | ADD | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | LD BC, | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
SBC HL,BC | SBC HL,BC | ||
− | + | ADD HL,BC | |
− | + | JC PT2NOI | |
− | + | POP HL | |
− | + | JR PT2PAP0 | |
− | + | PT2smp | |
− | + | JZ PT2res | |
− | + | CP 16 | |
− | + | JC $+6 | |
− | + | SET 7,(IX) | |
− | + | AND #F | |
− | + | RLCA | |
− | + | RLCA | |
− | + | RLCA | |
− | + | RLCA | |
− | + | OR (IX+3) | |
− | + | LD (IX+3),A | |
− | + | JR PT2PAP0 | |
− | + | PT2res | |
− | + | LD A,96 | |
− | + | PT2note INC A | |
− | + | LD B,A | |
− | + | LD A,(IX) | |
− | + | AND #80 | |
− | + | OR B | |
− | + | LD (IX),A | |
− | + | 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 | |
− | + | JR PT2eQ | |
− | + | PT2norn OR (IX+3) | |
− | + | LD (IX+3),A | |
− | + | PUSH HL | |
− | + | PUSH IX | |
− | + | POP HL | |
− | + | PT2Edsp=$+1 | |
− | + | LD BC,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),A | ||
+ | PT2orN=$+1 | ||
+ | PT2eQ LD A,0 | ||
OR (IX+4) | OR (IX+4) | ||
LD (IX+4),A | LD (IX+4),A | ||
− | + | JP PT2PAP0 | |
− | + | PT3SMP | |
− | + | LD A,1 | |
− | + | LD HL,lce8a+2 | |
− | + | PT3SMP0 PUSH AF | |
− | PUSH HL | + | 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 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),A | ||
+ | INC HL | ||
+ | LD A,E | ||
+ | RRCA | ||
+ | AND #30 | ||
+ | OR (HL) | ||
+ | LD (HL),A | ||
+ | INC HL | ||
+ | LD DE,4 | ||
+ | ADD IX,DE | ||
+ | DJNZ PT3SMP1 | ||
+ | PT3SMPQ POP AF | ||
POP HL | POP HL | ||
− | + | INC A | |
− | + | AND 31 | |
− | + | JNZ PT3SMP0 | |
− | + | RET | |
− | + | ||
− | + | PT2SMP | |
− | + | LD A,1 | |
− | + | LD HL,_ce26 | |
− | + | PT2SMP0 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 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 OUT4 | |
− | + | PT2SMP1 LD A,(IX+0+2) | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
LD C,A | 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 | XOR A | ||
− | + | RRD | |
− | + | ;LD A,(IX+1+2) | |
− | + | ;AND #F | |
− | + | LD D,A ;(IX+1+2)�F | |
− | + | ||
− | + | DEC HL | |
− | + | BIT 0,C;(IX+0+2) | |
− | + | JZ PT2SMPN | |
− | + | LD A,(HL) | |
− | + | OR #40 | |
− | + | AND #E0 | |
− | + | LD (HL),A | |
− | + | PT2SMPN LD E,(IX+2+2) | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | LD | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
;LD A,(IX+1+2) | ;LD A,(IX+1+2) | ||
;AND #F | ;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 | |
− | PT2SMPQ POP AF | + | LD HL,lceca+2 |
− | + | OR A | |
− | + | PT23ORN LD A,1 | |
− | + | PT3ORN0 PUSH AF | |
− | + | CALL OUT7 | |
− | + | LD E,(HL) | |
− | + | INC HL | |
− | PT2ORN | + | LD D,(HL) |
− | + | INC HL | |
− | + | EX (SP),HL | |
− | + | PUSH HL ;AF | |
− | PT3ORN | + | LD A,D |
− | + | OR E | |
− | + | JZ PT3ORNQ | |
− | PT23ORN LD A,1 | + | LD HL,mod |
− | PT3ORN0 PUSH AF | + | 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 | INC L | ||
+ | LD A,(HL),(BC),A | ||
+ | DEC L | ||
LD A,(HL) | LD A,(HL) | ||
− | + | INC L | |
− | + | JR $+6 | |
− | + | PT3ORN3 LD A,(HL),(BC),A | |
− | + | INC L | |
− | + | LD A,(HL) | |
− | PT3ORNQ POP AF | + | 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 |
Latest revision as of 21:41, 8 March 2020
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 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 RET ;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 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,3 CMPRE60 LD A,(CMPlst) PUSH DE CMPRE61 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 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 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 CMt1G CMseFx 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,PatDisp CMt1NE1 LD A,(t1smp) SUB -#30 ADD A,A IYAi JR CMt1INE CMt1Nt1 LD A,(t1smp) JR CMt1Yo2 t1smp=$+1 CMt1Nt2 LD A,0 CMt1G IYAi DEC L CMt1IG INC L LD A,(IX+3) ;INC L AND #F 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 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 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 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,(IX+3) AND #C0 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 #60 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,(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 (DE),A INC E JNZ $-2 CALL PT2SMP CALL PT2ORN CALL PT2PATS GETPATLEN LD HL,(TPOSS),H,'TPATSZ LD A,(HL),(PATLEN),A RET PT3PATS CALL OUT7 LD B,PATS-1 PT3P0 LD HL,TPOSS PT3P1 LD A,(HL) CP B JZ PT3P0Q INC L JNZ PT3P1 DJNZ PT3P0 PT3P0Q LD A,B,(PT3Plst),A LD HL,(lce88) LD DE,mod ADD HL,DE XOR A PT3P2 PUSH AF CALL KILLBUF LD E,(HL) INC HL LD D,(HL) INC HL PUSH HL LD A,3,(PT3Edsp),A LD IX,BUF+3 CALL PT3PAPP POP HL LD E,(HL) INC HL LD D,(HL) INC HL PUSH HL LD A,8,(PT3Edsp),A ;LD (PT3putN+1),A ;noise ON LD IX,BUF+8 CALL PT3PAPP POP HL LD E,(HL) INC HL LD D,(HL) INC HL PUSH HL ;XOR A ;LD (PT3putN+1),A ;noise OFF LD A,13,(PT3Edsp),A LD IX,BUF+13 CALL PT3PAPP POP HL POP AF ;D=patlen-1 CALL PATfrBUF PT3Plst=$+1 CP 0 RET Z INC A JR PT3P2 ;на 99% совпадает с PT3PATS PT2PATS CALL OUT7 LD B,31 PT2P0 LD HL,TPOSS PT2P1 LD A,(HL) CP B JZ PT2P0Q INC L JNZ PT2P1 DJNZ PT2P0 PT2P0Q LD A,B,(PT2Plst),A LD HL,(_ce84) LD DE,mod ADD HL,DE XOR A PT2P2 PUSH AF CALL KILLBUF LD E,(HL) INC HL LD D,(HL) INC HL PUSH HL LD A,3 LD IX,BUF+3 CALL PT2PAPP POP HL LD E,(HL) INC HL LD D,(HL) INC HL PUSH HL LD A,8 LD IX,BUF+8 CALL PT2PAPP POP HL LD E,(HL) INC HL LD D,(HL) INC HL PUSH HL LD A,13 LD IX,BUF+13 CALL PT2PAPP POP HL POP AF CALL PATfrBUF PT2Plst=$+1 CP 0 RET Z INC A JR PT2P2 PT3PAPP EXD LD DE,mod ADD HL,DE XOR A LD (PT3orN),A LD (PT3n),A LD D,A PT3PAP0 LD BC,#1020 LD A,(HL) INC HL OR A RET Z ADD A,B JC PT3orn ADD A,C JC PT3smp ADD A,B JP C,PT3vol ADD A,B JP C,PT3Et ADD A,96 JC PT3note ADD A,B JP C,PT3newO ADD A,C JP C,PT3nois ADD A,B JP C,PT3Etyp ADD A,B JP PT3com PT3blN LD A,(HL) INC HL DEC A LD (PT3bls),A JR PT3PAP0 PT3bls=$+1 PT3blQ LD A,0 OR A JZ PT3PAP0 LD E,A LD BC,18 PT3bl0 INC D CALL PT3putN ADD IX,BC DEC E JNZ PT3bl0 JR PT3PAP0 PT3note 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 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 ADD HL,BC LD BC,BUF+#480 SBC HL,BC ADD HL,BC JC PT2NOI POP HL JR PT2PAP0 PT2smp JZ PT2res CP 16 JC $+6 SET 7,(IX) AND #F RLCA RLCA RLCA RLCA OR (IX+3) LD (IX+3),A JR PT2PAP0 PT2res LD A,96 PT2note INC A LD B,A LD A,(IX) AND #80 OR B LD (IX),A 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 JR PT2eQ PT2norn OR (IX+3) LD (IX+3),A PUSH HL PUSH IX POP HL PT2Edsp=$+1 LD BC,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),A PT2orN=$+1 PT2eQ LD A,0 OR (IX+4) LD (IX+4),A JP PT2PAP0 PT3SMP LD A,1 LD HL,lce8a+2 PT3SMP0 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 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),A INC HL LD A,E RRCA AND #30 OR (HL) LD (HL),A INC HL LD DE,4 ADD IX,DE DJNZ PT3SMP1 PT3SMPQ POP AF POP HL INC A AND 31 JNZ PT3SMP0 RET PT2SMP LD A,1 LD HL,_ce26 PT2SMP0 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 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 OUT4 PT2SMP1 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)�F DEC HL BIT 0,C;(IX+0+2) JZ PT2SMPN LD A,(HL) OR #40 AND #E0 LD (HL),A PT2SMPN 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 $+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