; Files mini commander for BGE

FILESPgn
           DISP PgnAdr
FCOM

.commander
1                ld (.Nfile),a  ; номер файла
                 ld a,(SEC_LEN)
                 ld b,a
                 cp #41
                 ld a,%11     ; для копирования
                jr c,1F
                 xor a
1                ld (FilesCOM.Scopy),a
                 ld a,b
                 ld d,0
                 ld c,%11     ; выборка просмотра
                 ld e,c       ; выборка загрузки

                 cp 27        ; scr ;0
                jr z,1F
                 inc d
                 cp 24        ; scr noatr  ; 1
                jr z,1F
                 inc d
                 ld e,0
                 cp 8         ; fnt 2048   ; 2
                jr z,1F
                 inc d
                 cp 3         ; fnt 768    ; 3
                jr z,1F
                 inc d                     ; 4
                 ld c,e
1                ld a,c
                 ld (FilesCOM.Sview),a
                 ld a,e
                 ld (FilesCOM.Sload),a
                 ld a,d
                 ld (.Ftype),a

                 ld ix,FilesCOM.Wcom
                 call POPUP
                 ld a,%1110
.loop            ld (ix+6),a
                 call Win_
                 cp #FF
                jr z,.exit
                 cp 6
                 jr nc,.loop
                 push af
                 ld a,AddPage
                 call RAM
                 pop af
                 ld bc,FilesCOM.TBcom
                 call TAB_JP
.exit            jp CLOSE



.view
                ld c,AddPage|#10
                call .ldfl
                ret c
                call CLS
                ld hl,.wait
                push hl
              ld a,0
.Ftype    EQU $-1   ; тип файла
               ld hl,#C000
               ld bc,6912
               ld de,#4000
               or a
              jr z,1F
               ld bc,6144
               dec a
              jr nz,2F
1              ldir
              ret
2              ld bc,2048
               dec a
              jr nz,2F
               push hl,de
               ld d,#50
               ldir
               pop de,hl
               ; вывод фонта - c - количество
.fntlook       push de
               ld b,8
1              ld a,(hl)
               inc hl
               ld (de),a
               inc d
              djnz 1B
               pop de
               inc e
               dec c
              jr nz, .fntlook
               ret
2              dec a
              jr nz,1F
               ld c,96
              jr .fntlook
1             dec a
              ret nz
              ; здесь будет вывод текста возможно

              ret

.ldfl           ld a,(SEC_LEN) ; загрузка файла посекторно
                ld b,a
                EXLOAD #8000,#C000,START_SEC,C
                ret
.load         ld a,(.Ftype)
              cp 2
             ret nc
              call SV_UNDO
              call CLS
              call SWAP_SCR
              ld c, ScrPage|#10
              call  .ldfl
             jp nc, LOADSCR
             JP LOADUNDO

.copy
              ld a,(SEC_LEN)
              cp #41
              ret nc
              ld hl,FILE_PARAM
              ld de,BUFF
              ld bc,16
              push hl
              ldir
              pop hl
              ld bc,11
              ldir
              call FilesCOM.nrm
              call FilesCOM.nrm
              ld c,AddPage|#10           ; грузим в доп. страницу
              call .ldfl
              ret c

              call RAM_GUI
1             ld hl,BUFF+16
              push hl
              call FNEdit
              pop hl
              ret c
              push hl
              ld de,BUFF
              ld bc,9
              ldir
              call Driver                ; выбираем дисковод для загрузки
              pop hl
              ret c
              ld de,FILE_PARAM
              ld bc,11
              ldir
              call SEARCH_FILE
             jr c,1F
            ;  call FilesCOM.rep          ; сообщение что файл есть и запрос (места не хватило)
               call .rep
              ret nz
             jr 1B           ; если файл есть возвращаем на редактирование имени
1            jp SAVE_FL

.rep     ld a,2                    ; сообщение файл есть
         call GET_MSG_gui
         or a                      ; флаг z, nz
         ret

.rename
             ld a,GUIPage
             call RAM
             ld a,0
.Nfile   EQU  $-1
            jp  RENAME_FL


.delete       ; erase file
              call ASK
              ret c
              ld a,ERASEFILE
              jp GUI


.wait         call NOKEY_
              call WAITKEY_
              call LOADSCR
.nokey        jp NOKEY_

;        LD A,(SEC_LEN)
;        LD B,A
;        EXLOAD #8000,SCREEN,START_SEC,ScrPage

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


LFCOM    EQU $-FCOM
         ASSERT  $ < #C000
         ENT
        DISPLAY "Files len   :",/a, LFCOM