OCH     EQU #C000+6912+6912 ;ScrPage
ChnkDTadr  EQU #C804
CnkPgn
        ;  DISP PgnAdr
St_Cnk   ld (bcnk.sp),sp
         call CnkAddSw
         call Set_sv_Undo
BCnk    LD A,128+%1111
bcnk    LD IX,WCnk
        LD (IX+6),A
      ;  LD SP,(SPP)
        ld sp,0
.sp   EQU $-2
        call TstID  ; проверка наличия
        ld a,%111
       jr z, 1F
        ld a,%100
1       ld (SCnk.viewFl),a   ; блокировка/разблокировка опций
        ld (SCnk.saveFl),a
        ld (SCnk.ScrWinFl),a
        ld a,0
.mode EQU $-1
        ld l,a
        add a,a
        add a,l
        ld l,a
        ld h,0
        ld de,WCNK_Mode.txt+1
        add hl,de
        ld e,(hl)
        inc hl
        ld d,(hl)
        ld (TCnk.Mode),de

        CALL Win_
      ;  CP #FF
      ;  JP Z,RES_TSK2
         cp #FF
        jr z,.exitS_

        LD BC,TBCnk
        JP TAB_JP

.exitS_     call CLOSE
CnkAddSw    ld a,(ExtMem)
            or a
           ret z
            ld hl,#C000
            ld de,#F600
            ld bc,4
            ld a,ovFNTpg
            call ExOnP_AddP
            ld hl,ChnkDTadr
            ld de,#F600
           push de
            ld bc,#0A00   ; 2560
            ld a,ovCHNKpg
            call ExOnP_AddP
            ld hl,ChnkDTadr+2560
           pop de
            ld bc,3072-2560
            ld a,ovCHNKpg2
            call ExOnP_AddP
           jp RAM_N

bcnk_   LD A,128+%1101
        JR bcnk

TBCnk  ; DEFW SCRCHN
       ; DEFW CHNSCR
       ; DEFW LkCnk
       ; DEFW Dldcnk
       ; DEFW Dsvcnk
       ; DEFW LIGHT
       ; DEFW DCN
        DW SCRCHN
        DW LkCnk
        DW Dldcnk
        DW Dsvcnk
        DW DCN

        DW CHNSCR       ; на экран весь экран
        DW CHNwin       ; на экран в окно
        DW CNK_Mode     ; режим
        DW DimmingSCR   ; затемнение экран
        DW DimmingWin   ; затемнение окно

DCN     CALL Driver
        JR bcnk_


WCnk    ; DEFB 11,2,9,11,3*8+7,7*8,%00001111
        DB 13,2,9,21,3*8+7,7*8,%10001111    ; 13,3,9,11,3*8+7,7*8,%00001111
; Bit 0 - окно с заголовком/без
; Bit 1 - "перерисовать" окно да/нет
; Bit 2 - тискать окно по экрану да/нет
; Bit 3 - выход из окна-ткнуть только лишь за пределами (CANCEL)
        DB 3*8+1
        DEFW TCnk         ; объект-текст
        DEFW SCnk         ; объект-подсветка (выборка)
        DW 9              ; пропуск
        DW .colBX         ;   объект область заполненная цветом (color box)
        DEFW #FFFF

.colBX
         DB 1,10,7,2,3*8+5,%1
         DB 1,16,7,2,3*8+5,%1
        DB #FF

SCnk    ; 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 #FF
        DB 1,3,7,1,%11
        DB 1,4,7,1,%111
.viewFl EQU $-1
        DB 1,6,7,1,%11
        DB 1,7,7,1,%111
.saveFl EQU $-1
        DB 1,8,7,1,%11
        DB 1,12,7,128+2,%11
.ScrWinFl EQU $-1
        DB 1,14,7,1,%11
        DB 1,18,7,128+2,%11
        DB #FF

