        MAIN "STS*",#C6
       LD A,"0
       LD (DD_NAME+7),A
        LD HL,STANDART+2
        LD (HL),5
        PUSH HL
        CALL WINDOW
        DB 5,6
        DB 14,5,18,8,"Dis","k"+#80
;DB 11,8
;DB 20
;DD_NAME DB "DisName0 ","C"+W
        DB 23,7,4,1
DD_MEND DW 0
        DB 09,7,17,0;START
        POP HL
        LD (HL),9
DD_REINPUT
        LD DE,DD_MSTART
        LD HL,#70F
        CALL INPUT_W_D
        PUSH HL
        LD (DD_LSTART),HL
        LD DE,DD_MEND
        LD HL,#71B
        CALL INPUT_W_D
        LD (DD_LEND),HL
        POP BC
       XOR A
       SBC HL,BC
        JR C,DD_REINPUT
        LD (DD_AREA),A
;LD HL,#814
;LD DE,DD_NAME
;LD C,7
;CALL INPUT_REWR
       CALL RES_INP
ddbuf2=$+1
        LD HL,DD_BUF+#200;#C200
       LD (HL),0 ;v5.6
        LD (DD_LAB_ADR),HL
locend=$+1
        LD HL,LOCEND_BUF
LOCAL_CKL
        PUSH HL
        LD HL,DD_AREA
        INC (HL)
DD_RELOCAL
        CALL WINDOW
        DB 5,7
       ;DB 14,9,"Local",6,2
       DB 16,9,6,2
DD_AREA DB 0
        DB 09,11,17,1
DD_LSTART DW 0
        DB 23,11,4,1
DD_LEND DW 0
DD_MODE_T
;DB 15,12
;DB "MODE  "
       DB 18,12
DD_MODE DB 18," ",0
DDLE_R
        LD DE,DD_LEND
        LD HL,#B1B
        CALL INPUT_W_D
        LD DE,(DD_LSTART)
        AND A
        SBC HL,DE
        JR C,DDLE_R
        LD HL,(DD_MEND)
        SBC HL,BC
        JR C,DDLE_R
        PUSH BC
DD_REMODE
        LD HL,DD_MODE
        CALL XOR_1HL
        LD HL,DD_MODE_T
        CALL PRINT_T_AT
        CALL INKEY
        LD A,E
        SUB #D
        JR NZ,DD_REMODE
        LD A,(DD_MODE)
        RRCA 
        JR C,NO_MAK_LAB
;DD_MAK_LAB
        POP BC
        XOR A
        LD (PR_W_JR),A

        LD BC,(DD_LSTART)
        LD HL,0
DD_LAB_ADR=$-2
DD_LAB_CKL
        LD (HL),A
        PUSH HL
       LD H,A,L,A
       LD (NEW_PC),HL;=0

        CALL IPRDIS_INS
        LD C,L,B,H
        LD DE,(NEW_PC)
        LD A,D
        OR E
        JR Z,NO_RANGE
        LD HL,(DD_MSTART)
       SCF 
       SBC HL,DE
        JR NC,NO_RANGE
        LD HL,(DD_MEND)
       XOR A
       SBC HL,DE
        JR C,NO_RANGE
        PUSH BC
        LD C,E,B,D
        LD HL,(ddbuf2)
OLDLAB_TST
        LD A,(HL)
        AND A
        JR Z,NEW_LABEL
       INC HL
       LD E,(HL)
       INC HL
       LD D,(HL)
       INC HL
       EX DE,HL
        SBC HL,BC
        EX DE,HL
        JR NZ,OLDLAB_TST
        POP BC
        JR NO_RANGE
NEW_LABEL
        LD E,C,D,B
        POP BC,HL
        LD (HL),2
;2 - LABEL NOT DEFINE PR
;1 - LABEL DEFINE
;0 - EDUP OF TABLE
       INC HL
       LD (HL),E
       INC HL
       LD (HL),D
       INC HL
        POP DE
        PUSH DE,HL,BC
;Cf=0
        SBC HL,DE
        JP NC,DD_CANCEL;CANCEL?
        LD HL,#D12
        CALL TST_PRW
        POP BC
NO_RANGE
        LD HL,(DD_LEND)
        XOR A
        SBC HL,BC
        POP HL
