; [Overlay] Plug-in module for BGE / Сменный модуль для BGE
;  Was formerly built-in / Ранее был встроенным

; Внимание ! Данный модуль является частью редактора BGE и не будет функционировать в версии отличной от указанной /DA

; Замена имён : Cikl_1,Cont,BACK_SP,LOCK на Cikl_1_,Cont_,BACK_SP_,LOCK_      /DA


    ORG PgnAdr      ; адрес старта модуля

ChrOvb     LD (.RETAD+1),HL
           CALL BChr
           XOR A
.RETAD    JP 0

;ChrPgn

;        DISP PgnAdr

BChr    ld (BChr.spp),sp

CPRINT  LD HL,PLOT
        LD (PLOT_SNP+1),HL
        CALL INSTALL_PLOT
        CALL OR_MASK_
        XOR A
        LD (FLAGWCHR),A
bchr_a  LD A,%1111
bchr    LD IX,WChr
        LD (IX+6),A
      ;  LD SP,(SPP)
         ld sp,0
BChr.spp  EQU $-2
        CALL Win_
        CP #FF
       ; JP Z,RES_TSK2
        ret z
        LD BC,TBChr
        JP TAB_JP

bchr__  CALL CLOSE
bchr_   LD A,%1101
        JR bchr

WChr    DEFB 1,2,9,12,5*8,5,%00001111
; Bit 0 - окно с заголовком/без
; Bit 1 - "перерисовать" окно да/нет
; Bit 2 - тискать окно по экрану да/нет
; Bit 3 - выход из окна-ткнуть только лишь за пределами (CANCEL)
        DEFB 0
        DEFW TChr         ; объект-текст
        DEFW SChr         ; объект-подсветка (выборка)
        DEFW #FFFF

SChr    ; DEFB 1,3,7,1,%11
        ; DEFB 1,4,7,1,%11
        ; DEFB 1,5,7,1,%11
        ; DEFB 1,6,7,1,%11
        ; DEFB 1,7,7,1,%11
        ; DEFB 1,8,7,1,%11
        ; DEFB 1,9,7,1,%11
        ; DEFB 1,10,7,1,%11
        DB 1,3,7,128+8,%11
        DEFB #FF

TChr
    if rus
        DEFB "Chr шрифт",13
        DEFB "Печать",13
        DEFB "Печать+",13
        DEFB "Вписать_",13
        DEFB "Просмотреть",13
        DEFB "Открыть_",13
        DEFB "Поиск_",13
        DEFB "О шрифте",13
        DEFB "Дисковод",0
    else
        DEFB "CHR font",13
        DEFB "Type",13
        DEFB "Type+",13
        DEFB "Type in_",13
        DEFB "Check",13
        DEFB "Load_",13
        DEFB "Search_",13
        DEFB "About",13
        DEFB "Drive",0
    endif

TBChr   DW pRINT
        DW ABC_MOV
        DW TWC
        DW LCHR
        DW LDC
        DW QUICK
        DW INFO
        DW DCH

dX      DB 0
dY      DB 0

NoChr1  CALL NoData_
        JP EChr_
NoChr2  CALL CLOSE
NoChr3  CALL NoData_
        JP bchr_

pRINT:  CALL INSTALL
        JP NZ,NoChr3
        CALL SV_UNDO
        CALL LOADSCR
        CALL wRITE
        JP chr_TSK    ; RES_TSK

LCHR    CALL INSTALL
        JP NZ,NoChr3
        CALL CLS
        CALL INSTALL_PLOT
        LD HL,(Move)
        PUSH HL
        LD DE,#1050
        LD B,1 ;   20
        LD A,1
        CALL Set_XY
        LD B,11
        LD HL,TESTXT
AKKZ    PUSH BC
        PUSH HL
        LD A,(HL)
        CALL ChrPrt
        POP HL
        INC HL
        POP BC
        DJNZ AKKZ
        POP HL
        LD (Move),HL
        CALL WAITKEY_
        CALL NOKEY_
        JP EChr_