TCnk
  ;  if rus                        ; поменял метод локализации /DA
  ;      DB #84,#a8,#a7,#a5,#e0,#a8,#ad,#a3,13;"Дизеринг",13
  ;      DB #8a,#ae,#ad,#a2,#a5,#e0,#e2,#a0,#e6,#a8,#ef,13;"Конвертация",13
  ;      DB #8d,#a0,#20,#ed,#aa,#e0,#a0,#ad,13;"На экран",13
  ;      DB #8f,#e0,#ae,#e1,#ac,#ae,#e2,#e0,#a5,#e2,#ec,13;"Просмотреть",13
  ;      DB #8e,#e2,#aa,#e0,#eb,#e2,#ec,#5f,13;"Открыть_",13
  ;      DB #91,#ae,#e5,#e0,#a0,#ad,#a8,#e2,#ec,#5f,13;"Сохранить_",13
  ;      DB #9f,#e0,#aa,#ae,#e1,#e2,#ec,13;"Яркость",13
  ;      DB #84,#a8,#e1,#aa,#ae,#a2,#ae,#a4,0;"Дисковод",0
  ;  else
  ;      DB "Dithering",13
  ;      DB "Convert",13
  ;      DB "To screen",13
  ;      DB "View",13
  ;      DB "Load_",13
  ;      DB "Save_",13
  ;      DB "Brightness",13
  ;      DB "Drive",0
  ;  endif
        MSG_Cnk_Dith : DB 13
        MSG_Cnk_Convert : DB 13
       ; MSG_Cnk_Toscr : DB 13
        MSG_Cnk_View : DB 13,15,13
        MSG_DISK_Load_ : DB 13
        MSG_DISK_Save_ : DB 13
       ; MSG_DISK_drive :DB 0
        OpDrive : DB 15,13       ; DB 0
        MSG_Cnk_Toscr : DB 13
        DB #0A : DW .ScrWind
        MSG_Cnk_Mode : DB " ",#0A
.Mode   DW mPut  : DB 15,13
        MSG_Cnk_Bright : DB 13
        DB #0A : DW .ScrWind
        DB 0

.ScrWind    DB "-----------",13
            MSG_Cnk_Screen : DB 13
            MSG_Cnk_Window : DB 0



CNK_Mode    ld ix,WCNK_Mode
            ld (ix+6),%1110
            call POPUP
            call Win_
            call CLOSENK_
            cp #FF
           jr z,1F
            ld (bcnk.mode),a
1          jp bcnk_

WCNK_Mode   DB 0,0,4,6,6*8,6*8,%00001110
; Bit 0 - окно с заголовком/без
; Bit 1 - "перерисовать" окно да/нет
; Bit 2 - тискать окно по экрану да/нет
; Bit 3 - выход из окна-ткнуть только лишь за пределами (CANCEL)
        DB 0
        DW .txt         ; объект-текст
        DW .sel         ; объект-подсветка (выборка)
        DW #FFFF


.txt     DB #0A : DW mPut
         DB #0A : DW mOR
         DB #0A : DW mAND
         DB #0A : DW mXOR
         DB 0

.sel     DB 1,1,2,128+4,%11
         DB #FF

Dldcnk  LD HL,SORTcnk
        CALL FilerE
        JP C,bcnk_
        LD B,#0C
      ;  EXLOAD #8000,AddAdr+5,START_SEC,AddPage
          EXLOAD #8000,ChnkDTadr,START_SEC,AddPage
        JP C,bcnk_
        CALL CnkID
        LD DE,FNCnk
        CALL ToName
        JP bcnk_

SORTcnk ; DB 0,#0C,#FF
        DB %0000,#0C,#00
        DB %1010,"bge_ovr.Cod",#00
        DB %1001,"ovb","add","hlp","hst",#FF

FNCnk   DB "noname  dit"

cnkid   DB "CHANK"

;nocnk_  POP AF
;nocnk  ; CALL NoData_
;        JP bcnk_

