PROTRACKER372 PT6 371 H

From MSX MUSIC WIKI
Revision as of 20:35, 8 March 2020 by Kumokosi (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

pt6_371 C��ЦЛ�МН(

MAIN "",#C6
EDORN
        XOR A
        LD (volA),A,(volC),A
        LD BC,mEDORN
        CALL WINDUM
        LD HL,tEDORN,DE,#800
        CALL PRMENU
       ;LD HL,tORNKEY,DE,#12
       ;CALL PRMENU
        LD HL,tORNo_s,DE,#711
        CALL PRMENU
        CALL OUT4
        CALL HLORN
        LD (ornadr),HL
        LD DE,EDORbf
        LD BC,64
        LDIR 
        CALL PRORNos
        LD A,(ORN),HL,TORNSZ
        ADD A,A,A,L
        LD L,A,A,(HL),B,A,(EoLOOP),A
        INC L
        LD A,(HL)
        SUB B
        LD (EoLPlen),A
       PUSH HL
        CALL PRORN
        XOR A
        LD (EoLIN),A,(EoMflag),A
        CALL GornMRK
EDORN0
       CALL RESHALT
        CALL EORNCUR
        CALL EoCHMRK
        CALL EoPRMRK
        CALL EDORNKY
        LD A,(ORN),(piaORN),A
EoSMP=$+1
        LD A,0,(piaSMP),A
        ADD A,A
        LD L,A,H,'TSMPSZ
        LD A,(HL),(piSLOOP),A
        INC L
        LD A,(HL),(piSEND),A
        LD A,(EoLPlen),B,A
        LD A,(EoLOOP),(piOLOOP),A
        ADD A,B
        LD (piOEND),A
        CALL OUT4
        LD HL,EDORbf
ornadr=$+1
        LD DE,0,BC,64
        LDIR 
        CALL PIANO
        CALL TSTFIRE
        JNC EDORN0
       CALL DOWNMER
       POP HL
ORNQU
        LD A,(EoLOOP),B,A
        LD A,(EoLPlen)
ORNQ    ADD A,B
        LD (HL),A
        DEC L
        LD (HL),B
       CALL CLOSWIN
       LD A,(OCT)
       JP PROCT
HEXDIG
        ADD A,"0
        CP ":
        RET C
        ADD A,"A"-":
        RET 
PRMEMOS
memol=$+1
        LD DE,#60E
        CALL PRMEMO
        LD HL,Tmemo
memo=$+1
        LD B,0
        DJNZ $+4
        LD D,6
        DJNZ $+4
        LD D,11
        DJNZ $+4
        LD D,#E+2
        DJNZ $+4
        LD D,#18+8
        DJNZ $+4
        LD D,#22+14
        LD (memol),DE
        JP PRMENU
EPsseP
        LD A,(CURX)
        LD E,1
        LD BC,#200
        CP 4
        RET C
        INC E
        LD BC,#102
        CP 6
        RET C
        LD BC,#503
        INC E
        CP 11+4
        RET C
        LD C,8
        INC E
        CP 16+8
        RET C
        LD C,13
        INC E
        RET 
EPsse
        CALL EPsseP
        LD A,E,(memo),A
        PUSH BC
        CALL PRMEMOS
        LD A,(EPAT),B,A,C,0
        CALL GETnADR
        LD DE,BUF
        LD BC,#480
        LDIR 
        CALL OUT6
        LD HL,BUF
        POP BC
        LD A,B,B,0
        ADD HL,BC
        LD C,A
        LD DE,MEMOBUF
        LD A,64
EPsse0  PUSH BC
        PUSH HL
        LDIR 
        POP HL
        LD C,18
        ADD HL,BC
        POP BC
        DEC A
        JNZ EPsse0
        RET 
EPssr
        CALL EPsseP
        LD A,(memo)
        CP E
        JZ EPssrE
        CP 3
        RET C
        LD A,E
        CP 3
        RET C
EPssrE
        PUSH BC
        LD A,(EPAT)
        LD B,A,C,0
        CALL GETnADR
        LD (EPssrDE),HL
        LD DE,BUF
        LD BC,#480
        LDIR 
        LD A,(pg) ;pat
        EXA 
        CALL OUT6
        LD HL,BUF
        POP BC
        LD A,B,B,0
        ADD HL,BC
        LD C,A
        LD DE,MEMOBUF
        EXD 
        LD A,64
EPssr0  PUSH BC
        PUSH DE
        LDIR 
        POP DE
        EXD 
        LD C,18
        ADD HL,BC
        EXD 
        POP BC
        DEC A
        JNZ EPssr0
        EXA 
        CALL OUTME
        LD HL,BUF
EPssrDE=$+1
        LD DE,0
        LD BC,#480
        LDIR 
        JP PRPATU
EXCHANG
        CALL FROMSZ
        PUSH AF
        LD A,(pat1)
        LD B,A
        CALL GETnADR
        PUSH HL
        POP IX
        CALL CHN1PP
        ADD HL,BC
        LD A,(chn2)
        LD C,3
        DEC A
        JZ EXCHX2
        LD C,8
        DEC A
        JZ $+4
        LD C,13
EXCHX2  ADD IX,BC
        POP AF
EXCH0   EXA 
        PUSH HL
        LD DE,BUF
        LD BC,5
        LDIR 
        POP DE
        PUSH DE,IX
        POP HL
        LD C,5
        LDIR 
        LD HL,BUF
        PUSH IX
        POP DE
        LD C,5
        LDIR 
        POP HL
        LD C,18
        ADD HL,BC
        ADD IX,BC
        EXA 
        DEC A
        JNZ EXCH0
        JP PRPATO
CATBAR
        LD HL,#48B5
        XOR A
        LD (CATBf),A
        LD B,A,C,A
        LD E,#81
        LD A,(catH)
        OR A
        JNZ CATBNZ
        INC A
        LD D,A
        JR CATBARP
CATBNZ  ADD A,A
        DEC A
        LD D,A
        LD A,(cattop)
        OR A
        CALL NZ,CATBARP
        LD E,#BD
        LD A,(catH)
        CP 9
        JC CATBARP
        LD A,8
        CALL CATBARP
        LD A,(catH)
cattop=$+1
       SUB 0
       SUB 8
        LD E,#81
        RET Z
CATBARP EXA 
CATBf=$+1
CATBAR0 LD A,0
        XOR -1
        LD (CATBf),A
        JZ $+6
        LD (HL),E
        CALL DHL
        SCF 
        LD A,C
        ADC A,D
        LD C,A
        JNC CATBAR0
        EXA 
        DEC A
        JNZ CATBARP
        RET 
USEBAR
        LD A,(catH)
       CP 9
        RET C
        EXA 
        CALL FIRE
        RET Z
        LD A,(ARX)
        SUB #A8
        CP 8
        RET NC
        LD A,(ARXY)
        SUB #68
        CP #40
        RET NC
        LD L,A
        XOR A
        LD (USEBf),A
        LD E,A,C,A,H,A
        LD A,(catH)
        ADD A,A
        DEC A
        LD D,A
USEBAR0 LD A,E
        CP L
        JNC USEBok
USEBf=$+1
USEBAR1 LD A,0
        XOR -1
        LD (USEBf),A
        JZ $+3
        INC E
        SCF 
        LD A,C
        ADC A,D
        LD C,A
        JNC USEBAR1
        INC H
        JR USEBAR0
USEBok  LD B,0
        EXA 
        LD C,A
        OR A
        RET Z
        SUB 9
        JC USEBARQ
        LD B,H,A,H
        ADD A,7
        CP C
        JC $+6
        LD A,C
        SUB 8
        LD B,A
USEBARQ LD A,B,(cattop),A
        JP PRCAT
AUDATER
        LD C,#7F
        LD DE,AUTO2
        LD A,(DE)
        CP C
        JZ AUDnS
        AND #80
        LD B,A
        LD A,(HL)
        AND C
        OR B
        LD (HL),A
        INC HL,HL,HL
        LD A,(DE)
        AND #7F
        RRCA 
        RRCA 
        RRCA 
        RRCA 
        LD B,A
        LD A,(HL)
        AND #F
        OR B
        LD (HL),A
        JR $+5
AUDnS   INC HL,HL,HL
        INC DE
        LD A,(DE)
        CP C
        JZ AUDnT
        LD B,A
        LD A,(HL)
        AND #F0
        OR B
        LD (HL),A
AUDnT   INC DE,HL
        LD A,(DE)
        CP C
        JZ AUDnO
        RRCA 
        RRCA 
        RRCA 
        RRCA 
        LD B,A
        LD A,(HL)
        AND #F
        OR B
        LD (HL),A
AUDnO   INC DE
        LD A,(DE)
        CP C
        RET Z
        LD B,A
        LD A,(HL)
        AND #F0
        OR B
        LD (HL),A
        RET 
AENVER
        CP E
        JZ AEnres
        LD HL,ead
        RES 7,(HL)
        INC L
        RES 7,(HL)
AEnres
AENVFRQ=$+1
        LD HL,0
AENVnot=$+1
       LD DE,0
        INC HL,HL,HL
        LD A,(HL)
       AND 9
       SUB 8
        RET NZ
       OR E
       RET Z
div=$+1
        LD B,0
        LD A,23
        DJNZ $+4
        LD A,28  ;3:4
        DJNZ $+4
        LD A,35  ;1:2
        DJNZ $+4
        LD A,47  ;1:4
        DJNZ $+4
        LD A,4   ;3:1
        DJNZ $+4
        LD A,7   ;5:2
        DJNZ $+4
        LD A,11  ;2:1
        DJNZ $+4
        LD A,16  ;3:2
        ADD A,E
        LD B,0
        INC B
        SUB 12
        JNC $-3
        LD E,A
;00,01->+0
;10,11->+1
        LD HL,FrTab+24-512
        ADD HL,DE,HL,DE
        LD A,(HL)
        INC L
        LD E,(HL)
        SRL E
        RRA 
        DJNZ $-3
        ADC A,D
        LD D,A
AENVadr=$+2
        LD (0),DE
        RET 
EPdelln
        CALL XPPSCF
        RET NC
        LD HL,(CURY),H,L
        INC L
        LD A,201,(COPQJP),A
        CALL EPdellnP
        LD A,195,(COPQJP),A
        CALL PRPATU
        JR TSTNROL
TSTnSSL
        LD A,(ead)
        RLA 
        JC AEskip
        LD A,(HL)
        AND #80
        OR D
        LD (HL),A
AEskip
       LD A,D
TSTSSLQ
       LD (AENVnot),A
        INC E
        JZ TSTNQ
auto=$+1
        LD A,-1
        OR A
        CALL Z,AUDATER
        LD A,(ead)
        RLA 
        SBC A,A
        CPL 
aenv=$+1
        LD E,-1
        AND E
        CALL Z,AENVER
TSTNQ   CALL PRCU7
       ;LD A,(EPAT),B,A
       ;LD A,(CURY),E,#13
       ;CALL STROKA
       CALL PRPATUU
        LD A,(23560)
        CP kL
        JZ $+4
        CP kssL
        CALL NZ,PLNOTE
TSTNROL LD A,(roll)
        OR A
        LD L,A ;на сколько строк вниз
        JP NZ,ROLLPATFON
        LD HL,CURX
       LD A,(HL)
       CP 3
       RET Z
       CP 5
       RET NC
       ;LD A,2;(curite)
       ;CP (HL)
       ;RET C
        INC (HL)
        RET 
TSTNnot
        LD (AENVadr),HL
        XOR A
        LD B,A
        ADD HL,BC
        LD (AENVFRQ),HL
        LD E,-1
        OR D
        JZ TSTnNOT
        CP 97
        JNC TSTnNOT
        INC E
       CP 25
       LD A,(HL)
       RES 7,A
       JZ TSTSSLQ
        CALL NotOct
TSTnNOT
       ;LD A,D
        SUB 99
        JZ TSTk
        INC A
        JP NZ,TSTnSSL
        LD (HL),A
        INC HL
        LD (HL),A
        INC HL
        LD (HL),A
TSTk    INC HL
        LD (HL),A
        INC HL
        LD (HL),A
        LD (IY-50),kssL
        JP TSTSSLQ
EPdellnP
        LD A,64
        SUB H
        LD DE,(EPAT),D,A,A,E
        DEC BC
        LD B,C
        RET Z
        JP COPYU
EPins
        CALL XPPSCF
        RET NC
        LD HL,(CURY),H,L
        INC H
        CALL EPdellnP
       LD A,(chnall)
       OR A
       JZ insNALL
       LD BC,(CURY)
       CALL GETnADR
       EXD 
       LD HL,BUF+#480 ;тут нули
       LD BC,18
       LDIR 
insNALL HALT 
        LD (IY-50),kssL
TSTNOTE
        LD BC,(CURY)
        CALL GETnADR
        CALL NOTEKEY
        BIT 7,D
        CALL Z,XPPSCF
        DEC BC
        JZ TSTNnot
       LD A,D
       CP 98
       JZ $-5
        CALL RECHEX
        INC D
        JNZ TSTnDIG
        LD C,D,B,D,D,A
        LD A,(CURX)
        OR A
        CALL TSTnPP+2
        CALL TSTnP
        LD C,6
        CALL TSTnPP
        LD C,4
        CALL TSTnPP+1
        LD C,11
        CALL TSTnPP
        LD C,9
        CALL TSTnPP+1
        LD C,16
        CALL TSTnPP
        LD C,14
        CALL TSTnPP+1
TSTnDIG
       LD A,D
       CP 9
       JZ EVENODD
        CALL RECopq
        INC D
        RET NZ
        LD D,A
        OR A
        CALL XPP
        RET NZ
        INC C,C
        LD B,0
        ADD HL,BC
       LD A,(HL)
       LD (HL),D
       RLD 
        SCF 
        JR TSTs0
EVENODD
        LD HL,COPSCF
        LD A,(HL)
        XOR 128
        LD (HL),A
        LD HL,#485A
        LD C,2
        CALL INVSYMS
        POP AF
        RET 
;2(EDSONG,EPEXT)
MELINV
        LD HL,#40EA
        LD C,6
INVSYMS
        PUSH HL
        LD B,8
invsym0 LD A,(HL)
        CPL 
        LD (HL),A
        INC H
        DJNZ invsym0
        POP HL
        INC L
        DEC C
        JR NZ,INVSYMS
        RET 
TSTL
        POP AF
        ADD HL,BC
       LD A,(HL)
       LD (HL),D
       RLD 
       OR A
        CALL XPP
        JZ TSTs0-1
       CP -7
       JNZ tstnq
       LD A,(CURX)
       OR A
       JZ tstnq
        LD A,D
        OR A
        JZ tstnq
       PUSH AF
       LD A,(ORN)
       LD (ORN2),A
       XOR A
       CALL ONCORN2
       POP AF
        LD (ORN),A
        XOR A
        CALL ONCORN
tstnq   JP TSTNQ
        OR A
TSTs0   DEC HL,HL,HL
        RL (HL)
        RRC (HL)
        LD A,(HL)
        RRA 
        RRA 
        RRA 
        AND 16
        OR D
        JZ tstnq
       PUSH AF
       LD A,(smp)
       LD (SMP2),A
       XOR A
       CALL ONCSMP2
       POP AF
        LD (smp),A
        XOR A
        CALL ONCSMP
        JP tstnq
TSTnPP
        DEC A,A
        JZ TSTL
        DEC A
        JZ TSTR
TSTnP   INC BC
        DEC A
        JZ TSTL
        DEC A
        RET NZ
TSTR    POP AF
        ADD HL,BC
        LD A,(HL)
        AND #F0
        OR D
        LD (HL),A
        JP TSTNQ
RECopq
        LD DE,"O
        LD A,(23560)
        CP ";
        JZ RECopY
        CP E
        RET Z
        INC E
        CP #22
        JZ RECopY
        CP E
        RET Z
        CP "G
        RET C
        CP "W
        RET NC
        LD E,A
        XOR "Q
        CALL Z,8026
        RET C
RECopY  LD A,E
        SUB "G
        DEC D
        RET 
RECHEX
        LD D,0
        LD A,(23560)
        CP "0
        RET C
        CP "G
        RET NC
        CP ":
        JNC $+6
        SUB "0
        DEC D
        RET 
        CP "A
        RET C
        SUB #37
        DEC D
        RET 
D0TO_
        LD A,(HL)
        CP "0
        JC d0TO0
        CP ":
        JNC $+5
        SUB "0
        RET 
        CP "A
        JC d0TO0
        CP "G
        JNC $+5
        SUB #37
        RET 
d0TO0   LD (HL),"-
        LD A,#7F
        RET 
ENVFL
        LD HL,ead,A,(HL)
        XOR 128
        LD (HL),A
        INC L
        LD (HL),A
        RET 
TSTOCT
        LD A,(23560)
        CP kE
        JZ ENVFL
        SUB "1
        CP 9
        RET NC
       ;CALL NEWOCT
       ;JP SHOLK
;NEWOCT
        AND 7
        INC A
        LD (OCT),A
;1
PROCT   LD DE,#D08
        JP PRBCD
POSEDIT
        LD BC,mPOS
        CALL WINDUM
        LD HL,tPOS
        LD DE,0
        CALL PRMENU
        XOR A
        LD (EpMflag),A
        LD (EpY),A
        LD A,(POS)
        CALL EDPOSR
POSED0
       CALL RESHALT
        LD A,#28
        CALL EpPRCUR
        CALL EDPOSKY
        LD A,5
        CALL EpPRCUR
        CALL EpCHMRK
        CALL EpPRMRK
        CALL TSTFIRE
        JNC POSED0
        LD A,(EsTOP),B,A
        LD A,(EpY)
        ADD A,B
        LD (POS),A
        LD L,A,H,'TPOSS
        LD A,(HL),(EPAT),A
        LD L,A
        INC H
        LD A,(HL),(PATLEN),A
        CALL CLOSWIN
        CALL POSFON
        JP PRPAT
EpPRMRK
        LD HL,#58C3
        LD BC,(LOOP)
        LD DE,32
        LD A,(EsTOP)
        EXA 
        LD A,16
EpPRMR0 EXA 
        CP C
        JNC EpPRMR1+1
EpPRMRQ LD (HL),#28
        INC A
        EXA 
        ADD HL,DE
        DEC A
        JNZ EpPRMR0
        RET 
EpPRMR1 EXA 
        CP B
        JNC EpPRMRQ
        LD (HL),#55
        INC A
        EXA 
        ADD HL,DE
        DEC A
        JNZ EpPRMR1
        RET 
EpCHMRK
        LD A,(EpMflag)
        OR A
        CALL NZ,EpCHEND
        LD A,(NOPKA)
        OR A
        RET Z
        XOR A
EpMflag=$+1
        CP 0
        JNZ EpCHMRQ
        CALL EpARPOS
        RET C
        LD (LOOP),A
        CPL 
EpCHMRQ LD (EpMflag),A
        RET 
EpCHEND CALL EpARPOS
        RET C
        LD HL,LOOP
        CP (HL)
        JNC $+3
        LD A,(HL)
        INC A,HL
        LD (HL),A
        RET 
;1
EsCHMRK
        LD A,(EsMflag)
        OR A
        CALL NZ,esCHEND
        LD A,(NOPKA)
        OR A
        RET Z
        XOR A
EsMflag=$+1
        CP 0
        JNZ esCHMRQ
        CALL EsARPOS
        RET C
        LD (EsLOOP),A
        CPL 
esCHMRQ LD (EsMflag),A
        RET 
esCHEND
        CALL EsARPOS
        RET C
       LD HL,EsLOOP
       SUB (HL)
        RET C
        INC A
        LD (EsLEN),A
        RET 
;1
EoCHMRK
        LD A,(EoMflag)
        OR A
        CALL NZ,eoCHEND
        LD A,(NOPKA)
        OR A
        RET Z
        XOR A
EoMflag=$+1
        CP 0
        JNZ eoCHMRQ
        CALL EoARLOP
        RET C
        LD (EoLOOP),A
        CPL 
eoCHMRQ LD (EoMflag),A
        RET 
eoCHEND CALL EoARLOP
        RET C
        LD HL,EoLOOP
        SUB (HL)
        RET C
        INC A
        LD (EoLPlen),A
        RET 
EpARPOS
        LD BC,#610
        LD L,3
        JR psARPOS
EsARPOS
        LD BC,SMPY+1<8+SMPH
        LD L,1+SMPX
psARPOS LD A,(ARXY)
        RRA 
        RRA 
        RRA 
        AND 31
        SUB B
        CP C
        CCF 
        RET C
        LD C,A
        LD A,(ARX)
        RRA 
        RRA 
        RRA 
        AND 31
        CP L
        JNZ SCFRET
        LD A,(EsTOP)
        ADD A,C
        RET 
EoARLOP
        LD A,1
EoARPOS
        LD E,A
        LD HL,(ARXY)
        LD A,L
        RRA 
        RRA 
        RRA 
        AND 31
        SUB 3
        RET C
        CP 16
        CCF 
        RET C
        LD D,A
        LD A,H
        RRA 
        RRA 
        RRA 
        AND 31
        LD BC,#400
EoARp0  CP E
        JZ EoARpQ
        SUB 4
        INC C
        DJNZ EoARp0
SCFRET  SCF 
        RET 
EoARpQ  LD A,C
        ADD A,A,A,A,A,A,A,A,A,D
        RET 
decCOR
        LD A,(DE)
        CP L
        RET C
        DEC A
        LD (DE),A
        RET 
incCOR
        LD A,(DE)
        CP L
        RET C
        RET Z
        INC A
        RET Z
        LD (DE),A
        RET 
EDPOSB
        CALL EpGadr
        LD (LOOP),A
        RET 
EDPOSE
        CALL EpGadr
        LD (LENG),A
        RET 
EpPRCUR
        EXA 
        LD A,(EpY)
        ADD A,A,A,A,A,A,A,A
        LD L,A,H,0
        ADD HL,HL
        LD DE,#58C6
        ADD HL,DE
        EXA 
        LD (HL),A
        INC L
        LD (HL),A
        INC L
        LD (HL),A
        RET 
EpGadr
        LD A,H
        ADD A,L
        LD L,A
        LD H,'TPOSS
        RET 
EDPOSDQ
        LD (EpY),A
        JP SHOLK
EDPOSKY
        CALL BIT5
        RET Z
        LD HL,(EsTOP)
EpY=$+1
        LD H,0
        CALL RECHEX
        INC D
        JZ EDpDIG
        LD A,(23560)
        CP "K
        JZ EDPOSB
        CP "L
        JZ EDPOSE
        SUB 8
        JNZ EDPOSNL
        LD A,L
        SUB 15
        JNC $+3
        XOR A
        JR EDPOSTO
EDPOSNL DEC A
        JNZ EDPOSNR
        LD A,L
        ADD A,15
EDPOSR  CP -16
        JC $+4
        LD A,-16
        JR EDPOSTO
EDPOSNR DEC A
        JNZ EDPOSND
        LD A,H
        INC A
        AND 15
        JNZ EDPOSDQ
        LD A,L
        INC A
        CP -15
        RET Z
        JR EDPOSTO
EDPOSND DEC A
        JNZ EDPOSNU
        LD A,H
        DEC A
        JP P,EDPOSDQ
        LD A,L
        SUB 1
        RET C
EDPOSTO LD (EsTOP),A
        JR PRPOS
EDPOSNU CP kDelLn-11
        JNZ EDpNdelln
        CALL EpGadr
        LD D,H,E,L
        INC L
        RET Z
        PUSH HL
        LD A,(HL),(DE),A
        INC E,L
        JNZ $-4
        POP HL
        LD DE,LOOP
        CALL decCOR
        LD DE,LENG
        CALL decCOR
        JR PRPOS
EDpDIG
        LD D,A
        CALL EpGadr
        LD A,(HL)
        LD B,4
        ADD A,A
        JC EpDIGo
        DJNZ $-3
        ADD A,D
        CP PATS
        JC $+3
EpDIGo  LD A,D
        LD (HL),A
PRPOS
        LD HL,(EsTOP),H,'TPOSS
        LD A,16,DE,#41C3
PRPOS0  PUSH AF,DE
        LD A,L
        PUSH HL
        CALL PRF8
        POP HL
        INC E,E,E
        LD A,(HL)
        INC L
        PUSH HL
        CALL PRF8
        POP HL,DE
        LD A,D
        ADD A,6
        LD D,A
        CALL DDE
        INC D
        POP AF
        DEC A
        JNZ PRPOS0
        JP SHOLK
EDpNdelln
        CP 201-11
        RET NZ
        CALL EpGadr
        XOR -1
        RET Z
        PUSH HL
        LD C,A,B,0
        LD DE,bf240
        PUSH HL,DE
        LDIR 
        LD C,A
        POP HL,DE
        INC E
        LDIR 
        POP HL
        LD DE,LOOP
        CALL incCOR
        LD DE,LENG
        CALL incCOR
        JR PRPOS
EoGadr
EoLIN=$+1
        LD A,0
ornADR=$+1
        LD HL,EDORbf
        ADD A,L
        LD L,A
        LD A,(HL)
        RET 
EDOR_p
        POP AF,HL
        CALL ORNQU
        CALL DECORN ;+print
        JP EDORN
EDOR_n
        POP AF,HL
        CALL ORNQU
        CALL INCORN ;+print
        JP EDORN
EDORNKY
        CALL BIT5
        RET Z
        LD B,1
       CP 4
       JZ EDOR_p
       CP 5
       JZ EDOR_n
        CP 172;i
        JZ EDORSMP
        CP "E
        JZ EDORNUM
        LD B,-1
        CP 197;u
        JZ EDORSMP
        CP "W
        JZ EDORNUM
        LD B,12
        CP "T
        JZ EDORNUM
        LD B,-12
        CP "R
        JZ EDORNUM
        CP "0
        JZ EDOR0
        CP kIns
       JZ EDoINS
        CP kDelLn
       JP Z,EDoDELLN
        CP "K
       JP Z,EDoBEG
        CP "L
       JP Z,EDoEND
        CP "+
        JZ EDoPLU
       SUB "0;1
       CP 9;8
        RET NC
       LD (OCT),A
EDORSq  CALL PRORNos
        JP SHOLK
EDoPLU  CALL EoGadr
        JR EDORNEG
EDORSMP
        LD HL,EoSMP,A,(HL)
        ADD A,B
        AND 31
        LD (HL),A
        JR EDORSq
EDORNUM
        CALL EoGadr
        ADD A,B
        LD B,0
        JP P,$+6
        INC B
        NEG 
       AND 127
       CP 96
       JC $+4
       LD A,96
        DJNZ $+4
EDORNEG
        NEG 
        LD (HL),A
        CALL ORNline
        JP SHOLK
EDOR0
        CALL EoGadr
        XOR A
        JR EDORNEG
EDoINS
        CALL EoGadr
        LD A,63
        SUB L
        RET Z
        LD L,62,E,63,D,H,B,0,C,A
        LDDR 
       INC L
        LD DE,EoLOOP
        CALL incCOR
       JZ $+4
       JNC EDoz
        EXD 
        INC HL
       DEC A
        ADD A,(HL)
        CP E
        JC EDoz
        CP 63
        JNC $+3
EDoINSQ INC (HL)
        JR EDoz
EDoDELLN
        CALL EoGadr
        LD D,H,E,L
        INC L
        LD A,64
        SUB L
        RET Z
        LD B,0,C,A,A,L
        LDIR 
        LD L,A
        LD DE,EoLOOP
        CALL decCOR
       JNC EDoz
        EXD 
        INC HL
        ADD A,(HL)
        CP E
        JC EDoz
        DEC (HL)
        JZ EDoINSQ
EDoz
        CALL PRORN
        JP SHOLK
EDoBEG
        LD A,(EoLIN)
       LD HL,EoLOOP
EDoBEGQ LD C,(HL)
       LD (HL),A
       INC HL
       SUB C
       NEG 
       ADD A,(HL)
       LD (HL),A
        RET 
EDoEND
        LD HL,EoLOOP
        LD A,(EoLIN)
        SUB (HL)
        INC HL
        LD (HL),A
        RET 
EDsBEG
        LD A,(EsLIN)
       LD HL,EsLOOP
       JR EDoBEGQ
EDsEND
        LD HL,EsLOOP
        LD A,(EsLIN)
        SUB (HL)
        INC HL
        LD (HL),A
        RET 
PRORN
        LD HL,EDORbf
        LD E,1,C,16
PRORN0  PUSH HL
        LD D,1,B,4
PRORN1  PUSH BC
        LD A,L
        CALL toOO
        INC D,D
        PUSH HL
        LD A,(HL),L,A
        OR A
        LD B,"+
        CALL M,NEGHL-2
        LD A,B
        CALL PRADD
        INC D
        LD A,L
        CALL toOO
        INC D,D,D
        POP HL
        LD BC,16
        ADD HL,BC
        POP BC
        DJNZ PRORN1
        INC E
        POP HL
        INC L
        DEC C
        JNZ PRORN0
        RET 
EORNCUR
        CALL BIT5
        RET Z
        SUB 8
        LD B,-16
        JZ EORNC
        DEC A
        LD B,16
        JZ EORNC
        DEC A
        LD B,1
        JZ EORNC
        DEC A
        LD B,-1
        RET NZ
EORNC   LD A,(EoLIN)
        ADD A,B
        AND 63
EORNCQ  EXA 
        LD E,7
        CALL GornMRK+2
        EXA 
        LD (EoLIN),A
        LD HL,SHOLK
        PUSH HL
GornMRK LD E,56,A,(EoLIN)
        LD BC,16
        LD H,B
        INC B
        SUB C
        JNC $-2
        ADD A,C,A,3
        ADD A,A,A,A,A,A
        LD L,A
        ADD HL,HL,HL,HL
        LD A,H
        SUB -88
        LD H,A,A,B
        ADD A,A,A,A
        SUB 2
        OR L
        LD L,A,(HL),E
        INC L
        LD (HL),E
        RET 
ORNline
        LD A,(EoLIN),BC,16
        INC B
        SUB C
        JNC $-2
        ADC A,C
        LD E,A,A,B
        ADD A,A,A,A,A,A
        SUB 4
        LD D,A
        LD HL,(ornADR)
        LD A,(EoLIN)
        ADD A,L
        LD L,A,A,(HL),L,A
        OR A
        LD B,"+
        CALL M,NEGHL-2
        LD A,B
        CALL PRADD
        INC D
        LD A,L
        JP toOO
EoPRMRK
        LD A,(NOPKA)
        OR A
        LD A,3
        CCF 
        CALL NZ,EoARPOS
        CALL NC,EORNCQ
EoLOOP=$+1
EoLPlen=$+2
        LD BC,0,DE,32
        XOR A
        LD HL,#5861
PRoLP0  CP C
        JZ PRoLPQ
        LD (HL),5
        CALL PRoLPP
        JNZ PRoLP0
        RET 
PRoLPQ  LD (HL),#5D
        CALL PRoLPP
        RET Z
        DJNZ PRoLPQ
        JR PRoLP0
PRoLPP  INC A
        PUSH AF
        AND 15
        JNZ PRoLPE
        LD A,L
        AND 31
        LD H,88
        ADD A,#44
        LD L,A
PRoLPE  ADD HL,DE
        POP AF
        AND 63
        RET 
EsPRMRK
        LD HL,SMPATR+1;#58E5
EsLOOP=$+1
EsLEN=$+2
        LD BC,#100,A,C
        ADD A,B
        LD B,A,DE,32
        LD A,(EsTOP)
        EXA 
        LD A,SMPH
EsPRMR0 EXA 
        CP C
        JNC EsPRMR1+1
EsPRMRQ LD (HL),5
        INC A
        EXA 
        ADD HL,DE
        DEC A
        JNZ EsPRMR0
        RET 
EsPRMR1 EXA 
        CP B
        JNC EsPRMRQ
        LD (HL),#5D
        INC A
        EXA 
        ADD HL,DE
        DEC A
        JNZ EsPRMR1
        RET 
EDSMORN
        LD HL,EsORN,A,(HL)
        ADD A,C
        AND #F
        LD (HL),A
        JR EDSMOq
EDSM_p
        POP AF,HL
        CALL SMPQU
        CALL DECSMP
        JP EDSMP
EDSM_n
        POP AF,HL
        CALL SMPQU
        CALL INCSMP
        JP EDSMP
EDSMPKY
        CALL FIRE
        JP NZ,EDSMPFI
        XOR A
        LD (EDSMFIh),A
        CALL BIT5
        RET Z
       CP 4
       JZ EDSM_p
       CP 5
       JZ EDSM_n
        LD BC,32
        CP "R
        JZ EDSMNUM
        LD C,1
        CP 172;i
        JZ EDSMORN
        CP "W
        JZ EDSMNUM
        DEC BC,BC
        CP 197;u
        JZ EDSMORN
        CP "E
        JZ EDSMNUM
        LD C,-32
        CP "T
        JZ EDSMNUM
        CP "0
        JZ EDSM0
        CP "+
        JZ EDsPLU
       SUB "0;1
       CP 9;8
        RET NC
       LD (OCT),A
EDSMOq  CALL PROCORN
        JP SHOLK
EsX=$+1
EDsPLU  LD A,0
        INC A
        RET Z
        CALL EsGadr
        PUSH HL
        POP IX
        LD L,(IX),H,(IX+1)
        CALL NEGHL
        JR EDSMNQ
EDSM0
        CALL EsGadr
        LD A,(EsX)
        INC A
        JNZ EDsNOI0
        INC L,L
        LD A,(HL)
        AND #E0
        LD (HL),A
        JR EDsNOIQ
EDsNOI0 XOR A
        LD (HL),A
        INC L
        LD (HL),A
        JR EDSMKQ
EDSMNUM
        LD A,(EsX)
        INC A
        JZ EDSMNOI
        CALL EsGadr
        PUSH HL
        POP IX
        LD L,(IX),H,(IX+1)
        ADD HL,BC
        LD A,H
        OR A
        LD B,#F
        JP P,EDSMNOK
        CALL NEGHL
        LD A,H
        AND B
        LD H,A
        CALL NEGHL
        JR $+4
EDSMNOK AND B
        LD H,A
EDSMNQ  LD (IX),L,(IX+1),H
EDSMKQ  CALL EsPRNUM
        JP SHOLK
EDSMNOI
        CALL EsGadr
        INC L,L
        LD A,(HL)
        SUB C
        XOR (HL)
        AND 31
        XOR (HL)
        LD (HL),A
EDsNOIQ CALL EsPRNOI
        JP SHOLK
EsGadr
        LD H,'EDORbf,A,(EsTOP),D,A
EsLIN=$+1
        LD A,0
        PUSH AF
        SUB D
        LD E,A
        POP AF
        ADD A,A,A,A
        LD L,A
        RET 
;3
PRSMLIN
        PUSH AF,AF
        LD D,1
        CALL toOO
        LD D,8
        POP AF
        ADD A,A,A,A
        LD HX,'EDORbf,LX,A
        LD A,(IX+1)
        OR A
        LD L,(IX),H,(IX+1)
        LD B,"+
        CALL M,NEGHL-2
        LD A,"+"+"-
        SUB B
        CALL PRADD
        INC D
        CALL toOOOO
        INC D,D
        LD A,(IX+2)
        PUSH AF
        AND 31
        CALL toOO
        INC D,D
        POP AF
        CALL PRTNE
        LD A,(IX+3)
        CALL PRVTN
        POP AF
        JP PRSMVOL
EsPRNUM
        CALL EsGadr
        LD D,8,A,(HL)
        INC L
        LD H,(HL),L,A,A,H
       RLA 
        LD B,"-
       JNC $+7
        LD B,"+
        CALL NEGHL
        LD A,B
        CALL PRADD
        INC D
        JP toOOOO
EsPRNOI
        CALL EsGadr
        ADD A,2
        LD L,A,D,#E,A,(HL)
        AND 31
        JP toOO
TNEVTN
        LD H,'EDORbf
TNEVTNl=$+1
        LD L,0
TNEVTNy=$+1
        LD DE,#1100
        LD A,(HL)
        INC HL
        LD B,(HL)
        PUSH BC
        CALL PRTNE
        POP AF
        JR PRVTN
PRTNE
        LD L,A,H,"-
        AND #80
        LD A,"T
        JZ $+3
        LD A,H
        CALL PRADD
        INC D
        LD A,L
        AND 64
        LD A,"N
        JZ $+3
        LD A,H
        CALL PRADD
        INC D
        LD A,L
        AND 32
        LD A,"E
        JZ $+3
        LD A,H
        JP PRADD
PRVTN
        LD D,4,C,A
        RLA 
        LD A,"0
        JNC PRVTN0
        BIT 6,C
        LD A,"-
        JZ $+4
        LD A,"+
PRVTN0  CALL PRADD
        LD A,32
        CALL PRVTNPP
        LD A,16
PRVTNPP AND C
        LD A,"0
        JZ $+4
        LD A,"+
        INC D
        JP PRADD
EsFITN
        LD B,32
        CP SMPX<3+#1C
        JC $+7
EsFIfN  LD B,16
        CP 64
        RET NC
        INC HL
        LD A,(HL)
        XOR B
        JR EsFIVTQ
EsFIx
        SBC A,A
        EXA 
        CALL GsMRK7
        LD A,(EsFIlin),(EsLIN),A
        EXA 
        LD (EsX),A
        CALL GsMRK56
        JP SHOLK
EsNfix
        CALL EDSMFIp
        XOR A
        JR EsFIfN
EsTfix
        CALL EDSMFIp
        XOR A
        JR EsFITN
EsAfix
        CALL EDSMFIp
        JR EsFIV
EsTi
        CALL EDSMFIp
        XOR A
        JR Es_T
EsNi
        CALL EDSMFIp
        XOR A
        JR Es_N
EsEi
        CALL EDSMFIp
        JR Es_E
EsFIVTN
        CP SMPX<3+#38
        CCF 
        JC EsFIx ;смещ.шума
        CP SMPX<3+#28
        JNC EsFIx ;цикл
        CP SMPX<3+#14
        RET C ;слева от VTN
        CP SMPX<3+#18
        JNC EsFITN
EsFIV   INC HL
        LD A,(HL),C,A
        LD B,#80
        AND B
        JNZ $+6
        LD A,C
        OR B
        JR EsFIVTQ
        LD A,C
        XOR 64
        LD C,A
        AND 64
        LD A,C
        JNZ $+4
        AND 63
EsFIVTQ LD (HL),A
        JR EsFIQ
EDSMPFI
        LD HL,(ARXY),A,L
        SUB SMPY+1<3;#38
        CP SMPH<3
        RET NC
        RES 0,H,1,H
        RRA 
        RRA 
        RRA 
        AND #1F
        LD B,A
        CP 0
        LD ($-1),A
        LD A,H
        JNZ EDSMFIn
EDSMFIh=$+1
        CP 0
EDSMFIn LD ($-1),A
        RET Z
       CALL EDSMFIP
        CP SMPX<3+#48
        JC EsFIVTN
        CP SMPX<3+#54
        JNC EsFIVOL
Es_T    LD B,#80
        CP SMPX<3+#4C
        JC EsFINUM
Es_N    LD B,64
        CP SMPX<3+#50
        JC $+4
Es_E    LD B,32
EsFINUM LD A,(HL)
        XOR B
        LD (HL),A
EsFIQ   CALL TNEVTN
        JP SHOLK
EDSMFIp
        LD A,(EsLIN),HL,EsTOP
        SUB (HL)
        LD B,A
EDSMFIP LD A,(EsTOP)
        ADD A,B
        LD (EsFIlin),A
        ADD A,A,A,A,A,2
        LD L,A,(TNEVTNl),A
        LD A,B
EDSpQ   LD (TNEVTNy),A
        LD A,H,H,'EDORbf
        RET 
EsVOLi
        CALL EDSMFIp
        INC HL
        LD A,(HL)
        INC A
        JR EsVOLQ
EsVOLd
        CALL EDSMFIp
        INC HL
        LD A,(HL)
        DEC A
        JR EsVOLQ
EsFIVOL
        SUB SMPX<3+#54
        CP #40
        RET NC
        RRA 
        RRA 
        INC HL
EsVOLQ  AND #F
        LD E,A,A,(HL)
        AND #F0
        OR E
        LD (HL),A
        LD A,(TNEVTNy),E,A
EsFIlin=$+1
        LD A,0
        CALL PRSMVOL
        JP SHOLK
EDsSCUP
        LD DE,SMPATR&#300<3+.SMPATR+#4001+SMPX
        LD HL,SMPATR+32&#300<3+.(SMPATR+32)+#4001+SMPX
        LD A,SMPH<3-8
EDsSCU0
        CALL EDsLDI
        CALL DHL,DDE
        EXA 
        JNZ EDsSCU0
        RET 
EDsSCDN
        LD DE,SMPBOT&#300<3+.SMPBOT+#4001+SMPX
        LD HL,SMPBOT-32&#300<3+.(SMPBOT-32)+#4001+SMPX
        LD A,SMPH<3-8
EDsSCD0
        CALL EDsLDI
        CALL UHL,UDE
        EXA 
        JNZ EDsSCD0
        RET 
EDsLDI
        DEC A
        EXA 
        LD BC,19
        PUSH HL,DE
        LDIR 
        POP DE,HL
        RET 
EDsUP
        DEC A
        RET NZ
        CALL GsMRK7
        LD A,(EsLIN)
        DEC A
        JP M,EDsCQ
        LD B,A,A,(EsTOP),C,A
        DEC A
        CP B
        JNZ EDsUQ
        PUSH BC
        CALL EDsSCDN
        POP BC
        LD A,C
        DEC A
        LD (EsTOP),A
        PUSH BC
        LD E,0
        CALL PRSMLIN
        POP BC
EDsUQ   LD A,B,(EsLIN),A
        JR EDsCQ
EDsLR
        CALL GsMRK7
        LD HL,EsX,A,(HL)
        CPL 
        LD (HL),A
EDsCQ   CALL GsMRK56
        JP SHOLK
EDSMCUR
        CALL BIT5
        RET Z
        CP "A
       JP Z,EsAfix
        CP "9
       JP Z,EsTfix
        CP "F
       JP Z,EsNfix
        CP ")
       JP Z,EsVOLi
        CP "(
       JP Z,EsVOLd
        CP kIns
       JZ EDsINS
        CP kDelLn
       JP Z,EDsDELLN
        CP "K
       JP Z,EDsBEG
        CP "L
       JP Z,EDsEND
        CP "Y
       JP Z,EsTi
        CP "U
       JP Z,EsNi
        CP "I
       JP Z,EsEi
      ; SUB 4
      ; JZ EDsTRU
      ; DEC A
      ; JP Z,EDsINV
        SUB 3+5
        JZ EDsLR
        DEC A
        JZ EDsLR
        DEC A
        JP NZ,EDsUP
        CALL GsMRK7
        LD A,(EsLIN)
        INC A
        AND 63
        JZ EDsCQ
        LD BC,(EsTOP),B,A
        SUB C
        CP SMPH
        JNZ EDsDQ
        PUSH BC
        CALL EDsSCUP
        POP BC
        LD A,C
        INC A
        LD (EsTOP),A
        PUSH BC
        LD E,SMPH-1
        ADD A,E
        CALL PRSMLIN
        POP BC
EDsDQ   LD A,B,(EsLIN),A
        JP EDsCQ
       IFN 0
EDsTRU
        CALL GsMRK7
        LD HL,EsLIN,A,(HL)
        SUB SMPH
        LD (HL),A
        LD DE,EsTOP,A,(DE)
        SUB SMPH
        JNC $+4
        XOR A
        LD (HL),A
        JR EDsInE
       ENDIF 
EDsINS
        CALL EsGadr
        LD A,-4
        SUB L
        RET Z
        LD L,-5,D,H,E,-1,B,0,C,A
        LDDR 
       INC L
       SRL L,L
        LD DE,EsLOOP
        CALL incCOR
       JZ $+4
       JNC EDsINVQ
        EXD 
        INC HL
       DEC A
        ADD A,(HL)
        CP E
        JC EDsINVQ
        CP 63
        JNC $+3
        INC (HL)
        JR EDsINVQ
EDsDELLN
        CALL EsGadr
        LD D,H,A,L
        ADD A,4
        LD E,A
        EXD 
        XOR A
        LD B,A
        SUB L
        RET Z
        LD C,A
       LD A,L
        LDIR 
       LD L,A
       SRL L,L
        LD DE,EsLOOP
        CALL decCOR
       JNC EDsINVQ
        EXD 
        INC HL
        ADD A,(HL)
        CP E
        JC $+3
        DEC (HL)
       IFN 0
        JR EDsINVQ
EDsINV
        CALL GsMRK7
        LD HL,EsLIN,A,(HL)
        ADD A,SMPH
        LD (HL),A,DE,EsTOP,A,(DE)
        ADD A,SMPH
        CP 65-SMPH
        JC EDsInE
        LD (HL),63
        LD A,64-SMPH
EDsInE  LD (DE),A
       ENDIF 
EDsINVQ CALL SHOLK
        CALL PRSMP
GsMRK56
        LD E,56
        JR GsmpMRK
GsMRK7
        LD E,7
GsmpMRK
        LD A,(EsLIN)
EsTOP=$+1
        SUB 0
        ADD A,A,A,A,A,A
        LD L,A,H,0,BC,SMPATR;#58E4
        ADD HL,HL,HL,HL,HL,BC
        LD A,(EsX)
        OR A
        LD A,5
        JZ $+4
        LD A,7
        ADD A,L
        LD L,A
        LD (HL),E
        INC L
        LD (HL),E
        RET 
PRORNos
       LD A,(OCT)
       ADD A,"0
        LD DE,#E11
        CALL PRADD
        LD A,(EoSMP)
        CALL HEXDIG
        LD D,#18
        JP PRADD
PROCORN
       LD A,(OCT)
       ADD A,"0
        LD DE,#1000+SMPH
        CALL PRADD
        LD A,(EsORN)
        CALL HEXDIG
        LD D,#1C
        JP PRADD
PRSMP
        LD E,0
        LD A,(EsTOP)
        ADD A,SMPH
        LD (PRSMPe),A
        SUB SMPH
PRSMP0  PUSH AF,DE
        CALL PRSMLIN
        POP DE,AF
        INC E,A
PRSMPe=$+1
        CP 0
        JNZ PRSMP0
        RET 
PRSMVOL
        PUSH DE,AF
        CALL PRADDPP
        LD D,11+SMPX
        CALL DE2SCR
        INC H
        EXD 
        LD H,'EDORbf
        POP AF
        ADD A,A,A,A,A,3
        LD L,A,A,(HL)
        AND #F
        LD (PRSMVa),A
        EXD 
        PUSH AF,HL
        LD A,#22,B,7
        CALL BLOBER
        INC L
        DJNZ $-4
        LD A,#20
        CALL BLOBER
        POP HL,AF
        LD E,A
        RRA 
        PUSH AF
        AND 7
        JZ PRVOL7
        LD B,A,A,#77
PRVOL0  LD D,H
       DUP 5
        LD (HL),A
        INC H
       EDUP 
        LD (HL),A,H,D
        INC L
        DJNZ PRVOL0
PRVOL7  LD A,E
        CP #F
        LD E,#72
        JNZ $+4
        LD E,#70
        POP AF
        LD A,E
        CALL C,BLOBER7
PRSMVa=$+1
        LD A,0
        POP DE
        LD D,#25
        JP D2HEX
DQ   LD A,B,(EsLIN),A
        JP EDsCQ
       IFN 0
EDsTRU
        CALL GsMRK7
        LD HL,EsLIN,A,(HL)