        MAIN "",134

EDisk   LD A,%1111
edisk   LD IX,WDisk
        LD (IX+6),A
        CALL Win_
        CP #FF
        JP Z,main_
        LD BC,TBDisk
        JP TAB_JP

TBDisk  DW DLdScr
        DW DLdBLC
        DW DSvScr
        DW DSvScrIn
        DW DLdImg
        DW DSvImg
        DW DROpen
        DW DLdAll
        DW DSvAll
        DW EHack
        DW DDisk

DDisk   CALL Driver
        JR edisk_

; Загрузка скрина с диска
DLdScr  CALL dldscr_
edisk_  LD A,%1101
        JR edisk

dldscr  CALL dldscr_
        JP main

dldscr_ LD HL,SORTscr
        CALL FilerE
        RET C
        CALL CLOSE_ALLW
        CALL dlds
        JP Main

dlds    CALL SV_UNDO
        LD B,27
        LD A,(SEC_LEN)
        CP 27
        JR NC,jr1
        LD B,A
jr1     EXLOAD #8000,SCREEN,START_SEC,ScrPage
        JP C,Main
        LD DE,FNameScr
        CALL ToName
        RET 

; Запись скрина на диск
DSvScr  LD HL,FNameScr
        CALL FNEdit
MMM     JR C,edisk_
        CALL dsvscr_
        JP C,edisk_
        JR edisk_

dsvscr_ LD HL,FNameScr
        CALL FromName
        LD B,27
        EXSAVEF #8000,SCREEN,6912,ScrPage
        RET 

dsvscr  LD HL,FNameScr
        CALL FNEdit
        JP C,main
        CALL dsvscr_
        JP main

;  Загрузка любого файла

DLdAll  LD HL,SORTall
        CALL FilerE
        JR NC,dldall
        JP edisk_

dldall  CALL CLOSE
        CALL dlds
        JP Main

; Загрузка пакскрина с диска
DLdBLC  CALL dldblc
        JP edisk_

ELdBLC  CALL dldblc
        JP main_

dldblc  LD HL,SORTblc
        CALL FilerE
        RET C
        CALL SV_UNDO
dldblc_ LD B,27
        LD A,(SEC_LEN)
        CP 27
        RET NC
        LD B,A
        EXLOAD #8000,SCRBGE,START_SEC,SuxPage
        RET C
        LD DE,FNameScr
        CALL ToName
        CALL SuxRam
        LD HL,SCRBGE
        CALL IDBLC
        JP NZ,dldblc
        LD HL,SCRBGE
        CALL DECOMPR
        CALL SAVESCR
        JP Main

DLdImg  CALL dldimg
        JP edisk_

dldimg  LD HL,SORTimg
        CALL FilerE
        RET C
        CALL CLOSE_ALLW
        CALL SV_UNDO
        LD HL,(START_SEC)
        LD (TEK_SEC),HL
        LD B,27
        EXLOAD #8000,SCREEN,TEK_SEC,ScrPage
        JP C,Main
        LD B,27
        EXLOAD #8000,SCREEN,TEK_SEC,RamPage
        JP C,Main
        LD DE,FNameImg
        CALL ToName
        JP Main

DSvImg  CALL dsvimg
        JP edisk_

dsvimg  LD HL,FNameImg
        CALL FNEdit
        RET C
        XOR A
        LD (FLAGOBJ),A
        LD A,ScrPage
        CALL RAM
        LD HL,SCREEN
        LD DE,#A500
        LD BC,6912
        LDIR 
        LD B,54
        EXSAVEF #A500-13824,#A500,13824,RamPage
        RET C
        JP main_

DSvScrIn
        LD HL,SORTscr
        JR dsvall

DSvAll  LD HL,SORTall
dsvall  CALL FilerE
        JP C,edisk_
        CALL ASK
        JP C,edisk_

        LD A,(SEC_LEN)
        CP 28
        JR C,svalo
        LD A,27
svalo   LD B,A
        LD HL,#8000
        LD DE,SCREEN
        LD IX,(START_SEC)
        LD C,#06
        LD A,ScrPage
        EX AF,AF'
        LD A,SL_BANK
        CALL GUI
        JP edisk_

FNameScr DB "безимениscr"
FNameImg DB "безимениimg"
ReRead   DB 1

SORTscr DB #00,27,24,#FF
SORTimg DB #00,54,#FF
SORTblc DB #01,"p..",#FF
SORTall DB #01,"...",#FF

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

TDisk   DB "Файл",13
        DB "Открыть_",13
        DB "Открыть BLC_",13
        DB "Сохранить как_",13
        DB "Сохранить в_",13
        DB "Открыть два_",13
        DB "Сохранить два_",13
        DB "RAM-диск_",13
        DB "Открыть+_",13
        DB "Сохранить+_",13
        DB "Спрайт-сканер",13
        DB "Дисковод",0

; x, y, длина, высота, флаг
; bit 0 - подсвечивать (да/нет)
; bit 1 - клавиша "заморожена"

SDisk   DEFB 1,3,9,1,%11
        DEFB 1,4,9,1,%11
        DEFB 1,5,9,1,%11
        DEFB 1,6,9,1,%11
        DEFB 1,7,9,1,%11
        DEFB 1,8,9,1,%11
        DEFB 1,9,9,1,%11
        DEFB 1,10,9,1,%11
        DEFB 1,11,9,1,%11
        DEFB 1,12,9,1,%11
        DEFB 1,13,9,1,%11
        DEFB #FF

edisk__ CALL CLOSE
        JP edisk_

; Открытие/закрытие рам-диска
dropen_ LD A,7
        OUT (#FE),A
        HALT 
        LD A,(BORDER)
        OUT (#FE),A
        CALL NOKEY_
dropeN  LD A,%1101
        JR dropen

DROpen  LD A,%1111
dropen  LD IX,WROpen
        LD (IX+6),A

        LD A,(ExtMem)
        AND A
        JP Z,edisk_
        LD A,(ExtPage)
        CP 15
        JP C,edisk_
        SUB 15
        INC A
        LD (AR+1),A
        DEC A
        LD DE,TPAll
        LD C,0
        EX AF,AF'
        LD A,GET_NUM
        CALL GUI
        CALL Win_
        CP #FF
        JP Z,edisk__

        LD IX,WPage
        CALL Window_
        LD HL,TEPage
        LD DE,#0104
        LD B,3
        LD A,6
        EX AF,AF'
        CALL EDIT_
        CALL CLOSE_
        JR C,dropeN
        LD HL,TEPage
        LD A,ASCII
        CALL GUI
        JP C,dropen_
        LD A,L
        AND A
        JP Z,dropen_
AR      LD B,0
        CP B
        JP NC,dropen_
        LD (RRAM),A
        CALL ROpen
        JP edisk__

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

TPage   DB "Страниц",13
        DB "Всего:"
TPAll   DB "000",13
        DB "Нужно:"
TEPage  DB "000",0

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

TRODisk DB "Вирт-диск",13
        DB "Создать_",0

; x, y, длина, высота, флаг
; bit 0 - подсвечивать (да/нет)
; bit 1 - клавиша "заморожена"

SRODisk DEFB 1,3,6,1,%11
        DEFB #FF

FNameTxr DB "безимениtxr"