;FNSelect  ; in de <- name addres , hl <- sort tab.
          ; out -> filename to name addres, file parameters in FILE_PARAM,
          ; A -> file number or #FF for not filer used
          ; scf for error
  ;        ld de,FNameScr    ; v3.12 /DA
  ;       ld hl,SORTscr
  ;       call FNSelect

Dsvcnk  CALL TstID
        JP NZ,bcnk_
        LD HL,FNCnk
        CALL FNEdit
        JP C,bcnk_
         cp #FF
        LD HL,FNCnk
        CALL FromName
        LD B,#0C
       ; EXSAVEF #8000,AddAdr+5,#0C00,AddPage
          EXSAVEF #8000,ChnkDTadr,#0C00,AddPage
        JP C,bcnk_
        JP bcnk_

CH_0    DEFB 1

CHN_setwin   call NOKEY_
             ld hl,#0000
             ld (CnkWin),hl
             ld hl,#1820
             ld (CnkWin+2),hl
            ret

DimmingLS    call CHN_setwin
            jp LOADSCR

DimmingSCR   call DimmingLS        ; затемнение всего экрана
            jr LIGHT

DimmingWin   call DimmingLS        ; затемнение окна
             ld ix,CnkWin
             call R8Sel
            jr c,U1.e

LIGHT   CALL NOKEY_
       ; CALL SV_UNDO
       ; CALL LOADSCR
        LD A,ScrPage
        CALL RAM
        LD A,18  ; 17
        LD (LEVEL_CNK),A
        LD IX,CT+144  ; 136       ;Там находится
        LD HL,OCH                 ;с адреса #F600
;        LD B,L                   ;делается подп-
;Lp5     LD (HL),#1A              ;рограмма,  ко-
;        INC HL                   ;торая и  будет
;        LD (HL),#A1              ;проявлять кар-
;        INC HL                   ;тинку чанками
;        LD (HL),#77
;        INC HL
;        LD (HL),#2C
;        INC HL
;        LD (HL),#1C
;        INC HL
;        DJNZ Lp5
;        LD (HL),#24
;        INC HL
;        LD (HL),#14
;        INC HL
;        LD (HL),#C9

         ld (hl),#E5   ; [ push hl ]
         inc hl
         ld (hl),#D5   ; [ push de ]
         inc hl
         ld a,(CnkWin+2)   ; ширина окна
         ld b,a
1        ld (hl),#1A   ; [ ld a,(de) ]
         inc hl
         ld (hl),#A1   ; [ and c ]
         inc hl
         ld (hl),#77   ; [ ld (hl),a ]
         inc hl
         ld (hl),#2C   ; [ inc l ]
         inc hl
         ld (hl),#1C   ; [ inc e ]
         inc hl
        djnz 1B
         ld (hl),#D1   ; [ pop de ]
         inc hl
         ld (hl),#E1   ; [ pop hl ]
         inc hl
         ld (hl),#24   ; [ inc h ]
         inc hl
         ld (hl),#14   ; [ inc d ]
         inc hl
         ld (hl),#C9   ; [ ret ]

         ld hl,(CnkWin)
         call ADRHL8        ; кооодинаты начала окна
         ld (OUT_CK.hl_),hl
         ld a,(CnkWin+3)    ; высота окна
         ld (OUT_CK.sY_),a


U1      halt
        CALL DIRSCN_
        BIT 2,A
        JR NZ,DNCNK
        BIT 3,A
        JR NZ,UPCNK
        LD A,BUTTON
        CALL GUI
   ;     AND A
   ;     JP NZ,CHNSCR.sv ; END_CNK
   ;     HALT
   ;     JR U1
        or a
       jr z,U1
        rra
       jp c,CHNSCR.sv ; END_CNK
.e      call LOADSCR
       jp ChnBmain

UPCNK   LD A,0
LEVEL_CNK EQU $-1
        CP 18   ; 17
        JR Z,U1
        INC A
        LD (LEVEL_CNK),A
        LD BC,#0008
        ADD IX,BC
        CALL OUT_CK
        JR U1