DCH     CALL Driver
        XOR A
        LD (FLAGWCHR),A
        JP bchr_
;===============================================================
wRITE   CALL INSTALL_PLOT; ДЛЯ ТАБЛИЦЫ - 1 КИЛОБАЙТ
        LD A,AddPage
        CALL RAM
        LD DE,(Move);           #00A0
        LD B,1 ;   20
        LD A,1
        CALL Set_XY
        CALL ReadKey
        CALL SAVESCR
        JP chr_TSK   ; RES_TSK

Symb:   PUSH AF
        LD A,(FirstChar)
        LD B,A
        POP AF
        SUB B; В <А> - ПОРЯДКОВЫЙ НОМЕР СИМВОЛА
        CALL Smesh
        LD H,0
        LD L,A
        ADD HL,HL
        LD DE,(Offsets)
        ADD HL,DE
        DEFHL
        LD HL,(FirstData)
        ADD HL,DE
        LD (CharAdr),HL
        RET

INSTALL LD A,AddPage
        CALL RAM
        LD HL,AddAdr
        LD A,(HL)
        CP "P"
        RET NZ
        INC HL
        LD A,(HL)
        CP "K"
        RET NZ
        INC HL
        LD A,(HL)
        CP 8
        RET NZ
        INC HL
        LD A,(HL)
        CP 8
        RET NZ

        INC HL
        LD BC,0
        LD A,#1A
        CPIR
        LD C,(HL)
        INC HL
        LD B,(HL)
        PUSH BC
        INC HL
        LD DE,FontName
        LD BC,4
        LDIR
        LD HL,AddAdr
        POP BC
        ADD HL,BC; АДРЕС ВТОРОГО ЗАГОЛОВКА
        LD A,(HL)
        CP "+"
        RET NZ
        LD (ParPrefix),HL
        INC HL
        DEFHL
        LD (CharsCount),DE
        INC HL
        INC HL
        LD A,(HL)
        LD (FirstChar),A
        INC HL
        DEFHL
        PUSH HL
        LD HL,(ParPrefix)
        LD BC,AddAdr;
        SBC HL,BC
        ADD HL,DE
        LD (FirstData),HL
        POP HL
        INC HL; ФЛАГ ЗАПОЛНЕНИЯ
        INC HL; ВЕРХНЯЯ ГРАНИЦА СИМВОЛА
        LD A,(HL)
        LD (UpperMargin),A
        INC HL; NOP
        INC HL; НИЖНЯЯ ГРАНИЦА СИМВОЛА
        LD A,(HL)
        LD (LowerMargin),A
        INC HL
        DUP 5
        INC HL
        EDUP
        LD A,(HL)
        OR A
        RET NZ

        LD (Offsets),HL
        INC HL; Т.К. ПЕРВЫЙ БАЙТ ВСЕГДА 0

        LD HL,(ParPrefix)
        LD BC,16
        ADD HL,BC
        PUSH HL

        LD HL,CharsCount
        DEFHL
        EX DE,HL
        ADD HL,HL
        EX DE,HL
        POP HL
        ADD HL,DE
        LD (Widths),HL

        LD HL,(FirstData)
        LD BC,AddAdr
        ADD HL,BC
        LD (FirstData),HL
        XOR A
        RET

; 7 6 5 4 3 2 1 0              7 6 5 4 3 2 1 0
;-----------------            -----------------
; B  КООРДИНАТА Y              A  КООРДИНАТА X
;-----------------            -----------------
; A B
;-----
; 0 0 - КОНЕЦ ОБРАЗА СИМВОЛА
; 1 0 - НЕ ИСПОЛЬЗУЕТСЯ
; 0 1 - ПОДНЯТЬ "ПЕРО" И ПЕРЕВЕСТИ ЕГО В ТОЧКУ X,Y
; 1 1 - ОПУСТИТЬ "ПЕРО" И ВЕСТИ ЕГО ДО ТОЧКИ X,Y

YY1     DEFB 0 ; ПЕРО
XX1     DEFB 0 ; ПЕРО
YY2     DEFB 0 ;
XX2     DEFB 0 ;

