Difference between revisions of "PROTRACKER372 JP MKPT37 H"
(Created page with "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...") (Tags: Mobile edit, Mobile web edit) |
(No difference)
|
Revision as of 02:02, 16 February 2020
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
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 CALL iPATq LD A,(pat2) CPL ADD A,PATS;48 CALL iPAT2q LD HL,TPATSZ LD DE,TPATSZ+PATS-1 LD B,PATS/2
SWPSNGL 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 PRPATUU
CHKTS
LD A,(ts48) LD HL,tson CP 33 ;32=не TS SBC A,A ;#FF=не TS CP (HL) RET NZ
ONOFFTS
LD HL,#486B LD C,3 CALL INVSYMS LD HL,tson LD A,(HL) CPL LD (HL),A OR A LD A,32 JZ $+4 LD A,48;PATS LD (ts48),A RET
ALLCHAN
LD HL,#4853 LD C,4 CALL INVSYMS LD HL,chnall LD A,(HL) CPL LD (HL),A RET
- 10
GETnADR
LD A,B 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 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
HLORN ORN=$+1
LD A,1
- 6
HLOR3 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,A
ret 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,#30B
SHLK0 LD BC,-3
OUT (C),E LD B,#BF OUTI INC E DEC D JNZ SHLK0 RET
WINDUM
LD HL,DUMMY
WINDOW
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,0
WIN0 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+4) EXA LD A,(IX+3) SUB (IX+1) LD B,0
WIN1 EXA
PUSH HL LD (HL),A,D,H,E,L INC E
WINWID=$+1
LD C,0 LDIR POP HL LD C,32 ADD HL,BC EXA DEC A JNZ WIN1 LD A,(IX+2) INC (IX+2) SUB (IX) LD C,A,B,0 PUSH BC LD HL,(WINTOP) CALL FILM1,DHL
RMKHGT=$+1
LD D,0 DEC D LD B,D,C,1 CALL VERLIN LD B,D,HL,(WINTOP) DEC B CALL DHL LD C,#80 CALL VERLIN POP BC
FILM1 LD D,H,E,L,(HL),-1
INC DE LDIR RET
VERLIN LD (HL),C
CALL DHL DJNZ $-4 RET
- 2
WINmema
LD A,(options),(Oldopt),A PUSH HL LD HL,(optadr),(Oldoad),HL LD HL,(useadr),(Olduse),HL POP HL RET
WINMEM WBUFTOP=$+1
LD HL,winbuf PUSH HL
Oldopt=$+1
LD (HL),0 INC HL
Oldoad=$+1
LD DE,0 CALL WMEMPP
Olduse=$+1
LD DE,0 CALL WMEMPP
ADDY=$+1 ADDX=$+2
LD DE,0 CALL WMEMPP LD A,(PRMRGT) LD (HL),A INC HL
WINATR=$+1
LD DE,0 CALL WMEMPP LD A,(IX+2) SUB (IX) INC A LD (HL),A,C,A INC HL LD A,(IX+3) SUB (IX+1) INC A LD (HL),A INC HL PUSH AF LD B,0 EXD
WMEM0 PUSH BC,HL
LDIR POP HL LD C,32 ADD HL,BC POP BC DEC A JNZ WMEM0 POP AF DEC C ADD A,A,A,A,A,A EXD
WINTOP=$+1
LD DE,0 CALL WMEMPP EXD
WMEM1 EXA
PUSH HL,BC LDIR POP BC,HL CALL DHL EXA DEC A JNZ WMEM1 EXD POP DE
WMEMPP LD (HL),E
INC HL LD (HL),D INC HL LD (WBUFTOP),HL RET
CLOSWIN
CALL OUT4 LD HL,(WBUFTOP) DEC HL LD A,(HL) DEC HL LD L,(HL),H,A OR L RET Z LD (WBUFTOP),HL PUSH BC LD DE,options LDI LD DE,optadr LDI LDI LD DE,useadr LDI LDI LD DE,ADDY LDI LDI LD DE,PRMRGT LDI LD E,(HL) INC HL LD D,(HL) INC HL LD C,(HL) INC HL LD A,(HL) INC HL PUSH AF LD B,0
CLOS0 PUSH BC,DE
LDIR EXD POP HL LD C,32 ADD HL,BC EXD POP BC DEC A JNZ CLOS0 POP AF DEC A ADD A,A,A,A,A,A DEC C LD E,(HL) INC HL LD D,(HL) INC HL
CLOS1 EXA
PUSH DE,BC LDIR POP BC,DE CALL DDE EXA DEC A JNZ CLOS1 LD A,"0",(PR1dot),A CALL MHEXFNT LD A,".",(PR1dot),A LD A,pg7;(filladr+1),A CALL MHEXFNTpg POP BC CALL TSTFIRH JC $-3 RET
- 6
WAITNOK
CALL HALTER CALL ANYKEY CPL AND 31 JNZ WAITNOK RET
LDKSAPP
LD A,32 LD (ts48),A CALL CLORNSM CALL BIGso CALL OUT3 LD BC,(#5CE8),HL,#BFFF,D,L,E,L ADD HL,BC LDDR INC 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,A
INC HL,HL LD A,(HL) EXA PUSH HL DEC HL LD A,E 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
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 (HL),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 (LENG),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 AF LD DE,EDORbf LD BC,#240 LDIR PUSH HL CALL AtoPAT LD HL,EDORbf PUSH DE POP IX LD B,64
STPAT1 PUSH BC
INC DE,DE,DE PUSH IX LD (IX),C LD (IX+1),C LD (IX+2),C LD B,3
STPAT2 PUSH BC,DE
XOR A LD (DE),A INC DE LD (DE),A INC DE INC DE LD (DE),A INC DE LD (DE),A EXD EX (SP),HL EXD CALL STPAPP POP DE 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,A 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 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 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 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,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 IN A,(#DF) LD (OLDX+1),A CP B JNZ NOMOUQ CP C 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 #38 LD (DE),A INC DE DJNZ sa LD C,(HL) RL C SBC A,A AND 31 LD (joy),A RL C SBC A,A LD (poion),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 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,#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 B
LEFTU JNC $+3
XOR A JR L14
UP 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,4
L27 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,(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 GsMRK56
EDSMP0
CALL RESHALT CALL EsCHMRK CALL EsPRMRK ;долго CALL EDSMCUR CALL EDSMPKY LD A,(smp),(piaSMP),A
EsORN=$+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,EDORbf
ESMPadr=$+1
LD DE,0 LD BC,256 LDIR CALL PIANO CALL TSTFIRE JNC EDSMP0 CALL DOWNMER POP HL
SMPQU
LD DE,(EsLOOP) LD A,D,B,E JP ORNQ
EDTXT
LD (TXTSCR),DE,(TXTLEN),A
EDTXw ;LD A,#7F
CALL ANYKEY RRA JNC EDTXw PUSH HL LD DE,TXTBUF,(CURADR),DE,BC,32 LDIR XOR A LD (TXTX),A
TXTSCR=$+1 EDTX0 LD DE,0 TXTLEN=$+1
LD B,0 PUSH BC,DE CALL CURPRTXADD CALL RESHALT JZ $-3 POP DE,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 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 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
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