1,345
edits
Changes
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
CPL
ADD A,PATS;48
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
EXA
PUSH HL
PUSH HL
PUSH HL
POP DE
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
EXD
EXD
EXD
INC DE
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
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)
AND 2
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) 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
CALL RESHALT
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
LD BC,#4000,L,C,E,C
LDIR
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