; Line: DE - НАЧАЛО
;       BC - КОНЕЦ

OutChar
        LD HL,(CharAdr)
Cikl_1_ LD (AdrTek),HL
        DEFHL
        BIT 7,E
        JR NZ,_1_
        RET

_1_     BIT 7,D
        JR NZ,_11
        JR _01

_01     CALL ResBit
        LD (YY1),DE
        LD (YY2),DE
        JR Cont_

Cont_   LD HL,(AdrTek)
        INC HL
        INC HL
        JP Cikl_1_

_11     CALL ResBit
        LD (YY2),DE
        PUSH DE
        CALL Init_Coords
        PUSH DE
        PUSH BC
        CALL LINE_
        POP BC
        POP DE

THABC   CALL STABC

        POP DE
        LD (YY1),DE
        JR Cont_

STABC   CALL LINE_
        RET

WIDTH2  LD A,(dX)
        ADD A,B
        LD B,A
        LD A,(dY)
        ADD A,C
        LD C,A

        LD A,(dX)
        ADD A,D
        LD D,A
        LD A,(dY)
        ADD A,E
        LD E,A
        CALL LINE_
        RET

EFF3D   PUSH DE
        PUSH BC

        LD (NBC),BC
        LD (NDE),DE

        CALL LINE_
        POP BC
        POP DE

        LD BC,(NBC)
        LD A,(dX)
        ADD A,B
        LD B,A
        LD A,(dY)
        ADD A,C
        LD C,A
        LD DE,(NBC)
        CALL LINE_

        LD DE,(NDE)
        LD A,(dX)
        ADD A,D
        LD D,A
        LD A,(dY)
        ADD A,E
        LD E,A
        LD BC,(NDE)
        CALL LINE_

        LD BC,(NBC)
        LD A,(dX)
        ADD A,B
        LD B,A
        LD A,(dY)
        ADD A,C
        LD C,A

        LD DE,(NDE)
        LD A,(dX)
        ADD A,D
        LD D,A
        LD A,(dY)
        ADD A,E
        LD E,A
        CALL LINE_

        RET

NBC     DW 0
NDE     DW 0

Init_Coords:
        LD DE,(YY1)
        LD HL,(Move)
        CALL SUB_YX_DE
        EX DE,HL
        PUSH DE
        LD BC,(YY2)
        LD HL,(Move)
        CALL SUB_YX_BC
        PUSH HL
        POP BC
        POP DE
        RET

SUB_YX_DE:
        PUSH DE
        POP BC
        CALL SUB_YX_BC
        PUSH BC
        POP DE
        RET

SUB_YX_BC:
        CALL SUB_Y_BC
        CALL SUB_X_BC
        CALL Magn_BC_A
        JP BH_CH

SUB_Y_BC:
        LD A,#40
        CP C
        RET NC
        LD A,#80
        SUB C
        LD C,0
        PUSH BC
;       LD B,A
        LD C,A
        CALL Magn_BC_A
        LD A,(Move)
        SUB C
        LD L,A
        LD A,(Move+1)
        LD H,A
        POP BC
        RET

SUB_X_BC:
        LD A,#40
        CP B
        RET NC
        LD A,#80
        SUB B
        LD B,0
        PUSH BC
        LD B,A
        CALL Magn_BC_A
        LD A,(Move+1)
        SUB B
        LD H,A
        POP BC
        RET

Magn_DE_A:
        PUSH HL

        LD A,D
        LD (DD+1),A
        LD A,E
        LD (EE+1),A

        LD A,(FLAGWCHR)
        AND A
        JR NZ,Z4

        LD A,(DIGIT)
        LD (DIGITX),A
        LD (DIGITY),A

        LD A,(ONLY_X)
        AND A
        JR Z,PASS_SX

Z4      PUSH DE
        LD A,D

        LD B,A
        LD A,(DIGITX)
        LD C,A
        CALL Mult
        LD DE,10
        CALL DIV
        LD A,L

        LD (DD+1),A
        POP DE

        LD A,(FLAGWCHR)
        AND A
        JR NZ,Z5

