; ; PROTRACKER COMPILER ; CLUT: EQU 248 LINE: EQU 249 LMPR: EQU 250 HMPR: EQU 251 ORG 32768 DUMP 32768 LD HL,0000 DI IN A,(LMPR) LD (LMPRS),A IN A,(HMPR) LD (HMPRS+32768),A AND 31 OR 32 OUT (LMPR),A JP LMEM ORG $-32768 DEFS 56-$ INTERRUPT: EI RET DEFS 100-$ OUT (LMPR),A NMI: LD A,31 JR 100 LMEM: LD (SPSTORE),SP LD SP,32767 LD (ORGOFFSET),HL LD HL,SAMPADDR LD (HL),0 LD DE,SAMPADDR+1 LD BC,767 LDIR INITUCADDR: EQU $+1 LD HL,32768 LD (UNCOMPADDR),HL INITUCPAGE: EQU $+1 LD A,8 LD (UNCOMPPAGE),A INC A INC A OUT (HMPR),A LD BC,15104 ADD HL,BC LD E,(HL) INC E XOR A RL E RLA LD D,A INITCOMPADDR: EQU $+1 LD HL,32768 ADD HL,DE INITCOMPPAGE: EQU $+1 LD A,3 LD (COMPPAGE),A OUT (HMPR),A LD (HL),0 INC HL LD (HL),0 INC HL LD (COMPADDR),HL LD B,32 ; NEXTINSTRUMENT: EXX UNCOMPPAGE: EQU $+1 LD A,00 OUT (HMPR),A UNCOMPADDR: EQU $+1 LD HL,0000 LD DE,BUFFERSPACE LD BC,363 LDIR LD (UNCOMPADDR),HL LD A,(BUFFERSPACE) OR A JP Z,ENDINSTRUMENT COMPPAGE: EQU $+1 LD A,00 OUT (HMPR),A COMPADDR: EQU $+1 LD DE,0000 LD A,32 EXX SUB B EXX RLA LD C,A LD B,0 LD HL,SAMPADDR ADD HL,BC LD A,(ORGOFFSET) ADD E LD (HL),A LD A,(ORGOFFSET+1) ADC D INC HL LD (HL),A LD HL,BUFFERSPACE LD A,(HL) EX AF,AF' LDI LD A,(HL) INC HL LDI LD C,A XOR A RL C RLA RL C RLA LD B,A INC BC INC BC LD A,E ADD C LD C,A LD A,D ADC B LD B,A LD A,(ORGOFFSET) ADD C LD (DE),A LD A,(ORGOFFSET+1) ADC B INC DE LD (DE),A INC DE EX AF,AF' LD B,A INSTLOOP: LD A,(HL) LD (DE),A INC HL INC DE LD C,(HL) INC HL BIT 3,C JR NZ,NEGATIVEDISP LD A,%00000111 AND C EX AF,AF' LD A,(HL) LD (DE),A INC HL INC DE EX AF,AF' LD (DE),A INC DE JR NOISEFLAGS NEGATIVEDISP: PUSH BC LD A,%00000111 AND C LD B,A LD C,(HL) INC HL DEC BC LD A,C CPL LD (DE),A INC DE LD A,B CPL LD (DE),A INC DE POP BC NOISEFLAGS: LD A,C AND %11110000 RRCA RRCA LD C,A AND %00110000 RRCA RRCA RRCA RRCA OR C LD (DE),A INC DE DJNZ INSTLOOP LD (COMPADDR),DE ENDINSTRUMENT: EXX DEC B JP NZ,NEXTINSTRUMENT ; LD A,(UNCOMPPAGE) INC A LD (UNCOMPPAGE),A LD HL,32768 LD (UNCOMPADDR),HL LD HL,ORNADDR LD B,0 NEXTORNAMENT: EXX LD A,(UNCOMPPAGE) OUT (HMPR),A LD HL,(UNCOMPADDR) LD DE,BUFFERSPACE LD BC,123 LDIR LD (UNCOMPADDR),HL LD A,(BUFFERSPACE) OR A JR Z,NOORNAMENT LD B,A LD A,(COMPPAGE) OUT (HMPR),A LD HL,(COMPADDR) PUSH HL LD (HL),B INC HL EXX POP DE LD A,(ORGOFFSET) ADD E LD (HL),A LD A,(ORGOFFSET+1) ADC D INC HL LD (HL),A INC HL EXX LD A,(BUFFERSPACE+2) LD (HL),A INC HL LD A,(BUFFERSPACE+1) INC A LD E,A XOR A RL E RLA LD D,A EX DE,HL ADD HL,DE EX DE,HL LD A,(ORGOFFSET) ADD E LD (HL),A LD A,(ORGOFFSET+1) ADC D INC HL LD (HL),A INC HL LD DE,BUFFERSPACE+3 ORNELEMENT: LD C,0 LD A,(DE) CP 12 JR C,OKORN CP 128 JR NC,DOWNORN MOREOCT: INC C SUB 12 JR NC,MOREOCT ADD 12 DEC C JR OKORN DOWNORN: DEC C ADD 12 JR NC,DOWNORN OKORN: INC A RLCA RLCA RLCA RLCA LD (HL),A INC HL LD A,C LD (HL),A INC HL INC DE DJNZ ORNELEMENT LD (COMPADDR),HL EXX JR MOREORNAMENT NOORNAMENT: EXX INC HL INC HL MOREORNAMENT: DEC B JP NZ,NEXTORNAMENT LD A,(UNCOMPPAGE) ; OUT (HMPR),A LD HL,PATTERNFLAGS LD (TESTUSED),HL LD A,64 LD (NUMBERPATTERN),A LD DE,PATTERNFLAGS+1 LD BC,63 LD (HL),B LDIR LD IX,PATTERNFLAGS LD HL,64256 LD DE,BUFFERSPACE+1791 LD A,(HL) LD (DE),A INC A LD B,A LD C,1 USEDPATTERNS: INC HL INC DE LD A,(HL) LD (DE),A LD (PATNO),A PATNO: EQU $+2 LD (IX+0),C DJNZ USEDPATTERNS LD A,(UNCOMPPAGE) INC A INC A LD (UNCOMPPAGE),A LD HL,PATTADDR LD (NEXTPATTADDR),HL LD HL,32768 LD (UNCOMPADDR),HL NEXTPATTERN: OUT (HMPR),A LD DE,BUFFERSPACE LD BC,1536 LDIR BIT 6,H JR Z,NOWRAPUNCOMP RES 6,H INC A NOWRAPUNCOMP: LD (UNCOMPPAGE),A LD (UNCOMPADDR),HL TESTUSED: EQU $+1 LD HL,0000 LD A,(HL) INC HL LD (TESTUSED),HL LD DE,(COMPADDR) ORGOFFSET: EQU $+1 LD HL,0000 ADD HL,DE LD C,L LD B,H NEXTPATTADDR: EQU $+1 LD HL,0000 LD (HL),C INC HL LD (HL),B INC HL LD (NEXTPATTADDR),HL EX DE,HL OR A JP Z,UNUSEDPATTERN LD A,(COMPPAGE) OUT (HMPR),A LD IX,BUFFERSPACE LD B,64 LD (LASTREPEAT),HL LD A,255 LD (LASTINS1),A LD (LASTORN1),A LD (LASTINS2),A LD (LASTORN2),A LD (LASTINS3),A LD (LASTORN3),A LD (LASTINS4),A LD (LASTORN4),A LD (LASTINS5),A LD (LASTORN5),A LD (LASTINS6),A LD (LASTORN6),A LD (LASTCOM1),A LD (LASTPAR1),A LD (LASTCOM2),A LD (LASTPAR2),A LD (LASTCOM3),A LD (LASTPAR3),A LD (LASTCOM4),A LD (LASTPAR4),A LD (LASTCOM5),A LD (LASTPAR5),A LD (LASTCOM6),A LD (LASTPAR6),A NEWROW: LD DE,&0E60 LD C,&F0 CALL SEARCHALL JP NZ,NOJUMPLOOP AND 15 JR Z,LOOPMARKER LD (HL),JRJUMPLOOP INC HL LD (HL),A INC HL LASTREPEAT: EQU $+1 LD DE,0000 LD A,(ORGOFFSET) ADD E LD (HL),A INC HL LD A,(ORGOFFSET+1) OOPSERROR: ADC D LD (HL),A INC HL JP NOJUMPLOOP LOOPMARKER: LD (LASTREPEAT),HL LD A,255 LD (LASTINS1),A LD (LASTORN1),A LD (LASTINS2),A LD (LASTORN2),A LD (LASTINS3),A LD (LASTORN3),A LD (LASTINS4),A LD (LASTORN4),A LD (LASTINS5),A LD (LASTORN5),A LD (LASTINS6),A LD (LASTORN6),A LD (LASTCOM1),A LD (LASTPAR1),A LD (LASTCOM2),A LD (LASTPAR2),A LD (LASTCOM3),A LD (LASTPAR3),A LD (LASTCOM4),A LD (LASTPAR4),A LD (LASTCOM5),A LD (LASTPAR5),A LD (LASTCOM6),A LD (LASTPAR6),A NOJUMPLOOP: LD DE,&0B00 LD C,0 CALL SEARCHALL JR NZ,NONEWSONGPOS LD (HL),JRNEWSONGPOS INC HL LD E,A XOR A RL E RLA ADD 128 LD D,A LD A,(ORGOFFSET) ADD E LD (HL),A LD A,(ORGOFFSET+1) ADC D INC HL LD (HL),A INC HL LD B,1 NONEWSONGPOS: LD A,B CP 1 JR Z,PATTBREAK LD DE,&0D00 LD C,0 CALL SEARCHALL JR NZ,NOPATTBREAK PATTBREAK: LD (HL),JRPATTBREAK INC HL LD B,1 NOPATTBREAK: LD DE,&0F00 LD C,0 CALL SEARCHALL JR NZ,NONEWTEMPO LD (HL),JRNEWTEMPO INC HL LD (HL),A INC HL NONEWTEMPO: LD DE,&0EE0 LD C,&F0 CALL SEARCHALL JR NZ,NOPATTDELAY LD (HL),JRPATTDELAY INC HL AND 15 INC A LD (HL),A INC HL NOPATTDELAY: LD DE,&0800 LD C,0 CALL SEARCHLOW JR NZ,NOENVELOPE1 LD (HL),JRLOWENVELOPE INC HL AND 31 JR Z,CANCELENV1 OR 128 XOR 16 CANCELENV1: LD (HL),A INC HL NOENVELOPE1: LD DE,&0800 LD C,0 CALL SEARCHHIGH JR NZ,NOENVELOPE2 LD (HL),JRHIGHENVELOPE INC HL AND 31 JR Z,CANCELENV2 OR 128 XOR 16 CANCELENV2: LD (HL),A INC HL NOENVELOPE2: LD A,(IX+1) AND 15 LASTCOM1: EQU $+1 CP 00 JR NZ,NEWCOMM1 LD A,(IX+2) LASTPAR1: EQU $+1 CP 00 JP Z,NONEWCOMM1 NEWCOMM1: LD A,(IX+1) AND 15 JP Z,NOCOMM1 CP &0C JR NZ,NOSETVOLUME1 LD (LASTCOM1),A LD (HL),JRSETVOLUME INC HL LD A,(IX+2) LD (LASTPAR1),A RRCA RRCA RRCA RRCA LD C,A AND 15 NEG ADD 15 LD (HL),A INC HL LD A,C AND 240 NEG ADD 240 LD (HL),A INC HL JP NONEWCOMM1 NOSETVOLUME1: CP &01 JR NZ,NOUPSLIDE1 LD (LASTCOM1),A LD (HL),JRUPSLIDE INC HL LD A,(IX+2) LD (HL),A INC HL LD (LASTPAR1),A JP NONEWCOMM1 NOUPSLIDE1: CP &02 JR NZ,NODNSLIDE1 LD (LASTCOM1),A LD (HL),JRDNSLIDE INC HL LD A,(IX+2) LD (HL),A INC HL LD (LASTPAR1),A JP NONEWCOMM1 NODNSLIDE1: CP &03 JR NZ,NOPORTAM1 LD (LASTCOM1),A LD A,(IX+0) AND 127 JR NZ,NEWPORTAM1 LD (HL),JRREPORTAM INC HL LD A,(IX+2) LD (HL),A INC HL LD (LASTPAR1),A JP AFTERPORTAM1 NEWPORTAM1: LD (HL),JRPORTAMENTO INC HL LD C,0 PORTAMOCT1: CP 12 JR C,PORTAMOK1 SUB 12 INC C JR PORTAMOCT1 PORTAMOK1: LD (HL),A INC HL LD (HL),C INC HL LD A,(IX+2) LD (HL),A INC HL LD (LASTPAR1),A JP AFTERPORTAM1 NOPORTAM1: CP &04 JR NZ,NOVIBRAT1 LD (LASTCOM1),A LD (HL),JRVIBRATO INC HL LD A,(IX+2) LD (LASTPAR1),A LD C,A AND &0F OR A LD E,0 RRA RR E RR A RR E LD (HL),E INC HL LD (HL),A INC HL LD A,C RRA RRA RRA RRA AND 15 LD (HL),A INC HL JP NONEWCOMM1 NOVIBRAT1: CP &07 JR NZ,NOTREMOLO1 LD (LASTCOM1),A LD (HL),JRTREMOLO INC HL LD A,(IX+2) LD (LASTPAR1),A LD C,A AND &0F OR A LD E,0 RRA RR E RR A RR E LD (HL),E INC HL LD (HL),A INC HL LD A,C RRA RRA RRA RRA AND 15 LD (HL),A INC HL JP NONEWCOMM1 NOTREMOLO1: CP &0E JP NZ,NEWNOCOMMAND1 LD C,(IX+2) LD A,C AND 240 CP &C0 JR NZ,NOCUTNOTE1 LD (HL),JRCUTNOTE INC HL LD A,C AND 15 INC A LD (HL),A INC HL XOR A LD (LASTCOM1),A LD (LASTPAR1),A JP NONEWCOMM1 NOCUTNOTE1: CP &D0 JP NZ,NEWNOCOMMAND1 LD A,(IX+0) AND 127 JR Z,CUTCHANNEL1 LD (HL),JRDELAYNOTE INC HL LD A,(IX+2) AND 15 INC A LD (HL),A INC HL JR NONEWCOMM1 CUTCHANNEL1: LD (HL),JRCUTCHANNEL INC HL JR NONEWCOMM1 NEWCHORD1: LD (LASTPAR1),A LD C,A XOR A LD E,A LD (LASTCOM1),A LD (HL),JRSETCHORD INC HL LD A,C AND 240 LD E,0 CP 192 JR C,HIGH11 INC E SUB 192 HIGH11: ADD 16 AND 240 OR E LD (HL),A INC HL LD A,C AND 15 CP 12 JR C,HIGH21 INC E SUB 12 HIGH21: INC A RLA RLA RLA RLA AND 240 OR E LD (HL),A INC HL JR NONEWCOMM1 NOCOMM1: LD A,(IX+2) OR A JR NZ,NEWCHORD1 LD A,(IX+0) AND 127 JR NZ,NEWNOCOMMAND1 LD A,(LASTCOM1) CP &0C JR Z,AFTERPORTAM1 INC A JR Z,AFTERPORTAM1 NEWNOCOMMAND1: XOR A LD (LASTCOM1),A LD (LASTPAR1),A LD (HL),JRNOCOMMAND INC HL NONEWCOMM1: LD A,(IX+0) AND 127 JP NZ,NEWNOTE1 AFTERPORTAM1: LD A,(LASTPAR2) CP (IX+6) JP NZ,NOTEGAP1_1 LD A,(LASTCOM2) LD C,A LD A,(IX+5) AND 15 CP C JP NZ,NOTEGAP1_1 LD A,(IX+4) AND 127 JP NZ,NOTEGAP1_1 LD A,(LASTPAR3) CP (IX+10) JR NZ,NOTEGAP2_1 LD A,(LASTCOM3) LD C,A LD A,(IX+9) AND 15 CP C JR NZ,NOTEGAP2_1 LD A,(IX+8) AND 127 JR NZ,NOTEGAP2_1 LD A,(LASTPAR4) CP (IX+14) JR NZ,NOTEGAP3_1 LD A,(LASTCOM4) LD C,A LD A,(IX+13) AND 15 CP C JR NZ,NOTEGAP3_1 LD A,(IX+12) AND 127 JR NZ,NOTEGAP3_1 LD A,(LASTPAR5) CP (IX+18) JR NZ,NOTEGAP4_1 LD A,(LASTCOM5) LD C,A LD A,(IX+17) AND 15 CP C JR NZ,NOTEGAP4_1 LD A,(IX+16) AND 127 JR NZ,NOTEGAP4_1 LD A,(LASTPAR6) CP (IX+22) JR NZ,NOTEGAP5_1 LD A,(LASTCOM6) LD C,A LD A,(IX+21) AND 15 CP C JR NZ,NOTEGAP5_1 LD A,(IX+20) AND 127 JR NZ,NOTEGAP5_1 LD (HL),JRNONOTEROW INC HL JP AFTERNOTE6 NOTEGAP5_1: LD (HL),JRNONOTE5 INC HL JP AFTERNOTE5 NOTEGAP4_1: LD (HL),JRNONOTE4 INC HL JP AFTERNOTE4 NOTEGAP3_1: LD (HL),JRNONOTE3 INC HL JP AFTERNOTE3 NOTEGAP2_1: LD (HL),JRNONOTE2 INC HL JP AFTERNOTE2 NOTEGAP1_1: LD (HL),JRNONOTE1 INC HL JP AFTERNOTE1 NEWNOTE1: LD A,(IX+3) LASTORN1: EQU $+1 CP 00 JR Z,NONEWORN1 LD (LASTORN1),A OR A JR Z,NOORN1 LD DE,ORNADDR RLA JR NC,NOHIGHORN1 INC D NOHIGHORN1: ADD E LD E,A LD A,D ADC 0 LD D,A LD A,(DE) OR A JR NZ,VALIDORN1 INC DE LD A,(DE) OR A JR Z,NOORN1 DEC DE VALIDORN1: LD A,(LASTINS1) LD C,A LD A,(IX+0) RLA LD A,(IX+1) RRA RRA RRA AND 62 CP C JR Z,ORNONLY1 LD (LASTINS1),A OR A JR Z,ORNONLY1 LD (HL),JRNEWBOTH INC HL LD A,(DE) OR A LD (HL),A INC HL INC DE LD A,(DE) LD (HL),A INC HL LD A,(LASTINS1) JR AUTOINS1 ORNONLY1: LD (HL),JRNEWORN INC HL LD A,(DE) OR A LD (HL),A INC HL INC DE LD A,(DE) LD (HL),A INC HL JR AUTONOTE1 NOORN1: LD A,(LASTINS1) LD C,A LD A,(IX+0) RLA LD A,(IX+1) RRA RRA RRA AND 62 CP C JR Z,NOORNONLY1 LD (LASTINS1),A OR A JR Z,NOORNONLY1 LD (HL),JRNOORNINS INC HL JR AUTOINS1 NOORNONLY1: LD (HL),JRNOORN INC HL JR AUTONOTE1 NONEWORN1: LD A,(IX+0) RLA LD A,(IX+1) RRA RRA RRA AND 62 LASTINS1: EQU $+1 CP 00 JR Z,NONEWINS1 LD (LASTINS1),A OR A JR Z,NONEWINS1 LD (HL),JRNEWINST INC HL AUTOINS1: LD DE,SAMPADDR ADD E LD E,A LD A,D ADC 0 LD D,A LD A,(DE) LD (HL),A INC HL INC DE LD A,(DE) LD (HL),A INC HL JR AUTONOTE1 NONEWINS1: LD (HL),JRNOTE INC HL AUTONOTE1: LD C,0 LD A,(IX+0) AND 127 NEXTOCTAVE1: CP 12 JR C,OKAYNOTE1 SUB 12 INC C JR NEXTOCTAVE1 OKAYNOTE1: LD (HL),A INC HL LD (HL),C INC HL AFTERNOTE1: LD A,(IX+5) AND 15 LASTCOM2: EQU $+1 CP 00 JR NZ,NEWCOMM2 LD A,(IX+6) LASTPAR2: EQU $+1 CP 00 JP Z,NONEWCOMM2 NEWCOMM2: LD A,(IX+5) AND 15 JP Z,NOCOMM2 CP &0C JR NZ,NOSETVOLUME2 LD (LASTCOM2),A LD (HL),JRSETVOLUME INC HL LD A,(IX+6) LD (LASTPAR2),A RRCA RRCA RRCA RRCA LD C,A AND 15 NEG ADD 15 LD (HL),A INC HL LD A,C AND 240 NEG ADD 240 LD (HL),A INC HL JP NONEWCOMM2 NOSETVOLUME2: CP &01 JR NZ,NOUPSLIDE2 LD (LASTCOM2),A LD (HL),JRUPSLIDE INC HL LD A,(IX+6) LD (HL),A INC HL LD (LASTPAR2),A JP NONEWCOMM2 NOUPSLIDE2: CP &02 JR NZ,NODNSLIDE2 LD (LASTCOM2),A LD (HL),JRDNSLIDE INC HL LD A,(IX+6) LD (HL),A INC HL LD (LASTPAR2),A JP NONEWCOMM2 NODNSLIDE2: CP &03 JR NZ,NOPORTAM2 LD (LASTCOM2),A LD A,(IX+4) AND 127 JR NZ,NEWPORTAM2 LD (HL),JRREPORTAM INC HL LD A,(IX+6) LD (HL),A INC HL LD (LASTPAR2),A JP AFTERPORTAM2 NEWPORTAM2: LD (HL),JRPORTAMENTO INC HL LD C,0 PORTAMOCT2: CP 12 JR C,PORTAMOK2 SUB 12 INC C JR PORTAMOCT2 PORTAMOK2: LD (HL),A INC HL LD (HL),C INC HL LD A,(IX+6) LD (HL),A INC HL LD (LASTPAR2),A JP AFTERPORTAM2 NOPORTAM2: CP &04 JR NZ,NOVIBRAT2 LD (LASTCOM2),A LD (HL),JRVIBRATO INC HL LD A,(IX+6) LD (LASTPAR2),A LD C,A AND &0F OR A LD E,0 RRA RR E RR A RR E LD (HL),E INC HL LD (HL),A INC HL LD A,C RRA RRA RRA RRA AND 15 LD (HL),A INC HL JP NONEWCOMM2 NOVIBRAT2: CP &07 JR NZ,NOTREMOLO2 LD (LASTCOM2),A LD (HL),JRTREMOLO INC HL LD A,(IX+6) LD (LASTPAR2),A LD C,A AND &0F OR A LD E,0 RRA RR E RR A RR E LD (HL),E INC HL LD (HL),A INC HL LD A,C RRA RRA RRA RRA AND 15 LD (HL),A INC HL JP NONEWCOMM2 NOTREMOLO2: CP &0E JP NZ,NEWNOCOMMAND2 LD C,(IX+6) LD A,C AND 240 CP &C0 JR NZ,NOCUTNOTE2 LD (HL),JRCUTNOTE INC HL LD A,C AND 15 INC A LD (HL),A INC HL XOR A LD (LASTCOM2),A LD (LASTPAR2),A JP NONEWCOMM2 NOCUTNOTE2: CP &D0 JP NZ,NEWNOCOMMAND2 LD A,(IX+4) AND 127 JR Z,CUTCHANNEL2 LD (HL),JRDELAYNOTE INC HL LD A,(IX+6) AND 15 INC A LD (HL),A INC HL JR NONEWCOMM2 CUTCHANNEL2: LD (HL),JRCUTCHANNEL INC HL JR NONEWCOMM2 NEWCHORD2: LD (LASTPAR2),A LD C,A XOR A LD E,A LD (LASTCOM2),A LD (HL),JRSETCHORD INC HL LD A,C AND 240 LD E,0 CP 192 JR C,HIGH12 INC E SUB 192 HIGH12: ADD 16 AND 240 OR E LD (HL),A INC HL LD A,C AND 15 CP 12 JR C,HIGH22 INC E SUB 12 HIGH22: INC A RLA RLA RLA RLA AND 240 OR E LD (HL),A INC HL JR NONEWCOMM2 NOCOMM2: LD A,(IX+6) OR A JR NZ,NEWCHORD2 LD A,(IX+4) AND 127 JR NZ,NEWNOCOMMAND2 LD A,(LASTCOM2) CP &0C JR Z,AFTERPORTAM2 INC A JR Z,AFTERPORTAM2 NEWNOCOMMAND2: XOR A LD (LASTCOM2),A LD (LASTPAR2),A LD (HL),JRNOCOMMAND INC HL NONEWCOMM2: LD A,(IX+4) AND 127 JP NZ,NEWNOTE2 AFTERPORTAM2: LD A,(LASTPAR3) CP (IX+10) JP NZ,NOTEGAP1_2 LD A,(LASTCOM3) LD C,A LD A,(IX+9) AND 15 CP C JP NZ,NOTEGAP1_2 LD A,(IX+8) AND 127 JP NZ,NOTEGAP1_2 LD A,(LASTPAR4) CP (IX+14) JR NZ,NOTEGAP2_2 LD A,(LASTCOM4) LD C,A LD A,(IX+13) AND 15 CP C JR NZ,NOTEGAP2_2 LD A,(IX+12) AND 127 JR NZ,NOTEGAP2_2 LD A,(LASTPAR5) CP (IX+18) JR NZ,NOTEGAP3_2 LD A,(LASTCOM5) LD C,A LD A,(IX+17) AND 15 CP C JR NZ,NOTEGAP3_2 LD A,(IX+16) AND 127 JR NZ,NOTEGAP3_2 LD A,(LASTPAR6) CP (IX+22) JR NZ,NOTEGAP4_2 LD A,(LASTCOM6) LD C,A LD A,(IX+21) AND 15 CP C JR NZ,NOTEGAP4_2 LD A,(IX+20) AND 127 JR NZ,NOTEGAP4_2 LD (HL),JRNONOTE5 INC HL JP AFTERNOTE6 NOTEGAP4_2: LD (HL),JRNONOTE4 INC HL JP AFTERNOTE5 NOTEGAP3_2: LD (HL),JRNONOTE3 INC HL JP AFTERNOTE4 NOTEGAP2_2: LD (HL),JRNONOTE2 INC HL JP AFTERNOTE3 NOTEGAP1_2: LD (HL),JRNONOTE1 INC HL JP AFTERNOTE2 NEWNOTE2: LD A,(IX+7) LASTORN2: EQU $+1 CP 00 JR Z,NONEWORN2 LD (LASTORN2),A OR A JR Z,NOORN2 LD DE,ORNADDR RLA JR NC,NOHIGHORN2 INC D NOHIGHORN2: ADD E LD E,A LD A,D ADC 0 LD D,A LD A,(DE) OR A JR NZ,VALIDORN2 INC DE LD A,(DE) OR A JR Z,NOORN2 DEC DE VALIDORN2: LD A,(LASTINS2) LD C,A LD A,(IX+4) RLA LD A,(IX+5) RRA RRA RRA AND 62 CP C JR Z,ORNONLY2 LD (LASTINS2),A OR A JR Z,ORNONLY2 LD (HL),JRNEWBOTH INC HL LD A,(DE) OR A LD (HL),A INC HL INC DE LD A,(DE) LD (HL),A INC HL LD A,(LASTINS2) JR AUTOINS2 ORNONLY2: LD (HL),JRNEWORN INC HL LD A,(DE) OR A LD (HL),A INC HL INC DE LD A,(DE) LD (HL),A INC HL JR AUTONOTE2 NOORN2: LD A,(LASTINS2) LD C,A LD A,(IX+4) RLA LD A,(IX+5) RRA RRA RRA AND 62 CP C JR Z,NOORNONLY2 LD (LASTINS2),A OR A JR Z,NOORNONLY2 LD (HL),JRNOORNINS INC HL JR AUTOINS2 NOORNONLY2: LD (HL),JRNOORN INC HL JR AUTONOTE2 NONEWORN2: LD A,(IX+4) RLA LD A,(IX+5) RRA RRA RRA AND 62 LASTINS2: EQU $+1 CP 00 JR Z,NONEWINS2 LD (LASTINS2),A OR A JR Z,NONEWINS2 LD (HL),JRNEWINST INC HL AUTOINS2: LD DE,SAMPADDR ADD E LD E,A LD A,D ADC 0 LD D,A LD A,(DE) LD (HL),A INC HL INC DE LD A,(DE) LD (HL),A INC HL JR AUTONOTE2 NONEWINS2: LD (HL),JRNOTE INC HL AUTONOTE2: LD C,0 LD A,(IX+4) AND 127 NEXTOCTAVE2: CP 12 JR C,OKAYNOTE2 SUB 12 INC C JR NEXTOCTAVE2 OKAYNOTE2: LD (HL),A INC HL LD (HL),C INC HL AFTERNOTE2: LD A,(IX+9) AND 15 LASTCOM3: EQU $+1 CP 00 JR NZ,NEWCOMM3 LD A,(IX+10) LASTPAR3: EQU $+1 CP 00 JP Z,NONEWCOMM3 NEWCOMM3: LD A,(IX+9) AND 15 JP Z,NOCOMM3 CP &0C JR NZ,NOSETVOLUME3 LD (LASTCOM3),A LD (HL),JRSETVOLUME INC HL LD A,(IX+10) LD (LASTPAR3),A RRCA RRCA RRCA RRCA LD C,A AND 15 NEG ADD 15 LD (HL),A INC HL LD A,C AND 240 NEG ADD 240 LD (HL),A INC HL JP NONEWCOMM3 NOSETVOLUME3: CP &01 JR NZ,NOUPSLIDE3 LD (LASTCOM3),A LD (HL),JRUPSLIDE INC HL LD A,(IX+10) LD (HL),A INC HL LD (LASTPAR3),A JP NONEWCOMM3 NOUPSLIDE3: CP &02 JR NZ,NODNSLIDE3 LD (LASTCOM3),A LD (HL),JRDNSLIDE INC HL LD A,(IX+10) LD (HL),A INC HL LD (LASTPAR3),A JP NONEWCOMM3 NODNSLIDE3: CP &03 JR NZ,NOPORTAM3 LD (LASTCOM3),A LD A,(IX+8) AND 127 JR NZ,NEWPORTAM3 LD (HL),JRREPORTAM INC HL LD A,(IX+10) LD (HL),A INC HL LD (LASTPAR3),A JP AFTERPORTAM3 NEWPORTAM3: LD (HL),JRPORTAMENTO INC HL LD C,0 PORTAMOCT3: CP 12 JR C,PORTAMOK3 SUB 12 INC C JR PORTAMOCT3 PORTAMOK3: LD (HL),A INC HL LD (HL),C INC HL LD A,(IX+10) LD (HL),A INC HL LD (LASTPAR3),A JP AFTERPORTAM3 NOPORTAM3: CP &04 JR NZ,NOVIBRAT3 LD (LASTCOM3),A LD (HL),JRVIBRATO INC HL LD A,(IX+10) LD (LASTPAR3),A LD C,A AND &0F OR A LD E,0 RRA RR E RR A RR E LD (HL),E INC HL LD (HL),A INC HL LD A,C RRA RRA RRA RRA AND 15 LD (HL),A INC HL JP NONEWCOMM3 NOVIBRAT3: CP &07 JR NZ,NOTREMOLO3 LD (LASTCOM3),A LD (HL),JRTREMOLO INC HL LD A,(IX+10) LD (LASTPAR3),A LD C,A AND &0F OR A LD E,0 RRA RR E RR A RR E LD (HL),E INC HL LD (HL),A INC HL LD A,C RRA RRA RRA RRA AND 15 LD (HL),A INC HL JP NONEWCOMM3 NOTREMOLO3: CP &0E JP NZ,NEWNOCOMMAND3 LD C,(IX+10) LD A,C AND 240 CP &C0 JR NZ,NOCUTNOTE3 LD (HL),JRCUTNOTE INC HL LD A,C AND 15 INC A LD (HL),A INC HL XOR A LD (LASTCOM3),A LD (LASTPAR3),A JP NONEWCOMM3 NOCUTNOTE3: CP &D0 JP NZ,NEWNOCOMMAND3 LD A,(IX+8) AND 127 JR Z,CUTCHANNEL3 LD (HL),JRDELAYNOTE INC HL LD A,(IX+10) AND 15 INC A LD (HL),A INC HL JR NONEWCOMM3 CUTCHANNEL3: LD (HL),JRCUTCHANNEL INC HL JR NONEWCOMM3 NEWCHORD3: LD (LASTPAR3),A LD C,A XOR A LD E,A LD (LASTCOM3),A LD (HL),JRSETCHORD INC HL LD A,C AND 240 LD E,0 CP 192 JR C,HIGH13 INC E SUB 192 HIGH13: ADD 16 AND 240 OR E LD (HL),A INC HL LD A,C AND 15 CP 12 JR C,HIGH23 INC E SUB 12 HIGH23: INC A RLA RLA RLA RLA AND 240 OR E LD (HL),A INC HL JR NONEWCOMM3 NOCOMM3: LD A,(IX+10) OR A JR NZ,NEWCHORD3 LD A,(IX+8) AND 127 JR NZ,NEWNOCOMMAND3 LD A,(LASTCOM3) CP &0C JR Z,AFTERPORTAM3 INC A JR Z,AFTERPORTAM3 NEWNOCOMMAND3: XOR A LD (LASTCOM3),A LD (LASTPAR3),A LD (HL),JRNOCOMMAND INC HL NONEWCOMM3: LD A,(IX+8) AND 127 JP NZ,NEWNOTE3 AFTERPORTAM3: LD A,(LASTPAR4) CP (IX+14) JP NZ,NOTEGAP1_3 LD A,(LASTCOM4) LD C,A LD A,(IX+13) AND 15 CP C JP NZ,NOTEGAP1_3 LD A,(IX+12) AND 127 JP NZ,NOTEGAP1_3 LD A,(LASTPAR5) CP (IX+18) JR NZ,NOTEGAP2_3 LD A,(LASTCOM5) LD C,A LD A,(IX+17) AND 15 CP C JR NZ,NOTEGAP2_3 LD A,(IX+16) AND 127 JR NZ,NOTEGAP2_3 LD A,(LASTPAR6) CP (IX+22) JR NZ,NOTEGAP3_3 LD A,(LASTCOM6) LD C,A LD A,(IX+21) AND 15 CP C JR NZ,NOTEGAP3_3 LD A,(IX+20) AND 127 JR NZ,NOTEGAP3_3 LD (HL),JRNONOTE4 INC HL JP AFTERNOTE6 NOTEGAP3_3: LD (HL),JRNONOTE3 INC HL JP AFTERNOTE5 NOTEGAP2_3: LD (HL),JRNONOTE2 INC HL JP AFTERNOTE4 NOTEGAP1_3: LD (HL),JRNONOTE1 INC HL JP AFTERNOTE3 NEWNOTE3: LD A,(IX+11) LASTORN3: EQU $+1 CP 00 JR Z,NONEWORN3 LD (LASTORN3),A OR A JR Z,NOORN3 LD DE,ORNADDR RLA JR NC,NOHIGHORN3 INC D NOHIGHORN3: ADD E LD E,A LD A,D ADC 0 LD D,A LD A,(DE) OR A JR NZ,VALIDORN3 INC DE LD A,(DE) OR A JR Z,NOORN3 DEC DE VALIDORN3: LD A,(LASTINS3) LD C,A LD A,(IX+8) RLA LD A,(IX+9) RRA RRA RRA AND 62 CP C JR Z,ORNONLY3 LD (LASTINS3),A OR A JR Z,ORNONLY3 LD (HL),JRNEWBOTH INC HL LD A,(DE) OR A LD (HL),A INC HL INC DE LD A,(DE) LD (HL),A INC HL LD A,(LASTINS3) JR AUTOINS3 ORNONLY3: LD (HL),JRNEWORN INC HL LD A,(DE) OR A LD (HL),A INC HL INC DE LD A,(DE) LD (HL),A INC HL JR AUTONOTE3 NOORN3: LD A,(LASTINS3) LD C,A LD A,(IX+8) RLA LD A,(IX+9) RRA RRA RRA AND 62 CP C JR Z,NOORNONLY3 LD (LASTINS3),A OR A JR Z,NOORNONLY3 LD (HL),JRNOORNINS INC HL JR AUTOINS3 NOORNONLY3: LD (HL),JRNOORN INC HL JR AUTONOTE3 NONEWORN3: LD A,(IX+8) RLA LD A,(IX+9) RRA RRA RRA AND 62 LASTINS3: EQU $+1 CP 00 JR Z,NONEWINS3 LD (LASTINS3),A OR A JR Z,NONEWINS3 LD (HL),JRNEWINST INC HL AUTOINS3: LD DE,SAMPADDR ADD E LD E,A LD A,D ADC 0 LD D,A LD A,(DE) LD (HL),A INC HL INC DE LD A,(DE) LD (HL),A INC HL JR AUTONOTE3 NONEWINS3: LD (HL),JRNOTE INC HL AUTONOTE3: LD C,0 LD A,(IX+8) AND 127 NEXTOCTAVE3: CP 12 JR C,OKAYNOTE3 SUB 12 INC C JR NEXTOCTAVE3 OKAYNOTE3: LD (HL),A INC HL LD (HL),C INC HL AFTERNOTE3: LD A,(IX+13) AND 15 LASTCOM4: EQU $+1 CP 00 JR NZ,NEWCOMM4 LD A,(IX+14) LASTPAR4: EQU $+1 CP 00 JP Z,NONEWCOMM4 NEWCOMM4: LD A,(IX+13) AND 15 JP Z,NOCOMM4 CP &0C JR NZ,NOSETVOLUME4 LD (LASTCOM4),A LD (HL),JRSETVOLUME INC HL LD A,(IX+14) LD (LASTPAR4),A RRCA RRCA RRCA RRCA LD C,A AND 15 NEG ADD 15 LD (HL),A INC HL LD A,C AND 240 NEG ADD 240 LD (HL),A INC HL JP NONEWCOMM4 NOSETVOLUME4: CP &01 JR NZ,NOUPSLIDE4 LD (LASTCOM4),A LD (HL),JRUPSLIDE INC HL LD A,(IX+14) LD (HL),A INC HL LD (LASTPAR4),A JP NONEWCOMM4 NOUPSLIDE4: CP &02 JR NZ,NODNSLIDE4 LD (LASTCOM4),A LD (HL),JRDNSLIDE INC HL LD A,(IX+14) LD (HL),A INC HL LD (LASTPAR4),A JP NONEWCOMM4 NODNSLIDE4: CP &03 JR NZ,NOPORTAM4 LD (LASTCOM4),A LD A,(IX+12) AND 127 JR NZ,NEWPORTAM4 LD (HL),JRREPORTAM INC HL LD A,(IX+14) LD (HL),A INC HL LD (LASTPAR4),A JP AFTERPORTAM4 NEWPORTAM4: LD (HL),JRPORTAMENTO INC HL LD C,0 PORTAMOCT4: CP 12 JR C,PORTAMOK4 SUB 12 INC C JR PORTAMOCT4 PORTAMOK4: LD (HL),A INC HL LD (HL),C INC HL LD A,(IX+14) LD (HL),A INC HL LD (LASTPAR4),A JP AFTERPORTAM4 NOPORTAM4: CP &04 JR NZ,NOVIBRAT4 LD (LASTCOM4),A LD (HL),JRVIBRATO INC HL LD A,(IX+14) LD (LASTPAR4),A LD C,A AND &0F OR A LD E,0 RRA RR E RR A RR E LD (HL),E INC HL LD (HL),A INC HL LD A,C RRA RRA RRA RRA AND 15 LD (HL),A INC HL JP NONEWCOMM4 NOVIBRAT4: CP &07 JR NZ,NOTREMOLO4 LD (LASTCOM4),A LD (HL),JRTREMOLO INC HL LD A,(IX+14) LD (LASTPAR4),A LD C,A AND &0F OR A LD E,0 RRA RR E RR A RR E LD (HL),E INC HL LD (HL),A INC HL LD A,C RRA RRA RRA RRA AND 15 LD (HL),A INC HL JP NONEWCOMM4 NOTREMOLO4: CP &0E JP NZ,NEWNOCOMMAND4 LD C,(IX+14) LD A,C AND 240 CP &C0 JR NZ,NOCUTNOTE4 LD (HL),JRCUTNOTE INC HL LD A,C AND 15 INC A LD (HL),A INC HL XOR A LD (LASTCOM4),A LD (LASTPAR4),A JP NONEWCOMM4 NOCUTNOTE4: CP &D0 JP NZ,NEWNOCOMMAND4 LD A,(IX+12) AND 127 JR Z,CUTCHANNEL4 LD (HL),JRDELAYNOTE INC HL LD A,(IX+14) AND 15 INC A LD (HL),A INC HL JR NONEWCOMM4 CUTCHANNEL4: LD (HL),JRCUTCHANNEL INC HL JR NONEWCOMM4 NEWCHORD4: LD (LASTPAR4),A LD C,A XOR A LD E,A LD (LASTCOM4),A LD (HL),JRSETCHORD INC HL LD A,C AND 240 LD E,0 CP 192 JR C,HIGH14 INC E SUB 192 HIGH14: ADD 16 AND 240 OR E LD (HL),A INC HL LD A,C AND 15 CP 12 JR C,HIGH24 INC E SUB 12 HIGH24: INC A RLA RLA RLA RLA AND 240 OR E LD (HL),A INC HL JR NONEWCOMM4 NOCOMM4: LD A,(IX+14) OR A JR NZ,NEWCHORD4 LD A,(IX+12) AND 127 JR NZ,NEWNOCOMMAND4 LD A,(LASTCOM4) CP &0C JR Z,AFTERPORTAM4 INC A JR Z,AFTERPORTAM4 NEWNOCOMMAND4: XOR A LD (LASTCOM4),A LD (LASTPAR4),A LD (HL),JRNOCOMMAND INC HL NONEWCOMM4: LD A,(IX+12) AND 127 JR NZ,NEWNOTE4 AFTERPORTAM4: LD A,(LASTPAR5) CP (IX+18) JR NZ,NOTEGAP1_4 LD A,(LASTCOM5) LD C,A LD A,(IX+17) AND 15 CP C JR NZ,NOTEGAP1_4 LD A,(IX+16) AND 127 JR NZ,NOTEGAP1_4 LD A,(LASTPAR6) CP (IX+22) JR NZ,NOTEGAP2_4 LD A,(LASTCOM6) LD C,A LD A,(IX+21) AND 15 CP C JR NZ,NOTEGAP2_4 LD A,(IX+20) AND 127 JR NZ,NOTEGAP2_4 LD (HL),JRNONOTE3 INC HL JP AFTERNOTE6 NOTEGAP2_4: LD (HL),JRNONOTE2 INC HL JP AFTERNOTE5 NOTEGAP1_4: LD (HL),JRNONOTE1 INC HL JP AFTERNOTE4 NEWNOTE4: LD A,(IX+15) LASTORN4: EQU $+1 CP 00 JR Z,NONEWORN4 LD (LASTORN4),A OR A JR Z,NOORN4 LD DE,ORNADDR RLA JR NC,NOHIGHORN4 INC D NOHIGHORN4: ADD E LD E,A LD A,D ADC 0 LD D,A LD A,(DE) OR A JR NZ,VALIDORN4 INC DE LD A,(DE) OR A JR Z,NOORN4 DEC DE VALIDORN4: LD A,(LASTINS4) LD C,A LD A,(IX+12) RLA LD A,(IX+13) RRA RRA RRA AND 62 CP C JR Z,ORNONLY4 LD (LASTINS4),A OR A JR Z,ORNONLY4 LD (HL),JRNEWBOTH INC HL LD A,(DE) OR A LD (HL),A INC HL INC DE LD A,(DE) LD (HL),A INC HL LD A,(LASTINS4) JR AUTOINS4 ORNONLY4: LD (HL),JRNEWORN INC HL LD A,(DE) OR A LD (HL),A INC HL INC DE LD A,(DE) LD (HL),A INC HL JR AUTONOTE4 NOORN4: LD A,(LASTINS4) LD C,A LD A,(IX+12) RLA LD A,(IX+13) RRA RRA RRA AND 62 CP C JR Z,NOORNONLY4 LD (LASTINS4),A OR A JR Z,NOORNONLY4 LD (HL),JRNOORNINS INC HL JR AUTOINS4 NOORNONLY4: LD (HL),JRNOORN INC HL JR AUTONOTE4 NONEWORN4: LD A,(IX+12) RLA LD A,(IX+13) RRA RRA RRA AND 62 LASTINS4: EQU $+1 CP 00 JR Z,NONEWINS4 LD (LASTINS4),A OR A JR Z,NONEWINS4 LD (HL),JRNEWINST INC HL AUTOINS4: LD DE,SAMPADDR ADD E LD E,A LD A,D ADC 0 LD D,A LD A,(DE) LD (HL),A INC HL INC DE LD A,(DE) LD (HL),A INC HL JR AUTONOTE4 NONEWINS4: LD (HL),JRNOTE INC HL AUTONOTE4: LD C,0 LD A,(IX+12) AND 127 NEXTOCTAVE4: CP 12 JR C,OKAYNOTE4 SUB 12 INC C JR NEXTOCTAVE4 OKAYNOTE4: LD (HL),A INC HL LD (HL),C INC HL AFTERNOTE4: LD A,(IX+17) AND 15 LASTCOM5: EQU $+1 CP 00 JR NZ,NEWCOMM5 LD A,(IX+18) LASTPAR5: EQU $+1 CP 00 JP Z,NONEWCOMM5 NEWCOMM5: LD A,(IX+17) AND 15 JP Z,NOCOMM5 CP &0C JR NZ,NOSETVOLUME5 LD (LASTCOM5),A LD (HL),JRSETVOLUME INC HL LD A,(IX+18) LD (LASTPAR5),A RRCA RRCA RRCA RRCA LD C,A AND 15 NEG ADD 15 LD (HL),A INC HL LD A,C AND 240 NEG ADD 240 LD (HL),A INC HL JP NONEWCOMM5 NOSETVOLUME5: CP &01 JR NZ,NOUPSLIDE5 LD (LASTCOM5),A LD (HL),JRUPSLIDE INC HL LD A,(IX+18) LD (HL),A INC HL LD (LASTPAR5),A JP NONEWCOMM5 NOUPSLIDE5: CP &02 JR NZ,NODNSLIDE5 LD (LASTCOM5),A LD (HL),JRDNSLIDE INC HL LD A,(IX+18) LD (HL),A INC HL LD (LASTPAR5),A JP NONEWCOMM5 NODNSLIDE5: CP &03 JR NZ,NOPORTAM5 LD (LASTCOM5),A LD A,(IX+16) AND 127 JR NZ,NEWPORTAM5 LD (HL),JRREPORTAM INC HL LD A,(IX+18) LD (HL),A INC HL LD (LASTPAR5),A JP AFTERPORTAM5 NEWPORTAM5: LD (HL),JRPORTAMENTO INC HL LD C,0 PORTAMOCT5: CP 12 JR C,PORTAMOK5 SUB 12 INC C JR PORTAMOCT5 PORTAMOK5: LD (HL),A INC HL LD (HL),C INC HL LD A,(IX+18) LD (HL),A INC HL LD (LASTPAR5),A JP AFTERPORTAM5 NOPORTAM5: CP &04 JR NZ,NOVIBRAT5 LD (LASTCOM5),A LD (HL),JRVIBRATO INC HL LD A,(IX+18) LD (LASTPAR5),A LD C,A AND &0F OR A LD E,0 RRA RR E RR A RR E LD (HL),E INC HL LD (HL),A INC HL LD A,C RRA RRA RRA RRA AND 15 LD (HL),A INC HL JP NONEWCOMM5 NOVIBRAT5: CP &07 JR NZ,NOTREMOLO5 LD (LASTCOM5),A LD (HL),JRTREMOLO INC HL LD A,(IX+18) LD (LASTPAR5),A LD C,A AND &0F OR A LD E,0 RRA RR E RR A RR E LD (HL),E INC HL LD (HL),A INC HL LD A,C RRA RRA RRA RRA AND 15 LD (HL),A INC HL JP NONEWCOMM5 NOTREMOLO5: CP &0E JP NZ,NEWNOCOMMAND5 LD C,(IX+18) LD A,C AND 240 CP &C0 JR NZ,NOCUTNOTE5 LD (HL),JRCUTNOTE INC HL LD A,C AND 15 INC A LD (HL),A INC HL XOR A LD (LASTCOM5),A LD (LASTPAR5),A JP NONEWCOMM5 NOCUTNOTE5: CP &D0 JP NZ,NEWNOCOMMAND5 LD A,(IX+16) AND 127 JR Z,CUTCHANNEL5 LD (HL),JRDELAYNOTE INC HL LD A,(IX+18) AND 15 INC A LD (HL),A INC HL JR NONEWCOMM5 CUTCHANNEL5: LD (HL),JRCUTCHANNEL INC HL JR NONEWCOMM5 NEWCHORD5: LD (LASTPAR5),A LD C,A XOR A LD E,A LD (LASTCOM5),A LD (HL),JRSETCHORD INC HL LD A,C AND 240 LD E,0 CP 192 JR C,HIGH15 INC E SUB 192 HIGH15: ADD 16 AND 240 OR E LD (HL),A INC HL LD A,C AND 15 CP 12 JR C,HIGH25 INC E SUB 12 HIGH25: INC A RLA RLA RLA RLA AND 240 OR E LD (HL),A INC HL JR NONEWCOMM5 NOCOMM5: LD A,(IX+18) OR A JR NZ,NEWCHORD5 LD A,(IX+16) AND 127 JR NZ,NEWNOCOMMAND5 LD A,(LASTCOM5) CP &0C JR Z,AFTERPORTAM5 INC A JR Z,AFTERPORTAM5 NEWNOCOMMAND5: XOR A LD (LASTCOM5),A LD (LASTPAR5),A LD (HL),JRNOCOMMAND INC HL NONEWCOMM5: LD A,(IX+16) AND 127 JR NZ,NEWNOTE5 AFTERPORTAM5: LD A,(LASTPAR6) CP (IX+22) JR NZ,NOTEGAP1_5 LD A,(LASTCOM6) LD C,A LD A,(IX+21) AND 15 CP C JR NZ,NOTEGAP1_5 LD A,(IX+20) AND 127 JR NZ,NOTEGAP1_5 LD (HL),JRNONOTE2 INC HL JP AFTERNOTE6 NOTEGAP1_5: LD (HL),JRNONOTE1 INC HL JP AFTERNOTE5 NEWNOTE5: LD A,(IX+19) LASTORN5: EQU $+1 CP 00 JR Z,NONEWORN5 LD (LASTORN5),A OR A JR Z,NOORN5 LD DE,ORNADDR RLA JR NC,NOHIGHORN5 INC D NOHIGHORN5: ADD E LD E,A LD A,D ADC 0 LD D,A LD A,(DE) OR A JR NZ,VALIDORN5 INC DE LD A,(DE) OR A JR Z,NOORN5 DEC DE VALIDORN5: LD A,(LASTINS5) LD C,A LD A,(IX+16) RLA LD A,(IX+17) RRA RRA RRA AND 62 CP C JR Z,ORNONLY5 LD (LASTINS5),A OR A JR Z,ORNONLY5 LD (HL),JRNEWBOTH INC HL LD A,(DE) OR A LD (HL),A INC HL INC DE LD A,(DE) LD (HL),A INC HL LD A,(LASTINS5) JR AUTOINS5 ORNONLY5: LD (HL),JRNEWORN INC HL LD A,(DE) OR A LD (HL),A INC HL INC DE LD A,(DE) LD (HL),A INC HL JR AUTONOTE5 NOORN5: LD A,(LASTINS5) LD C,A LD A,(IX+16) RLA LD A,(IX+17) RRA RRA RRA AND 62 CP C JR Z,NOORNONLY5 LD (LASTINS5),A OR A JR Z,NOORNONLY5 LD (HL),JRNOORNINS INC HL JR AUTOINS5 NOORNONLY5: LD (HL),JRNOORN INC HL JR AUTONOTE5 NONEWORN5: LD A,(IX+16) RLA LD A,(IX+17) RRA RRA RRA AND 62 LASTINS5: EQU $+1 CP 00 JR Z,NONEWINS5 LD (LASTINS5),A OR A JR Z,NONEWINS5 LD (HL),JRNEWINST INC HL AUTOINS5: LD DE,SAMPADDR ADD E LD E,A LD A,D ADC 0 LD D,A LD A,(DE) LD (HL),A INC HL INC DE LD A,(DE) LD (HL),A INC HL JR AUTONOTE5 NONEWINS5: LD (HL),JRNOTE INC HL AUTONOTE5: LD C,0 LD A,(IX+16) AND 127 NEXTOCTAVE5: CP 12 JR C,OKAYNOTE5 SUB 12 INC C JR NEXTOCTAVE5 OKAYNOTE5: LD (HL),A INC HL LD (HL),C INC HL AFTERNOTE5: LD A,(IX+21) AND 15 LASTCOM6: EQU $+1 CP 00 JR NZ,NEWCOMM6 LD A,(IX+22) LASTPAR6: EQU $+1 CP 00 JP Z,NONEWCOMM6 NEWCOMM6: LD A,(IX+21) AND 15 JP Z,NOCOMM6 CP &0C JR NZ,NOSETVOLUME6 LD (LASTCOM6),A LD (HL),JRSETVOLUME INC HL LD A,(IX+22) LD (LASTPAR6),A RRCA RRCA RRCA RRCA LD C,A AND 15 NEG ADD 15 LD (HL),A INC HL LD A,C AND 240 NEG ADD 240 LD (HL),A INC HL JP NONEWCOMM6 NOSETVOLUME6: CP &01 JR NZ,NOUPSLIDE6 LD (LASTCOM6),A LD (HL),JRUPSLIDE INC HL LD A,(IX+22) LD (HL),A INC HL LD (LASTPAR6),A JP NONEWCOMM6 NOUPSLIDE6: CP &02 JR NZ,NODNSLIDE6 LD (LASTCOM6),A LD (HL),JRDNSLIDE INC HL LD A,(IX+22) LD (HL),A INC HL LD (LASTPAR6),A JP NONEWCOMM6 NODNSLIDE6: CP &03 JR NZ,NOPORTAM6 LD (LASTCOM6),A LD A,(IX+20) AND 127 JR NZ,NEWPORTAM6 LD (HL),JRREPORTAM INC HL LD A,(IX+22) LD (HL),A INC HL LD (LASTPAR6),A JP AFTERPORTAM6 NEWPORTAM6: LD (HL),JRPORTAMENTO INC HL LD C,0 PORTAMOCT6: CP 12 JR C,PORTAMOK6 SUB 12 INC C JR PORTAMOCT6 PORTAMOK6: LD (HL),A INC HL LD (HL),C INC HL LD A,(IX+22) LD (HL),A INC HL LD (LASTPAR6),A JP AFTERPORTAM6 NOPORTAM6: CP &04 JR NZ,NOVIBRAT6 LD (LASTCOM6),A LD (HL),JRVIBRATO INC HL LD A,(IX+22) LD (LASTPAR6),A LD C,A AND &0F OR A LD E,0 RRA RR E RR A RR E LD (HL),E INC HL LD (HL),A INC HL LD A,C RRA RRA RRA RRA AND 15 LD (HL),A INC HL JP NONEWCOMM6 NOVIBRAT6: CP &07 JR NZ,NOTREMOLO6 LD (LASTCOM6),A LD (HL),JRTREMOLO INC HL LD A,(IX+22) LD (LASTPAR6),A LD C,A AND &0F OR A LD E,0 RRA RR E RR A RR E LD (HL),E INC HL LD (HL),A INC HL LD A,C RRA RRA RRA RRA AND 15 LD (HL),A INC HL JP NONEWCOMM6 NOTREMOLO6: CP &0E JP NZ,NEWNOCOMMAND6 LD C,(IX+22) LD A,C AND 240 CP &C0 JR NZ,NOCUTNOTE6 LD (HL),JRCUTNOTE INC HL LD A,C AND 15 INC A LD (HL),A INC HL XOR A LD (LASTCOM6),A LD (LASTPAR6),A JP NONEWCOMM6 NOCUTNOTE6: CP &D0 JP NZ,NEWNOCOMMAND6 LD A,(IX+20) AND 127 JR Z,CUTCHANNEL6 LD (HL),JRDELAYNOTE INC HL LD A,(IX+22) AND 15 INC A LD (HL),A INC HL JR NONEWCOMM6 CUTCHANNEL6: LD (HL),JRCUTCHANNEL INC HL JR NONEWCOMM6 NEWCHORD6: LD (LASTPAR6),A LD C,A XOR A LD E,A LD (LASTCOM6),A LD (HL),JRSETCHORD INC HL LD A,C AND 240 LD E,0 CP 192 JR C,HIGH16 INC E SUB 192 HIGH16: ADD 16 AND 240 OR E LD (HL),A INC HL LD A,C AND 15 CP 12 JR C,HIGH26 INC E SUB 12 HIGH26: INC A RLA RLA RLA RLA AND 240 OR E LD (HL),A INC HL JR NONEWCOMM6 NOCOMM6: LD A,(IX+22) OR A JR NZ,NEWCHORD6 LD A,(IX+20) AND 127 JR NZ,NEWNOCOMMAND6 LD A,(LASTCOM6) CP &0C JR Z,AFTERPORTAM6 INC A JR Z,AFTERPORTAM6 NEWNOCOMMAND6: XOR A LD (LASTCOM6),A LD (LASTPAR6),A LD (HL),JRNOCOMMAND INC HL NONEWCOMM6: LD A,(IX+20) AND 127 JR NZ,NEWNOTE6 AFTERPORTAM6: LD (HL),JRNONOTE1 INC HL JP AFTERNOTE6 NEWNOTE6: LD A,(IX+23) LASTORN6: EQU $+1 CP 00 JR Z,NONEWORN6 LD (LASTORN6),A OR A JR Z,NOORN6 LD DE,ORNADDR RLA JR NC,NOHIGHORN6 INC D NOHIGHORN6: ADD E LD E,A LD A,D ADC 0 LD D,A LD A,(DE) OR A JR NZ,VALIDORN6 INC DE LD A,(DE) OR A JR Z,NOORN6 DEC DE VALIDORN6: LD A,(LASTINS6) LD C,A LD A,(IX+20) RLA LD A,(IX+21) RRA RRA RRA AND 62 CP C JR Z,ORNONLY6 LD (LASTINS6),A OR A JR Z,ORNONLY6 LD (HL),JRNEWBOTH INC HL LD A,(DE) OR A LD (HL),A INC HL INC DE LD A,(DE) LD (HL),A INC HL LD A,(LASTINS6) JR AUTOINS6 ORNONLY6: LD (HL),JRNEWORN INC HL LD A,(DE) OR A LD (HL),A INC HL INC DE LD A,(DE) LD (HL),A INC HL JR AUTONOTE6 NOORN6: LD A,(LASTINS6) LD C,A LD A,(IX+20) RLA LD A,(IX+21) RRA RRA RRA AND 62 CP C JR Z,NOORNONLY6 LD (LASTINS6),A OR A JR Z,NOORNONLY6 LD (HL),JRNOORNINS INC HL JR AUTOINS6 NOORNONLY6: LD (HL),JRNOORN INC HL JR AUTONOTE6 NONEWORN6: LD A,(IX+20) RLA LD A,(IX+21) RRA RRA RRA AND 62 LASTINS6: EQU $+1 CP 00 JR Z,NONEWINS6 LD (LASTINS6),A OR A JR Z,NONEWINS6 LD (HL),JRNEWINST INC HL AUTOINS6: LD DE,SAMPADDR ADD E LD E,A LD A,D ADC 0 LD D,A LD A,(DE) LD (HL),A INC HL INC DE LD A,(DE) LD (HL),A INC HL JR AUTONOTE6 NONEWINS6: LD (HL),JRNOTE INC HL AUTONOTE6: LD C,0 LD A,(IX+20) AND 127 NEXTOCTAVE6: CP 12 JR C,OKAYNOTE6 SUB 12 INC C JR NEXTOCTAVE6 OKAYNOTE6: LD (HL),A INC HL LD (HL),C INC HL AFTERNOTE6: LD DE,24 ADD IX,DE DEC B JP NZ,NEWROW LD (COMPADDR),HL UNUSEDPATTERN: LD HL,(UNCOMPADDR) NUMBERPATTERN: EQU $+1 LD A,00 DEC A LD (NUMBERPATTERN),A LD A,(UNCOMPPAGE) JP NZ,NEXTPATTERN LD A,(COMPPAGE) OUT (HMPR),A LD DE,BUFFERSPACE+1791 LD A,(DE) INC A LD B,A INC DE LD IX,32768 SONGPOSITIONS: LD A,(DE) INC DE OR A RLA ADD PATTADDR\256 LD L,A LD A,PATTADDR/256 ADC 0 LD H,A LD A,(HL) LD (IX+0),A INC HL INC IX LD A,(HL) LD (IX+0),A INC IX DJNZ SONGPOSITIONS LD BC,(COMPADDR) SPSTORE: EQU $+1 LD SP,0000 HMPRS: EQU $+1 LD A,00 OUT (HMPR),A JP HMEM ORG $+32768 HMEM: LMPRS: EQU $+1 LD A,00 OUT (LMPR),A EI RET ORG $-32768 SAMPADDR: DEFS 64 ORNADDR: DEFS 512 PATTADDR: DEFS 128 PATTERNFLAGS: DEFS 64 BUFFERSPACE: DEFS 2048 SEARCHALL: ;SEARCH FOR COMMAND D CALL SEARCHLOW ;WITH PARAMETER E (MASK C) RET Z ;RETURNS NZ NO MATCH CALL SEARCHHIGH ; Z MATCH (A=PARAM) RET SEARCHLOW: LD A,(IX+1) AND &0F CP D JR NZ,TRYCH2 LD A,(IX+2) AND C CP E LD A,(IX+2) RET Z TRYCH2: LD A,(IX+5) AND &0F CP D JR NZ,TRYCH3 LD A,(IX+6) AND C CP E LD A,(IX+6) RET Z TRYCH3: LD A,(IX+9) AND &0F CP D RET NZ LD A,(IX+10) AND C CP E LD A,(IX+10) RET SEARCHHIGH: LD A,(IX+13) AND &0F CP D JR NZ,TRYCH5 LD A,(IX+14) AND C CP E LD A,(IX+14) RET Z TRYCH5: LD A,(IX+17) AND &0F CP D JR NZ,TRYCH6 LD A,(IX+18) AND C CP E LD A,(IX+18) RET Z TRYCH6: LD A,(IX+21) AND &0F CP D RET NZ LD A,(IX+22) AND C CP E LD A,(IX+22) RET STARTPLAYER: RESETPLAYER: LD HL,32768 JP RPLAYERDASH PLAYROUTINE: LD HL,SOUNDTABLE LD BC,511 LD E,0 BYTE0: LD A,(HL) INC L SENTCHIP0: EQU $+1 CP 00 JR Z,BYTE1 LD (SENTCHIP0),A OUT (C),E DEC B OUT (C),A INC B BYTE1: INC E LD A,(HL) INC L SENTCHIP1: EQU $+1 CP 00 JR Z,BYTE2 LD (SENTCHIP1),A OUT (C),E DEC B OUT (C),A INC B BYTE2: INC E LD A,(HL) INC L SENTCHIP2: EQU $+1 CP 00 JR Z,BYTE3 LD (SENTCHIP2),A OUT (C),E DEC B OUT (C),A INC B BYTE3: INC E LD A,(HL) INC L SENTCHIP3: EQU $+1 CP 00 JR Z,BYTE4 LD (SENTCHIP3),A OUT (C),E DEC B OUT (C),A INC B BYTE4: INC E LD A,(HL) INC L SENTCHIP4: EQU $+1 CP 00 JR Z,BYTE5 LD (SENTCHIP4),A OUT (C),E DEC B OUT (C),A INC B BYTE5: INC E LD A,(HL) INC L SENTCHIP5: EQU $+1 CP 00 JR Z,BYTE6 LD (SENTCHIP5),A OUT (C),E DEC B OUT (C),A INC B BYTE6: LD E,8 LD A,(HL) INC L SENTCHIP8: EQU $+1 CP 00 JR Z,BYTE7 LD (SENTCHIP8),A OUT (C),E DEC B OUT (C),A INC B BYTE7: INC E LD A,(HL) INC L SENTCHIP9: EQU $+1 CP 00 JR Z,BYTEA LD (SENTCHIP9),A OUT (C),E DEC B OUT (C),A INC B BYTEA: LD D,16 LD A,(SOUNDTABLE+12) SENTCHIPA: EQU $+1 CP 00 JR Z,BYTE8 LD (SENTCHIPA),A OUT (C),D DEC B OUT (C),A INC B BYTE8: INC E LD A,(HL) INC L SENTCHIP10: EQU $+1 CP 00 JR Z,BYTE9 LD (SENTCHIP10),A OUT (C),E DEC B OUT (C),A INC B BYTE9: INC E LD A,(HL) INC L SENTCHIP11: EQU $+1 CP 00 JR Z,BYTEB LD (SENTCHIP11),A OUT (C),E DEC B OUT (C),A INC B BYTEB: INC D LD A,(SOUNDTABLE+13) SENTCHIPB: EQU $+1 CP 00 JR Z,BYTE10 LD (SENTCHIPB),A OUT (C),D DEC B OUT (C),A INC B BYTE10: INC E LD A,(HL) INC L SENTCHIP12: EQU $+1 CP 00 JR Z,BYTE11 LD (SENTCHIP12),A OUT (C),E DEC B OUT (C),A INC B BYTE11: INC E LD A,(HL) INC L SENTCHIP13: EQU $+1 CP 00 JR Z,BYTE14 LD (SENTCHIP13),A OUT (C),E DEC B OUT (C),A INC B BYTE14: LD E,18 LD HL,SOUNDTABLE+14 LD A,(HL) INC L SENTCHIP18: EQU $+1 CP 00 JR Z,BYTE15 LD (SENTCHIP18),A OUT (C),E DEC B OUT (C),A INC B BYTE15: INC E INC E LD A,(HL) INC L SENTCHIP20: EQU $+1 CP 00 JR Z,BYTE16 LD (SENTCHIP20),A OUT (C),E DEC B OUT (C),A INC B BYTE16: INC E LD A,(HL) INC L SENTCHIP21: EQU $+1 CP 00 JR Z,BYTE17 LD (SENTCHIP21),A OUT (C),E DEC B OUT (C),A INC B BYTE17: INC E LD A,(HL) INC L SENTCHIP22: EQU $+1 CP 00 JR Z,BYTE18 LD (SENTCHIP22),A OUT (C),E DEC B OUT (C),A INC B BYTE18: INC E INC E LD A,(HL) INC L SENTCHIP24: EQU $+1 CP 00 JR Z,BYTE19 LD (SENTCHIP24),A OUT (C),E DEC B OUT (C),A INC B BYTE19: INC E LD A,(HL) INC L SENTCHIP25: EQU $+1 CP 00 JR Z,AFTERSOUNDCHIP LD (SENTCHIP25),A OUT (C),E DEC B OUT (C),A INC B AFTERSOUNDCHIP: DELAY: EQU $+1 LD A,00 DEC A JP NZ,NOCHANGES PATTDELAY: EQU $+1 LD A,00 OR A JR Z,NOPATTERND DEC A LD (PATTDELAY),A JP PATDELAYTEMPO NOPATTERND: LD (DELAYFLAG1),A LD (DELAYFLAG2),A LD (DELAYFLAG3),A LD (DELAYFLAG4),A LD (DELAYFLAG5),A LD (DELAYFLAG6),A NEXTPLAYADDR: EQU $+1 LD HL,0000 NEXTCOMMAND1: LD A,(HL) LD (JRCOMMAND1),A JRCOMMAND1: EQU $+1 JR JRSTARTS JRSTARTS: JRNOTE: EQU $-JRSTARTS JP DONOTE1 JRNEWINST: EQU $-JRSTARTS JP DONEWINST1 JRNEWORN: EQU $-JRSTARTS JP DONEWORN1 JRNEWBOTH: EQU $-JRSTARTS JP DONEWBOTH1 JRNOORN: EQU $-JRSTARTS JP DONOORN1 JRNOORNINS: EQU $-JRSTARTS JP DONOORNINS1 JRNOCOMMAND: EQU $-JRSTARTS JP DONOCOMMAND1 JRSETVOLUME: EQU $-JRSTARTS JP DOSETVOLUME1 JRCUTNOTE: EQU $-JRSTARTS JP DOCUTNOTE1 JRSETCHORD: EQU $-JRSTARTS JP DOSETCHORD1 JRUPSLIDE: EQU $-JRSTARTS JP DOUPSLIDE1 JRDNSLIDE: EQU $-JRSTARTS JP DODNSLIDE1 JRPORTAMENTO: EQU $-JRSTARTS JP DOPORTAMENTO1 JRREPORTAM: EQU $-JRSTARTS JP DOREPORTAM1 JRVIBRATO: EQU $-JRSTARTS JP DOVIBRATO1 JRTREMOLO: EQU $-JRSTARTS JP DOTREMOLO1 JRDELAYNOTE: EQU $-JRSTARTS JP DODELAYNOTE1 JRCUTCHANNEL: EQU $-JRSTARTS JP DOCUTCHANNEL1 DEFS 18 JRNONOTE1: EQU $-JRSTARTS JP AFTERCHANGES1 JRNONOTE2: EQU $-JRSTARTS JP AFTERCHANGES2 JRNONOTE3: EQU $-JRSTARTS JP AFTERCHANGES3 JRNONOTE4: EQU $-JRSTARTS JP AFTERCHANGES4 JRNONOTE5: EQU $-JRSTARTS JP AFTERCHANGES5 JRNONOTEROW: EQU $-JRSTARTS JP AFTERCHANGES6 JRLOWENVELOPE: EQU $-JRSTARTS JP DOENVELOPE1 JRHIGHENVELOPE:EQU $-JRSTARTS JP DOENVELOPE2 JRNEWTEMPO: EQU $-JRSTARTS JP DONEWTEMPO JRPATTDELAY: EQU $-JRSTARTS JP DOPATTDELAY JRJUMPLOOP: EQU $-JRSTARTS JP DOJUMPLOOP JRPATTBREAK: EQU $-JRSTARTS JP DOPATTBREAK JRNEWSONGPOS: EQU $-JRSTARTS JP DONEWSONGPOS DONEWTEMPO: INC HL LD A,(HL) LD (TEMPO),A INC HL JR NEXTCOMMAND1 DOPATTDELAY: INC HL LD A,(HL) LD (PATTDELAY),A INC HL JP NEXTCOMMAND1 DOJUMPLOOP: INC HL REPEATNUM: EQU $+1 LD A,00 OR A JR Z,NEWREPEAT DEC A LD (REPEATNUM),A JR Z,DONEREPEAT REPEATADDR: EQU $+1 LD DE,0000 LD (NEXTPLAYADDR),DE LD A,AFTERSETADDR-SETADDR LD (SKIPSETADDR),A DONEREPEAT: INC HL INC HL INC HL JP NEXTCOMMAND1 NEWREPEAT: LD A,(HL) LD (REPEATNUM),A INC HL LD E,(HL) INC HL LD D,(HL) INC HL LD (REPEATADDR),DE LD (NEXTPLAYADDR),DE LD A,AFTERSETADDR-SETADDR LD (SKIPSETADDR),A JP NEXTCOMMAND1 DONEWSONGPOS: LD A,(SKIPSETADDR) OR A JR Z,YESSONGPOS INC HL INC HL INC HL JP NEXTCOMMAND1 YESSONGPOS: INC HL LD E,(HL) INC HL LD D,(HL) INC HL LD A,(DE) JR NOLOOPSONG DOPATTBREAK: INC HL LD A,(SKIPSETADDR) OR A JP NZ,NEXTCOMMAND1 NEXTSONGPOS: EQU $+1 LD DE,0000 LD A,(DE) OR A JR NZ,NOLOOPSONG INC DE LD A,(DE) DEC DE OR A LD A,(DE) JR NZ,NOLOOPSONG ;BEGINSONG: EQU $+1 ; LD DE,32768 ; In 1.01 changed to: LD DE,(RESETPLAYER+1) LD A,(DE) NOLOOPSONG: LD (NEXTPLAYADDR),A INC DE LD A,(DE) LD (NEXTPLAYADDR+1),A INC DE LD (NEXTSONGPOS),DE LD A,AFTERSETADDR-SETADDR LD (SKIPSETADDR),A JP NEXTCOMMAND1 DOENVELOPE1: INC HL LD A,(HL) LD (SOUNDTABLE+18),A INC HL JP NEXTCOMMAND1 DOENVELOPE2: INC HL LD A,(HL) LD (SOUNDTABLE+19),A INC HL JP NEXTCOMMAND1 DOCUTNOTE1: INC HL LD A,(HL) INC HL LD (CUTAFTERT1),A LD DE,AFTERCOMMAND1 LD (JPCOMMAND1),DE JP NEXTCOMMAND1 DONOCOMMAND1: INC HL LD DE,AFTERCOMMAND1 LD (JPCOMMAND1),DE JP NEXTCOMMAND1 DOSETVOLUME1: INC HL LD A,(HL) LD (SUBVOLUMEL1),A INC HL LD A,(HL) LD (SUBVOLUMER1),A INC HL LD DE,JPSETVOLUME1 LD (JPCOMMAND1),DE JP NEXTCOMMAND1 DOSETCHORD1: INC HL LD A,(HL) LD E,A AND 240 LD (OSCHORD1_1),A LD A,E AND 15 LD (OCTCHORD1_1),A INC HL LD A,(HL) LD E,A AND 240 LD (OSCHORD1_2),A LD A,E AND 15 LD (OCTCHORD1_2),A LD DE,JPCHORD1_0 LD (JPCOMMAND1),DE INC HL JP NEXTCOMMAND1 DOUPSLIDE1: INC HL LD A,(HL) LD (UPSPEED1),A LD A,7 LD (UPOCTTARGET1),A LD A,255 LD (UPTONETARGET1),A LD DE,JPUPSLIDE1 LD (JPCOMMAND1),DE INC HL JP NEXTCOMMAND1 DODNSLIDE1: INC HL LD A,(HL) LD (DNSPEED1),A XOR A LD (DNOCTTARGET1),A LD (DNTONETARGET1),A LD DE,JPDNSLIDE1 LD (JPCOMMAND1),DE INC HL JP NEXTCOMMAND1 DOPORTAMENTO1: INC HL LD A,(HL) LD (NOTENUMBER1),A LD E,A LD D,SEMITONETABLE/256 LD A,(DE) LD E,A INC HL LD A,(HL) INC HL LD D,A LD A,(BASEOCT1) CP D JR C,PORTAMUP1 JR NZ,PORTAMDN1 LD A,(BASETONE1) CP E JR C,PORTAMUP1 PORTAMDN1: LD A,(HL) INC HL LD (DNSPEED1),A LD A,D LD (DNOCTTARGET1),A LD A,E LD (DNTONETARGET1),A LD DE,JPDNSLIDE1 LD (JPCOMMAND1),DE JP NEXTCOMMAND1 PORTAMUP1: LD A,(HL) INC HL LD (UPSPEED1),A LD A,D LD (UPOCTTARGET1),A LD A,E LD (UPTONETARGET1),A LD DE,JPUPSLIDE1 LD (JPCOMMAND1),DE JP NEXTCOMMAND1 DOREPORTAM1: INC HL LD A,(HL) INC HL LD (UPSPEED1),A LD (DNSPEED1),A JP NEXTCOMMAND1 DOVIBRATO1: INC HL LD E,(HL) INC HL LD A,(HL) INC HL ADD VIBRATABLE/256 LD D,A LD (VIBRATABLE1),DE LD A,(HL) INC HL LD (VIBRASPEED1),A LD DE,JPVIBRATO1 LD (JPCOMMAND1),DE JP NEXTCOMMAND1 DOTREMOLO1: INC HL LD E,(HL) INC HL LD A,(HL) INC HL ADD VIBRATABLE/256 LD D,A LD (TREMOLOTABLE1),DE LD A,(HL) INC HL LD (TREMOLOSPEED1),A LD DE,JPTREMOLO1 LD (JPCOMMAND1),DE JP NEXTCOMMAND1 DOCUTCHANNEL1: INC HL XOR A LD (DELAYFLAG1),A INC A LD (DELAY1),A LD DE,AFTERCOMMAND1 LD (JPCOMMAND1),DE JP NEXTCOMMAND1 DODELAYNOTE1: INC HL LD A,(HL) INC HL LD (DELAY1),A LD A,1 LD (DELAYFLAG1),A LD DE,AFTERCOMMAND1 LD (JPCOMMAND1),DE JP NEXTCOMMAND1 DONOORN1: XOR A LD (ORNLEN1),A JP DONOTE1 DONOORNINS1: XOR A LD (ORNLEN1),A JP DONEWINST1 DONEWORN1: INC HL LD E,(HL) INC HL LD D,(HL) LD A,(DE) LD (ORNLEN1),A INC DE LD A,(DE) LD (ORNREPLEN1),A INC DE LD A,(DE) LD (ORNREPADDR1),A INC DE LD A,(DE) LD (ORNREPADDR1+1),A INC DE LD (ORNADDR1),DE JP DONOTE1 DONEWBOTH1: INC HL LD E,(HL) INC HL LD D,(HL) LD A,(DE) LD (ORNLEN1),A INC DE LD A,(DE) LD (ORNREPLEN1),A INC DE LD A,(DE) LD (ORNREPADDR1),A INC DE LD A,(DE) LD (ORNREPADDR1+1),A INC DE LD (ORNADDR1),DE DONEWINST1: INC HL LD E,(HL) INC HL LD D,(HL) LD A,(DE) LD (INSTLEN1),A INC DE LD A,(DE) LD (REPLEN1),A INC DE LD A,(DE) LD (REPADDR1),A INC DE LD A,(DE) LD (REPADDR1+1),A INC DE LD (INSTADDR1),DE DONOTE1: INC HL LD A,(HL) LD (NOTENUMBER1),A LD E,A LD D,SEMITONETABLE/256 LD A,(DE) LD (BASETONE1),A INC HL LD A,(HL) LD (BASEOCT1),A INSTLEN1: EQU $+1 LD A,00 LD (PLAYLEN1),A INSTADDR1: EQU $+1 LD DE,0000 LD (PLAYADDR1),DE ORNLEN1: EQU $+1 LD A,00 LD (ORNPLAYLEN1),A ORNADDR1: EQU $+1 LD DE,0000 LD (ORNPLAYADDR1),DE AFTERCHANGES1: INC HL NEXTCOMMAND2: LD A,(HL) LD (JRCOMMAND2),A JRCOMMAND2: EQU $+1 JR $ JP DONOTE2 JP DONEWINST2 JP DONEWORN2 JP DONEWBOTH2 JP DONOORN2 JP DONOORNINS2 JP DONOCOMMAND2 JP DOSETVOLUME2 JP DOCUTNOTE2 JP DOSETCHORD2 JP DOUPSLIDE2 JP DODNSLIDE2 JP DOPORTAMENTO2 JP DOREPORTAM2 JP DOVIBRATO2 JP DOTREMOLO2 JP DODELAYNOTE2 JP DOCUTCHANNEL2 DEFS 18 JP AFTERCHANGES2 JP AFTERCHANGES3 JP AFTERCHANGES4 JP AFTERCHANGES5 JP AFTERCHANGES6 DOCUTNOTE2: INC HL LD A,(HL) INC HL LD (CUTAFTERT2),A LD DE,AFTERCOMMAND2 LD (JPCOMMAND2),DE JP NEXTCOMMAND2 DONOCOMMAND2: INC HL LD DE,AFTERCOMMAND2 LD (JPCOMMAND2),DE JP NEXTCOMMAND2 DOSETVOLUME2: INC HL LD A,(HL) LD (SUBVOLUMEL2),A INC HL LD A,(HL) LD (SUBVOLUMER2),A INC HL LD DE,JPSETVOLUME2 LD (JPCOMMAND2),DE JP NEXTCOMMAND2 DOSETCHORD2: INC HL LD A,(HL) LD E,A AND 240 LD (OSCHORD2_1),A LD A,E AND 15 LD (OCTCHORD2_1),A INC HL LD A,(HL) LD E,A AND 240 LD (OSCHORD2_2),A LD A,E AND 15 LD (OCTCHORD2_2),A LD DE,JPCHORD2_0 LD (JPCOMMAND2),DE INC HL JP NEXTCOMMAND2 DOUPSLIDE2: INC HL LD A,(HL) LD (UPSPEED2),A LD A,7 LD (UPOCTTARGET2),A LD A,255 LD (UPTONETARGET2),A LD DE,JPUPSLIDE2 LD (JPCOMMAND2),DE INC HL JP NEXTCOMMAND2 DODNSLIDE2: INC HL LD A,(HL) LD (DNSPEED2),A XOR A LD (DNOCTTARGET2),A LD (DNTONETARGET2),A LD DE,JPDNSLIDE2 LD (JPCOMMAND2),DE INC HL JP NEXTCOMMAND2 DOPORTAMENTO2: INC HL LD A,(HL) LD (NOTENUMBER2),A LD E,A LD D,SEMITONETABLE/256 LD A,(DE) LD E,A INC HL LD A,(HL) INC HL LD D,A LD A,(BASEOCT2) CP D JR C,PORTAMUP2 JR NZ,PORTAMDN2 LD A,(BASETONE2) CP E JR C,PORTAMUP2 PORTAMDN2: LD A,(HL) INC HL LD (DNSPEED2),A LD A,D LD (DNOCTTARGET2),A LD A,E LD (DNTONETARGET2),A LD DE,JPDNSLIDE2 LD (JPCOMMAND2),DE JP NEXTCOMMAND2 PORTAMUP2: LD A,(HL) INC HL LD (UPSPEED2),A LD A,D LD (UPOCTTARGET2),A LD A,E LD (UPTONETARGET2),A LD DE,JPUPSLIDE2 LD (JPCOMMAND2),DE JP NEXTCOMMAND2 DOREPORTAM2: INC HL LD A,(HL) INC HL LD (UPSPEED2),A LD (DNSPEED2),A JP NEXTCOMMAND2 DOVIBRATO2: INC HL LD E,(HL) INC HL LD A,(HL) INC HL ADD VIBRATABLE/256 LD D,A LD (VIBRATABLE2),DE LD A,(HL) INC HL LD (VIBRASPEED2),A LD DE,JPVIBRATO2 LD (JPCOMMAND2),DE JP NEXTCOMMAND2 DOTREMOLO2: INC HL LD E,(HL) INC HL LD A,(HL) INC HL ADD VIBRATABLE/256 LD D,A LD (TREMOLOTABLE2),DE LD A,(HL) INC HL LD (TREMOLOSPEED2),A LD DE,JPTREMOLO2 LD (JPCOMMAND2),DE JP NEXTCOMMAND2 DOCUTCHANNEL2: INC HL XOR A LD (DELAYFLAG2),A INC A LD (DELAY2),A LD DE,AFTERCOMMAND2 LD (JPCOMMAND2),DE JP NEXTCOMMAND2 DODELAYNOTE2: INC HL LD A,(HL) INC HL LD (DELAY2),A LD A,1 LD (DELAYFLAG2),A LD DE,AFTERCOMMAND2 LD (JPCOMMAND2),DE JP NEXTCOMMAND2 DONOORN2: XOR A LD (ORNLEN2),A JP DONOTE2 DONOORNINS2: XOR A LD (ORNLEN2),A JP DONEWINST2 DONEWORN2: INC HL LD E,(HL) INC HL LD D,(HL) LD A,(DE) LD (ORNLEN2),A INC DE LD A,(DE) LD (ORNREPLEN2),A INC DE LD A,(DE) LD (ORNREPADDR2),A INC DE LD A,(DE) LD (ORNREPADDR2+1),A INC DE LD (ORNADDR2),DE JP DONOTE2 DONEWBOTH2: INC HL LD E,(HL) INC HL LD D,(HL) LD A,(DE) LD (ORNLEN2),A INC DE LD A,(DE) LD (ORNREPLEN2),A INC DE LD A,(DE) LD (ORNREPADDR2),A INC DE LD A,(DE) LD (ORNREPADDR2+1),A INC DE LD (ORNADDR2),DE DONEWINST2: INC HL LD E,(HL) INC HL LD D,(HL) LD A,(DE) LD (INSTLEN2),A INC DE LD A,(DE) LD (REPLEN2),A INC DE LD A,(DE) LD (REPADDR2),A INC DE LD A,(DE) LD (REPADDR2+1),A INC DE LD (INSTADDR2),DE DONOTE2: INC HL LD A,(HL) LD (NOTENUMBER2),A LD E,A LD D,SEMITONETABLE/256 LD A,(DE) LD (BASETONE2),A INC HL LD A,(HL) LD (BASEOCT2),A INSTLEN2: EQU $+1 LD A,00 LD (PLAYLEN2),A INSTADDR2: EQU $+1 LD DE,0000 LD (PLAYADDR2),DE ORNLEN2: EQU $+1 LD A,00 LD (ORNPLAYLEN2),A ORNADDR2: EQU $+1 LD DE,0000 LD (ORNPLAYADDR2),DE AFTERCHANGES2: INC HL NEXTCOMMAND3: LD A,(HL) LD (JRCOMMAND3),A JRCOMMAND3: EQU $+1 JR $ JP DONOTE3 JP DONEWINST3 JP DONEWORN3 JP DONEWBOTH3 JP DONOORN3 JP DONOORNINS3 JP DONOCOMMAND3 JP DOSETVOLUME3 JP DOCUTNOTE3 JP DOSETCHORD3 JP DOUPSLIDE3 JP DODNSLIDE3 JP DOPORTAMENTO3 JP DOREPORTAM3 JP DOVIBRATO3 JP DOTREMOLO3 JP DODELAYNOTE3 JP DOCUTCHANNEL3 DEFS 18 JP AFTERCHANGES3 JP AFTERCHANGES4 JP AFTERCHANGES5 JP AFTERCHANGES6 DOCUTNOTE3: INC HL LD A,(HL) INC HL LD (CUTAFTERT3),A LD DE,AFTERCOMMAND3 LD (JPCOMMAND3),DE JP NEXTCOMMAND3 DONOCOMMAND3: INC HL LD DE,AFTERCOMMAND3 LD (JPCOMMAND3),DE JP NEXTCOMMAND3 DOSETVOLUME3: INC HL LD A,(HL) LD (SUBVOLUMEL3),A INC HL LD A,(HL) LD (SUBVOLUMER3),A INC HL LD DE,JPSETVOLUME3 LD (JPCOMMAND3),DE JP NEXTCOMMAND3 DOSETCHORD3: INC HL LD A,(HL) LD E,A AND 240 LD (OSCHORD3_1),A LD A,E AND 15 LD (OCTCHORD3_1),A INC HL LD A,(HL) LD E,A AND 240 LD (OSCHORD3_2),A LD A,E AND 15 LD (OCTCHORD3_2),A LD DE,JPCHORD3_0 LD (JPCOMMAND3),DE INC HL JP NEXTCOMMAND3 DOUPSLIDE3: INC HL LD A,(HL) LD (UPSPEED3),A LD A,7 LD (UPOCTTARGET3),A LD A,255 LD (UPTONETARGET3),A LD DE,JPUPSLIDE3 LD (JPCOMMAND3),DE INC HL JP NEXTCOMMAND3 DODNSLIDE3: INC HL LD A,(HL) LD (DNSPEED3),A XOR A LD (DNOCTTARGET3),A LD (DNTONETARGET3),A LD DE,JPDNSLIDE3 LD (JPCOMMAND3),DE INC HL JP NEXTCOMMAND3 DOPORTAMENTO3: INC HL LD A,(HL) LD (NOTENUMBER3),A LD E,A LD D,SEMITONETABLE/256 LD A,(DE) LD E,A INC HL LD A,(HL) INC HL LD D,A LD A,(BASEOCT3) CP D JR C,PORTAMUP3 JR NZ,PORTAMDN3 LD A,(BASETONE3) CP E JR C,PORTAMUP3 PORTAMDN3: LD A,(HL) INC HL LD (DNSPEED3),A LD A,D LD (DNOCTTARGET3),A LD A,E LD (DNTONETARGET3),A LD DE,JPDNSLIDE3 LD (JPCOMMAND3),DE JP NEXTCOMMAND3 PORTAMUP3: LD A,(HL) INC HL LD (UPSPEED3),A LD A,D LD (UPOCTTARGET3),A LD A,E LD (UPTONETARGET3),A LD DE,JPUPSLIDE3 LD (JPCOMMAND3),DE JP NEXTCOMMAND3 DOREPORTAM3: INC HL LD A,(HL) INC HL LD (UPSPEED3),A LD (DNSPEED3),A JP NEXTCOMMAND3 DOVIBRATO3: INC HL LD E,(HL) INC HL LD A,(HL) INC HL ADD VIBRATABLE/256 LD D,A LD (VIBRATABLE3),DE LD A,(HL) INC HL LD (VIBRASPEED3),A LD DE,JPVIBRATO3 LD (JPCOMMAND3),DE JP NEXTCOMMAND3 DOTREMOLO3: INC HL LD E,(HL) INC HL LD A,(HL) INC HL ADD VIBRATABLE/256 LD D,A LD (TREMOLOTABLE3),DE LD A,(HL) INC HL LD (TREMOLOSPEED3),A LD DE,JPTREMOLO3 LD (JPCOMMAND3),DE JP NEXTCOMMAND3 DOCUTCHANNEL3: INC HL XOR A LD (DELAYFLAG3),A INC A LD (DELAY3),A LD DE,AFTERCOMMAND3 LD (JPCOMMAND3),DE JP NEXTCOMMAND3 DODELAYNOTE3: INC HL LD A,(HL) INC HL LD (DELAY3),A LD A,1 LD (DELAYFLAG3),A LD DE,AFTERCOMMAND3 LD (JPCOMMAND3),DE JP NEXTCOMMAND3 DONOORN3: XOR A LD (ORNLEN3),A JP DONOTE3 DONOORNINS3: XOR A LD (ORNLEN3),A JP DONEWINST3 DONEWORN3: INC HL LD E,(HL) INC HL LD D,(HL) LD A,(DE) LD (ORNLEN3),A INC DE LD A,(DE) LD (ORNREPLEN3),A INC DE LD A,(DE) LD (ORNREPADDR3),A INC DE LD A,(DE) LD (ORNREPADDR3+1),A INC DE LD (ORNADDR3),DE JP DONOTE3 DONEWBOTH3: INC HL LD E,(HL) INC HL LD D,(HL) LD A,(DE) LD (ORNLEN3),A INC DE LD A,(DE) LD (ORNREPLEN3),A INC DE LD A,(DE) LD (ORNREPADDR3),A INC DE LD A,(DE) LD (ORNREPADDR3+1),A INC DE LD (ORNADDR3),DE DONEWINST3: INC HL LD E,(HL) INC HL LD D,(HL) LD A,(DE) LD (INSTLEN3),A INC DE LD A,(DE) LD (REPLEN3),A INC DE LD A,(DE) LD (REPADDR3),A INC DE LD A,(DE) LD (REPADDR3+1),A INC DE LD (INSTADDR3),DE DONOTE3: INC HL LD A,(HL) LD (NOTENUMBER3),A LD E,A LD D,SEMITONETABLE/256 LD A,(DE) LD (BASETONE3),A INC HL LD A,(HL) LD (BASEOCT3),A INSTLEN3: EQU $+1 LD A,00 LD (PLAYLEN3),A INSTADDR3: EQU $+1 LD DE,0000 LD (PLAYADDR3),DE ORNLEN3: EQU $+1 LD A,00 LD (ORNPLAYLEN3),A ORNADDR3: EQU $+1 LD DE,0000 LD (ORNPLAYADDR3),DE AFTERCHANGES3: INC HL NEXTCOMMAND4: LD A,(HL) LD (JRCOMMAND4),A JRCOMMAND4: EQU $+1 JR $ JP DONOTE4 JP DONEWINST4 JP DONEWORN4 JP DONEWBOTH4 JP DONOORN4 JP DONOORNINS4 JP DONOCOMMAND4 JP DOSETVOLUME4 JP DOCUTNOTE4 JP DOSETCHORD4 JP DOUPSLIDE4 JP DODNSLIDE4 JP DOPORTAMENTO4 JP DOREPORTAM4 JP DOVIBRATO4 JP DOTREMOLO4 JP DODELAYNOTE4 JP DOCUTCHANNEL4 DEFS 18 JP AFTERCHANGES4 JP AFTERCHANGES5 JP AFTERCHANGES6 DOCUTNOTE4: INC HL LD A,(HL) INC HL LD (CUTAFTERT4),A LD DE,AFTERCOMMAND4 LD (JPCOMMAND4),DE JP NEXTCOMMAND4 DONOCOMMAND4: INC HL LD DE,AFTERCOMMAND4 LD (JPCOMMAND4),DE JP NEXTCOMMAND4 DOSETVOLUME4: INC HL LD A,(HL) LD (SUBVOLUMEL4),A INC HL LD A,(HL) LD (SUBVOLUMER4),A INC HL LD DE,JPSETVOLUME4 LD (JPCOMMAND4),DE JP NEXTCOMMAND4 DOSETCHORD4: INC HL LD A,(HL) LD E,A AND 240 LD (OSCHORD4_1),A LD A,E AND 15 LD (OCTCHORD4_1),A INC HL LD A,(HL) LD E,A AND 240 LD (OSCHORD4_2),A LD A,E AND 15 LD (OCTCHORD4_2),A LD DE,JPCHORD4_0 LD (JPCOMMAND4),DE INC HL JP NEXTCOMMAND4 DOUPSLIDE4: INC HL LD A,(HL) LD (UPSPEED4),A LD A,7 LD (UPOCTTARGET4),A LD A,255 LD (UPTONETARGET4),A LD DE,JPUPSLIDE4 LD (JPCOMMAND4),DE INC HL JP NEXTCOMMAND4 DODNSLIDE4: INC HL LD A,(HL) LD (DNSPEED4),A XOR A LD (DNOCTTARGET4),A LD (DNTONETARGET4),A LD DE,JPDNSLIDE4 LD (JPCOMMAND4),DE INC HL JP NEXTCOMMAND4 DOPORTAMENTO4: INC HL LD A,(HL) LD (NOTENUMBER4),A LD E,A LD D,SEMITONETABLE/256 LD A,(DE) LD E,A INC HL LD A,(HL) INC HL LD D,A LD A,(BASEOCT4) CP D JR C,PORTAMUP4 JR NZ,PORTAMDN4 LD A,(BASETONE4) CP E JR C,PORTAMUP4 PORTAMDN4: LD A,(HL) INC HL LD (DNSPEED4),A LD A,D LD (DNOCTTARGET4),A LD A,E LD (DNTONETARGET4),A LD DE,JPDNSLIDE4 LD (JPCOMMAND4),DE JP NEXTCOMMAND4 PORTAMUP4: LD A,(HL) INC HL LD (UPSPEED4),A LD A,D LD (UPOCTTARGET4),A LD A,E LD (UPTONETARGET4),A LD DE,JPUPSLIDE4 LD (JPCOMMAND4),DE JP NEXTCOMMAND4 DOREPORTAM4: INC HL LD A,(HL) INC HL LD (UPSPEED4),A LD (DNSPEED4),A JP NEXTCOMMAND4 DOVIBRATO4: INC HL LD E,(HL) INC HL LD A,(HL) INC HL ADD VIBRATABLE/256 LD D,A LD (VIBRATABLE4),DE LD A,(HL) INC HL LD (VIBRASPEED4),A LD DE,JPVIBRATO4 LD (JPCOMMAND4),DE JP NEXTCOMMAND4 DOTREMOLO4: INC HL LD E,(HL) INC HL LD A,(HL) INC HL ADD VIBRATABLE/256 LD D,A LD (TREMOLOTABLE4),DE LD A,(HL) INC HL LD (TREMOLOSPEED4),A LD DE,JPTREMOLO4 LD (JPCOMMAND4),DE JP NEXTCOMMAND4 DOCUTCHANNEL4: INC HL XOR A LD (DELAYFLAG4),A INC A LD (DELAY4),A LD DE,AFTERCOMMAND4 LD (JPCOMMAND4),DE JP NEXTCOMMAND4 DODELAYNOTE4: INC HL LD A,(HL) INC HL LD (DELAY4),A LD A,1 LD (DELAYFLAG4),A LD DE,AFTERCOMMAND4 LD (JPCOMMAND4),DE JP NEXTCOMMAND4 DONOORN4: XOR A LD (ORNLEN4),A JP DONOTE4 DONOORNINS4: XOR A LD (ORNLEN4),A JP DONEWINST4 DONEWORN4: INC HL LD E,(HL) INC HL LD D,(HL) LD A,(DE) LD (ORNLEN4),A INC DE LD A,(DE) LD (ORNREPLEN4),A INC DE LD A,(DE) LD (ORNREPADDR4),A INC DE LD A,(DE) LD (ORNREPADDR4+1),A INC DE LD (ORNADDR4),DE JP DONOTE4 DONEWBOTH4: INC HL LD E,(HL) INC HL LD D,(HL) LD A,(DE) LD (ORNLEN4),A INC DE LD A,(DE) LD (ORNREPLEN4),A INC DE LD A,(DE) LD (ORNREPADDR4),A INC DE LD A,(DE) LD (ORNREPADDR4+1),A INC DE LD (ORNADDR4),DE DONEWINST4: INC HL LD E,(HL) INC HL LD D,(HL) LD A,(DE) LD (INSTLEN4),A INC DE LD A,(DE) LD (REPLEN4),A INC DE LD A,(DE) LD (REPADDR4),A INC DE LD A,(DE) LD (REPADDR4+1),A INC DE LD (INSTADDR4),DE DONOTE4: INC HL LD A,(HL) LD (NOTENUMBER4),A LD E,A LD D,SEMITONETABLE/256 LD A,(DE) LD (BASETONE4),A INC HL LD A,(HL) LD (BASEOCT4),A INSTLEN4: EQU $+1 LD A,00 LD (PLAYLEN4),A INSTADDR4: EQU $+1 LD DE,0000 LD (PLAYADDR4),DE ORNLEN4: EQU $+1 LD A,00 LD (ORNPLAYLEN4),A ORNADDR4: EQU $+1 LD DE,0000 LD (ORNPLAYADDR4),DE AFTERCHANGES4: INC HL NEXTCOMMAND5: LD A,(HL) LD (JRCOMMAND5),A JRCOMMAND5: EQU $+1 JR $ JP DONOTE5 JP DONEWINST5 JP DONEWORN5 JP DONEWBOTH5 JP DONOORN5 JP DONOORNINS5 JP DONOCOMMAND5 JP DOSETVOLUME5 JP DOCUTNOTE5 JP DOSETCHORD5 JP DOUPSLIDE5 JP DODNSLIDE5 JP DOPORTAMENTO5 JP DOREPORTAM5 JP DOVIBRATO5 JP DOTREMOLO5 JP DODELAYNOTE5 JP DOCUTCHANNEL5 DEFS 18 JP AFTERCHANGES5 JP AFTERCHANGES6 DOCUTNOTE5: INC HL LD A,(HL) INC HL LD (CUTAFTERT5),A LD DE,AFTERCOMMAND5 LD (JPCOMMAND5),DE JP NEXTCOMMAND5 DONOCOMMAND5: INC HL LD DE,AFTERCOMMAND5 LD (JPCOMMAND5),DE JP NEXTCOMMAND5 DOSETVOLUME5: INC HL LD A,(HL) LD (SUBVOLUMEL5),A INC HL LD A,(HL) LD (SUBVOLUMER5),A INC HL LD DE,JPSETVOLUME5 LD (JPCOMMAND5),DE JP NEXTCOMMAND5 DOSETCHORD5: INC HL LD A,(HL) LD E,A AND 240 LD (OSCHORD5_1),A LD A,E AND 15 LD (OCTCHORD5_1),A INC HL LD A,(HL) LD E,A AND 240 LD (OSCHORD5_2),A LD A,E AND 15 LD (OCTCHORD5_2),A LD DE,JPCHORD5_0 LD (JPCOMMAND5),DE INC HL JP NEXTCOMMAND5 DOUPSLIDE5: INC HL LD A,(HL) LD (UPSPEED5),A LD A,7 LD (UPOCTTARGET5),A LD A,255 LD (UPTONETARGET5),A LD DE,JPUPSLIDE5 LD (JPCOMMAND5),DE INC HL JP NEXTCOMMAND5 DODNSLIDE5: INC HL LD A,(HL) LD (DNSPEED5),A XOR A LD (DNOCTTARGET5),A LD (DNTONETARGET5),A LD DE,JPDNSLIDE5 LD (JPCOMMAND5),DE INC HL JP NEXTCOMMAND5 DOPORTAMENTO5: INC HL LD A,(HL) LD (NOTENUMBER5),A LD E,A LD D,SEMITONETABLE/256 LD A,(DE) LD E,A INC HL LD A,(HL) INC HL LD D,A LD A,(BASEOCT5) CP D JR C,PORTAMUP5 JR NZ,PORTAMDN5 LD A,(BASETONE5) CP E JR C,PORTAMUP5 PORTAMDN5: LD A,(HL) INC HL LD (DNSPEED5),A LD A,D LD (DNOCTTARGET5),A LD A,E LD (DNTONETARGET5),A LD DE,JPDNSLIDE5 LD (JPCOMMAND5),DE JP NEXTCOMMAND5 PORTAMUP5: LD A,(HL) INC HL LD (UPSPEED5),A LD A,D LD (UPOCTTARGET5),A LD A,E LD (UPTONETARGET5),A LD DE,JPUPSLIDE5 LD (JPCOMMAND5),DE JP NEXTCOMMAND5 DOREPORTAM5: INC HL LD A,(HL) INC HL LD (UPSPEED5),A LD (DNSPEED5),A JP NEXTCOMMAND5 DOVIBRATO5: INC HL LD E,(HL) INC HL LD A,(HL) INC HL ADD VIBRATABLE/256 LD D,A LD (VIBRATABLE5),DE LD A,(HL) INC HL LD (VIBRASPEED5),A LD DE,JPVIBRATO5 LD (JPCOMMAND5),DE JP NEXTCOMMAND5 DOTREMOLO5: INC HL LD E,(HL) INC HL LD A,(HL) INC HL ADD VIBRATABLE/256 LD D,A LD (TREMOLOTABLE5),DE LD A,(HL) INC HL LD (TREMOLOSPEED5),A LD DE,JPTREMOLO5 LD (JPCOMMAND5),DE JP NEXTCOMMAND5 DOCUTCHANNEL5: INC HL XOR A LD (DELAYFLAG5),A INC A LD (DELAY5),A LD DE,AFTERCOMMAND5 LD (JPCOMMAND5),DE JP NEXTCOMMAND5 DODELAYNOTE5: INC HL LD A,(HL) INC HL LD (DELAY5),A LD A,1 LD (DELAYFLAG5),A LD DE,AFTERCOMMAND5 LD (JPCOMMAND5),DE JP NEXTCOMMAND5 DONOORN5: XOR A LD (ORNLEN5),A JP DONOTE5 DONOORNINS5: XOR A LD (ORNLEN5),A JP DONEWINST5 DONEWORN5: INC HL LD E,(HL) INC HL LD D,(HL) LD A,(DE) LD (ORNLEN5),A INC DE LD A,(DE) LD (ORNREPLEN5),A INC DE LD A,(DE) LD (ORNREPADDR5),A INC DE LD A,(DE) LD (ORNREPADDR5+1),A INC DE LD (ORNADDR5),DE JP DONOTE5 DONEWBOTH5: INC HL LD E,(HL) INC HL LD D,(HL) LD A,(DE) LD (ORNLEN5),A INC DE LD A,(DE) LD (ORNREPLEN5),A INC DE LD A,(DE) LD (ORNREPADDR5),A INC DE LD A,(DE) LD (ORNREPADDR5+1),A INC DE LD (ORNADDR5),DE DONEWINST5: INC HL LD E,(HL) INC HL LD D,(HL) LD A,(DE) LD (INSTLEN5),A INC DE LD A,(DE) LD (REPLEN5),A INC DE LD A,(DE) LD (REPADDR5),A INC DE LD A,(DE) LD (REPADDR5+1),A INC DE LD (INSTADDR5),DE DONOTE5: INC HL LD A,(HL) LD (NOTENUMBER5),A LD E,A LD D,SEMITONETABLE/256 LD A,(DE) LD (BASETONE5),A INC HL LD A,(HL) LD (BASEOCT5),A INSTLEN5: EQU $+1 LD A,00 LD (PLAYLEN5),A INSTADDR5: EQU $+1 LD DE,0000 LD (PLAYADDR5),DE ORNLEN5: EQU $+1 LD A,00 LD (ORNPLAYLEN5),A ORNADDR5: EQU $+1 LD DE,0000 LD (ORNPLAYADDR5),DE AFTERCHANGES5: INC HL NEXTCOMMAND6: LD A,(HL) LD (JRCOMMAND6),A JRCOMMAND6