; This code based on 'Disk1.asm'  /DA

; Text options for drive

TOpen_      MSG_DISK_Load_ : DB 0
TOpen       MSG_DISK_Load  : DB 0
TSave_      MSG_DISK_Save_ : DB 0
TSave       MSG_DISK_Save  : DB 0
   
TDriveNum   MSG_DISK_drive : DB ": "
.Drive      DB "A",0

   MACRO OpDrive
         DB #0A : DW TDriveNum 
   ENDM
 
   MACRO OpLoad_
       DB #0A : DW TOpen_ 
   ENDM
   
   MACRO OpLoad
       DB #0A : DW TOpen 
   ENDM
   
   MACRO OpSave_ 
       DB #0A : DW TSave_ 
   ENDM
   
   MACRO OpSave
       DB #0A : DW TSave
   ENDM
 ; end text options
 
 LD A,%1111
edisk   LD IX,WDisk
        LD (IX+6),A
        CALL Win_
        CP #FF
        JP Z,main_
        LD BC,TBDisk
        JP TAB_JP
        
EDisk  ; Disk menu
                ld a,%1111 
edisk           ld ix,WDisk
                ld (ix+6),a
                call Win_
                cp #FF
               jp z,main_
                ld bc,TBdisk
               jp TAB_JP
                
                ld a,#1101
               jr edisk
               
TBdisk       DW D_Open
             DW Ret
             DW Ret
             DW Ret
             DW Ret
             DW Ret
             DW Ret
             DW Ret
             DW Ret
             DW Ret
             DW Ret
             
             

      ; Загрузка скрина с диска
DLdScr  ld a,%1101
        ld (.bt),a
        call dldscrA_    ; CALL dldscr_
       jr nc,1F
        ld a,%1110
.bt  EQU $-1
        push af
        and 2
        call nz,ReWin.i
        pop af
       jr edisk
        
edisk_  LD A,%1101
        JR edisk       
             
D_Open     ; Загрузка скрина с диска          
             




ld hl,SORTsAll       ; /DA
         CALL FilerE
         RET C
         ld a,SearchSrtF11
         call GUI
        ret c 
D_Load        ld hl,SORTsAll
              call FilerE
             ret c
              ld a,SearchSrtF11
              call GUI
             ret c
             
             call CLOSE_ALLW
             call SV_UNDO            
             call SwapSCRS.svSCR_   ; in Screens.asm
             
             xor a
             ld (LAST_KEY),a 
             ld a,(SEC_LEN)
              
             call .selLD
1            call JP_HL



             
             call MixRgb.oBord
            ret
             
.selLD        ld hl,dlds
              cp 27   ; screen
             ret z
              cp 24   ; screen without attrs
             ret z
              ld hl,dldIMG
              cp 54   ; double screen
             ret z
              ld hl,dldBLC_
              ld a,(FILE_TYPE)
              cp "p"
             ret z
              ld hl,Ret
             ret         
         
dlds 
             ld b,27
             ld a,(SEC_LEN)
             cp b
            jr nc,jr1
             ld b,a
jr1          EXLOAD #8000,SCREEN,START_SEC,ScrPage
           jp c,   .error
            call LOADSCR
            ld de,FNameScr
            call ToName
            or a     ; reset cf  /DA
           ret         
         
         
dldIMG          ld hl,(START_SEC)
                ld (TEK_SEC),hl
                ld b,27
                EXLOAD #8000,SCREEN,TEK_SEC,ScrPage
               ret c
                ld b,27
                EXLOAD #8000,SCREEN,TEK_SEC,RamPage
               ret c
                ld de,FNameImg
                call ToName
                ld de,FNameScr
                call ToName
                call SscrExt_
                call LOADSCR
                call mscr_b
               
                   
         



             
             
; Сортировки

SORTscrNa DB %0000,24,#00   ;  добавляем безатрибутные картинки
SORTscr   DB %0000,27,#00
          DB %1010,"bge_ovr.Cod",#00
          DB %1001,"ovb","add","hlp","hst",#FF

SORTsAll  DB %0000,27,24,#00
          DB %0000,54,#00 
SORTblc   DB %0001,"plc",#00
          DB %1010,"bge_ovr.Cod",#00
          DB %1001,"ovb","add","hlp","hst",#FF

SORTimg DB #00,54,#FF

SORTall DB #01,"...",#FF






WDisk     DB 0,2,11,12,6*8,7,%00001111
; Bit 0 - окно с заголовком/без
; Bit 1 - "перерисовать" окно да/нет
; Bit 2 - тискать окно по экрану да/нет
; Bit 3 - выход из окна-ткнуть только лишь за пределами (CANCEL)
        DB 0
        DW .Txt        ; объект-текст
        DW .Sel        ; объект-подсветка (выборка)
        DW #FFFF
         
.Txt
          MSG_DISK_File : DB 13
          OpLoad_
          OpSave_ 
          MSG_DISK_SV_D_  : DB 13
          MSG_DISK_RAMdisk_ : DB 13
          MSG_DISK_LD_p_  : DB 13
          MSG_DISK_SV_p_  : DB 13
          MSG_DISK_Files : DB 13
          OpDrive        
         DB 0

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

SDisk     DB 1,3,9,128+8,%11
          DB #FF