PASS_SX LD A,(ONLY_Y)
        AND A
        JR Z,PASS_SY

Z5      LD A,E
        LD B,A
        LD A,(DIGITY)
        LD C,A
        CALL Mult
        LD DE,10
        CALL DIV
        LD A,L

        LD (EE+1),A

PASS_SY
DD      LD D,0
EE      LD E,0

        POP HL
        RET

Magn_BC_A:
        LD D,B
        LD E,C
        CALL Magn_DE_A
        LD B,D
        LD C,E
        RET

BH_CH:  LD A,B
        ADD A,H
        LD H,A
        LD A,C
        ADD A,L
        LD L,A
        RET

Move    DEFW #00A0

Smesh   PUSH AF
        LD H,0
        LD L,A
        LD BC,(Widths)
        ADD HL,BC
        LD A,(HL)
        LD (CharWidth),A
        POP AF
        RET

OldMove DEFW 0

ChrErs  CALL Symb
        CALL AND_MASK_
        LD HL,(OldMove)
        LD (Move),HL
        CALL CharMove
        LD HL,(OldMove)
        LD (Move),HL
        RET

ChrPrt  CALL Symb
        CALL OR_MASK_
CharMove:
        CALL Char
ADD_CHR CALL OutChar
        LD A,(CharWidth)
        LD B,A
        CALL Magn_BC_A
        LD A,(Move+1)
        ADD A,B
        LD (Move+1),A
        RET

Char    LD DE,0
        LD (YY1),DE
        LD A,(Move+1)
        LD C,A
        LD B,A
        LD A,(CharWidth)
        ADD A,B
        CP C
        CALL C,CRR

        LD HL,(Move)
        LD (OldMove),HL
        RET

Set_XY  LD A,B
        LD (InterL+1),A
        LD (Move),DE
        RET

CRR     LD A,0
        LD (Move+1),A
        LD A,(UpperMargin)
        LD B,A
        LD A,(LowerMargin)
        LD C,A
        LD A,#FF
        SUB C
        ADD A,B
        LD B,A
        CALL Magn_BC_A
        LD A,(Move)
        SUB B
InterL  LD B,0
        PUSH AF
        CALL Magn_BC_A
        POP AF
        SUB B
        DEC A
        DEC A
        LD (Move),A
        RET

ResBit  RES 7,E
        RES 7,D
        LD A,D
        LD D,E
        LD E,A
        RET

FontName    DEFB "ABS!"; ИМЯ ШРИФТА
CharsCount  DEFW 0; КОЛ-ВО СИМВОЛОВ
FirstChar   DEFB 0; ПЕРВЫЙ СИМВОЛ
ParPrefix   DEFW 0; "+"
FirstData   DEFW 0; ОБРАЗЫ СИМВОЛОВ
Offsets     DEFW 0; ТАБЛИЦА СМЕЩЕНИЙ
Widths      DEFW 0; ТАБЛИЦА ШИРИН
CharAdr     DEFW 0; АДРЕС КОМАНД ДЛЯ СИМВОЛА Char
UpperMargin DEFB 0; ВЕРХНЯЯ ГРАНИЦА
LowerMargin DEFB 0; НИЖНЯЯ ГРАНИЦА
AdrTek      DEFW 0
CharWidth   DEFB 0
;===============================================================
;===============================================================
;===============================================================
ABC_MOV CALL INSTALL
        JP NZ,NoChr3
        CALL SV_UNDO
        CALL LOADSCR
        CALL INSTALL_PLOT
        LD DE,Kur2
        CALL SV_ARW
        LD HL,Ret
        CALL ARW_SCN_
        CALL LD_ARW
        JP C,chr_TSK   ; RES_TSK
        LD DE,(ARW_X)
        LD A,D
        LD D,E
        LD E,A
        CALL RECOD
        LD A,E
        LD (Move),A
        LD A,D
        LD (Move+1),A
        JP pRINT

ReadKey CALL Cursor
        EI