;LD (HL),A
        JR NC,DD_LAB_CKL
        LD (DD_LAB_ADR),HL

        LD A,PR_W-PR_W_JR-1
        LD (PR_W_JR),A
        LD A,-1
        JR MAK_LAB_END
NO_MAK_LAB
;BC=DD_LEND
REDFBL  LD HL,#C1B
        LD A,8
        CALL INPUT_B
       DEC A
       JP M,REDFBL
       INC A
        POP BC;=DD_LEND
        INC BC
MAK_LAB_END
        POP HL
       LD (HL),A
       DEC HL
       LD (HL),C
       DEC HL
       LD (HL),B
       DEC HL
        LD (DD_LSTART),BC
        EX DE,HL
        LD HL,(DD_MEND)
        LD (DD_LEND),HL
       XOR A
       SBC HL,BC
        EX DE,HL
        JP NC,LOCAL_CKL

        LD (HL),A ;LOC_END_STACK
        LD (FLEN+1),A
        LD HL,DD_CANCEL
        LD (TR_CANCEL),HL

        CALL TEST_ROOM
        LD A,svMODE ;#CA;2D73;SAVE
        LD (SL_MODE),A

        LD HL,(#FFE1)
        LD (TRSEC),HL;FirstTrSec
        LD HL,PUSH_BUF
        LD (PR),HL
ddbuf=$+1
        LD HL,DD_BUF
        LD (PR_BUF_ADR),HL
        XOR A
        LD (DD_SEC),A
        LD HL,(locend)
        LD BC,0
DD_MSTART=$-2
DISLOC_CKL
        LD A,(HL)
        AND A
        JP Z,DD_END
       DEC HL
       LD E,(HL)
       DEC HL
       LD D,(HL)
        LD (DD_LNEXT),DE
       DEC HL
        PUSH HL
        LD (DFB_LEN),A
        INC A
        JP Z,DD_DIS
DD_DEF_CKL
        PUSH BC
        CALL PRINT_LW;Cf=1-NO_LAB
        POP BC
        PUSH BC
        CALL NC,SET_1_LAB

        LD DE,DEFB_TXT
        CALL PRINT
        LD B,8
DFB_LEN=$-1
        POP DE
DFB_CKL PUSH BC
        CALL RES_IO;A<=(DE) INC DE
        PUSH DE
        CALL PRINT_B;Cf=0
        POP DE
        POP BC
        LD HL,0
DD_LNEXT=$-2
       XOR A
       SBC HL,DE
        JR Z,DD_DB_END

        LD A,B
        DEC A
        LD A,",
        CALL NZ,PR
        DJNZ DFB_CKL
DD_DB_END
        PUSH DE
 IF eol
        CALL PREOL
 ELSE 
        LD DE,EOL_TXT
        CALL PRINT
 ENDIF 
        POP BC
        PUSH BC
        CALL TEST_EQU
        CALL DD_NEXTSEC
        POP BC
        LD HL,(DD_LNEXT)
       XOR A
       SBC HL,BC
        JR NZ,DD_DEF_CKL
        JR DISL_C_END
DD_DIS
;BC=LOC_START
        XOR A
        LD (PR_W_JR),A
DD_DIS_CKL
        PUSH BC
        CALL PRINT_LW
        POP BC
        CALL NC,SET_1_LAB

        LD A,9
;LD (DD_R_SYM),A
;LD (DD_R_SYM3),A
        CALL PR
        LD HL,(PR_BUF_ADR)
        LD (DIS_PR_ADR),HL
        CALL DIS_INSIDE;BC<=DIS_ADR
                       ;HL=>NEXT_ADR
        PUSH HL
 IF eol
        CALL PREOL
 ELSE 
        LD DE,EOL_TXT
        CALL PRINT
 ENDIF 
        POP BC
        PUSH BC
        CALL TEST_EQU
        CALL DD_NEXTSEC
        POP BC
        LD HL,(DD_LNEXT)
        SCF 
        SBC HL,BC
        JR NC,DD_DIS_CKL
DISL_C_END
        POP HL
        JP DISLOC_CKL
TST_PRW
        CALL _8020
        JP C,PRINT_W
        JR DD_CANCEL
DD_END
        CALL DD_SAVE
DD_CANCEL
;LD A,32
;LD (DD_R_SYM),A
;LD (DD_R_SYM3),A
        LD HL,ENT_TXT;ASM_BUFFER=FF80
        LD (DIS_PR_ADR),HL
        LD HL,SL_FILE3
        LD (Write_CALL),HL
        LD HL,CANCEL
        LD (TR_CANCEL),HL
        LD A,PR_W-PR_W_JR-1
        LD (PR_W_JR),A
        LD A,'BUFFER
        LD (PR_BUF_ADR+1),A
        LD HL,#21C5
        LD (PR),HL
        XOR A
        LD (PRINT+1),A
        JP CANCEL
PUT_TRSEC
        LD HL,0
DD_L_TRSEC=$-2
        LD (TRSEC),HL
        RET 
SET_1_LAB
;BC=LABEL_ADR
        LD HL,(ddbuf2)
S1L_CKL
        LD A,(HL)
        AND A
        RET Z
       INC HL
       LD E,(HL)
       INC HL
       LD D,(HL)
       INC HL
       EX DE,HL
        SBC HL,BC
        EX DE,HL
        JR NZ,S1L_CKL
        DEC HL,HL,HL
        LD (HL),1;DEC(HL)
        RET 
TEST_EQU
        ;BC=PC_ADR
        LD HL,(ddbuf2)
TEQ_CKL
        LD A,(HL)
        AND A
        RET Z
       INC HL
       LD E,(HL)
       INC HL
       LD D,(HL)
       INC HL
       EX DE,HL
        SBC HL,BC
        EX DE,HL
        JR NC,TEQ_CKL
        DEC A
        JR Z,TEQ_CKL
        PUSH HL,BC
       DEC HL
       LD B,(HL)
       DEC HL
       LD C,(HL)
       DEC HL
       LD (HL),A;=1
        PUSH BC
        CALL PRINT_LW_2;!!!
        LD DE,EQU_TXT
        CALL PRINT
        POP DE,HL
        LD C,L,B,H
       AND A
       SBC HL,DE
        LD A,L
        CALL PRINT_B
 IF eol
        CALL PREOL
 ELSE 
        LD DE,EOL_TXT
        CALL PRINT
 ENDIF 
        POP HL
        JR TEQ_CKL
DD_NEXTSEC
        RET ;NOP
        LD A,#C9
        LD (DD_NEXTSEC),A;!!
         LD HL,#21C5
         LD (PR),HL ;  
        LD HL,#D12
        CALL AT
        CALL TST_PRW
        LD HL,PUSH_BUF
        LD (PR),HL
CCC
        LD HL,(ddbuf)
        PUSH HL
        LD B,1
        CALL LD_SV_SEC
        LD (DD_L_TRSEC),DE;=TRSEC
        ;LD A,D
        ;CP 160
        ;JP NC,DD_CANCEL
;CALL RES_INP
;!
;ddbuf1=$+1
        LD HL,DD_BUF+#100
        POP DE ;DD_BUF
        LD BC,#100
        LDIR 
        LD HL,PR_BUF_ADR+1
        DEC (HL);=#C0XX
        LD HL,DD_SEC
        LD A,95;MAX_FILE_LEN
        INC (HL)
        CP (HL)
        RET NZ
DD_SAVE
 IFN eof
        LD DE,EOF_TXT
        CALL PRINT
 ENDIF 
        LD A,(PR_BUF_ADR)
        AND A
        JR Z,DD_NoLSec
        XOR A
        LD (DD_NEXTSEC),A
        CALL DD_NEXTSEC;LAST_SEC
DD_NoLSec
        LD HL,DD_NAME
        LD DE,FNAME_TXT
        LD BC,8
        LDIR 
       INC DE
        LD A,"C
       LD (DE),A;EXT_TXT
        LD HL,(PR_BUF_ADR)
        LD A,0
DD_SEC=$-1
        LD H,A
         DEC L
         INC HL
         DEC H
        LD (FLEN),HL
        LD HL,PUT_TRSEC
        LD (Write_CALL),HL
        CALL Write
        CALL SAVE_1_SEC
        LD HL,(DD_L_TRSEC)
        LD (TRSEC),HL
        LD HL,(ddbuf)
        LD (PR_BUF_ADR),HL
        LD HL,DD_NAME+7
        INC (HL)
        XOR A
        LD (DD_SEC),A
        RET 
EQU_TXT DB "=$-",0
DEFB_TXT DB 9,"DB",32,0
        IFN eol
EOL_TXT DB #D,#A,0
        ENDIF 
        IFN eof
EOF_TXT DB #D,#A,#1A,0
        ENDIF 