Changes

PROTRACKER372 JP MKPT37 H

2,240 bytes added, 02:15, 8 March 2020
no edit summary
mkpt37 C��9Т�Уp� ORG #FF32,2 IF0 {4>4+{$}}-#BF43 make DISPLAY "please wait,compile&save ENDIF alasm=0;1 fixtoENV=1 hidearr=1 ts=1 pttfc=0;#55 PATS=48 SMPX=0;4 SMPY=2;5 SMPH=19;по WBUFTOP=#FFxx INPAGE опр-ет edsmp! skipABC=1;иначе в PLAYER стрелка исчезает cl12345=1 bemol=1 tab=1 ply=0;компиляция с плейером cmpilmnu=0|ply frqrosh=1 mkvol=1 process=1;1 portres=1 goodpak=1 about=1;1 tstPT=0 savset=0 set=1;1 opcompl=0 ead=#5965 ;место inv для прозр.ENV SMPATR=SMPY<5+#5820+SMPX SMPBOT=SMPH<5+SMPATR IFN pttfc ORG #C000,pttfc tfcinclude INCLUDE "pttfc",#85 tfmmuz INCBIN "tat*.t"
ENDIF
alasm=0;1fixtoENV=1hidearr=1ts=1pttfc=0;#55PATS=48SMPX=0;4SMPY=2;5SMPH=19;по WBUFTOP=#FFxx INPAGE опр-ет edsmp!skipABC=1;иначе в PLAYER стрелка исчезаетcl12345=1bemol=1tab=1ply=0;компиляция с плейеромcmpilmnu=0|plyfrqrosh=1mkvol=1process=1;1portres=1goodpak=1about=1;1tstPT=0savset=0set=1;1opcompl=0 ead=#5965 ;место inv для прозр.ENVSMPATR=SMPY<5+#5820+SMPXSMPBOT=SMPH<5+SMPATR IFN pttfc ORG #C000,pttfctfcinclude INCLUDE "pttfc",#85tfmmuz INCBIN "tat*.t" ENDIF   ORG #5CDD,0 DB "PT3.72 B" INCLUDE "B:m2hr*",#C0 ORG #5BFB ink1 DB #30 pap1 NOP ink2 DB #38 pap2 NOP bord NOP IMVEC=#8000 ;todo #BE00 TXTBUF=23698 OOOO=23698 BUF=#6F60;#480+18zeros l5b00=#6000;#5B00 глючит(Risk);CAT низя;длины треков при compile ;не более 128 треков(нет проверки!) CATfilt=BUF-#500 ;,#500 todo pg4/pg7 CATdos=BUF-#480 ;,#900 BUFEND=BUF+#4A0 SPRAR=BUFEND TVOL=#BE00 ;many EDORbf=#7100;(64) ;1 bf240=#7180;EDPOSssQ BUF(#240) FONT=#7400;%512(лежит на 256 выше) FNTDEC=#7800;(512) FNTNOTE=FNTDEC+512;(256) TSMPSZ=#7B00;SMPLP,END(64) TPOSS=#7C00 ;10 TPATSZ=TPOSS+256;=0..63 TORNSZ=#7DD0;ORNLP,END(32) ;2 ;убить? ARBUF=#7D80 ;2(GO,AtoPAT) ;убить? TPATS=#7E00;pg,E,D ;5 ;убить? TLINES=#7F00;L/2*18(128) ;2+1 ;убить TORNS=#7FD0;(32).TORNS=.TORNSZ FrTab=#BF00 INCLUDE "PTcon*",#C7 modC=mod ORG #6100 begin ;3тут+4(STPAT0,COPYU,CMpores,TransPP) AtoPAT ;HL,A на выходе не важны ;C надо сохранять для COPYU AtoPnsJ JR AtoPns2 CPL ADD A,PATS;48 AtoPns2 LD L,A ADD A,A ADD A,L LD L,A LD H,'TPATS LD A,(HL) CALL OUTME INC L LD E,(HL) INC L LD D,(HL) RET SWPAYPP LD BC,#FFFD IFN pttfc RES 2,A ENDIF OUT (C),A sWPSNGPP LD HL,ayblock ;LD DE,ayblock2 LD B,szayblock4 SWPAY0 DUP 4 LD A,(HL) INC H LD E,(HL) LD (HL),A DEC H LD (HL),E INC L EDUP DJNZ SWPAY0 LD HL,AtoPnsJ LD A,(HL) XOR 24!46 LD (HL),A RET SWPSONG CALL sWPSNGPP RRA AND 1 ADD A,"1" LD DE,#1D0B CALL PRADD LD A,(pat1)
CPL
ADD A,PATS;48
AtoPns2 LD L,A ADD A,A ADD A,L LD L,A LD H,'TPATS LD A,(HL) CALL OUTME INC L LD E,(HL) INC L LD D,(HL) RET SWPAYPP LD BC,#FFFD IFN pttfc RES 2,A ENDIF OUT (C),AsWPSNGPP LD HL,ayblock ;LD DE,ayblock2 LD B,szayblock4SWPAY0 DUP 4 LD A,(HL) INC H LD E,(HL) LD (HL),A DEC H LD (HL),E INC L EDUP DJNZ SWPAY0 LD HL,AtoPnsJ LD A,(HL) XOR 24!46 LD (HL),A RET SWPSONG CALL sWPSNGPP RRA AND 1 ADD A,"1" LD DE,#1D0BiPATq CALL PRADD LD A,(pat1) CPL ADD A,PATS;48 CALL iPATq LD A,(pat2) CPL ADD A,PATS;48 CALL iPAT2q LD HL,TPATSZ LD DE,TPATSZ+PATS-1 LD B,PATS/2SWPSNGL LD A,(DE) LD C,(HL) LD (HL),A LD A,C LD (DE),A INC L DEC E DJNZ SWPSNGL LD A,(EPAT) LD L,A LD A,(HL) LD (PATLEN),A ;LD A,(PATLEN) CALL IPATLQ JP PRPATUUCHKTS LD A,(ts48) LD HL,tson CP 33 ;32=не TS SBC A,A ;#FF=не TS CP (HL) RET NZONOFFTS LD HL,#486B LD C,3 CALL INVSYMS LD HL,tson LD A,(HL)
CPL
ADD A,PATS;48 CALL iPAT2q LD (HL),ATPATSZ LD DE,TPATSZ+PATS-1 LD B,PATS/2 OR SWPSNGL LD A,(DE) LD AC,32(HL) JZ $+4 LD (HL),A LD A,48;PATSC LD (ts48DE),A RET INC LALLCHAN DEC E LD HL,#4853 DJNZ SWPSNGL LD CA,4 CALL INVSYMS(EPAT) LD HLL,chnallA LD A,(HL) CPL LD (HLPATLEN),A RET ;10GETnADR LD A,B(PATLEN) CALL AtoPATIPATLQ JP PRPATUU CHKTS LD A,C(ts48) LD HL,tson CP 33 ;32=не TS ADD SBC A,A;#FF=не TS CP (HL) RET NZ ONOFFTS LD HL,#486B LD LC,A3 CALL INVSYMS LD HHL,'TLINEStson LD A,(HL) INC L CPL LD H,(HL) LD L,A ADD HL,DEOR A RET ;2(PT2PATSLD A,PT3PATS)PATfrBUF32 PUSH AF,HLJZ $+4 LD L,A,H,'TPATSZ DEC D48;PATS LD (HLts48),DA CALL aPATBUF RET ALLCHAN POP LD HL,AF#4853 RET ;2(CLPATS LD C,clPAT)CLPAT4 CALL KILLBUFINVSYMS LD HL,97chnall LD A,(BUF+3HL),HL CPL LD (BUF+8),HL LD (BUF+13),HLAaPATBUF CALL AtoPAT RET LD HL,BUF ;10 JR bUFLDIR GETnADR;2(COPYU LD A,CMPP)PATtoBUFB
CALL AtoPAT
LD A,C ADD A,A LD L,A LD H,'TLINES LD A,(HL) INC L LD H,(HL) LD L,A ADD HL,DE RET ;2(PT2PATS,PT3PATS) PATfrBUF PUSH AF,HL LD L,A,H,'TPATSZ DEC D LD (HL),D CALL aPATBUF POP HL,AF RET ;2(CLPATS,clPAT) CLPAT CALL KILLBUF LD HL,97 LD (BUF+3),HL LD (BUF+8),HL LD (BUF+13),HL aPATBUF CALL AtoPAT LD HL,BUF JR bUFLDIR ;2(COPYU,CMPP) PATtoBUF CALL AtoPAT LD HL,BUF EXD bUFLDIR LD BC,#480 LDIR JP OUT7 ;3(CLPAT,PT2PATS,PT3PATS) KILLBUF PUSH HL LD HL,BUF LD DE,BUF+1 LD (HL),0 LD BC,#47F LDIR POP HL RET ;2 GETnPAT LD A,(POS) GETnPAA LOOP=$+1 LENG=LOOP+1 LD DE,#100 INC A CP D JNC $+3 LD E,A LD D,'TPOSS LD A,(DE),(nPAT),A RET ;2(INCPOSU,ROLL) ROLnxPO CALL GETnPAT ;(DE)->A->(nPAT) LD (EPAT),A LD B,E LD E,A INC D ;TPATSZ LD A,(DE),(PATLEN),A
INC A
CP D JNC $+3 LD E,A LD D,'TPOSS LD A,(DE),(nPAT),A RET ;2(INCPOSU,ROLL)ROLnxPO CALL GETnPAT ;(DE)->A->(nPAT) LD (EPAT)C,A LD B,E LD E,A INC D ;TPATSZ LD A,(DE),(PATLEN),A INC A LD C,A LD A,B,(POS),A RET ;2(UPRnxPO,PRPAT) ROLprPO ;LD A,(POS) LD DE,(LENG) DEC A CP E JC $+4 LD A,E DEC A LD E,A LD D,'TPOSS EXA ;LD (POS),A LD A,(DE) LD E,A INC D RET HLORNORN=$+1 LD A,1;6HLOR3 ADD A,A ADD A,TORNS LD L,A;1:CLORN (убить)_orn LD H,'TORNS PUSH AF LD A,(HL) INC L LD H,(HL),L,A POP AF RET FILLENS LD DE,TPATSZ+1 LD BC,PATS-1 LD H,D,L,B LD (HL),A LDIR RET DE2ATTR LD A,E RRCA RRCA RRCA DA2ATTR LD H,A AND #E0 OR D LD L,A,A,H AND 3 OR 88 LD H,A RET DE2SCR LD A,E AND 24 OR 64 LD H,A LD A,E AND 7 RRA RRA RRA RRA ADD A,D LD L,A RET DHL INC H LD A,H AND 7 RET NZ LD A,L ADD A,32 LD L,A RET C LD A,H SUB 8 LD H,Aret RET DDE INC D LD A,D AND 7 RET NZ LD A,E ADD A,32 LD E,A RET C LD A,D SUB 8 LD D,A RET SHOLK NOP LD HL,shlkR LD DE,#202 CALL SHLK0 LD DE,#406 CALL SHLK0 LD DE,#30BSHLK0 LD BC,-3 OUT (C),E LD B,#BF OUTI INC E DEC D JNZ SHLK0 RET WINDUM LD HL,DUMMYWINDOW CALL WINmema LD (useadr),DE LD (optadr),HL DEC HL LD A,(HL),(options),A PUSH BC POP IX LD A,#B7,(DOWNM),A CALL OUT4 LD D,(IX),E,(IX+1) CALL DE2ATTR LD (WINATR),HL PUSH HL CALL DE2SCR LD (WINTOP),HL PUSH HL CALL WINMEM LD A,(IX),C,A ADD A,A,A,A,A,A LD (TSTXMIN),A,A,C INC A ADD A,A DEC A LD (ADDX),A,A,(IX+1) INC A LD (ADDY),A DEC A ADD A,A,A,A,A,A LD (TSTYMIN),A,A,(IX+2) ADD A,A DEC A LD (PRMRGT),A INC A ADD A,A,A,A LD (TSTXMAX),A POP HL ;WINTOP LD A,(IX+3) PUSH AF ADD A,A,A,A,A,A LD (TSTYMAX),A POP AF SUB (IX+1) ADD A,A,A,A,A,A LD (RMKHGT),A DEC (IX+2) LD B,0WIN0 EXA PUSH HL LD (HL),B,D,H,E,L INC E LD A,(IX+2) SUB (IX) LD (WINWID),A,C,A LDIR POP HL CALL DHL
EXA
DEC A JNZ WIN0 POP HL ;WINATR LD A,(IX+4POS),A EXA LD A,(IX+3) SUB (IX+1DE) LD BE,0AWIN1 EXA INC D PUSH HL RET LD (HL),A,D,H,E,L HLORN INC EWINWID ORN=$+1 LD CA,01 LDIR ;6 POP HL LD C HLOR3 ADD A,32A ADD HLA,BC EXA DEC A JNZ WIN1TORNS LD L,A,(IX+2) INC (IX+2) SUB ;1:CLORN (IXубить) _orn LD C,A,BH,0'TORNS PUSH BCAF LD HLA,(WINTOPHL) CALL FILM1,DHLRMKHGT=$+1 INC L LD DH,0 DEC D LD B(HL),DL,C,1A CALL VERLIN POP AF LD B,D,HL,(WINTOP) RET DEC B CALL DHL FILLENS LD CDE,#80TPATSZ+1 CALL VERLIN POP LD BC,PATS-1FILM1 LD D,H,ED,L,B LD (HL),-1 INC DEA LDIR RET VERLIN DE2ATTR LD (HL)A,C CALL DHLE DJNZ $-4 RRCA RET RRCA ;2 RRCA WINmema DA2ATTR LD A,(options),(Oldopt)H,A PUSH HL AND #E0 LD HL,(optadr),(Oldoad),HL OR D LD HLL,(useadr)A,(Olduse)A,HLH POP HL AND 3 RET WINMEMWBUFTOP=$+1 OR 88 LD HLH,winbufA PUSH HL RET Oldopt=$+1 DE2SCR LD (HL)A,0E INC HL AND 24Oldoad=$+1 OR 64 LD DEH,0 CALL WMEMPPOlduse=$+1A LD DEA,0E CALL WMEMPP AND 7ADDY=$+1 RRA ADDX=$+2 RRA LD DE,0 RRA CALL WMEMPP RRA LD ADD A,(PRMRGT)D LD (HL)L,A INC HL RET WINATR=$+1 DHL LD DE,0 CALL WMEMPP INC H LD A,(IX+2)H SUB (IX) AND 7 INC A RET NZ LD (HL),A,C,AL INC HL LD ADD A,(IX+3) SUB (IX+1) INC A32 LD (HL)L,A INC HL PUSH AF RET C LD BA,0H EXD WMEM0 PUSH BC,HL LDIR POP HL SUB 8 LD C,32 ADD HLH,BC POP BC DEC A JNZ WMEM0 ret RET POP AF DDE DEC C INC D ADD LD A,A,A,A,A,AD EXD AND 7WINTOP=$+1 RET NZ LD DE,0 CALL WMEMPP EXD WMEM1 EXA PUSH HL,BC LDIR POP BC,HL CALL DHL EXA DEC A JNZ WMEM1 EXD POP DEWMEMPP LD (HL),E INC HL LD (HL) ADD A,D INC HL32 LD (WBUFTOP)E,HLA RET CCLOSWIN CALL OUT4 LD HL,(WBUFTOP) DEC HL LD A,(HL)D DEC HL SUB 8 LD L,(HL),HD,A OR L RET Z LD (WBUFTOP),HL SHOLK PUSH BC NOP LD DEHL,options LDI shlkR LD DE,optadr#202 LDI LDI CALL SHLK0 LD DE,useadr#406 LDI LDI CALL SHLK0 LD DE,ADDY#30B LDI LDI SHLK0 LD DEBC,PRMRGT LDI LD E,(HL) INC HL-3 LD D, OUT (HL) INC HL LD C,(HL) INC HL LD A,(HL) INC HL PUSH AFE LD B,0#BFCLOS0 PUSH BC,DE OUTI LDIR EXD POP HL LD C,32 ADD HL,BC EXD POP BC INC E DEC AD JNZ CLOS0SHLK0 POP AF RET DEC A WINDUM ADD A,A,A,A,A LD HL,ADUMMY DEC C WINDOW LD E,(HL) INC HL CALL WINmema LD D,(HLuseadr) INC HLCLOS1 EXA PUSH DE,BC LDIR POP BC,DE CALL DDE EXA DEC A JNZ CLOS1 LD A,"0",(PR1dotoptadr),AHL CALL MHEXFNT DEC HL LD A,".",(PR1dotHL),A LD A,pg7;(filladr+1options),A CALL MHEXFNTpg PUSH BC POP BC CALL TSTFIRH JC $-3 RET ;6WAITNOK CALL HALTER CALL ANYKEY CPL AND 31 JNZ WAITNOK RET LDKSAPPIX LD A,32 LD #B7,(ts48DOWNM),A CALL CLORNSM CALL BIGso CALL OUT3OUT4 LD BCD,(#5CE8IX),HL,#BFFF,D,L,E,L ADD HL,BC LDDR INC DE EXD LD DE,la000,A,(HLIX+1) PUSH AF INC HL CALL DE2ATTRKSAPP0 LD A,(HL)KSAPP1 INC HL LD B,0 SRL A JC KSAPPb0 RRA JC KSAPPb1 RRA LD C,A JC $+5 LD B,A,C,(HLWINATR) INC HL LD A,(HL) INC HLKSAPP2 LD (DE),A
PUSH HL
LD A,(HL) CALL DE2SCR EXA LD H,D,L,E INC DE JR KSAPP2G KSAPPb1 SRL A LD C,(HLWINTOP) JNC KSAPPn2 LD C,A INC C LDIR JR KSAPP0 KSAPPb0 SRL A JC KSAPP01 AND 7 LD B,A DEC HL RLD RRA LD C,A LD A,BKSAPPn2 LD B,A INC HL,HL LD A,(HL) EXA
PUSH HL
DEC HL CALL WINMEM LD A,E SUB (HLIX),C,A LD L ADD A,A,A LD ,A,D SBC A,BA LD B(TSTXMIN),0 LD HA,A,C INC BCAKSAPP2G INC BC ADD A,BC LDIR POP HL EXA JR KSAPP1KSAPP01 SRL A DEC A LD C(ADDX),A,A,B(IX+1) DEC BC INC A JC KSAPP2 POP AF LD (DEADDY),A LD HL DEC A ADD A,A,A,A,A,labc0A LD DE(TSTYMIN),TPATSZ LD BA,31KSAlens LD A,(HLIX+2) ADD A,A DEC A LD (DEPRMRGT),A INC HL,DEA DJNZ KSAlens CALL STSMP LD HL ADD A,labdf LD A,(HL)A,A LD (LOOPTSTXMAX),A INC LPOP HL ;WINTOP LD DEA,TTITLE(IX+3) LD C PUSH AF ADD A,A,25 LDIR LD A,EA,(STtit)A,A LD A,7,(STtitZTSTYMAX),A XOR A POP AF CALL STORN SUB (IX+1) LD ADD A,A,A,A,1A,A LD (FRQnRMKHGT),A CALL OUT3 DEC (IX+2) LD B,0 WIN0 EXA PUSH HL,labf9 LD DE(HL),labc1 LD B,96D,H,E,L LDIR INC E JR LDSTPGOBIGso LD A,33 LD HL,TSMPSZ(IX+32) LD DE,TSMPSZ+4 SUB (IX) LD (HLWINWID),A,C,A LDIR POP HL CALL DHL EXA DEC A JNZ WIN0 CALL BIGsoQPOP HL ;WINATR LD HLA,TORNSZ(IX+34) EXA LD DEA,TORNSZ(IX+43) LD SUB (HLIX+1) LD B,A0 XOR A WIN1 EXA BIGsoQ DEC L PUSH HL LD (HL),A,D,H,E,L INC E WINWID=$+1 LD BCC,300 LDIR RET LDSTPP POP HL LD AC,32 LD (ts48) ADD HL,BC EXA DEC A CALL CLORNSM JNZ WIN1 CALL BIGso LD A,(IX+2) INC A(IX+2) LD SUB (FRQnIX) LD C,A,B,0 PUSH BC LD AHL,(labc0WINTOP) CALL FILM1,DHL RMKHGT=$+1 LD D,0 DEC AD ; LD B,D,C,PATS-1 ;LD DE,TPATSZ+1 CALL VERLIN ; LD HB,D,LHL,B ;LD (HLWINTOP),A ;LDIR DEC B CALL FILLENSDHL LD (PATLEN)C,A#80 CALL STSMPVERLIN POP BC FILM1 LD AD,H,E,TTITLEL,(STtitHL),A-1 INC DE LDIR RET VERLIN LD A,31,(STtitZHL),AC CALL DHL DJNZ $-4 LD A,'LOOP RET CALL STORN ;2 CALL OUT3 WINmemaLDSTPGO LD A,(labbfoptions),(TEMPOOldopt),A PUSH HL LD AHL,(la99eoptadr) INC A LD ,(LENGOldoad),AHL LD HL,la79e LD DE(useadr),TPOSS LD A,ELDSTpos DEC (HLOlduse) LDI INC ,HL DEC A JNZ LDSTpos LD POP HL,labc1 LD DE,la000 RET PUSH DE LD B,#5F LDIR WINMEM POP HLSTPAT0 PUSH AFWBUFTOP=$+1 CALL OUT3 POP AF PUSH AF LD DEHL,EDORbf LD BC,#240 LDIR winbuf
PUSH HL
CALL AtoPAT Oldopt=$+1 LD (HL),EDORbf0 PUSH DE INC HL POP IX Oldoad=$+1 LD BDE,640 CALL WMEMPPSTPAT1 PUSH BCOlduse=$+1 INC LD DE,0 CALL WMEMPP ADDY=$+1 ADDX=$+2 LD DE,DE0 PUSH IX CALL WMEMPP LD A,(IXPRMRGT),C LD (IXHL),A INC HL WINATR=$+1) LD DE,C0 CALL WMEMPP LD A,(IX+2) SUB (IX) INC A LD (HL),A,C,A INC HL LD BA,(IX+3)STPAT2 PUSH BC,DE SUB (IX+1) XOR INC A LD (DEHL),A INC DEHL PUSH AF LD B,0 EXD WMEM0 PUSH BC,HL LDIR POP HL LD (DE)C,32 ADD HL,BC POP BC DEC A INC DE JNZ WMEM0 POP AF INC DE DEC C LD (DE) ADD A,A,A,A,A,A INC DE EXD WINTOP=$+1 LD (DE),A0 CALL WMEMPP EXD EX (SP) WMEM1 EXA PUSH HL,BC LDIR POP BC,HL CALL DHL EXA DEC A JNZ WMEM1 EXD CALL STPAPP
POP DE
WMEMPP LD (HL),E INC HL LD (HL),D INC DEHL LD (WBUFTOP),HL RET CLOSWIN POP BCCALL OUT4 DJNZ STPAT2 LD HL,(WBUFTOP) POP IX DEC HL LD CA,18(HL) DEC HL ADD IX LD L,(HL),H,BCA POP BCOR L DJNZ STPAT1RET Z POP LD (WBUFTOP),HL PUSH BC LD DE,options LDI LD DE,optadr LDI LDI LD DE,AFuseadr LDI LDI LD DE,ADDY INC A LDI AND 31 LDI JNZ STPAT0 LD DE,PRMRGTSTloop=$+2 LDI LD E,(LOOPHL) INC HL LD D,A(HL) INC HL LD C,(POSHL),ASTtit=$+1 INC HL LD A,(HL) INC HL,TTITLESTtitZ=$+1 PUSH AF LD B,0 CLOS0 PUSH BC,31DE LDIR CALL STtitQ EXD POP HL LD C,32 ADD HL,TAUTHORBC EXD POP BC DEC A JNZ CLOS0 POP AF DEC A ADD A,A,A,A,A,A DEC C LD CE,31(HL)STtitQ INC HL LD D,H(HL) INC HL CLOS1 EXA PUSH DE,BC LDIR POP BC,DE CALL DDE EXA DEC A JNZ CLOS1 LD EA,"0",(PR1dot),LA INC ECALL MHEXFNT LD A,".",(HLPR1dot),A LD A,pg7;(filladr+1),32A CALL MHEXFNTpg POP BC CALL TSTFIRH LDIR JC $-3
RET
;6STSMP CALL OUT4 WAITNOK LD HL,la000CALL HALTER LD DE,_c000+256 CALL ANYKEY LD A,15 CPL STSMP0 PUSH AF AND 31 PUSH HL JNZ WAITNOK PUSH DE RET CALL STSMPP LDKSAPP LD A,(IX+#60)32 LD H,(IX+#61ts48) OR ,A JZ STSMPQ CALL CLORNSM DEC A CALL BIGso INC H CALL OUT3 LD LBC,A ADD A(#5CE8),H LD HHL,A LD A#BFFF,D SUB 'SMPS EXD ADD A,A LD L,A LD H,'TSMPSZ LD (HL)E,E INC L LD (HL),DSTSMPQ POP DE POP HL INC D LD BC,#82
ADD HL,BC
POP AFLDDR DEC A JNZ STSMP0 RET  STSMPP PUSH HL POP IX LD (STSMbse),HLINC DE
EXD
LD DE,la000,A,(HL) PUSH AF INC HL KSAPP0 LD A,(HL) KSAPP1 INC HL LD B,0 SRL A JC KSAPPb0 RRA JC KSAPPb1 RRA LD C,A JC $+5 LD B,A,C,(HL) INC HL LD A,(HL) INC HL KSAPP2 LD (DE),A PUSH HL LD A,(HL) EXA LD H,D,L,E INC DE JR KSAPP2G KSAPPb1 SRL A LD C,(HL) JNC KSAPPn2 LD C,A INC C LDIR JR KSAPP0 KSAPPb0 SRL A JC KSAPP01 AND 7 LD B,A DEC HL RLD RRA LD C,A LD A,B KSAPPn2 LD B,32A INC HL,HL LD A,(HL) EXA PUSH HL DEC HLSTSMPP0 LD A,64E SUB (HL) LD L,A LD A,D SBC A,B LD B,0 LD H,A INC BC KSAPP2G INC BC,BC LDIR POP HL EXA JR KSAPP1 KSAPP01 SRL A DEC A LD C,B DEC BC JC KSAPP2 POP AF LD (DE),A LD HL,labc0 LD DE,TPATSZ LD B,31 KSAlens LD A,(HL) DEC A LD (DE),A INC HL,DE DJNZ KSAlens CALL STSMP LD HL,labdf LD A,(HL),(LOOP),A INC L LD DE,TTITLE LD C,25 LDIR LD A,E,(STtit),A LD A,7,(STtitZ),A XOR A CALL STORN LD A,1,(FRQn),A CALL OUT3 LD HL,labf9 LD DE,labc1 LD B,96 LDIR JR LDSTPGO BIGso LD A,33 LD HL,TSMPSZ+3 LD DE,TSMPSZ+4 LD (HL),A DEC A CALL BIGsoQ LD HL,TORNSZ+3 LD DE,TORNSZ+4 LD (HL),A XOR A BIGsoQ DEC L LD (HL),A LD BC,30 LDIR RET LDSTPP ADD LD A,32 LD (ts48),A CALL CLORNSM CALL BIGso INC A LD (FRQn),A LD A,(labc0) DEC A ;LD C,PATS-1 ;LD DE,TPATSZ+1 ;LD H,D,L,B ;LD (STSMix1HL),A ;LDIR CALL FILLENS LD (PATLEN),A CALL STSMP LD A,TTITLE,(STtit),A LD A,31,(STtitZ),A LD A,'LOOP CALL STORN CALL OUT3 LDSTPGO LD A,(labbf),(TEMPO),A LD A,(la99e) INC A LD (STSMix2LENG),A LD HL,la79e LD DE,TPOSS LD A,E LDSTpos DEC (HL) LDI INC HL DEC A JNZ LDSTpos LD HL,labc1 LD DE,la000 PUSH DE LD B,#5F LDIR POP HL STPAT0 PUSH AF CALL OUT3 POP AF PUSH IXAF LD DE,EDORbf LD BC,#240 LDIR STSMbse=$+2 PUSH HL CALL AtoPAT LD HL,EDORbf PUSH DE POP IX LD B,064STSMix1=$+2 STPAT1 PUSH BC INC DE,DE,DE PUSH IX LD E(IX),C LD (IX+1),CSTSMix2=$ LD (IX+2),C LD B,3 STPAT2 PUSH BC,DE XOR A LD D(DE),A INC DE LD (IX+1DE),A POP IX INC DE INC DE BIT 4 LD (DE),DA INC DE RES 4 LD (DE),DA
EXD
CALL Z,NEGHL EXD LD EX (HLSP),E INC L LD (HL),D INC L LD A,(IX+#20),E,A AND 31 RL E JNC $+4 LD A,#40 RL E RLA RRCA ksaON=$+1 LD D,0 DEC D INC D JZ $+8 RL E JC $+4 OR #20 LD (HL),A INC L LD A,(IX),(HL),A INC L INC IX DJNZ STSMPP0 INC L,L LD (HL),96
EXD
RET  STORN LD (STloop),A LD A,(ksaON) LD HL,la9bf LD DE,ORNS+64 OR A JNZ KSAORN LD A,15STORN0 LD BC,32 LDIR EXD LD C,32 ADD HL,BC EXD DEC A JNZ STORN0 RET  KSAORN LD A,1KSAORN0 PUSH AF LD BC,TORNSZ ADD A,A,A,C LD C,A LD A,(HL),(BC),A INC C INC HL LD A,(HL) INC A LD (BC),A INC HL LD BC,30 LDIR EXD LD C,34 ADD HL,BC EXD POP AF INC A AND 15 JNZ KSAORN0 RET   CALL STPAPP LD A,(HL) CP #10 JC STEt CP #F0 JNC STres AND 7 ADD A,A,A,A LD B,A ADD A,A,A,B LD B,A LD A,(HL) LD C,8 CP #78 JNC STnot DEC C CP #70 JNC STnot DEC C CP #68 JNC STnot DEC C CP #60 JNC STnot DEC C CP #50 JNC STnot DEC C CP #48 JNC STnot DEC C CP #40 JNC STnot DEC C CP #38 JNC STnot DEC C CP #30 JNC STnot LD C,11 CP #20 JNC STnot DEC C CP #18 JNC $+3 DEC CSTnot LD A,C ADD A,B INC A JR STPAPQ STres LD A,97 JR $+3STEt XOR ASTPAPQ LD (DE),A INC DE,DE,DE INC HL LD A,(HL),(DE),A INC DE,HL AND #F JZ STEold CP #F JZ STorn LD C,A LD A,(ksaON) OR A JZ STnKSA LD A,C CP 3 JC STglisSTnKSA LD A,(HL),(IX+1),A INC HL RET  STEold LD A,(ksaON) OR A LD A,(HL) INC HL RET Z AND #F0 JR STgliQ STorn LD A,(HL) INC HLSTand=$+1 AND -1 JR STgliQ STglis LD C,A DEC DE LD A,(DE) AND #F0 LD (DE),A LD A,C LD C,1 DEC A JNZ $+3 INC C LD A,(HL) OR A JP P,$+6 NEG INC C DEC DE LD (DE),A DEC DE INC HL LD A,C AND 1 ADD A,17STgliQ RRCA RRCA RRCA RRCA LD (DE),A RET IF0 ply DS #15C ;??? ELSE TRELOC INCBIN "REL3* ENDIF FREE=CATfilt-$ DISPLAY /T,FREEPRESSED IF0 ply DS #900 ELSE ORG $,pg7 DISP #C000 DUP #90 DW {$} DW {$} DW {$} DW {$} DW {$} DW {$} DW {$} DW {$} EDUP ENT ORG $,pg6 ENDIF ENDPRES DS FONT+256-$;BUF+#480 пустое место для ssQ INCBIN "F7400;FNTDEC INCBIN "DIGITS ORG $-72 DS 72;FNTNOTE+512 DISPLAY "bufs ",$,"..7FXX=",#7F7D-$ DS #7F81-$sprar DW #BF,#401F,#600F,#7007,#7803,#6007,#401F,#BFGO DISPLAY /T,GO LD SP,#6000 LD (IY+1),#CC LD HL,#108 LD (#5C09),HL LD HL,Tfonscr,DE,0 CALL PRMENU,PRFONSCR LD HL,FONATRS,DE,#5800,B,3 LDIR LD H,'wassin CALL INPAGE CALL OUT7 LD HL,PRESSED,DE,#C000,B,A LDIR LD HL,SPRAR,A,127MKAR0 LD IX,sprar RLCA LD B,8MKAR1 LD C,(IX) INC IX LD D,(IX) INC IX LD E,0 PUSH AFMKAR2 SRL D RR E SCF RR C RRA JC MKAR2 LD (HL),C INC L LD (HL),D INC L LD (HL),A INC L LD (HL),E POP AF INC L DJNZ MKAR1 JNZ MKAR0 LD H,#FE,(HL),#5E CALL SETIM DEC (HL) LD HL,#C9AF,(#5E5D),HL,(#5D5E),HL IM 2 HALT IM 1 JNZ NOMOUSE DEC A LD BC,#FADF IN C,(C),A,(#DF) LD (OLDY+1),A,B,A,A,-5 IN A,(#DF) LD (OLDX+1),A CP B JNZ NOMOUQ CP C JNZ NOMOUQNOMOUSE LD A,62,(MOUSF),A,(MOUSF2),A LD HL,LEFT,(CALLER+1),HLNOMOUQ ;LD HL,(#5CF4),(SETsec),HL CALL MHEXFNT LD HL,#5D3B LD DE,ink1 LD B,3 JR saGsa LD A,(HL) AND #38 LD (DE),A
INC DE
POP BC DJNZ STPAT2 POP IX LD C,18 ADD IX,BC POP BC DJNZ STPAT1 POP HL,AF INC A AND 31 JNZ STPAT0 STloop=$+2 LD (LOOP),A LD (POS),A STtit=$+1 LD HL,TTITLE STtitZ=$+1 LD BC,31 CALL STtitQ LD HL,TAUTHOR LD C,31 STtitQ LD D,H LD E,L INC E LD (HL),32 LDIR RET STSMP CALL OUT4 LD HL,la000 LD DE,_c000+256 LD A,15 STSMP0 PUSH AF PUSH HL PUSH DE CALL STSMPP LD A,(IX+#60) LD H,(IX+#61) OR A JZ STSMPQ DEC A INC H LD L,A ADD A,H LD H,A LD A,D SUB 'SMPS EXD ADD A,A LD L,A LD H,'TSMPSZ LD (HL),E INC L LD (HL),D STSMPQ POP DE POP HL INC D LD BC,#82 ADD HL,BC POP AF DEC A JNZ STSMP0 RET STSMPP PUSH HL POP IX LD (STSMbse),HL EXD LD B,32 STSMPP0 LD A,64 SUB B ADD A,AsaG LD (STSMix1),A INC A LD (STSMix2),A PUSH IX STSMbse=$+2 LD IX,0 STSMix1=$+2 LD E,(IX) STSMix2=$+2 LD D,(IX+1) POP IX BIT 4,D RES 4,D EXD CALL Z,NEGHL EXD LD (HL),E INC L LD (HL),D INC L LD A,(IX+#20),E,A AND 31 RL E JNC $+4 LD A,#40 RL E RLA RLA RRCA ksaON=$+1 LD D,0 DEC D INC D JZ $+8 RL E JC $+4 OR #20 LD (HL),A INC L LD A,(IX),(HL),A INC L INC IX DJNZ STSMPP0 INC L,L LD (HL),96 EXD RET STORN LD (STloop),A LD A,(ksaON) LD HL,la9bf LD DE,ORNS+64 OR A JNZ KSAORN LD A,15 STORN0 LD BC,32 LDIR EXD LD C,32 ADD HL,BC EXD DEC A JNZ STORN0 RET KSAORN LD A,1 KSAORN0 PUSH AF LD BC,TORNSZ ADD A,A,A,C LD C,A LD A,(HL),(BC),A INC C INC HL LD A,(HL) INC A LD (BC),A INC HL LD BC,30 LDIR EXD LD C,34 ADD HL,BC EXD POP AF INC A AND 15 JNZ KSAORN0 RET STPAPP LD A,(HL) CP #10 JC STEt CP #F0 RLA JNC STres AND 7 ADD A,A,A,A LD B,A ADD A,A,A,B LD B,A LD A,(HL) LD C,8 CP #78 JNC STnot DEC C CP #70 JNC STnot DEC C CP #68 JNC STnot DEC C CP #60 JNC STnot DEC C CP #50 JNC STnot DEC C CP #48 JNC STnot DEC C CP #40 JNC STnot DEC C CP #38 JNC STnot DEC C CP #30 JNC STnot LD C,11 CP #20 JNC STnot DEC C CP #18 JNC $+3 DEC C STnot LD A,C ADD A,B INC A JR STPAPQ STres LD A,97 JR $+3 STEt XOR A STPAPQ LD (DE),A INC DE,DE,DE INC HL LD A,(HL),(DE),A INC DE,HL AND #F JZ STEold CP #F JZ STorn LD C,A LD A,(ksaON) OR A JZ STnKSA LD A,C CP 3 JC STglis STnKSA LD A,(HL),(IX+1),A INC HL RET STEold LD A,(ksaON) OR A LD A,(HL) INC HL RET Z AND #F0 JR STgliQ STorn LD A,(HL) INC HL STand=$+1 AND -1 JR STgliQ STglis LD C,A DEC DE LD A,(DE) AND #F0 LD (DE),A LD A,C LD C,1 DEC A JNZ $+3 INC C LD A,(HL) OR A JP P,$+6 NEG INC C DEC DE LD (DE),A DEC DE INC HL LD A,C AND 1 ADD A,17 STgliQ RRCA RRCA RRCA RRCA LD (DE),A RET IF0 ply DS #15C ;??? ELSE TRELOC INCBIN "REL3* ENDIF FREE=CATfilt-$ DISPLAY /T,FREE PRESSED IF0 ply DS #900 ELSE ORG $,pg7 DISP #C000 DUP #90 DW {$} DW {$} DW {$} DW {$} DW {$} DW {$} DW {$} DW {$} EDUP ENT ORG $,pg6 ENDIF ENDPRES DS FONT+256-$;BUF+#480 пустое место для ssQ INCBIN "F7400 ;FNTDEC INCBIN "DIGITS ORG $-72 DS 72 ;FNTNOTE+512 DISPLAY "bufs ",$,"..7FXX=",#7F7D-$ DS #7F81-$ sprar DW #BF,#401F,#600F,#7007,#7803,#6007,#401F,#BF GO DISPLAY /T,GO LD SP,#6000 LD (IY+1),#CC DJNZ saLD HL,#108 LD (#5C09),HL LD HL,Tfonscr,DE,0 CALL PRMENU,PRFONSCR LD HL,FONATRS,DE,#5800,B,3 LDIR LD H,'wassin CALL INPAGE CALL OUT7 LD HL,PRESSED,DE,#C000,B,A LDIR LD HL,SPRAR,A,127 MKAR0 LD IX,sprar RLCA LD B,8 MKAR1 LD C,(IX) INC IX LD D,(IX) INC IX LD E,0 PUSH AF MKAR2 SRL D RR E SCF RR C RRA JC MKAR2 LD (HL),C INC L LD (HL),D INC L LD (HL),A INC L LD (HL),E POP AF INC L DJNZ MKAR1 JNZ MKAR0 LD H,#FE,(HL),#5E CALL SETIM DEC (HL) LD HL,#C9AF,(#5E5D),HL,(#5D5E),HL IM 2 HALT IM 1 JNZ NOMOUSE DEC A LD BC,#FADF IN C,(C),A,(#DF) LD (OLDY+1),A,B,A,A,-5 RL IN A,(#DF) LD (OLDX+1),A CP B JNZ NOMOUQ CP C SBC JNZ NOMOUQ NOMOUSE LD A,62,(MOUSF),A,(MOUSF2),A LD HL,LEFT,(CALLER+1),HL NOMOUQ ;LD HL,(#5CF4),(SETsec),HL CALL MHEXFNT LD HL,#5D3B LD DE,ink1 LD B,3 JR saG sa LD A,(HL) AND #38 LD (DE),A INC DE INC HL saG LD A,(HL) RLA RLA RLA AND 31#38 LD (joyDE),A INC DE DJNZ sa LD C,(HL) RL C SBC A,A AND 31 LD (poionjoy),A RL C SBC A,A AND 201 LD (SHOLKpoion),A
RL C
SBC A,A
AND 201 LD (SHOLK),A RL C SBC A,A LD (playon),A ;LD A,(HL),(poion),A CALL SETCOLS ;EI LD A,pg7 CALL MHEXFNTpg LD HL,TSMPSZ+1,DE,TSMPSZ+2,C,62 LD (HL),L;1 DEC L PUSH HL LD (HL),B LDIR POP HL LD DE,TORNSZ,C,E;32 LDIR ;LD DE,TPATSZ+1,H,D,L,B,(HL),63 ;LD C,PATS-1 ;LDIR LD A,63 CALL FILLENS CALL CLPOS LD IX,TPATS LD A,pg6;#10 LD HL,42-PATS*#480 LD BC,3,DE,#480 JR MpA0 MpatADS LD H,#C1 MpA0 LD (IX),A,(IX+1),L,(IX+2),H ADD IX,BC,HL,DE JNC MpA0 INC A CP #12 JNZ $+3 INC A CP #15 JNZ MpatADS LD HL,TLINES,D,L,E,L,C,18,A,65 MTLIN LD (HL),E INC L LD (HL),D INC L EXD ADD HL,BC EXD DEC A JNZ MTLIN LD DE,ORNS,HL,TORNS,C,64,A,16 MTORN LD (HL),E INC L LD (HL),D INC L EXD ADD HL,BC EXD DEC A JNZ MTORN INC A LD (#5C0A),A CALL CLORNSM CALL COPYFRQ CALL CLPATS CALL MKSCROL IFN alasm CALL LOADASM ENDIF LD HL,IMVEC,(HL),IMER LD (IY+48),8 CALL SETIM DISPLAY $,">#8100 IM 2 EI LD HL,NLOOP PUSH HL JP EDPAT SETIM LD BC,256,D,H,E,B,A,H LDIR LD I,A RET DB 1 DUMMY DS 4;MENUCOORDS shlkR DB 0,9,0,0,0,#10,0,1,0 MHEXFNT LD A,pg4 MHEXFNTpg CALL OUTME XOR A LD DE,#F801,H,D,L,A,(HL),A,BC,#7FF PUSH HL LDIR POP DE HFNT0 PUSH AF,AF RRCA RRCA RRCA RRCA LD C,#F0 PUSH DE CALL PR1 POP DE,AF LD C,#F CALL PR1 INC DE,DE POP AF INC A JNZ HFNT0 RET PR1 AND #F ADD A,#90 DAA ADC A,#40 DAA poion=$+1 LD B,0;при старте 0 INC B DEC B JZ PR1np CP "0 JNZ $+4 PR1dot=$+1 LD A,". PR1np ADD A,A,A,A LD L,A ADC A,'FONT/2 SUB L LD H,A ADD HL,HL LD B,6 EXD PR10 LD A,(DE) AND C OR (HL) LD (HL),A INC E,L DJNZ PR10 EXD RET OCT DB 4 SNGST DW #C000 DISPLAY $,"<=",#8181 DS #8181-$ IMER PUSH HL,DE,BC,AF RST 56 CALL MANAGE POP AF,BC,DE,HL RET SNGLEN DW 0 TEDCURX ;NO CROSS sec! DISPLAY "TEDCURX=",$ DB 6,7,8,9,12,13 DB 16,20,21,22,23,26,27,28,29 DB 32,36,37,38,39,42,43,44,45 DB 48,52,53,54,55,58,59,60,61 TPROTR DB "ProTracker 3.7 compilation of " TTITLE ;NO CROSS sec! DISPLAY "TTITLE=",$ DS 33,32 DB "by " TAUTHOR DS 33,32 ts48=$-1 AUTO1 DB "---- AUTO2 DB "���� LINESon DS 9,#7F NLOOP LD (IY+48),8 ADD CALL RESHALT LD HL,NLOOP PUSH HL JZ NLOONK CP "W JP Z,EDSONG SUB 13 JP Z,PLSONG DEC A JP Z,EDPAT NLOONK CALL JPITEM DOWNMER LD A,#6F,(DOWNM),A RET FIRE ;NZ=y ;CALL 8026 ;JNC fIREcs LD A,#7F IN A,(-2) RRA fIREOK DEC A JNC FIREYES fIREcs LD A,BC#FA MOUSF IN A,(#DF) RRA JNC FIREYES RRA JC fIREKJ LD A,(ITEM) CP DIVNO+1 JZ fIREOK fIREKJ CALL KEMPJOY AND 16 RET Z FIREYES IFN hidearr EXD LD A,(ARROWt)
DEC A
JNZ MTLINRET Z ;Z=нет LD A,0 ;NZ=да LD (ARROWt),A ENDIF RET CANCEL LD A,#BF IN A,(-2) RRA RET NC CANCEL2 LD A,#FA MOUSF2 IN A,(#DF) RRA RRA RET CLPOS IF0 cl12345 LD DE,ORNSTPOSS+1 LD BC,255 LD H,HLD,TORNSL,CB LD (HL),64L LDIR RET ELSE LD HL,ATPOSS LD BC,16PATS*255+255MTORN LD (HL),EL
INC L
DJNZ $-2 LD D,H,E,L INC E LD (HL),DB LDIR RET INC LENDIF MOVD0A0 LD (movd0a0),A EXD CALL OUT7 ADD LD HL,la000,(LDADR),HL LD DE,ld000,BC,#2000 EXD LDIR OUT3 LD A,pg3 JR OUTME OUT7 LD A,pg7 JR OUTME DEC OUT6 LD A,pg6 JNZ MTORN JR OUTME INC OUT4 LD A,pg4 OUTME LD (#5C0Apg),A CALL CLORNSM PUSH BC LD BC,FD CALL COPYFRQ OUT (C),A CALL CLPATS POP BC CALL MKSCROL RET IFN alasm CALL LOADASM PRADDPP ENDIF PUSH HL LD HL,IMVEC(ADDY) ADD HL,(DE EXD POP HL RET PRTXADDBUF LD HL),IMERTXTBUF PRTXADD CALL PRADDPP PRTXT LD A,(IY+48HL),8 INC HL CALL SETIMPR4X8 DISPLAY $,">#8100 INC D DJNZ PRTXT IM 2 RET EI PRMEMO LD HL,NLOOPT____ PUSH PRMENU CALL PRADDPP PRMNU0 LD A,(HL) JP EDPAT CP 6SETIM JNZ PRMNUN6 INC HL LD BC,256,D,H(HL) INC HL LD E,E(HL) INC HL CALL PRADDPP LD A,B(HL) PRMNUN6 PUSH AF CALL PR4X8 INC HL LD A,D INC A PRMRGT=$+1 CP 62 JNZ $+6 LD A,H(ADDX) LDIR INC E LD ID,A POP AF RLA JNC PRMNU0 RET RESHALT RES 5,(IY+1) HALTER DB CALL ARROW HALTnAR options=$+1DUMMY DS 4;MENUCOORDS LD DE,mainsshlkR DB 0,9,0,0,0,#10,0 LD BC,(ARXY) optadr=$+1 LD HL,0MENUCOOMHEXFNT OPTER0 INC D LD A,pg4BMHEXFNTpg CP (HL) CALL OUTME INC HL XOR A JP C,OPTI3 LD DEA,#F801C CP (HL) JP C,HOPTI3 INC HL LD A,D,LB CP (HL) INC HL JP NC,OPTI1 LD A,C CP (HL) JP NC,OPTI1 LD A,BCD DEC HL,HL,#7FFHL PUSH LD (ITEMADR),HL LDIR JR OPTQ POP DE OPTI3 INC HL,HLHFNT0 OPTI1 PUSH AFINC HL DEC E JP NZ,OPTER0 LD A,-1 OPTQ LD (ITEM),A ITEM=$+1 LD A,AF-1 INC A RRCA CALL NZ,OP_INV RRCA HALT RRCA CALL RE RRCA fillpat=$+1 LD CA,#F068 PUSH DE filladr=$+1 CALL PR1 LD HL,0 POP DE,AF fillN=$+1 LD C,#F1 CALL PR1FILLPP INC DE LD A,7,(#5810),A,(#5890),A,(#58B0),A LD (filladr+1),DEA POP AFCALL OUT6 INC XOR A JNZ HFNT0 NOPKA=$+1 CP 0 ;fire RET CALL GETAYERPR1 BIT5 AND #F BIT 5,(IY+1) ADD LD A,#90(23560) RET DAA RE ADC A PUSH AF,BC,DE,#40HL DAA poion ARSCR=$+1 LD BDE,0;при старте 0,HL,ARBUF,BC,#8FF RE0 LDI INC B LDI DEC BDE,DE CALL DDE DJNZ RE0 POP HL,DE,BC,AF JZ PR1np RET CP "0 ARROW JNZ ARXY=$+41PR1dot ARX=$+12 LD HL,#7707 IFN hidearr LD ABC,".0PR1np ADD A LD ($-2),HL XOR A SBC HL,ABC ADD HL,ABC JNZ ARROWsT LD L(ARSCR+1),A ADC ARROWt=$+1 LD A,'FONT/20 DEC A RET Z ARROWsT SUB LLD (ARROWt),A ENDIF LD C,H,A,L ADD HL CALL 8880 LD (ARSCR),HL EXD RRCA RRCA RRCA LD BL,A,H,'SPRAR,BC,6ARBUF EXD ARR0 DUP 2PR10 LD A,(DE),(BC),A AND C(HL) INC L OR (HL) INC L LD (HLDE),A INC C,E,L DJNZ PR10EDUP ORG $-1 DEC E EXD CALL DDE RET LD A,LOCT AND 31 DB 4 JNZ ARR0SNGST RET DW #C000 DISPLAY $,"<=" RIGHT LD A,#8181DF DS #8181 IN A,(-$2)IMER RRA PUSH HL,DE CALL C,BC,AFKEMPJOY RST 56 RRA CALL MANAGE RET NC POP AF LD A,BC,DE,HL(ARX) RET INC CSNGLEN ADD A,B DW 0 RIGHTU JNC $+4TEDCURX LD A,-9;NO CROSS sec! CP -8 DISPLAY "TEDCURX=", JNC $-4 DB 6 L14 LD (ARX),7A RET MOUSER PUSH BC,8HL LD HL,9(ARXY) LD A,12-5 IN A,13(#DF) DB 16 OLDX LD E,200,21(OLDX+1),22A SUB E JP P,23MPX ADD A,26H CCF CALL LEFTU JR MXQ MPX ADD A,27H CALL RIGHTU MXQ LD A,28-1 IN A,29(#DF) DB 32 OLDY LD E,360,37(OLDY+1),38A SUB E NEG JP P,39MPY ADD A,42L JC $+3 XOR A SUB L MPY ADD A,43L LD (ARXY),44A POP HL,45BC DB 48 LEFT LD A,52#DF IN A,53,54,55,58,59,60,61(-2) RRA TPROTR DB "ProTracker 3.7 compilation of " RRA TTITLE CALL C,KEMPJOY;NO CROSS sec! AND 2 DISPLAY "TTITLE=" LD A,$(ARX) DS 33,32JZ $+4 DB "by "INC CTAUTHOR DS 33,32 SUB Bts48= LEFTU JNC $-1+3 XOR AAUTO1 DB "---- JR L14AUTO2 DB "����LINESon DS 9 UP LD A,#7FFBNLOOP LD IN A,(IY+48-2) RRA CALL C,KEMPJOY AND 8 CALL RESHALT RET Z LD A,(HL,NLOOP) PUSH HL SUB B JZ NLOONK JC $+6 CP "W4 JP Z JNC $+4 LD A,4 L27 LD (HL),EDSONGA SUB 13 INC C RET JP Z DOWN LD A,PLSONG#FE DEC IN A,(-2) JP Z RRA CALL C,EDPATKEMPJOY AND 4NLOONK CALL JPITEM RET ZDOWNMER LD A,#6FEF IN A,(DOWNM-2) CPL AND 31 RET NZ ;cs+0..6 LD A,#F7 IN A,(-2) RET CPL FIRE AND 31; RET NZ=y ;CALL 8026 ;JNC fIREcscs+1..5
LD A,#7F
IN A,(-2)
RRA
fIREOK DEC A
JNC FIREYES
fIREcs LD A,#FA
MOUSF IN A,(#DF)
RRA
JNC FIREYES
RRA
JC fIREKJ
LD A,(ITEM)
CP DIVNO+1
JZ fIREOK
fIREKJ CALL KEMPJOY
AND 16
RET Z
FIREYES
IFN hidearr
LD A,(ARROWt)
DEC A
RET Z ;Z=нет
LD A,0 ;NZ=да
LD (ARROWt),A
ENDIF
RET
CANCEL
LD A,#BF
IN A,(-2)
RRA
RET NC
CANCEL2 LD A,#FA
MOUSF2 IN A,(#DF)
RRA
RRA
RET
CLPOS
IF0 cl12345
LD DE,TPOSS+1
LD BC,255
LD H,D,L,B
LD (HL),L
LDIR
RET
ELSE
LD HL,TPOSS
LD BC,PATS*255+255
LD (HL),L
INC L
DJNZ $-2
LD D,H,E,L
INC E
LD (HL),B
LDIR
RET
ENDIF
MOVD0A0
LD (movd0a0),A
CALL OUT7
LD HL,la000,(LDADR),HL
LD DE,ld000,BC,#2000
LDIR
OUT3 LD A,pg3
JR OUTME
OUT7 LD A,pg7
JR OUTME
OUT6 LD A,pg6
JR OUTME
OUT4 LD A,pg4
OUTME
LD (pg),A
PUSH BC
LD BC,FD
OUT (C),A
POP BC
RET
 
PRADDPP
PUSH HL
LD HL,(ADDY)
ADD HL,DE
EXD
POP HL
RET
 
PRTXADDBUF
LD HL,TXTBUF
PRTXADD CALL PRADDPP
PRTXT LD A,(HL)
INC HL
CALL PR4X8
INC D
DJNZ PRTXT
RET
 
PRMEMO LD HL,T____
PRMENU
CALL PRADDPP
PRMNU0 LD A,(HL)
CP 6
JNZ PRMNUN6
INC HL
LD D,(HL)
INC HL
LD E,(HL)
INC HL
CALL PRADDPP
LD A,(HL)
PRMNUN6 PUSH AF
CALL PR4X8
INC HL
LD A,D
INC A
PRMRGT=$+1
CP 62
JNZ $+6
LD A,(ADDX)
INC E
LD D,A
POP AF
RLA
JNC PRMNU0
RET
RESHALT
RES 5,(IY+1)
HALTER
CALL ARROW
HALTnAR
options=$+1
LD DE,mains
LD BC,(ARXY)
optadr=$+1
LD HL,MENUCOO
OPTER0 INC D
LD A,B
CP (HL)
INC HL
JP C,OPTI3
LD A,C
CP (HL)
JP C,OPTI3
INC HL
LD A,B
CP (HL)
INC HL
JP NC,OPTI1
LD A,C
CP (HL)
JP NC,OPTI1
LD A,D
DEC HL,HL,HL
LD (ITEMADR),HL
JR OPTQ
OPTI3 INC HL,HL
OPTI1 INC HL
DEC E
JP NZ,OPTER0
LD A,-1
OPTQ LD (ITEM),A
ITEM=$+1
LD A,-1
INC A
CALL NZ,OP_INV
HALT
CALL RE
fillpat=$+1
LD A,#68
filladr=$+1
LD HL,0
fillN=$+1
LD C,1
CALL FILLPP
LD A,7,(#5810),A,(#5890),A,(#58B0),A
LD (filladr+1),A
CALL OUT6
XOR A
NOPKA=$+1
CP 0 ;fire
CALL GETAYER
BIT5
BIT 5,(IY+1)
LD A,(23560)
RET
RE
PUSH AF,BC,DE,HL
ARSCR=$+1
LD DE,0,HL,ARBUF,BC,#8FF
RE0 LDI
LDI
DEC DE,DE
CALL DDE
DJNZ RE0
POP HL,DE,BC,AF
RET
ARROW
ARXY=$+1
ARX=$+2
LD HL,#7707
IFN hidearr
LD BC,0
LD ($-2),HL
XOR A
SBC HL,BC
ADD HL,BC
JNZ ARROWsT
LD (ARSCR+1),A
ARROWt=$+1
LD A,0
DEC A
RET Z
ARROWsT
LD (ARROWt),A
ENDIF
LD C,H,A,L
CALL 8880
LD (ARSCR),HL
EXD
RRCA
RRCA
RRCA
LD L,A,H,'SPRAR,BC,ARBUF
ARR0 DUP 2
LD A,(DE),(BC),A
AND (HL)
INC L
OR (HL)
INC L
LD (DE),A
INC C,E
EDUP
ORG $-1
DEC E
CALL DDE
LD A,L
AND 31
JNZ ARR0
RET
 
RIGHT LD A,#DF
IN A,(-2)
RRA
CALL C,KEMPJOY
RRA
RET NC
LD A,(ARX)
INC C
ADD A,B
RIGHTU JNC $+4
LD A,-9
CP -8
JNC $-4
L14 LD (ARX),A
RET
MOUSER PUSH BC,HL
LD HL,(ARXY)
LD A,-5
IN A,(#DF)
OLDX LD E,0,(OLDX+1),A
SUB E
JP P,MPX
ADD A,H
CCF
CALL LEFTU
JR MXQ
MPX ADD A,H
CALL RIGHTU
MXQ LD A,-1
IN A,(#DF)
OLDY LD E,0,(OLDY+1),A
SUB E
NEG
JP P,MPY
ADD A,L
JC $+3
XOR A
SUB L
MPY ADD A,L
LD (ARXY),A
POP HL,BC
LEFT LD A,#DF
IN A,(-2)
RRA
RRA
CALL C,KEMPJOY
AND 2
LD A,(ARX) JZ $+4 INC C SUB BLEFTU JNC $+3 XOR A JR L14UP LD A,#FB IN A,(-2) RRA CALL C,KEMPJOY AND 8 RET Z LD A,(HL) SUB B JC $+6 CP 4 JNC $+4 LD A,4L27 LD (HL),A INC C RET DOWN LD A,#FE IN A,(-2) RRA CALL C,KEMPJOY AND 4 RET Z LD A,#EF IN A,(-2) CPL AND 31 RET NZ ;cs+0..6 LD A,#F7 IN A,(-2) CPL AND 31 RET NZ ;cs+1..5 LD A,#7F IN A,(-2) AND 2 RET Z ;Ext LD A,(HL) ADD A,B JR L27 MANAGE XOR A LD (NOPKA),A CALL FIRE LD A,9,B,1 JZ L2 L3 LD A,1 DEC A JNZ L6 CPL LD (NOPKA),A TIMER LD A,9 DEC A JNZ $+3 INC A LD B,A L2 LD (TIMER+1),A LD A,B L6 LD (L3+1),A SPEED LD BC,#101 CALLER CALL MOUSER CALL RIGHT LD HL,ARXY CALL UP CALL DOWN DOWNM=$+1 LD A,#6F CP (HL) CALL C,L27 LD A,1 DEC C JZ L9 LD A,1 RLCA LD ($-2),A RET NC LD A,(SPEED+2) INC A CP 7 RET Z L9 LD (SPEED+2),A RET ;5 KEMPJOY XOR A IN A,(31) joy=$+1 AND 0 RET ;1 OP_INV ITEMADR=$+1 LD HL,0 LD B,(HL),D,B INC HL LD C,(HL) INC HL LD A,(HL) CP -1 JNZ $+3 DEC B SUB B RRA RRA RRA PUSH AF SRL D,D,D LD A,C RLCA RLCA CALL DA2ATTR POP AF LD (fillN),A LD C,A LD A,(HL),(fillpat),A RRCA LD B,A RRCA RRCA XOR B AND #E0 XOR B RRA SRL A LD (filladr),HL FILLPP LD (HL),A,D,H,E,L INC E DEC C RET Z LD B,0 LDIR RET CURPRTXADD PUSH DE CALL PRTXADDBUF POP DE CALL PRADDPP LD HL,(TXTLEN),A,(TXTX) CP L RET Z ADD A,D LD D,A LD A,"_ PR4X8 PUSH HL,DE,BC,AF SRL D LD C,15 JC $+4 LD C,#F0 CALL DE2SCR POP AF ADD A,A ADD A,A LD E,A ADC A,'FONT/2 SUB E SLA E RLA LD D,A DUP 6 INC H LD A,(DE) XOR (HL) AND C XOR (HL) LD (HL),A INC E EDUP ORG $-1 POP BC,DE,HL RET SSA LD BC,(CURY) CALL GETnADR,XPP2 LD A,C ADD A,A,A,A,A,C,A,-2 ADD A,L LD L,A JNC $+3
INC H
LD A,(DE)
XOR (HL)
AND C
XOR (HL)
LD (HL),A
INC E
EDUP
ORG $-1
POP BC,DE,HL
RET
SSA
LD BC,(CURY)
CALL GETnADR,XPP2
LD A,C
ADD A,A,A,A,A,C,A,-2
ADD A,L
LD L,A
JNC $+3
INC H
LD A,(HL)
INC HL,HL
RLA
LD DE,AUTO1
CALL puthB
OR A
LD BC,AUTOSu
PUSH BC
puthB INC HL
LD A,(HL)
INC HL,HL RLA LD DE,AUTO1 CALL puthB OR A LD BC,AUTOSu PUSH BC puthB INC HL LD A,(HL) RRA RRA RRA RRA AND 31 CALL puth LD A,(HL) AND 15 puth ADD A,"0 CP ": JC $+4 ADD A,"A"-": LD (DE),A INC DE RET NotOct CALL 8026 LD A,(OCT) SBC A,8 ADC A,7 LD C,A LD A,D SUB 13 JC nOssnot INC A LD D,A INC C DEC C JZ $+3 DEC C nOssnot LD A,C ADD A,A,A,C ADD A,A,A,A,A,D LD D,A RET EDSMP XOR A LD (volA),A LD (volC),A CALL OUT4 LD A,(smp) ADD A,'SMPS LD H,A,BC,256,L,C LD (ESMPadr),HL LD DE,EDORbf LDIR LD BC,mEDSMP CALL WINDUM XOR A LD (EsTOP),A LD HL,tSMPKEY LD DE,#900+SMPH CALL PRMENU CALL PROCORN CALL PRSMP LD A,(smp) ADD A,A LD L,A,H,'TSMPSZ LD A,(HL),(EsLOOP),A,B,A INC L LD A,(HL) SUB B LD (EsLEN),A PUSH HL XOR A LD (EsMflag),A,(EsLIN),A CALL GsMRK56EDSMP0 CALL RESHALT CALL EsCHMRK CALL EsPRMRK ;долго CALL EDSMCUR CALL EDSMPKY LD A,(smp),(piaSMP),AEsORN=$+1 LD A,0,(piaORN),A LD HL,TORNSZ ADD A,A,A,L LD L,A,A,(HL),(piOLOOP),A INC L LD A,(HL),(piOEND),A LD BC,(EsLOOP),A,C,(piSLOOP),A ADD A,B LD (piSEND),A CALL OUT4 LD HL,EDORbfESMPadr=$+1 LD DE,0 LD BC,256 LDIR CALL PIANO CALL TSTFIRE JNC EDSMP0 CALL DOWNMER POP HLSMPQU LD DE,(EsLOOP) LD A,D,B,E JP ORNQEDTXT LD (TXTSCR),DE,(TXTLEN),AEDTXw ;LD A,#7F CALL ANYKEY RRA JNC EDTXw
PUSH HL
LD DE,TXTBUF,(CURADR),DE,BC,32 LDIR XOR A LD (TXTXEsMflag),ATXTSCR=$+1EDTX0 LD DE,0TXTLEN=$+1 LD B(EsLIN),0A PUSH BC,DE CALL GsMRK56 CALL CURPRTXADD EDSMP0
CALL RESHALT
JZ $-3 CALL EsCHMRK CALL EsPRMRK ;долго POP DE,BC CALL EDSMCUR CALL PRTXADDBUFEDSMPKY LD A,(23560smp),(piaSMP),A CP 6 EsORN=$+1 JNZ EDTXn6 LD A,0,(piaORN),A LD HL,#5C6ATORNSZ ADD A,A,A,8L XOR LD L,A,A,(HL) LD ,(HLpiOLOOP),AEDsholk CALL SHOLK JR EDTX0EDTXn6 CP 13 JZ EDTXQ CP 12 JZ EDTXdel CP 8 JZ EDTXdel CP 9 JZ EDTXrgt CP 32 JC EDTX0 INC LEDTXrgt LD BA,(HL),(piOEND),A RLA JC EDTX0TXTX=$+1 LD CBC,0(EsLOOP),A,C,(TXTLENpiSLOOP),A INC C ADD A,B CP C JC EDTX0 LD A,C,(TXTXpiSEND),ACURADR CALL OUT4 LD HL,EDORbf ESMPadr=$+1 LD HLDE,TXTBUF0 LD ABC,B256 LDIR CALL PIANO CALL TSTFIRE JNC EDSMP0 CP 9CALL DOWNMER JZ $+3POP HL SMPQU LD DE,(HLEsLOOP) LD A,D,B,E INC HL JP ORNQ EDTXT LD (CURADRTXTSCR),DE,(TXTLEN),A EDTXw ;LD A,#7F CALL ANYKEY RRA JNC EDTXw PUSH HL LD ADE,TXTBUF,(TXTLENCURADR),CDE,ABC,32 LDIR XOR A, LD (TXTX),A SUB C TXTSCR=$+1 JNZ EDsholk EDTX0 LD DE,0EDTXQIF TXTLEN=$+1 LD B,0 CP 0PUSH BC,DE CALL CURPRTXADD CALL RESHALT JZ EDsholk$-3 LD A,(TXTLEN),B,A,POP DE,(TXTSCR)BC
CALL PRTXADDBUF
LD A,(23560) CP 6 JNZ EDTXn6 LD HL,#5C6A,A,8 XOR (HL) LD (HL),A EDsholk CALL SHOLK JR EDTX0 EDTXn6 CP 13 JZ EDTXQ CP 12 JZ EDTXdel CP 8 JZ EDTXdel CP 9 JZ EDTXrgt CP 32 JC EDTX0 EDTXrgt LD B,A RLA JC EDTX0 TXTX=$+1 LD C,0,A,(TXTLEN) INC C CP C JC EDTX0 LD A,C,(TXTX),A CURADR=$+1 LD HL,TXTBUF LD A,B CP 9 JZ $+3 LD (HL),B INC HL LD (CURADR),HL LD A,(TXTLEN),C,A,A,(TXTX) SUB C JNZ EDsholk EDTXQIF=$+1 CP 0 JZ EDsholk LD A,(TXTLEN),B,A,DE,(TXTSCR) CALL PRTXADDBUF EDTXQ LD HL,TXTBUF POP DE LD BC,(TXTLEN),B,0 LDIR LD A,8,(#5C6A),A RET EDTXdel LD HL,TXTX,B,(HL) DEC B JP M,EDTX0 LD (HL),B,HL,(CURADR) DEC HL CP 8 JZ $+4 LD (HL),32 LD (CURADR),HL JR EDsholk IFN alasm LOADASM LD A,#51 LD HL,NAMASM1 LD DE,#C000 CALL LOADNAM LD A,#57 LD HL,NAMASM2 LD DE,#C000 CALL LOADNAM LD A,#57 LD HL,NAMSTS LD DE,#DB00 CALL LOADNAM LD A,#D6 LD HL,NAMASM4 LD DE,#C000 LOADNAM PUSH DE CALL LDOUTA LD C,19 CALL #3D13 ;copy desc LD C,#A CALL #3D13 LD A,C INC C POP HL RET Z PUSH HL LD C,8 CALL #3D13 ;load file desc POP HL;#C000 LD C,#E LD A,3 JP #3D13 ;load file NAMASM1 DB "alasm_64C" NAMASM2 DB "olasm_64C" NAMSTS DB "sts7 C" NAMASM4 DB "playFAS4H" RESALM DISP #5B80 DI IM 1 LD H,#40 LD A,#52 CALL RESM2PG LD A,#54 CALL RESM2PG LD D,#80 LD A,#10 CALL RESPG2M LD H,#80 LD A,#55 CALL RESM2PG LD A,#51 CALL RESOUTA CALL #C000 POP AF ;в аласме зачем-то лишний PUSH LD D,#80 LD A,#55 CALL RESPG2M LD H,#80 LD A,#10 CALL RESM2PG LD D,#80 LD A,#54 CALL RESPG2M LD D,#40 LD A,#52 ;CALL RESM2PGRESPG2M ;RET не туда LD AH,#51C0
CALL RESOUTA
CALL #C000
POP AF ;в аласме зачем-то лишний PUSH
LD D,#80
LD A,#55
CALL RESPG2M
LD H,#80
LD A,#10
CALL RESM2PG
LD D,#80
LD A,#54
CALL RESPG2M
LD D,#40
LD A,#52
;CALL RESPG2M ;RET не туда
LD H,#C0
CALL RESOUTA
LD BC,#4000,L,C,E,C
LDIR
LD HL,IMVEC,(HL),IMER
CALL SETIM
IM 2
EI
RET
RESM2PG
LD D,#C0
RESL40 CALL RESOUTA
LD BC,#4000,L,C,E,C
LDIR
LD HL,IMVEC,(HL),IMER CALL SETIM IM 2 EI RET RESM2PG LD D,#C0 RESL40 CALL RESOUTA LD BC,#4000,L,C,E,C LDIR RET RESPG2M LD H,#C0 JR RESL40 RESOUTA LD BC,#7FFD OUT (C),A RET ENT LDOUTA LD BC,#7FFD OUT (C),A RET ENDIF   INCLUDE "pt3*",#44 INCLUDE "pt5*",#86 INCLUDE "pt6*",#84 INCLUDE "ptmsg*",#87  DISPLAY "FREE2=",plaer-$ IF0 plaer-$<1&1 DS plaer-$
ENDIF
INCLUDE "pt3*",#44 INCLUDE "pt5*",#86 INCLUDE "pt6*",#84 INCLUDE "ptmsg*",#87 DISPLAY "FREE2=",plaer-$ IF0 plaer-$<1&1 DS plaer-$ ENDIF ss ORG #5D3B DB 6 DB 7 DB %01010000;bord,bits ;D7=joy 0/1F ;D6=poion 0/FF ;D5=SHOLK 0/C9 ;D4=playon 0/FF ;curite DB 2;NU ORG END DB 1 ;FRQn ORG #5BFA CALL 3435 JP nenado JZ EDTXrgt CP 32 JC EDTX0 EDTXrgt LD B,A RLA JC EDTX0 TXTX=$+1 LD C,0,A,(TXTLEN) INC C CP C JC EDTX0 LD A,C,(TXTX),A