RK      XOR A
        LD (#5C08),A
        HALT
        LD A,(#5C08)
        AND A
        JR Z,RK

        PUSH AF
        CALL Cursor
        POP AF

        LD B,A
        LD HL,Cht
        CALL JHOT

        CALL #1F54
        JP NC,chr_TSK4  ; RES_TSK4
        LD A,(23560)
        CP 32
        CALL NC,ChrPrtRusLat
        JR ReadKey

UpMagn  LD A,(DIGIT)
        DEC A
        JP Z,ReadKey
        LD (DIGIT),A
        JP ReadKey

DnMagn  LD A,(DIGIT)
        INC A
        LD (DIGIT),A
        JP ReadKey

ChrPrtRusLat:
        CALL PERECOD
        LD (OldSymb),A
        JP ChrPrt

OldSymb DEFB 0
BACK_SP_ LD A,(OldSymb)
         CALL ChrErs
        JP ReadKey

Cr      CALL CRR
        JP ReadKey

Cht     DB 199
        DW UpMagn
        DB 200
        DW DnMagn
        DB 14
        DW chr_TSK4  ; RES_TSK4
        DB 8
        DW Left
        DB 4
        DW LeftDl
        DB 9
        DW Right
        DB 5
        DW RightDl
        DB 11
        DW Up
        DB 10
        DW Down
        DB 13
        DW Cr
        DB 12
        DW BACK_SP_
        DB 7
        DW SWC
        DB 6
        DW LOCK_
        DB 201
        DW DOT1
        DB 0

SWC     CALL RUS_LAT
        JP ReadKey

LOCK_    CALL CAPS
        JP ReadKey

Cursor  CALL XOR_PL
        LD DE,(Move)
        PUSH DE           ;
        LD A,(UpperMargin)
        LD C,A            ;
        CALL Magn_BC_A    ;
        POP DE            ;
        LD A,C
        LD C,E
        LD B,D
        ADD A,C
        LD C,A
        CALL LINE_
        RET

Up      LD A,(Move)
        INC A
        LD (Move),A
        JP ReadKey

Down    LD A,(Move)
        AND A
        JP Z,ReadKey
        DEC A
        LD (Move),A
        JP ReadKey

Right   LD A,(Move+1)
        INC A
        LD (Move+1),A
        JP ReadKey

Left    LD A,(Move+1)
        DEC A
        LD (Move+1),A
        JP ReadKey

LeftDl  LD A,(Move+1)
        DEC A
        LD (Move+1),A
        JP ReadKey

RightDl LD A,(Move+1)
        INC A
        LD (Move+1),A
        JP ReadKey

DOT1    CALL INT_MAGN
        JP ReadKey

INT_MAGN
        LD A,10
        LD (DIGIT),A
        LD A,1
        LD (ONLY_X),A
        LD (ONLY_Y),A
        RET
;*************************
WTChr   DEFB 0,5,19,5,6*8,7,%00001110
; Bit 0 - окно с заголовком/без
; Bit 1 - "перерисовать" окно да/нет
; Bit 2 - тискать окно по экрану да/нет
; Bit 3 - выход из окна-ткнуть только лишь за пределами (CANCEL)
        DEFB 0
        DEFW TTChr        ; объект-текст
        DEFW STChr        ; объект-подсветка (выборка)
        DEFW #FFFF

TTChr
SELWEDIT DB "Sinn/dtr/fdm'2oo1          ",13
         DB 15,13
    if rus
         DB "Вписать",0
    else
         DB "Type in",0
    endif

STChr   DEFB 1,1,17,1,%11
        DEFB 1,3,17,1,%11
        DEFB #FF

TWC     CALL INSTALL
        JP NZ,NoChr3
        CALL SV_UNDO
        LD A,1
        LD (FLAGWCHR),A
        LD IX,WTChr
        LD A,%1110
to_wic  LD (IX+6),A
        LD IX,WTChr
        CALL Win_
        CP #FF
        JP Z,bchr__
        CP 1
        JR Z,TOOW

        LD IX,WTChr
        LD HL,SELWEDIT
        LD DE,#0101
        LD B,#1B
        XOR A
        EX AF,AF'
        CALL EDIT_
        JP C,chr_TSK    ; RES_TSK
        LD A,%1100
        JP to_wic

RamkaData
        DB 100 ;X1
        DB 180 ;Y1
        DB #FF ;LEN
        DB #BF ;HGT

TOOW    CALL LOADSCR
        LD HL,0
        LD (ALLEN),HL
        LD (ALHGT),HL
        LD IX,RamkaData
        CALL R1Sel
        JP C,chr_TSK    ; RES_TSK
        LD A,AddPage
        CALL RAM
        CALL KOLCHR
        CALL GETALLEN
        CALL DIVALLEN

        LD D,(IX+0)
        LD B,(IX+1)
        LD A,(IX+3)
        ADD A,B
        LD E,A
        CALL RECOD
        LD (Move),DE

        LD A,(ALCHR)
        LD B,A
        LD HL,SELWEDIT
AKkZ    PUSH BC
        PUSH HL
        LD A,(HL)
        CALL ChrPrt
        POP HL
        INC HL
        POP BC
        DJNZ AKkZ
        CALL SAVESCR
        JP chr_TSK    ; RES_TSK

DIVALLEN
        LD B,(IX+2);LEN
        LD C,10
        CALL Mult
        PUSH HL
        LD DE,(ALLEN)
        CALL DIV
        LD A,L
        LD (DIGITX),A

        LD HL,(ALLEN)
        PUSH HL
        POP DE
        LD A,(DIGITX)
        AND A
        JR Z,Z13

        DEC A
        LD B,0
        LD C,A
Z12     ADD HL,DE
        DEC BC
        LD A,C
        OR B
        JR NZ,Z12
        EX DE,HL
        POP HL
        SCF
        SBC HL,DE
        JP NC,Z10

        LD A,(DIGITX)
        DEC A
        LD (DIGITX),A
        JR Z10

Z13     POP AF
Z10     LD B,(IX+3);LEN
        LD C,10
        CALL Mult
        LD D,0
        LD A,(UpperMargin)
        LD E,A
        CALL DIV
        LD A,L
        LD (DIGITY),A
        RET

GETALLEN
        LD A,(ALCHR)
        LD B,A
        LD HL,SELWEDIT
LAAK    PUSH BC
        PUSH HL
        LD A,(HL)
        CALL Symb
        LD B,0
        LD A,(CharWidth)
        LD C,A
        LD HL,(ALLEN)
        ADD HL,BC
        LD (ALLEN),HL
        POP HL
        POP BC
        INC HL
        DJNZ LAAK
        RET

ALLEN   DW 0
ALCHR   DB 0
ALHGT   DW 0

KOLCHR  LD B,#1B+1-1
        LD HL,SELWEDIT+#1B-1
Z2      LD A,(HL)
        DEC HL
        CP 32
        JR NZ,OKKZ
        DJNZ Z2
        INC B
OKKZ    LD A,B
        LD (ALCHR),A
        RET
;..............
WIChr   DEFB 7,7,18,9,6*8,7,%00001111
; Bit 0 - окно с заголовком/без
; Bit 1 - "перерисовать" окно да/нет
; Bit 2 - тискать окно по экрану да/нет
; Bit 3 - выход из окна-ткнуть только лишь за пределами (CANCEL)
        DEFB 0
        DEFW TIChr        ; объект-текст
        DEFW #FFFF

TIChr
    if rus
        DB "Параметры шрифта",13
    else
        DB "Font parameters",13
    endif
    if rus
;FCHR    DB "Имя файла ... безимениchr",13
FCHR    DB "Имя файла ... noname  chr",13
NAMECHR DB "Имя шрифта ......... 1234",13
FRSTCHR DB "Первый символ ....... 000",13
LASTCHR DB "Последний символ .... 000",13
HIGHMAX DB "Высота символа ...... 000",00
    else
FCHR    DB "Filename .... noname  chr",13
NAMECHR DB "Font name .......... 1234",13
FRSTCHR DB "First glyph ......... 000",13
LASTCHR DB "Last glyph .......... 000",13
HIGHMAX DB "Glyph height ........ 000",00
    endif
;------------------------
CONV    EX AF,AF'
        LD A,GET_NUM
        JP GUI

INFO    LD A,AddPage
        CALL RAM

        CALL INSTALL
        JP NZ,NoChr3
        LD HL,FontName
        LD DE,NAMECHR+21
        LD BC,4
        LDIR

        LD A,(FirstChar)
        LD DE,FRSTCHR+22
        LD C,0
        CALL CONV

        LD A,(FirstChar)
        LD B,A
        LD A,(CharsCount)
        ADD A,B
        LD DE,LASTCHR+22
        LD C,0
        CALL CONV

        LD A,(UpperMargin)
        LD DE,HIGHMAX+22
        LD C,0
        CALL CONV

        LD IX,WIChr
        CALL Window_
        CALL NOKEY_
        CALL WAITKEY_
        CALL NOKEY_
        JP bchr__
;........................
LDC     CALL ldc
        JP bchr_

ldc     LD HL,SORTchr
        CALL FilerE
        RET C
        LD A,(SEC_LEN)
        CP #41
        JP NC,GIB
        LD B,A
        EXLOAD #8000,SCREEN,START_SEC,AddPage
        RET C
        LD DE,FCHR+14
        CALL ToName
        XOR A
        RET

SORTchr DB #01,"c..","Chr","CHR",#FF

EChr_   CALL ReWin
        JP BChr

QUICK   CALL INSTALL_PLOT
        CALL CLS
LOOPO   CALL ldc
        JR C,EChr_
        CALL CLS
        CALL INSTALL
        JR Z,loo
        CALL NoData_
        JR LOOPO
loo     LD HL,(Move)
        PUSH HL
        LD DE,#1050
        LD B,1 ;   20
        LD A,1
        CALL Set_XY
        LD B,11
        LD HL,TESTXT
AKKA    PUSH BC
        PUSH HL
        LD A,(HL)
        CALL ChrPrt
        POP HL
        INC HL
        POP BC
        DJNZ AKKA
        POP HL
        LD (Move),HL
        CALL NOKEY_
        CALL WAITKEY_
        CALL NOKEY_
        JR LOOPO

FLAGWCHR DB 0
ONLY_X  DEFB 1
ONLY_Y  DEFB 1
DIGIT   DEFB 10
DIGITX  DEFB 0
DIGITY  DEFB 0

LINE_   CALL RECOD
        JP LINE

Kur2    DB #07,#40,#03,#78,#FF,#00,#FF,#00
        DB #FF,#00,#FF,#00,#FF,#00,#FF,#00
        DB #FF,#00,#FF,#00,#FF,#00,#FF,#00
        DB #FF,#00,#FF,#00,#FF,#00,#FF,#00

GIB     LD IX,WBChr
        CALL Window_
        CALL NOKEY_
        CALL WAITKEY_
        CALL NOKEY_
        JP EChr_

chr_TSK4   call SAVESCR     ; замена выхода на возврат в меню модуля /DA
chr_TSK    ld sp,(BChr.spp)
           call ReWin
          jp bchr_a


WBChr   DEFB 11,8,10,5,2*8+7,7,%00001111
; Bit 0 - окно с заголовком/без
; Bit 1 - "перерисовать" окно да/нет
; Bit 2 - тискать окно по экрану да/нет
; Bit 3 - выход из окна-ткнуть только лишь за пределами (CANCEL)
        DEFB 0
        DEFW TBChrK       ; объект-текст
        DEFW #FFFF

TBChrK
    if rus
        DB "  Внимание!",13
        DB "Длинный файл",0
    else
        DB "  Warning!",13
        DB "Long file",0
    endif

TESTXT  DEFB "12ABabАБаб`"

OR_MASK_  EQU OR_PL
AND_MASK_ EQU AND_PL

LChr    EQU $-ChrOvb

 ;       ENT

         DISPLAY "CHR len :",/a, LChr