DNCNK   LD A,(LEVEL_CNK)
        OR A
        JR Z,U1
        DEC A
        LD (LEVEL_CNK),A
        LD BC,#0008
        PUSH IX
        POP HL
        SBC HL,BC
        PUSH HL
        POP IX
        CALL OUT_CK
        JR U1

; END_CNK EQU  RES_TSK4

;OUT_CK  LD HL,#4000
;        LD DE,#C000
;        LD B,#03
;U2      LD C,(IX+#00)
;        CALL OCH
;        LD C,(IX+#01)
;        CALL OCH
;        LD C,(IX+#02)
;        CALL OCH
;        LD C,(IX+#03)
;        CALL OCH
;        LD C,(IX+#04)
;        CALL OCH
;        LD C,(IX+#05)
;        CALL OCH
;        LD C,(IX+#06)
;        CALL OCH
;        LD C,(IX+#07)
;        CALL OCH
;        DJNZ U2
;        RET

OUT_CK      ld hl,#0000
.hl_ EQU $-2
.sY_ EQU $+1 : ld b,24       ; высота окна

1           push hl
            ld e,l
            ld a,h
            or #80
            ld d,a
            ld c,(ix+0)
            call OCH
            ld c,(ix+1)
            call OCH
            ld c,(ix+2)
            call OCH
            ld c,(ix+3)
            call OCH
            ld c,(ix+4)
            call OCH
            ld c,(ix+5)
            call OCH
            ld c,(ix+6)
            call OCH
            ld c,(ix+7)
            call OCH
            pop hl
            call INC_YY
           djnz 1B
           ret

;CnkID   LD A,AddPage
;        CALL RAM
;        LD HL,cnkid
;        LD DE,AddAdr
;        LD BC,5
;        LDIR
;        RET

;SCREEN TO CHANK
;---------------------------------
SCRCHN  CALL LOADSCR
        CALL CnkID

        LD DE,#4000
       ; LD IX,AddAdr+5
         ld ix,ChnkDTadr
        LD B,#30
BEG_P   PUSH DE
        LD C,#20
U3      PUSH BC
        PUSH DE
        LD A,#04
        LD HL,#0000
U4      EX AF,AF'
        LD A,(DE)
        LD C,A
        LD B,#04
L7      RLCA
        JR NC,n_2
        INC H
n_2     RRC C
        JR NC,n_3
        INC L
n_3     DJNZ L7
        EX AF,AF'
        INC D
        DEC A
        JR NZ,U4
        LD A,H
        CP #10
        JR NZ,n_4
        LD H,#0F
n_4     LD A,L
        CP #10
        JR NZ,n_5
        LD L,#0F
n_5     LD (IX+#00),H
        LD (IX+#01),L
        INC IX
        INC IX
        POP DE
        POP BC
        INC E
        DEC C
        JP NZ,U3
        POP DE
        LD A,D
        ADD A,#04
        LD D,A
        AND #07
        JR NZ,n_1
        LD A,E
        ADD A,#20
        LD E,A
        JR C,n_1
        LD A,D
        SUB #08
        LD D,A
n_1     DJNZ BEG_P
LkCnk   CALL CHN_SCRR
ChnBmain
        CALL ReWin
        JP BCnk

;CHANK TO SCREEN
;---------------------------------
CHNSCR  ; CALL SV_UNDO
         CALL CHN_SCRR.st
    ;    JP  RES_TSK4
         call ScrRam
         call CHN_modCOD
         ld (.mode),a
         ld hl,#C000
         ld de,#4000
         ld bc,6144
1        ld a,(de)
.mode    nop
         ld (de),a
         inc de
         inc hl
         dec bc
         ld a,b
         or c
        jr nz,1B
.sv      call sv_Undo
         call SAVESCR
       jr ChnBmain

;CHANK TO WINDOW
;---------------------------------
CHNwin      call CHN_setwin
            call CHN_SCRR.st
            call ScrRam
            ld ix,CnkWin
            call R8Sel
           jr c,ChnBmain
            call SuxRam
            ld de,#C000
            call SaveWS   ; сохранили спрайт окна
            call LOADSCR
            call BoxCol
            xor a
            call Ramka8
           jr c,ChnBmain
            call LOADSCR
            call CHN_modCOD
            ld (MethodW),a
            call SuxRam
            ld de,#C000
            call LoadWS
            xor a             ; [ NOP ]
            ld (MethodW),a
           jr CHNSCR.sv

CHN_modCOD  ld a,(bcnk.mode)
            ld c,a
            or a
           ret z            ;0 PUT = nop
            ld a,#B6        ;1 OR = or (hl)
            dec c
           ret z
            ld a,#A6        ;2 AND = and (hl)
            dec c
           ret z
            ld a,#AE        ;3 XOR = xor (hl)
           ret


;TstID   LD A,AddPage
;        CALL RAM
;        LD HL,AddAdr
;        LD A,(HL)
;        CP "C"
;        RET NZ
;        INC HL
;        LD A,(HL)
;        CP "H"
;        RET NZ
;        INC HL
;        LD A,(HL)
;        CP "A"
;        RET NZ
;        INC HL
;        LD A,(HL)
;        CP "N"
;        RET NZ
;        INC HL
;        LD A,(HL)
;        CP "K"
;        RET

; -------- Описание хранения информации в буфере AddPage -------
; --------       для Fnt и Chnk (Dithering) v3.12        -------
;   Addres #C000 : DB "F*D*" , где * - 'y' или 'n' в зависимости от наличия данных
;          #C004 : Fnt file 2048 bytes
;          #C904 : Dithering file 3072 bytes
; --------------------------------------------------------------

;TstID    call AddRam
;         ld hl,#C000
;         ld a,(hl)
;         cp "F"
;        ret nz
;         inc l
;         ld a,(hl)
;         cp "y"
;        jr z,1F
;         cp "n"
;        ret nz
;1        inc l
;         ld a,(hl)
;         cp "D"
;        ret nz
;         inc l
;         ld a,(hl)
;         cp "y"
;        ret

;CnkID
;        call TstID
;        ld hl,#C000
;        ld a,"n"
;       jr nz,1F
;        ld a,"y"
;1       ld (hl),"F"
;        inc l
;        ld (hl),a
;        inc l
;        ld (hl),"D"
;        inc l
;        ld (hl),"y"
;        inc l
;       ret


Tst_F__  call AddRam
         ld hl,#C000
         ld a,(hl)
         cp "F"
        ret nz
         call .c1
        ret nz
         inc hl
         ld a,(hl)
         cp "D"
        ret nz
.c1
         inc hl
         ld a,(hl)
         cp "y"
        ret z
         cp "n"
        ret

TstID    call Tst_F__
        ret nz
         ld a,"y"
         cp (hl)
        ret

CnkID    call Tst_F__
         ld l,#03   ; HL = #C003
         ld a,(#C001) ;fnt
        jr z,1F
         ld a,"n"
1        ld (hl),"y"
         dec hl
         ld (hl),"D"
         dec hl
         ld (hl),a
         dec hl
         ld (hl),"F"
        ret




CHN_SCRR
          call .st
         jp WAITKEY_
.st
        CALL TstID
        JP NZ,bcnk_
        CALL CLS
        LD A,AddPage
        CALL RAM
      ;  LD IX,AddAdr+5
         ld ix,ChnkDTadr
        LD DE,#4000
        LD C,#30
Bg1     PUSH DE
        LD B,#20
Lp1     PUSH BC
        PUSH DE
        LD A,(IX+#00)
        CP #10
        JR C,Nx3
        CP #E1
        LD A,#0F
        JR  C,Nx3
        XOR A
Nx3     INC IX
        ADD A,A
        ADD A,A
        LD HL,CTB
        LD C,A
        LD B,#00
        ADD HL,BC
        LD B,#04
Lp3     LD A,(HL)
        AND #F0
        LD (DE),A
        INC D
        INC HL
        DJNZ Lp3
        DEC D
        LD A,(IX+#00)
        CP #10
        JR C,Nx2
        CP #E1
        LD A,#0F
        JR C,Nx2
        XOR A
Nx2     INC IX
        ADD A,A
        ADD A,A
        ADD A,#03
        LD HL,CTB
        LD C,A
        LD B,#00
        ADD HL,BC
        LD B,#04
        EX DE,HL
Lp2     LD A,(DE)
        AND #0F
        OR (HL)
        LD (HL),A
        DEC H
        DEC DE
        DJNZ Lp2
        EX DE,HL
        POP DE
        POP BC
        INC E
        DJNZ Lp1
        POP DE
        LD  A,D
        ADD A,#04
        LD D,A
        AND #07
        JR NZ,Nx1
        LD A,E
        ADD A,#20
        LD E,A
        JR C,Nx1
        LD A,D
        SUB #08
        LD D,A
Nx1     DEC C
        JP NZ,Bg1
;        JP WAITKEY_
       ret

CnkWin     DB 0,0,32,24       ; параметры окна для чанковых функций

;################################
;-------------- Наложения по ...
;BMask   LD A,%1111
BMask     call CnkAddSw
          call Set_sv_Undo
.s       ld a,%1111
bmask   LD IX,WMask
        LD (IX+6),A
        CALL Win_
        CP #FF
      ;  JP Z,RES_TSK2
        jp z,bcnk.exitS_
        LD BC,TBMask
        JP TAB_JP


bmask_  LD A,%1101
        JR bmask

WMask   DB 13,2,12,11,2*8+6,6*8,%1111      ; DEFB 13,2,8,9,2*8+6,6*8,%00001111
; Bit 0 - окно с заголовком/без
; Bit 1 - "перерисовать" окно да/нет
; Bit 2 - тискать окно по экрану да/нет
; Bit 3 - выход из окна-ткнуть только лишь за пределами (CANCEL)
        DEFB 0
        DEFW TMask        ; объект-текст
        DEFW SMask        ; объект-подсветка (выборка)
        DEFW Nil          ; горячие клавиши
        DEFW Nil          ; объект-кнопки (выборка)
        DEFW SwMask       ; объект-флажки
        DEFW #FFFF

; +14
; x, y, номер опции, состояние (#00/#FF)
SwMask
  ;  if rus
  ;      DEFB 4,7,3,0
  ;  else
  ;      DEFB 6,7,3,0
  ;  endif
         DB 10,8,4,0         ; для 2-го экрана-маски /DA
swmask2 EQU $-1
         DW Nil             ; DEFW Nil
         DB 10,9,5,0         ; DEFB #FF
swmask  EQU $-1
         DW Nil
         DB #FF

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

TMask
;    if rus                           ; замена метода локализации + изменение меню /DA
;        DB #8d,#a0,#ab,#ae,#a6,#a5,#ad,#a8,#a5,13;"Наложение",13
;        DB "2-",#a9,#20,#ed,#aa,#e0,#a0,#ad,13;й экран",13
;        DB #84,#a8,#a7,#a5,#e0,#a8,#ad,#a3,13;"Дизеринг",13
;        DB #94,#a0,#a9,#ab,#5f,13;"Файл_",13
;        DB 15,13
;        DB #8e,#aa,#ad,#ae,#20,0;"Окно ",0
;    else
;        DB "Mixing",13
;        DB "2 screen",13
;        DB "Chunk",13
;        DB "File_",13
;        DB 15,13
;        DB "Window",0
;    endif
;
          MSG_Mix_Mixing : DB 13
          MSG_Mix_2screen : DB 13
          MSG_Mix_Chunk : DB 13
          MSG_Mix_Txtr : DB 13
          MSG_Mix_File : DB 13
          DB 15,13
          MSG_Mix_Scr2msk : DB 13
          MSG_Mix_Window : DB 0


WMMeth  DEFB 14,4,4,5,5*8,5,%00001110
; Bit 0 - окно с заголовком/без
; Bit 1 - "перерисовать" окно да/нет
; Bit 2 - тискать окно по экрану да/нет
; Bit 3 - выход из окна-ткнуть только лишь за пределами (CANCEL)
        DEFB 0
        DEFW TMMeth       ; объект-текст
        DEFW SMMeth       ; объект-подсветка (выборка)
        DEFW #FFFF

SMMeth  ; DEFB 1,1,2,1,%11
        ; DEFB 1,2,2,1,%11
        ; DEFB 1,3,2,1,%11
        DB 1,1,2,128+3,%11
        DEFB #FF

TMMeth  DB "Or",13
        DB "Xor",13
        DB "And",0

TBMask  DW MRA
        DW MCN
        DW MixTxtr   ; c текстурой /DA
        DW MSKLD
;       DW CHM

MMeth   LD IX,WMMeth
        CALL Win_
        PUSH AF
        CALL NOKEY_
        CALL CLOSE
        POP AF
        CP #FF
        JP Z,scf
        LD BC,MA
        CALL TAB_HL
        CALL JP_HL
        XOR A
        RET

MA      DEFW Or
        DEFW Xo
        DEFW An

An      LD A,#A6
        LD (MDE),A
        RET
Xo      LD A,#AE
        JR An+2
Or      LD A,#B6
        JR An+2

MSKLD   CALL MMeth
        JP C,bmask_
        AND A
        RET NZ
        LD HL,SORTscr
        CALL FilerE
        JP C,bmask
       ; CALL CLS   ; /DA
        LD HL,#4000
        LD DE,(START_SEC)
        LD C,14
        LD A,(SEC_LEN)
        LD B,A
        CALL DOS_FUNC_
        JP C,Main
      ;  LD A,ScrPage
      ;  CALL RAM
      ;  JP RET2
        jr MRA.rscr
;.....................................
MCN     CALL TstID
        JP NZ,bmask_
        CALL MMeth
        JP C,bmask_
       ; CALL CLS
        CALL CHN_SCRR.st
      ;  LD A,ScrPage
      ;  CALL RAM
      ;  JR RET2
        jr MRA.rscr

; MRA     CALL MMeth           ; /DA
MRA      xor a                ; запрет использования второго экрана как маски
         ld (swmask2),a
         call MMeth
        JP C,bmask_
       ; CALL CLS
        LD A,RamPage
        CALL RAM
        LD HL,#C000
        LD DE,#4000
        LD BC,6912
        LDIR
.rscr  ; LD A,ScrPage
       ; CALL RAM
        call ScrRam
RET2    call sv_Undo  ;  CALL SV_UNDO
        LD HL,SCREEN+6144
        LD DE,#5800
        LD BC,768
        LDIR
           call ERASE_ALLW   ; /DA
        LD HL,SCREEN
        LD DE,#4000
        LD BC,6144
;c6      LD A,(DE)           ; в подпрограмму /DA
;MDE     AND (HL)
;        LD (DE),A
;        INC HL
;        INC DE
;        DEC BC
;        LD A,C
;        OR B
;        JR NZ,c6
           call c6
            ld a,(swmask2)           ; использование 2-го экрана как маски ?  /DA
            or a
           jr z,.n2ms
            ld a,RamPage
            call RAM
            ld a,#A6       ; and (hl)
            ld (MDE),a
            call c6        ; отрезаем маску
            ld a,#B6       ; or (hl)
            ld a,SuxPage   ; записываем экран в оконную страницу
            call SAVESCR.save
            call LOADSCR2
            ld hl,#4000
            ld bc,6144
1           ld a,(hl)
            cpl
            ld (hl),a
            inc hl
            dec bc
            ld a,b
            or c
           jr nz,1B
            call ScrRam
            call c6
            ld a,#B6       ; or (hl)
            ld (MDE),a
            call SuxRam
            call c6
            ld bc,768
            ldir
.n2ms
        LD A,(swmask)
        AND A
        CALL NZ,SwM
         call SAVESCR
.reW       call ReWin
       ;  JP RES_TSK4
        jp BMask.s

MixTxtr    call MMeth    ; /DA  - функция взамен размывок
          jp c,bmask_
           call Texture
          jp c,bmask_

           ld b,12         ; вывод текстуры на экран
           ld hl,#4000
1          push bc
           ld de,TxBUFF    ; TBUFF
            ld b,16
2          push hl
           push bc
            ld b,16
3          ld a,(de)
           ld (hl),a
           inc de
           inc l
           ld a,(de)
           ld (hl),a
           dec de
           inc l
          djnz 3B
           pop bc
           pop hl
           call INC_Y
           inc de
           inc de
          djnz 2B
           pop bc
          djnz 1B
         jp MRA.rscr

c6      LD HL,SCREEN
        LD DE,#4000
        LD BC,6144
1       LD A,(DE)
MDE     AND (HL)
        LD (DE),A
        INC HL
        INC DE
        DEC BC
        LD A,C
        OR B
        JR NZ,1B
        ret

SwM     LD IX,MRmk
        CALL R8Sel
       ; JP C,RES_TSK
         jr c,RET2.reW
        CALL SuxRam
        LD IX,MRmk
        LD DE,#C000
        CALL SaveWS
        CALL LOADSCR
        CALL SuxRam
        LD DE,#C000
        JP LoadWS

MRmk    DS 4
; ----------------------------------------
; градации яркости для BGE

CT      DEFW #0000
        DEFW #0000
        DEFW #0000
        DEFW #0000
        DEFW #0000
        DEFW #0000
        DEFW #0010
        DEFW #0000
        DEFW #0010
        DEFW #0000
        DEFW #0010
        DEFW #0000
        DEFW #0011
        DEFW #0000
        DEFW #0011
        DEFW #0000
        DEFW #0011
        DEFW #0044
        DEFW #0011
        DEFW #0044
        DEFW #0055
        DEFW #0044
        DEFW #0055
        DEFW #0044
        DEFW #0055
        DEFW #0055
        DEFW #0055
        DEFW #0055
        DEFW #2255
        DEFW #0055
        DEFW #2255
        DEFW #0055
        DEFW #2255
        DEFW #8855
        DEFW #2255
        DEFW #8855
        DEFW #AA55
        DEFW #8855
        DEFW #AA55
        DEFW #8855
        DEFW #AA55
        DEFW #AA55
        DEFW #AA55
        DEFW #AA55
        DEFW #BB55
        DEFW #AA55
        DEFW #BB55
        DEFW #AA55
        DEFW #BB55
        DEFW #EE55
        DEFW #BB55
        DEFW #EE55
        DEFW #FF55
        DEFW #EE55
        DEFW #FF55
        DEFW #EE55
        DEFW #FF55
        DEFW #FF55
        DEFW #FF55
        DEFW #FF55
        DEFW #FF77
        DEFW #FF55
        DEFW #FF77
        DEFW #FF55
        DEFW #FF77
        DEFW #FFDD
        DEFW #FF77
        DEFW #FFDD
        DEFW #FF77
        DEFW #FFFF
        DEFW #FF77
        DEFW #FFFF
        DEFW #FFFF
        DEFW #FFFF
        DEFW #FFFF
        DEFW #FFFF

;---------------------------------------------

LCnk    EQU $-St_Cnk    ; BCnk
     ;   ENT

       DISPLAY "Chnk len   :",/a,LCnk

