Difference between revisions of "PROTRACKER372 JP MKPT37 H"

From MSX MUSIC WIKI
Jump to: navigation, search
(Tags: Mobile edit, Mobile web edit)
(Tags: Mobile edit, Mobile web edit)
 
Line 382: Line 382:
 
         JNZ SHLK0
 
         JNZ SHLK0
 
         RET  
 
         RET  
 +
 +
==Windowマネージャ==
 +
 
  WINDUM
 
  WINDUM
 
         LD HL,DUMMY
 
         LD HL,DUMMY
Line 1,433: Line 1,436:
 
  NLOONK  CALL JPITEM
 
  NLOONK  CALL JPITEM
 
  DOWNMER LD A,#6F,(DOWNM),A
 
  DOWNMER LD A,#6F,(DOWNM),A
         RET  
+
         RET
  
 
==入力判定 マウス・ケンプストン==
 
==入力判定 マウス・ケンプストン==

Latest revision as of 16:28, 8 March 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 

Windowマネージャ

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