FlexNavigator 1.16.04

- сортировка и копирование файлов/директорий теперь не использует
  страницы панелей.
- убрано переставление страниц в списке выделенных при сортировке.
- доделано копирование директорий, пока только той что под курсором.
- сделано/переделано измерение размера директории в байтах под курсором.
- добавлено описание форм полей ввода.
- перенесены некоторые tab таблицы.
- перенесены буферы для загрузки ini файликов.
This commit is contained in:
savelij13 2025-09-07 22:15:01 +03:00
parent 7940810ffd
commit ac87c5571e
27 changed files with 1060 additions and 1319 deletions

View File

@ -1,7 +1,7 @@
[]========================================================================[]
* *
* ޝ¨á ­¨¥ Flex Navigator API v1.xx ¤«ï à §à ¡®â稪®¢ Flx-Plugins *
* doc v0.5 ®â 04.08.2025 *
* doc v0.5 ®â 07.09.2025 *
* *
[]========================================================================[]
@ -685,7 +685,7 @@
[]------------------------------------------------------------------------[]
<EFBFBD>¡é¨¥ ¯¥à¥¬¥­­ë¥ ᮠᬥ饭¨¥ 0xC0:
ޡ鍥 ¯¥à¥¬¥­­ë¥ ᮠᬥ饭¨¥ 0xC0 ®â ­ ç «  â ¡«¨æë ¯¥à¥å®¤®¢:
NUM_DEVICES 1 Š®«¨ç¥á⢮ ãáâனáâ¢
TreeFlag 1 ”« £ ¤¥à¥¢  ¤¨à¥ªâ®à¨©
@ -706,8 +706,8 @@ RAMPAGES
.RIGHTPANEL 1 ‘âà ­¨æ  ª â «®£  <20>à ¢®© ¯ ­¥«¨
.BuffPg1 1
.BuffPg2 1
.BuffPg3 1
.BuffPg4 1
.BuffPgEnd 1
.BuffPg3 1 ¨á¯®«ì§ã¥âáï ª®¯¨à®¢é¨ª®¬ ä ©«®¢/¤¨à¥ªâ®à¨©
.BuffPg4 1 ¨á¯®«ì§ã¥âáï á®àâ¨à®¢ª®©, à ¡®â  á ¤¥à¥¢®¬ ¤¨à¥ªâ®à¨©
.BuffPgEnd 1 ¡ ©â 0xFF ¬ àª¥à ª®­æ  ᯨ᪠ áâà ­¨æ
.FILES_COUNT 2 ª®«¨ç¥á⢮ ¯®¬¥ç¥­­ëå ä ©«®¢
.FILES_BYTES 5 à §¬¥à ¯®¬¥ç¥­­ëå ä ©«®¢ ¢ ¡ ©â å

View File

@ -1,6 +1,18 @@
14.08.2025
07.09.2025
FlexNavigator 1.16.04
- á®àâ¨à®¢ª  ¨ ª®¯¨à®¢ ­¨¥ ä ©«®¢/¤¨à¥ªâ®à¨© ⥯¥àì ­¥ ¨á¯®«ì§ã¥â
áâà ­¨æë ¯ ­¥«¥©.
- ã¡à ­® ¯¥à¥áâ ¢«¥­¨¥ áâà ­¨æ ¢ ᯨ᪥ ¢ë¤¥«¥­­ëå ¯à¨ á®àâ¨à®¢ª¥.
- ¤®¤¥« ­® ª®¯¨à®¢ ­¨¥ ¤¨à¥ªâ®à¨©, ¯®ª  ⮫쪮 ⮩ çâ® ¯®¤ ªãàá®à®¬.
- ᤥ« ­®/¯¥à¥¤¥« ­® ¨§¬¥à¥­¨¥ à §¬¥à  ¤¨à¥ªâ®à¨¨ ¢ ¡ ©â å ¯®¤ ªãàá®à®¬.
- ¤®¡ ¢«¥­® ®¯¨á ­¨¥ ä®à¬ ¯®«¥© ¢¢®¤ .
- ¯¥à¥­¥á¥­ë ­¥ª®â®àë¥ tab â ¡«¨æë.
- ¯¥à¥­¥á¥­ë ¡ãä¥àë ¤«ï § £à㧪¨ ini ä ©«¨ª®¢.
27.08.2025
FlexNavigator 1.16.03
- ¨á¯à ¢«¥­® ä®à¬¨à®¢ ­¨¥ ¯ã⨠¤® ¯ ¯ª¨ ¯« £¨­®¢.
- MISC ä㭪樨 ¯¥à¥­¥á¥­ë ¨§ 2 १¨¤¥­â  ¢ 3.
- ¯¥à¥à á¯à¥¤¥«¥­¨¥ TAB â ¡«¨æ.
- ¢ ®¯¨á ­¨¥ Flex Navigator API ¤®¡ ¢«¥­® ®¯¨á ­¨¥ £«®¡ «ì­ëå

View File

@ -1,8 +1,11 @@
Flex navigator TODO:
[] ¢ ª®¯¨à®¢ ­¨¨ ä ©«®¢/¤¨à¥ªâ®à¨© ¤®¤¥« âì ®¡à ¡®âªã ®è¨¡®ª ¯à¨ á®§¤ ­¨¨ ¤¨à¥ªâ®à¨©.
[] ¢ ¯« £¨­¥ । ªâ®à  ¨á¯à ¢¨âì ­¥ á®åà ­¥­¨¥ ¢¢¥¤¥­­ë®© áâப¨ ¯à¨ ­ ¦ â¨¨¨ ä㭪樮­ «ì­ëå ª« ¢¨è ­¥ á¢ï§ ­­ëå á । ªâ¨à®¢ ­¨¥¬.
[] ¤«ï à ¡®âë ¢ ¤¥à¥¢®¬ ¤¨à¥ªâ®à¨© ã¡à âì ¯®¤¬¥­ã áâà ­¨æ ¢ ᯨ᪥ ¢ë¤ ­­ëå.
[] ¤®¡ ¢¨âì áâ५ª¨ ¢«¥¢®/¢¯à ¢® ¤«ï ¢ë¡®à  ¤¨áª®¢ ¥á«¨ ¡®«ìè¥ 10.
[] ¤®¡ ¢¨âì ¢ ­ áâனª¨  ¢â®¯®ª § ¨«¨ ¯® ENTER ¯à¨ ¯¥à¥¬¥é¥­¨¨ ¯® ¤¥à¥¢ã ª â «®£®¢
[] ¤®¡ ¢¨âì ¢ ­ áâனª¨ ¢ë¡®à ¬¥­ïâì «¨  ªâ¨¢­ãî ¯ ­¥«ì ¯à¨ ᬥ­¥ ¤¨áª  ­  ­¥  ªâ¨¢­®© ¯ ­¥«¨
[] ¯à¨ ¢ë¢®¤¥ ¤¥à¥¢  ª â «®£®¢ ᤥ« âì áªà®«« ¢«¥¢®/¢¯à ¢® ¥á«¨ ¤¥à¥¢® ­¥ ¢«¥§ ¥â ¯® £®à¨§®­â «¨
[] ¯® ª­®¯ª¥ F6 ⮫쪮 ¯¥à¥¨¬¥­®¢ ­¨¥,   ¤®«¦­® ¡ëâì ¯¥à¥¨¬¥­®¢ ­¨¥/¯¥à¥¬¥é¥­¨¥ ä ©«  ¥á«¨ ­  ¯ ­¥«ïå à §­ë¥ ¯ãâ¨
[] ¯¥à¥¤¥« âì § å®à¤ª®¦¥­­ë¥ ª®®à¤¨­ âë, ¯¥à¥¤¥« âì ­  ¯à¨¢ï§ªã ª ª®®à¤¨­ â ¬ ®ª­ 
@ -11,6 +14,7 @@ Flex navigator TODO:
[] ¯« £¨­ ¤«ï á®§¤ ­¨ï ä®à¬ ®ª®­
[?] ¢ë§®¢ ¨ ¢§ ¨¬®¤¥©á⢨¥ ¯« £¨­  á ¯« £¨­®¬
[x] (¥áâì ¨§­ ç «ì­®) ¤®¡ ¢¨âì ¢ ­ áâனª¨ ¢ë¡®à ¬¥­ïâì «¨  ªâ¨¢­ãî ¯ ­¥«ì ¯à¨ ᬥ­¥ ¤¨áª  ­  ­¥  ªâ¨¢­®© ¯ ­¥«¨
[x] § £à㧪  FLX ¯« £¨­  ¯® ¨¬¥­¨ ¡¥§ § ¯ã᪠
[x] ¢¢®¤ ¢ ª®¬ ­¤­ãî áâப㠨 ­ ¦ â¨¥ ALT+F1/F2 (¢ë¡®à ¤à ©¢ ) ¯®¤¢¨á ¥â
[x] á®àâ¨à®¢é¨ª á®àâ¨àã¥â "..",   ­¥ ¤®«¦¥­

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
fn/fn.exe

Binary file not shown.

View File

@ -1,6 +1,18 @@
14.08.2025
07.09.2025
FlexNavigator 1.16.04
- á®àâ¨à®¢ª  ¨ ª®¯¨à®¢ ­¨¥ ä ©«®¢/¤¨à¥ªâ®à¨© ⥯¥àì ­¥ ¨á¯®«ì§ã¥â
áâà ­¨æë ¯ ­¥«¥©.
- ã¡à ­® ¯¥à¥áâ ¢«¥­¨¥ áâà ­¨æ ¢ ᯨ᪥ ¢ë¤¥«¥­­ëå ¯à¨ á®àâ¨à®¢ª¥.
- ¤®¤¥« ­® ª®¯¨à®¢ ­¨¥ ¤¨à¥ªâ®à¨©, ¯®ª  ⮫쪮 ⮩ çâ® ¯®¤ ªãàá®à®¬.
- ᤥ« ­®/¯¥à¥¤¥« ­® ¨§¬¥à¥­¨¥ à §¬¥à  ¤¨à¥ªâ®à¨¨ ¢ ¡ ©â å ¯®¤ ªãàá®à®¬.
- ¤®¡ ¢«¥­® ®¯¨á ­¨¥ ä®à¬ ¯®«¥© ¢¢®¤ .
- ¯¥à¥­¥á¥­ë ­¥ª®â®àë¥ tab â ¡«¨æë.
- ¯¥à¥­¥á¥­ë ¡ãä¥àë ¤«ï § £à㧪¨ ini ä ©«¨ª®¢.
27.08.2025
FlexNavigator 1.16.03
- ¨á¯à ¢«¥­® ä®à¬¨à®¢ ­¨¥ ¯ã⨠¤® ¯ ¯ª¨ ¯« £¨­®¢.
- MISC ä㭪樨 ¯¥à¥­¥á¥­ë ¨§ 2 १¨¤¥­â  ¢ 3.
- ¯¥à¥à á¯à¥¤¥«¥­¨¥ TAB â ¡«¨æ.
- ¢ ®¯¨á ­¨¥ Flex Navigator API ¤®¡ ¢«¥­® ®¯¨á ­¨¥ £«®¡ «ì­ëå

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 14.08.2025 savelij
; LAST UPDATE: 07.09.2025 savelij
NUM_FILES_PANEL EQU 17 ; ª®«¨ç¥á⢮ ä ©«®¢ ¢ á⮫¡æ¥ ¯ ­¥«¨
NUM_PAGES_FN EQU 7 ; ª®«¨ç¥á⢮ áâà ­¨æ ¯ ¬ï⨠¤«ï à ¡®âë FN
@ -36,7 +36,6 @@ FLXMODES
; 1 -  ¤à¥á ª®¬¯¨«ï樨 ¨ à ¡®âë ¢  ¤à¥á å 0x4000-0x7FFF
LenInpData EQU 12 ; ª ª®¥-⮠ᬥ饭¨¥ ¤«ï ¬¥âª¨ SearchStr
CursTimer EQU 6 ; "ç áâ®â " ¬®à£ ­¨ï ⥪á⮢®£® ªãàá®à 
Step EQU 8 ; è¨à¨­  ᨬ¢®«  ¤«ï ¯¥à¥¬¥é¥­¨ï ªãàá®à  ¯à¨ ¢¢®¤¥ ⥪áâ 
MainPullMenu EQU 6 ; ª®«¨ç¥á⢮ ¯ã­ªâ®¢ ¢ £« ¢­®¬ ¬¥­î
@ -123,6 +122,7 @@ WINSUBOBJ
PANEL
_INIT_VAR
_SETVAR .PANELFLAG, BYTE ; ”« £ ¯ ­¥«¨ ¡¨â 7 - ¡¨â ¢ë¤¥«¥­­®áâ¨
; ¡¨â 1 - áâà ­¨æ  ¤«ï á®àâ¨à®¢ª¨
; ¡¨â 0 - ­®¬¥à ¯ ­¥«¨
_SETVAR .VIEWFLAG, BYTE ; ”« £ ¢¨¤  ¯ ­¥«¨ 0 - ªà âª ï ¯ ­¥«ì
; ¡¨â 0 - ¯®¤à®¡­ ï ¯ ­¥«ì
@ -154,6 +154,7 @@ PANEL
PANELFLAG
_BITMASK PRNDOSPATH, 7 ; =1-¯¥ç â âì ¯ãâì DOS
_BITMASK DIRPAGE, 1 ; =1-A-­®¬¥à áâà ­¨æë, =0-áâà ­¨æë ¯ ­¥«¥©
_BITMASK SIDE, 0 ; =1-¯à ¢ ï ¯ ­¥«ì, =0-«¥¢ ï ¯ ­¥«ì
VIEWFLAG
@ -259,6 +260,20 @@ FORMTABL
_BITMASK CLOSEWIN, 0 ; ¢ë§¢ âì äã­ªæ¨î § ªàëâ¨ï ®ª­  ¯¥à¥¤ § ¯ã᪮¬ ¯à®£à ¬¬ë ¯® «¥¢®© ª­®¯ª¥
_BITMASK ENDTABL, 7 ; ¡¨â ¢ .XMINH 㪠§ â¥«ì ­  ª®­¥æ ᯨ᪠
;[]----------------------------------------------------------[]
INPUTFORM
_INIT_VAR
_SETVAR .MAXLEN, BYTE ; +00 Œ ªá¨¬ «ì­ ï ¤«¨­  áâப¨
_SETVAR .FLAG, BYTE ; +01 ”« £ £®â®¢­®áâ¨
_SETVAR .CURR_X, BYTE ; +02 ⥪ãé ï X ¯®§¨æ¨ï ªãàá®à 
_SETVAR .CURRADD_X, BYTE ; +03 ⥪ãé ï AddX
_SETVAR .CURR_SYMBOLS, BYTE ; +04 ª®«¨ç¥á⢮ ¢¢¥¤¥­­ëå ᨬ¢®«®¢
_SETVAR .SCR_POS_X, WORD ; +05 X ¯®§¨æ¨ï áâப¨ ­  íªà ­¥
_SETVAR .SCR_POS_Y, WORD ; +07 Y ¯®§¨æ¨ï áâப¨ ­  íªà ­¥
_SETVAR .SCR_LEN_X, WORD ; +09 X ¤«¨­  áâப¨ ­  íªà ­¥
_SETVAR .COLOR, BYTE ; +0B –¢¥â áâப¨
_SETVAR .BUFLINE, 0 ; +0C ...á ¬  áâப 
; ¡ §  â ¡«¨æë ¯¥à¥å®¤®¢ ¤«ï ¢ë§®¢  ¨§ ¯« £¨­®¢
JUMPS
.JUMPSIZE EQU 3
@ -331,8 +346,8 @@ JUMPS
_SETVAR .RIGHTPANEL, BYTE ; ‘âà ­¨æ  ª â «®£  <20>à ¢®© ¯ ­¥«¨
_SETVAR .BuffPg1, BYTE
_SETVAR .BuffPg2, BYTE
_SETVAR .BuffPg3, BYTE
_SETVAR .BuffPg4, BYTE + BYTE
_SETVAR .BuffPg3, BYTE ; ¨á¯®«ì§ã¥âáï ª®¯¨à®¢é¨ª®¬ ä ©«®¢/¤¨à¥ªâ®à¨©
_SETVAR .BuffPg4, BYTE + BYTE ; ¨á¯®«ì§ã¥âáï á®àâ¨à®¢ª®©, à ¡®â  á ¤¥à¥¢®¬ ¤¨à¥ªâ®à¨©
_SETVAR .FILES_COUNT, WORD
_SETVAR .FILES_BYTES, DWORD + 1
@ -366,14 +381,17 @@ FILENAME
.EDIT_FLX EQU "FNEDITOR.FLX"
.VIEW_FLX EQU "FNVIEWER.FLX"
; ¢­ãâ७­¨¥ ®è¨¡ª¨
FNinternal
_INIT_VAR 0xF0
_SETVAR .PlugNotFound
; ®â« ¤®ç­®¥, ­¥ ¬¥­ïâì ¯® ¨§¡¥¦ ­¨¥ £«îª®¢
PLUGS_ENABLE EQU 0 ; ¬¥­î ¯« £¨­®¢
TREE_REZID EQU 0
MARK_DIR EQU 0 ; ¢ë¡®à ¤¨à¥ªâ®à¨¨ á ¯®¤áç¥â®¬ à §¬¥à  ¢á¥å ä ©«®¢
MARK_DIR EQU 1 ; ¢ë¡®à ¤¨à¥ªâ®à¨¨ á ¯®¤áç¥â®¬ à §¬¥à  ¢á¥å ä ©«®¢
TREE_DIR_ENTER EQU 0 ; ¯®ª § ᮤ¥à¦¨¬®£® ¤¨à¥ªâ®à¨¨ ¢ ¤¥à¥¢¥ ¯® ENTER
CORR_FILENAME EQU 1 ; ¯à¥®¡à §®¢ ­¨¥ ᨬ¢®«®¢ ¨¬¥­¨ ä ©« 
MISC2REZ3 EQU 0 ; ¯¥à¥¥§¤ misc.a80 ¨§ १¨¤¥­â  2 ¢ १¨¤¥­â  3
; § ¯à¥é¥­­ë¥ ᨬ¢®«ë ¢ ª®à®âª¨å ¨¬¥­ å ­  FAT
; 22 2A 2B 2C 2E 2F 3A 3B 3C 3D 3E 3F 5B 5C 5D 7C
; \" * + , . / : ; < = > ? [ \\ ] |

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 03.08.2025 savelij
; LAST UPDATE: 22.08.2025 savelij
include macros.a80
@ -52,7 +52,7 @@ EntryExec: DI
LD A,(MAIN.FNMAIN) ; set pages from 0xC000
SETPORT WINSP.CPU3,,0
LD HL,BASE_ADDR ; FNMAIN
LD DE,END_BLOCK_1 - START_BLOCK_1
LD DE,BLOCK1_SIZE
LD A,(MAIN.hFile)
SPDSS DSSF.READ
JP C,disk_error
@ -60,7 +60,7 @@ EntryExec: DI
LD A,(MAIN.FNREZ2)
SETPORT WINSP.CPU3,,0
LD HL,0xC000 ; FNREZ2
LD DE,END_BLOCK_2 - START_BLOCK_2
LD DE,BLOCK2_SIZE
LD A,(MAIN.hFile)
SPDSS DSSF.READ
JP C,disk_error
@ -88,7 +88,7 @@ EntryExec: DI
LD A,(MAIN.FNREZ3) ; FNREZ3
SETPORT WINSP.CPU3,,0
LD HL,0xC000
LD DE,END_BLOCK_3 - START_BLOCK_3
LD DE,BLOCK3_SIZE
LD A,(MAIN.hFile)
SPDSS DSSF.READ
JP C,disk_error

View File

@ -1,7 +1,7 @@
; LAST UPDATE: 14.08.2025 savelij
; LAST UPDATE: 07.09.2025 savelij
FLEX_VERS
.NAVIGATOR EQU "1.16.03"
.NAVIGATOR EQU "1.16.04"
.EDITOR EQU "1.11"
.VIEWER EQU "1.07"

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 31.07.2025 savelij
; LAST UPDATE: 07.09.2025 savelij
;[]----------------------------------------------------------[]
BegDIRECTORY LD HL,BegDIR
@ -78,13 +78,8 @@ NewDIRTree PUSH IY
ADD HL,DE
INC HL
INC HL
IF TREE_REZID
CALL RESIDENT.FindTreeDIR
CALL RESIDENT.MakeTreePath
ELSE
CALL FindTreeDIRR
CALL MakeTreePathR
ENDIF
PUSH IY
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD IY,RightPanel

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 14.08.2025 savelij
; LAST UPDATE: 07.09.2025 savelij
;[]==========================================================[]
DOSline SUB A
@ -153,11 +153,7 @@ RunDLine DEC HL
ADD HL,DE
INC HL
INC HL
IF TREE_REZID
CALL RESIDENT.FindTreeDIR
ELSE
CALL FindTreeDIRR
ENDIF
CALL PrintDIR
CALL PrnFileInfo
PUSH IY
@ -348,7 +344,7 @@ SaveDOSline
PUSH BC
CALL FindHistory
POP BC
LD DE,BUFFERS.DOShistory + BUFFERS.DOShistory_Size
LD DE,REZ3_BUFFERS.DOShistory + REZ3_BUFFERS.DOShistory_Size
OR A
EX DE,HL
SBC HL,DE
@ -365,7 +361,7 @@ SaveDOSline
INC HL
EX DE,HL
PUSH HL
LD BC,BUFFERS.DOShistory
LD BC,REZ3_BUFFERS.DOShistory
OR A
SBC HL,BC
LD C,L
@ -379,7 +375,7 @@ SaveDOSline
LDDR
.L2 POP BC
LD HL,DOSinp
LD DE,BUFFERS.DOShistory
LD DE,REZ3_BUFFERS.DOShistory
LD A,C
INC A
LD (DE),A
@ -427,7 +423,7 @@ GetDOShistory LD IX,DOSstr
SETPORT WINSP.CPU1,,0
RET
FindHistory LD HL,BUFFERS.DOShistory
FindHistory LD HL,REZ3_BUFFERS.DOShistory
OR A
RET Z
LD B,A
@ -448,7 +444,7 @@ DOSInputLine LD (InpLnData),IX
.L1 CALL InsInpLnCol
PUSH IX
POP HL
LD DE,LenInpData
LD DE,INPUTFORM.BUFLINE
ADD HL,DE
LD E,(IX + 0x04)
ADD HL,DE
@ -652,7 +648,7 @@ InsertWord LD A,(IX + 0x04) ;InpytSymb
; ‚¢®¤ ¢ á¥à¥¤¨­ã ⥪áâ 
PUSH IX
POP HL
LD DE,LenInpData
LD DE,INPUTFORM.BUFLINE
ADD HL,DE
LD E,(IX + 0x04)
ADD HL,DE
@ -669,7 +665,7 @@ InsertWord LD A,(IX + 0x04) ;InpytSymb
POP BC
NotInsWord PUSH IX
POP HL
LD DE,LenInpData
LD DE,INPUTFORM.BUFLINE
ADD HL,DE
LD E,(IX + 0x02)
ADD HL,DE
@ -695,13 +691,13 @@ ShellFile: db "X:\\SYSTEM.EXE /C ",0 ; 襫
BATExtension: db ".BAT",0
EXEExtension: db ".EXE"
EndOfString: db 0
DOSstr DB 0x80,0x00
.posX DB 0x00
.addX DB 0x00
.slen DB 0x00
DW 256,231,376
DB COLORP.PANEL + COLORI.FILES
DOSinp DB 0x81 DUP 0
HistSpace DEFW 0x200

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 14.08.2025 savelij
; LAST UPDATE: 27.08.2025 savelij
;[]==========================================================[]
InitVideoMode
@ -160,15 +160,19 @@ FirstInit
; á®§¤ ­¨¥ ¯ã⨠¤«ï § ¯ã᪠ FLX ¯« £¨­®¢ á ¯à¨¢ï§ª®© ª ¯ã⨠FN
LD HL,BUF_REZ2.FlexDIRECTORY
LD DE,BUF_REZ2.FLXdir
.L6 LD A,(HL)
AND A
XOR A
.L6 CP (HL)
JR Z,.L7
LDI
JR .L6
.L7 LD HL,.DIRFLX
LD BC,.EDIRFLX - .DIRFLX
LDIR
.L9 CP (HL)
JR Z,.L8
LDI
JR .L9
.L8 LD (DE),A
LD (LOADFLX4RUN.NAMEFLX),DE
LD HL,BUF_REZ2.FlexDIRECTORY
SPDSS DSSF.CHDIR
@ -258,7 +262,7 @@ FirstInit
LD (InitFlg),A
RET
.DIRFLX DB "FLX\\"
.DIRFLX DZ "FLX\\"
.EDIRFLX
; ®¡­®¢«¥­¨¥ ¢ â ¡«¨æ¥ ¢ë¡®à  ¤¨áª®¢ ­  ¯ ­¥«¨

View File

@ -1,32 +1,32 @@
; LAST UPDATE: 01.08.2025 savelij
; LAST UPDATE: 25.08.2025 savelij
;[]----------------------------------------------------------[]
InputLine LD (InpLnData),IX
LD (.InpMous),HL
SET 7,(IX+0x01)
SET 7,(IX + INPUTFORM.FLAG)
SUB A
LD (IX+0x02),A
LD (IX+0x03),A
LD (IX + INPUTFORM.CURR_X),A
LD (IX + INPUTFORM.CURRADD_X),A
CALL InsInpLnCol
PUSH IX
POP HL
LD DE,LenInpData
LD DE,INPUTFORM.BUFLINE
ADD HL,DE
PUSH HL
LD E,(IX+0x04)
LD E,(IX + INPUTFORM.CURR_SYMBOLS)
ADD HL,DE
LD (HL),D
LD (IX+0x02),E
LD (IX + INPUTFORM.CURR_X),E
POP HL
LD DE,WorkBuffer
LD A,(IX+0x02)
LD A,(IX + INPUTFORM.CURR_X)
LD (DE),A
INC DE
LD A,(IX+0x03)
LD A,(IX + INPUTFORM.CURRADD_X)
LD (DE),A
INC DE
LD A,(IX+0x04)
LD A,(IX + INPUTFORM.CURR_SYMBOLS)
LD (DE),A
INC DE
LD C,A
@ -49,16 +49,16 @@ InputLine LD (InpLnData),IX
BIT KEYBSTAT.B_CTRL,B
JR NZ,.NextInpKeys
LD IX,InpTable1
.NextInpKeys LD L,(IX+0x00)
.NextInpKeys LD L,(IX + 0)
INC L
JR Z,.InpLineLp1
INC IX
DEC L
LD H,(IX+0x00)
LD H,(IX + 0)
INC IX
LD C,(IX+0x00)
LD C,(IX + 0)
INC IX
LD B,(IX+0x00)
LD B,(IX + 0)
INC IX
OR A
SBC HL,DE
@ -94,23 +94,24 @@ InputLine LD (InpLnData),IX
CALL ResCursor
PUSH IX
POP HL
LD DE,LenInpData
LD DE,INPUTFORM.BUFLINE
ADD HL,DE
EX DE,HL
LD HL,WorkBuffer
LD A,(HL)
INC HL
LD (IX+0x02),A
LD (IX + INPUTFORM.CURR_X),A
LD A,(HL)
INC HL
LD (IX+0x03),A
LD (IX + INPUTFORM.CURRADD_X),A
LD A,(HL)
INC HL
LD (IX+0x04),A
LD (IX + INPUTFORM.CURR_SYMBOLS),A
LD C,A
LD B,0x00
LD A,B
OR C
; LD A,B
; OR C
AND A
SCF
RET Z
LDIR
@ -147,22 +148,22 @@ InpTable2 DW SC.X4 << 8, ILwordL
InsertSymbol CP ' '
RET C
EX AF,AF'
BIT 7,(IX+0x01) ; ready
BIT 7,(IX + INPUTFORM.FLAG) ; ready
CALL NZ,ClearInpLn
LD A,(IX+0x04) ; InpytSymb
SUB (IX+0x00) ; Max len
LD A,(IX + INPUTFORM.CURR_SYMBOLS) ; InpytSymb
SUB (IX + INPUTFORM.MAXLEN) ; Max len
RET NC
LD A,(IX+0x04)
SUB (IX+0x02)
LD A,(IX + INPUTFORM.CURR_SYMBOLS)
SUB (IX + INPUTFORM.CURR_X)
JR Z,NotInsert
; ‚¢®¤ ¢ á¥à¥¤¨­ã ⥪áâ 
LD C,A
LD B,0x00
PUSH IX
POP HL
LD DE,LenInpData
LD DE,INPUTFORM.BUFLINE
ADD HL,DE
LD E,(IX+0x04)
LD E,(IX + INPUTFORM.CURR_SYMBOLS)
ADD HL,DE
LD E,L
LD D,H
@ -170,127 +171,129 @@ InsertSymbol CP ' '
LDDR
NotInsert PUSH IX
POP HL
LD DE,LenInpData
LD DE,INPUTFORM.BUFLINE
ADD HL,DE
LD E,(IX+0x02)
LD E,(IX + INPUTFORM.CURR_X)
ADD HL,DE
EX AF,AF'
LD (HL),A
INC (IX+0x04)
INC (IX+0x02)
INC (IX + INPUTFORM.CURR_SYMBOLS)
INC (IX + INPUTFORM.CURR_X)
JP PrintInpLn
; Clear Buffer
ClearInpLn RES 7,(IX+0x01)
ClearInpLn RES 7,(IX + INPUTFORM.FLAG)
PUSH IX
POP HL
LD DE,LenInpData
LD DE,INPUTFORM.BUFLINE
ADD HL,DE
LD B,(IX+0x00)
LD B,(IX + INPUTFORM.MAXLEN)
SUB A
.L1 LD (HL),A
INC HL
DJNZ .L1
LD (IX+0x02),A
LD (IX+0x03),A
LD (IX+0x04),A
LD (IX + INPUTFORM.CURR_X),A
LD (IX + INPUTFORM.CURRADD_X),A
LD (IX + INPUTFORM.CURR_SYMBOLS),A
JP PrintInpLn
; Šãàá®à ¢«¥¢® ­  ®¤­® ¬¥áâ®
ILleft RES 7,(IX+0x01)
LD A,(IX+0x02)
ILleft RES 7,(IX + INPUTFORM.FLAG)
LD A,(IX + INPUTFORM.CURR_X)
DEC A
RET M
LD (IX+0x02),A
LD (IX + INPUTFORM.CURR_X),A
JP PrintInpLn
; Šãàá®à ¢¯à ¢® ­  ®¤­® ¬¥áâ®
ILright RES 7,(IX+0x01)
LD A,(IX+0x02)
CP (IX+0x04)
ILright RES 7,(IX + INPUTFORM.FLAG)
LD A,(IX + INPUTFORM.CURR_X)
CP (IX + INPUTFORM.CURR_SYMBOLS)
RET Z
INC (IX+0x02)
INC (IX + INPUTFORM.CURR_X)
JP PrintInpLn
; delete
ILdelet BIT 7,(IX+0x01) ; ready
ILdelet BIT 7,(IX + INPUTFORM.FLAG) ; ready
CALL NZ,ClearInpLn
LD A,(IX+0x02)
LD A,(IX + INPUTFORM.CURR_X)
OR A
RET Z
PUSH IX
POP HL
LD DE,LenInpData
LD DE,INPUTFORM.BUFLINE
ADD HL,DE
LD E,(IX+0x02)
LD E,(IX + INPUTFORM.CURR_X)
ADD HL,DE
LD E,L
LD D,H
DEC DE
LD A,(IX+0x04)
SUB (IX+0x02)
LD A,(IX + INPUTFORM.CURR_SYMBOLS)
SUB (IX + INPUTFORM.CURR_X)
JR Z,ILDel1
LD C,A
LD B,0x00
XOR A
LD B,A
LDIR
SUB A
; SUB A
ILDel1 LD (DE),A
DEC (IX+0x02)
DEC (IX+0x04)
DEC (IX + INPUTFORM.CURR_X)
DEC (IX + INPUTFORM.CURR_SYMBOLS)
JP PrintInpLn
; Delete Char in Current Position
IL_del_ BIT 7,(IX+0x01) ; ready
IL_del_ BIT 7,(IX + INPUTFORM.FLAG) ; ready
CALL NZ,ClearInpLn
PUSH IX
POP HL
LD DE,LenInpData
LD DE,INPUTFORM.BUFLINE
ADD HL,DE
LD E,(IX+0x02)
LD E,(IX + INPUTFORM.CURR_X)
ADD HL,DE
INC HL
LD E,L
LD D,H
DEC DE
LD A,(IX+0x04)
SUB (IX+0x02)
LD A,(IX + INPUTFORM.CURR_SYMBOLS)
SUB (IX + INPUTFORM.CURR_X)
RET Z
LD C,A
LD B,0x00
XOR A
LD B,A
LDIR
SUB A
; SUB A
LD (DE),A
DEC (IX+0x04)
DEC (IX + INPUTFORM.CURR_SYMBOLS)
JP PrintInpLn
; Home
ILhome RES 7,(IX+0x01)
LD A,(IX+0x02)
ILhome RES 7,(IX + INPUTFORM.FLAG)
LD A,(IX + INPUTFORM.CURR_X)
OR A
RET Z
SUB A
LD (IX+0x02),A
LD (IX + INPUTFORM.CURR_X),A
JP PrintInpLn
; End string
ILend RES 7,(IX+0x01)
LD A,(IX+0x04)
CP (IX+0x02)
ILend RES 7,(IX + INPUTFORM.FLAG)
LD A,(IX + INPUTFORM.CURR_SYMBOLS)
CP (IX + INPUTFORM.CURR_X)
RET Z
LD (IX+0x02),A
LD (IX + INPUTFORM.CURR_X),A
JP PrintInpLn
; Word right
ILwordR RES 7,(IX+0x01)
LD A,(IX+0x04)
SUB (IX+0x02)
ILwordR RES 7,(IX + INPUTFORM.FLAG)
LD A,(IX + INPUTFORM.CURR_SYMBOLS)
SUB (IX + INPUTFORM.CURR_X)
RET Z
LD B,A
PUSH IX
POP HL
LD DE,LenInpData
LD DE,INPUTFORM.BUFLINE
ADD HL,DE
LD E,(IX+0x02)
LD E,(IX + INPUTFORM.CURR_X)
ADD HL,DE
LD C,E
.L2 LD A,(HL)
@ -319,19 +322,19 @@ ILwordR RES 7,(IX+0x01)
.L1 INC HL
INC C
DJNZ .L3
.L4 LD (IX+0x02),C
.L4 LD (IX + INPUTFORM.CURR_X),C
JP PrintInpLn
; Word left
ILwordL RES 7,(IX+0x01)
LD A,(IX+0x02)
ILwordL RES 7,(IX + INPUTFORM.FLAG)
LD A,(IX + INPUTFORM.CURR_X)
OR A
RET Z
LD B,A
LD C,B
PUSH IX
POP HL
LD DE,LenInpData
LD DE,INPUTFORM.BUFLINE
ADD HL,DE
LD E,C
ADD HL,DE
@ -344,7 +347,7 @@ ILwordL RES 7,(IX+0x01)
JR Z,.L2
CP '.'
JR Z,.L2
CP 0x5C
CP '\\'
JR Z,.L2
DJNZ .L3
JR .L5
@ -362,23 +365,23 @@ ILwordL RES 7,(IX+0x01)
DEC C
DJNZ .L2
.L4 INC C
.L5 LD (IX+0x02),C
.L5 LD (IX + INPUTFORM.CURR_X),C
JP PrintInpLn
; Delete word
ILdelWR RES 7,(IX+0x01)
LD A,(IX+0x02)
ILdelWR RES 7,(IX + INPUTFORM.FLAG)
LD A,(IX + INPUTFORM.CURR_X)
OR A
RET Z
LD B,A
LD C,B
PUSH IX
POP HL
LD DE,LenInpData
LD DE,INPUTFORM.BUFLINE
ADD HL,DE
LD E,C
ADD HL,DE
LD A,(IX+0x04)
LD A,(IX + INPUTFORM.CURR_SYMBOLS)
SUB B
LD E,A
PUSH HL
@ -423,14 +426,14 @@ ILdelWR RES 7,(IX+0x01)
DJNZ .L4
.L2 INC HL
INC C
.L6 LD A,(IX+0x02)
LD (IX+0x02),C
.L6 LD A,(IX + INPUTFORM.CURR_X)
LD (IX + INPUTFORM.CURR_X),C
SUB C
LD C,A
EX AF,AF'
LD A,(IX+0x04)
LD A,(IX + INPUTFORM.CURR_SYMBOLS)
SUB C
LD (IX+0x04),A
LD (IX + INPUTFORM.CURR_SYMBOLS),A
LD C,E
LD B,0x00
EX DE,HL
@ -449,10 +452,10 @@ ILdelWR RES 7,(IX+0x01)
JP PrintInpLn
;[]----------------------------------------------------------[]
InsInpLnCol LD L,(IX+0x07)
LD H,(IX+0x08)
InsInpLnCol LD L,(IX + INPUTFORM.SCR_POS_Y)
LD H,(IX + INPUTFORM.SCR_POS_Y + 1)
LD (FillILy),HL
LD A,(IX+0x0B)
LD A,(IX + INPUTFORM.COLOR)
AND 0x0F ; INK
LD C,A
RLCA
@ -467,7 +470,7 @@ InsInpLnCol LD L,(IX+0x07)
INC HL
DJNZ .L1
LD B,A
LD A,(IX+0x0B)
LD A,(IX + INPUTFORM.COLOR)
AND 0xF0 ; PAPER
LD C,A
RRCA
@ -485,42 +488,42 @@ InsInpLnCol LD L,(IX+0x07)
RET
PrintInpLn CALL ResCursor
.L1 LD A,(IX+0x02)
SUB (IX+0x03)
.L1 LD A,(IX + INPUTFORM.CURR_X)
SUB (IX + INPUTFORM.CURRADD_X)
JR NC,PrnInpLn1
LD A,(IX+0x03)
LD A,(IX + INPUTFORM.CURRADD_X)
SUB Step
LD (IX+0x03),A
LD (IX + INPUTFORM.CURRADD_X),A
JR PrintInpLn.L1
PrnInpLn1 PUSH IX
POP HL
LD DE,LenInpData
LD DE,INPUTFORM.BUFLINE
ADD HL,DE
LD E,(IX+0x03)
LD E,(IX + INPUTFORM.CURRADD_X)
ADD HL,DE
OR A
CALL NZ,TstInpLnLen ; <20>  ¢å®¤: HL-­ ç «® ¢ë¢®¤ 
; € -ª®«.ᨬ¢.¤® ªãàá®à 
PUSH IY
PUSH IX
LD A,(IX+0x07)
LD A,(IX + INPUTFORM.SCR_POS_Y)
LD IYL,A ; Y ª®®à¤¨­ â 
LD A,(IX+0x04)
LD A,(IX + INPUTFORM.CURR_SYMBOLS)
LD IYH,A
GETPORT WINSP.Y_PORT ; ‘®å࠭塞 Y ¯®àâ
PUSH AF
EXX
LD HL,PrnPAPl
LD DE,PrnINKl
LD C,(IX+0x05)
LD B,(IX+0x06)
LD C,(IX + INPUTFORM.SCR_POS_X)
LD B,(IX + INPUTFORM.SCR_POS_X + 1)
SRL B
RR C
SET 6,B
EXX
LD C,(IX+0x09)
LD B,(IX+0x0A)
LD C,(IX + INPUTFORM.SCR_LEN_X)
LD B,(IX + INPUTFORM.SCR_LEN_X + 1)
SRL B
RR C
LD IXL,C
@ -542,7 +545,7 @@ PrnInpLn1 PUSH IX
LD A,(BC)
INC BC
PInpLnP LD L,A
LD H,HIGH (FONT_RAW)-0xC0
LD H,HIGH (FONT_RAW) - 0xC0
PUSH BC
LD B,(HL) ; ¤«¨­  ᨬ¢®« 
INC H
@ -627,10 +630,10 @@ TstInpLnLen PUSH IY
PUSH AF
LD A,(RAMPAGES.FNFONT)
SETPORT WINSP.CPU0,,0
LD D,HIGH (FONT_RAW)-0xC0
TstInpLn PUSH HL
LD D,HIGH (FONT_RAW) - 0xC0
.TstInpLn PUSH HL
LD BC,0x0000
TstInpL LD E,(HL)
.TstInpL LD E,(HL)
INC HL
LD A,(DE)
ADD A,A
@ -640,23 +643,23 @@ TstInpL LD E,(HL)
ADC A,0x00
LD B,A
DEC IYL
JR NZ,TstInpL
LD L,(IX+0x09)
LD H,(IX+0x0A)
JR NZ,.TstInpL
LD L,(IX + INPUTFORM.SCR_LEN_X)
LD H,(IX + INPUTFORM.SCR_LEN_X + 1)
OR A
SBC HL,BC
JR NC,TstInpE
POP HL
LD BC,Step
ADD HL,BC
LD A,(IX+0x03)
LD A,(IX + INPUTFORM.CURRADD_X)
ADD A,C
LD (IX+0x03),A
LD (IX + INPUTFORM.CURRADD_X),A
LD A,IYH
SUB C
LD IYH,A
LD IYL,A
JR TstInpLn
JR .TstInpLn
TstInpE POP HL
POP AF
@ -667,12 +670,12 @@ TstInpE POP HL
SetCursor PUSH IX
POP HL
LD DE,LenInpData
LD DE,INPUTFORM.BUFLINE
ADD HL,DE
LD E,(IX+0x03)
LD E,(IX + INPUTFORM.CURRADD_X)
ADD HL,DE
LD BC,0x0000
LD A,(IX+0x02)
LD A,(IX + INPUTFORM.CURR_X)
SUB E
JR Z,StCurs1
EX AF,AF'
@ -681,7 +684,7 @@ SetCursor PUSH IX
PUSH AF
LD A,(RAMPAGES.FNFONT)
SETPORT WINSP.CPU0,,0
LD D,HIGH (FONT_RAW)-0xC0
LD D,HIGH (FONT_RAW) - 0xC0
EX AF,AF'
StCurs0 EX AF,AF'
LD E,(HL)
@ -704,8 +707,8 @@ StCurs1 LD (CurShiftX),BC
LD (CurCursor),A
LD A,CursTimer
LD (CrTimer),A
SetCr LD L,(IX+0x05)
LD H,(IX+0x06)
SetCr LD L,(IX + INPUTFORM.SCR_POS_X)
LD H,(IX + INPUTFORM.SCR_POS_X + 1)
LD BC,(CurShiftX)
ADD HL,BC
SRL H
@ -717,9 +720,9 @@ SetCr LD L,(IX+0x05)
LD B,A
PUSH BC
LD DE,CursBuffer
LD C,(IX+0x07)
LD C,(IX + INPUTFORM.SCR_POS_Y)
DEC C
LD A,(IX+0x0B)
LD A,(IX + INPUTFORM.COLOR)
AND 0x0F
LD B,A
RLCA
@ -752,8 +755,8 @@ SetCr LD L,(IX+0x05)
SETPORT WINSP.CPU1,,0
RET
ResCursor LD L,(IX+0x05)
LD H,(IX+0x06)
ResCursor LD L,(IX + INPUTFORM.SCR_POS_X)
LD H,(IX + INPUTFORM.SCR_POS_X + 1)
LD BC,(CurShiftX)
ADD HL,BC
SRL H
@ -765,7 +768,7 @@ ResCursor LD L,(IX+0x05)
LD B,A
PUSH BC
LD DE,CursBuffer
LD B,(IX+0x07)
LD B,(IX + INPUTFORM.SCR_POS_Y)
DEC B
LD C,WINSP.Y_PORT
SETPORT WINSP.CPU1,0x50

View File

@ -1,11 +1,5 @@
; LAST UPDATE: 14.08.2025 savelij
;[]=======================================================================[]
; FLEX NAVIGATOR ;
; v1.11 ;
; Last edition: 03/02/2000 ;
;[]=======================================================================[]
; LAST UPDATE: 07.09.2025 savelij
include fn_const.a80
include fn_macros.a80
@ -87,9 +81,9 @@ RAMPAGES
.RIGHTPANEL DB 0 ; 2 ‘âà ­¨æ  ª â «®£  <20>à ¢®© ¯ ­¥«¨
.BuffPg1 DB 0 ; 3
.BuffPg2 DB 0 ; 4
.BuffPg3 DB 0 ; 5
.BuffPg4 DB 0 ; 6
.BuffPgEnd DB 0xFF
.BuffPg3 DB 0 ; 5 ¨á¯®«ì§ã¥âáï ª®¯¨à®¢é¨ª®¬ ä ©«®¢/¤¨à¥ªâ®à¨©
.BuffPg4 DB 0 ; 6 ¨á¯®«ì§ã¥âáï á®àâ¨à®¢ª®©, à ¡®â  á ¤¥à¥¢®¬ ¤¨à¥ªâ®à¨©
.BuffPgEnd DB 0xFF ; ¬ àª¥à ª®­æ  ᯨ᪠ áâà ­¨æ
.FILES_COUNT DW 0 ; ª®«¨ç¥á⢮ ¯®¬¥ç¥­­ëå ä ©«®¢
.FILES_BYTES DB 5 DUP 0 ; à §¬¥à ¯®¬¥ç¥­­ëå ä ©«®¢ ¢ ¡ ©â å
@ -260,6 +254,22 @@ SET_DWORD: LD (HL),E
LD (HL),B
RET
GET_HANDLE_ADR LD L,(IY+PANEL.FIRST_FILE)
LD H,(IY+PANEL.FIRST_FILE + 1)
LD E,(IY+PANEL.CURR_FILE)
LD D,(IY+PANEL.CURR_FILE + 1)
ADD HL,DE
ADD HL,HL ; *2
ADD HL,HL ; *4
ADD HL,HL ; *8
LD E,L
LD D,H
ADD HL,HL ; *16
ADD HL,DE ; *18 - FileHDR.SIZE
OR H
LD H,A
RET
; ¢ë§®¢ ä㭪樨 ¢ áâà ­¨æ å
RESIDENT
; ==============resident 2==============
@ -277,35 +287,16 @@ RESIDENT
.DeleteFiles: LD DE,DeleteFilesR
jr .FunctResident
.Quit: CALL ResInvert
.QuitL1 LD DE,QuitConfirmWin
CALL .FunctResident
JP C,SetInvert
LD HL,ComExit
EX (SP),HL
RET
.Setup: LD DE,SetupR
jr .FunctResident
.QSearch: LD DE,QSearchR
jr .FunctResident
IF TREE_REZID
.TestTree LD DE,TestTreeR
jr .FunctResident
.TestTreeBeg LD DE,TestTreeR.TestTreeBeg
jr .FunctResident
.ReadTree LD DE,ReadTreeR
jr .FunctResident
.MakeTreePath LD DE,MakeTreePathR
jr .FunctResident
.FindTreeDIR LD DE,FindTreeDIRR
jr .FunctResident
IF MARK_DIR
; áç¨â «ª  ᮤ¥à¦¨¬®£® ¤¨à¥ªâ®à¨¨ ¢ ¡ ©â å
.CalcDirSize LD DE,CalcDirSizeR
JR .FunctResident
ENDIF
; ==============resident 2==============
@ -315,24 +306,6 @@ RESIDENT
LD C,WINSP.CPU1
JP Resident
IF MARK_DIR
; áç¨â «ª  ᮤ¥à¦¨¬®£® ¤¨à¥ªâ®à¨¨ ¢ ¡ ©â å
.CountingDir LD DE,CountingDirR
JR .HelpResident
; ¨­¨æ¨ «¨§ æ¨ï ¯¥à¥¬¥­­ëå ¤«ï ª®¯¨à®¢ ­¨ï ¤¨à¥ªâ®à¨¨
.InitCopyDirs LD DE,InitCopyDirsR
JR .HelpResident
; ª®¯¨à®¢ ­¨¥ ¤¨à¥ªâ®à¨¨
.CopyDir LD DE,CopyDirR
JR .HelpResident
; ¤®¡ ¢«¥­¨¥ ¨¬¥­¨ ¤¨à¥ªâ®à¨¨ ¢ ᯨ᮪ ¨/¨«¨ ¢å®¤/¢ë室
.Add2ListDir LD DE,Add2ListDirR
JR .HelpResident
ENDIF
.UnMarkGroup: LD DE,UnMarkGroupR
jr .HelpResident
@ -387,6 +360,14 @@ RESIDENT
.SystemInfo: LD DE,SystemInfoR
jr .HelpResident
.Quit: CALL ResInvert
.QuitL1 LD DE,QuitConfirmWin
CALL .HelpResident
JP C,SetInvert
LD HL,ComExit
EX (SP),HL
RET
; ==============resident 3==============
; ‚ë室
@ -427,11 +408,7 @@ MainLoop: LD IX,MAINTAB.FilePanelLeft
CALL C,DOSline
LD A,(TreeFlag)
OR A
IF TREE_REZID
CALL NZ,RESIDENT.TestTree
ELSE
CALL NZ,TestTreeR
ENDIF
JR MainLoop
TestKeys
@ -488,11 +465,9 @@ MouseOnOff LD A,(MouseFlag)
START_SORT
include fnsort.a80
END_SORT
IF TREE_REZID = 0
START_TREE
include fntree.a80
END_TREE
ENDIF
include fnpanel.a80
include fndos.a80
@ -507,14 +482,21 @@ END_BLOCK_1:
; ==============resident 2==============
PHASE 0x4000
START_BLOCK_2
; ¡ãä¥à  çâ®¡ë ¯ ¬ïâì ­¥ § ­¨¬ «¨ ¢ EXE ä ©«¥
REZ2_BUFFERS
_INIT_VAR BUF_REZ2.FlexDIRECTORY
_MINUSVAR .OLDLEFTPANEL, 0x100 ; ⥪ã騩 ¯ãâì «¥¢®© ¯ ­¥«¨
_MINUSVAR .OLDRIGHTPANEL, 0x100 ; ⥪ã騩 ¯ãâì ¯à ¢®© ¯ ­¥«¨
_MINUSVAR .FINDCURRPATH, 0x100 ; ¢à¥¬¥­­®© ⥪ã騩 ¯ãâì ¨áâ®ç­¨ª 
_MINUSVAR .FINDBUF, 0x100 ; ¢à¥¬¥­­ë© ¡ãä¥à ¯®¨áª 
_MINUSVAR .ENDPATHSRC, WORD ;  ¤à¥á 墮áâ  ¯ã⨠¨áâ®ç­¨ª 
_MINUSVAR .CURR_DIRNAME, WORD ; ⥪ã騩  ¤à¥á ¢ ¯ãâ¨
include rez2_fnfunct.a80
include rez2_fnsearch.a80
include rez2_fnconfig.a80
include rez2_fnerror.a80
include rez2_fntab.a80
IF TREE_REZID
include fntree.a80
ENDIF
END_BLOCK_2:
DEPHASE ; 0x4000
; ==============resident 2==============
@ -523,7 +505,6 @@ END_BLOCK_2:
PHASE 0xC000
; MAIN.FNFONT
START_BLOCK_4
FONT_RAW_PACK binclude tmp/font_raw.pack
IFFFONT_RAW_PACK binclude tmp/iff_font_raw.pack
IFFFONT_RAW_END
@ -536,13 +517,8 @@ END_BLOCK_4:
PHASE 0x4000
; MAIN.FNREZ3
START_BLOCK_3
include rez3_fnnext.a80
include rez3_fnmark.a80
include rez3_fnmisc.a80
include rez3_fntab.a80
; ¡ãä¥à  çâ®¡ë ¯ ¬ïâì ­¥ § ­¨¬ «¨ ¢ EXE ä ©«¥
BUFFERS
REZ3_BUFFERS
_INIT_VAR 0x8000 ; á ª®­æ  áâà ­¨æë
_MINUSVAR .DOShistory, 0x200 ;times 0x200 db 0
@ -550,19 +526,14 @@ BUFFERS
_MINUSVAR .fnview_ext, WorkBuffer_Size ;times 0x400 db 0
_MINUSVAR .fn_ext, WorkBuffer_Size ;times 0x400 db 0
_MINUSVAR .OLDPATH, 0x100 ; á®åà ­¥­­ë© ⥪ã騩 ¯ãâì
_MINUSVAR .CURRPATHSRC, 0x100 ; ¢à¥¬¥­­®© ⥪ã騩 ¯ãâì ¨áâ®ç­¨ª 
_MINUSVAR .CURRPATHDST, 0x100 ; ¢à¥¬¥­­®© ⥪ã騩 ¯ãâì ¯à¨¥¬­¨ª 
_MINUSVAR .FINDBUF, 0x100 ; ¢à¥¬¥­­ë© ¡ãä¥à ¯®¨áª 
_MINUSVAR .LEVEL_DIR, BYTE ; ⥪ã騩 ã஢¥­ì ¤¨à¥ªâ®à¨¨
_MINUSVAR .ENDPATHSRC, WORD ;  ¤à¥á 墮áâ  ¯ã⨠¨áâ®ç­¨ª 
_MINUSVAR .ENDPATHDST, WORD ;  ¤à¥á 墮áâ  ¯ã⨠¯à¨¥¬­¨ª 
_MINUSVAR .CURR_DIRNAME, WORD ; ⥪ã騩  ¤à¥á ¢ ¯ãâ¨
include rez3_fnnext.a80
include rez3_fnmark.a80
include rez3_fnmisc.a80
include rez3_fntab.a80
END_BLOCK_3:
DEPHASE ; 0x4000
; ==============resident 3==============
; ç¨áâ® ¤«ï ®â« ¤ª¨
BLOCK1_SIZE EQU END_BLOCK_1 - START_BLOCK_1 ; ®á­®¢­®© ª®¤
BLOCK2_SIZE EQU END_BLOCK_2 - START_BLOCK_2 ; १¨¤¥­â 2
BLOCK3_SIZE EQU END_BLOCK_3 - START_BLOCK_3 ; १¨¤¥­â 3

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 01.08.2025 savelij
; LAST UPDATE: 07.09.2025 savelij
;[]----------------------------------------------------------[]
PrintDisks LD L,(IY + PANEL.X)
@ -164,19 +164,21 @@ PrnFileInfo BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
LD A,(RAMPAGES.RIGHTPANEL)
.L1
SETPORT WINSP.CPU1,,0
LD L,(IY + PANEL.FIRST_FILE)
LD H,(IY + PANEL.FIRST_FILE + 1)
LD E,(IY + PANEL.CURR_FILE)
LD D,(IY + PANEL.CURR_FILE + 1)
ADD HL,DE
ADD HL,HL ; *2
ADD HL,HL ; *4
ADD HL,HL ; *8
LD E,L
LD D,H
ADD HL,HL ; *10
ADD HL,DE ; *18
SET 6,H ; | 0x4000
; LD L,(IY + PANEL.FIRST_FILE)
; LD H,(IY + PANEL.FIRST_FILE + 1)
; LD E,(IY + PANEL.CURR_FILE)
; LD D,(IY + PANEL.CURR_FILE + 1)
; ADD HL,DE
; ADD HL,HL ; *2
; ADD HL,HL ; *4
; ADD HL,HL ; *8
; LD E,L
; LD D,H
; ADD HL,HL ; *10
; ADD HL,DE ; *18
; SET 6,H ; | 0x4000
LD A,HIGH (CPU1)
CALL GET_HANDLE_ADR
LD DE,WorkBuffer
LD BC,FileHDR.SIZE
CALL MoveBytesInc
@ -314,12 +316,7 @@ Get8Bit LD B,'0' - 1
INC HL
RET
PrnTreeInfo
IF TREE_REZID
CALL RESIDENT.MakeTreePath
ELSE
CALL MakeTreePathR
ENDIF
PrnTreeInfo CALL MakeTreePathR
EX DE,HL
PUSH IY
POP HL
@ -432,8 +429,8 @@ PrnDIRECT BIT VIEWFLAG.B_FULL,(IY+PANEL.VIEWFLAG)
LD A,(RAMPAGES.RIGHTPANEL)
.L1
SETPORT WINSP.CPU1,,0
LD L,(IY+PANEL.FIRST_FILE)
LD H,(IY+PANEL.FIRST_FILE + 1)
LD L,(IY + PANEL.FIRST_FILE)
LD H,(IY + PANEL.FIRST_FILE + 1)
ADD HL,HL ; *2
ADD HL,HL ; *4
ADD HL,HL ; *8
@ -526,8 +523,8 @@ PrintFULL PUSH IY
LD A,(RAMPAGES.RIGHTPANEL)
.L1
SETPORT WINSP.CPU1,,0
LD L,(IY+PANEL.FIRST_FILE)
LD H,(IY+PANEL.FIRST_FILE + 1)
LD L,(IY + PANEL.FIRST_FILE)
LD H,(IY + PANEL.FIRST_FILE + 1)
ADD HL,HL ; *2
ADD HL,HL ; *4
ADD HL,HL ; *8
@ -664,8 +661,8 @@ PrintTREE
DJNZ .L2
POP DE
LD HL,0x4000
LD C,(IY+PANEL.FIRST_FILE)
LD B,(IY+PANEL.FIRST_FILE + 1)
LD C,(IY + PANEL.FIRST_FILE)
LD B,(IY + PANEL.FIRST_FILE + 1)
LD A,B
OR C
JR Z,.PrDIRb2
@ -1083,19 +1080,21 @@ PrnInvert LD A,(IY + PANEL.FILES_ALL)
LD A,(RAMPAGES.RIGHTPANEL)
.L1
SETPORT WINSP.CPU1,,0
LD L,(IY + PANEL.FIRST_FILE)
LD H,(IY + PANEL.FIRST_FILE + 1)
LD E,(IY + PANEL.CURR_FILE)
LD D,(IY + PANEL.CURR_FILE + 1)
ADD HL,DE
ADD HL,HL ; *2
ADD HL,HL ; *4
ADD HL,HL ; *8
LD E,L
LD D,H
ADD HL,HL ; *10
ADD HL,DE ; *18
SET 6,H ; | 0xC000
; LD L,(IY + PANEL.FIRST_FILE)
; LD H,(IY + PANEL.FIRST_FILE + 1)
; LD E,(IY + PANEL.CURR_FILE)
; LD D,(IY + PANEL.CURR_FILE + 1)
; ADD HL,DE
; ADD HL,HL ; *2
; ADD HL,HL ; *4
; ADD HL,HL ; *8
; LD E,L
; LD D,H
; ADD HL,HL ; *10
; ADD HL,DE ; *18
; SET 6,H ; | 0xC000
LD A,HIGH (CPU1)
CALL GET_HANDLE_ADR
LD E,(HL)
POP AF
SETPORT WINSP.CPU1,,0

View File

@ -1,29 +1,49 @@
; LAST UPDATE: 03.08.2025 savelij
; LAST UPDATE: 07.09.2025 savelij
;[]----------------------------------------------------------[]
ReadDIR BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
IF TREE_REZID
JP NZ,RESIDENT.ReadTree
ELSE
; <20>  ¢å®¤¥:
; A - ­®¬¥à áâà ­¨æë ¤«ï à ¡®âë ¥á«¨ ¡¨â PANELFLAG.B_DIRPAGE ãáâ ­®¢«¥­
; ¨­ ç¥ ­¥ âॡã¥âáï
ReadDIR BIT PANELFLAG.B_DIRPAGE,(IY + PANEL.PANELFLAG)
JR NZ,.RD1
.RD2 BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD A,(RAMPAGES.LEFTPANEL)
JR Z,.RD1
LD A,(RAMPAGES.RIGHTPANEL)
.RD1 LD (.DIRPAGE),A
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
JP NZ,ReadTreeR
ENDIF
GETPORT WINSP.CPU3
PUSH AF
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
LD A,(RAMPAGES.LEFTPANEL)
JR Z,.L1
LD A,(RAMPAGES.RIGHTPANEL)
LD A,(IY + PANEL.SORTFLAG)
AND SORTFLAG.MASK
JR Z,.L6
; á á®àâ¨à®¢ª®© £à㧨¬ ¢ ᢮¡®¤­ãî ¯ £ã
LD A,(RAMPAGES.BuffPg4)
JR .L1
; ¡¥§ á®àâ¨à®¢ª¨ £à㧨¬ ¢ áâà ­¨æã ¯ ­¥«¨
.L6 LD A,0
.DIRPAGE EQU $-1
.L1
SETPORT WINSP.CPU3,,0
PUSH IY
POP HL
LD D,H
LD E,L
LD BC,PANEL.FILE_MASK
ADD HL,BC
BIT PANELFLAG.B_DIRPAGE,(IY + PANEL.PANELFLAG)
JR NZ,.L8
EX DE,HL
LD BC,PANEL.FILES_ALL
ADD HL,BC
LD B,PANEL.FILE_MASK - PANEL.FILES_ALL
.L5 LD (HL),0
INC HL
DJNZ .L5
.L8 RES PANELFLAG.B_DIRPAGE,(IY + PANEL.PANELFLAG)
BIT SORTFLAG.B_FILTER,(IY + PANEL.SORTFLAG)
JR NZ,.L2
LD HL,NORMmask
@ -108,8 +128,8 @@ FindFILESm LD HL,NORMmask
POP IX
POP IY
RET C
FFILEm1 LD A,(WorkBuffer + FFIRST.Attr);+0x20)
AND DIR.M_Dir;0x10
FFILEm1 LD A,(WorkBuffer + FFIRST.Attr)
AND DIR.M_Dir
CALL NZ,InsFileInfo
RET C
LD DE,WorkBuffer
@ -160,7 +180,7 @@ InsFileInfo EX DE,HL
LD (DE),A
INC DE
PUSH HL
LD BC,FFIRST.Attr;0x20
LD BC,FFIRST.Attr
ADD HL,BC
LD B,(HL) ; FFIRST.Attr
INC HL
@ -384,14 +404,10 @@ SortDIR
GETPORT WINSP.CPU3
LD B,A
PUSH BC
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD A,(RAMPAGES.LEFTPANEL)
JR Z,.L1
LD A,(RAMPAGES.RIGHTPANEL)
.L1
SETPORT WINSP.CPU1,,0
LD A,(RAMPAGES.BuffPg4)
LD A,(ReadDIR.DIRPAGE)
SETPORT WINSP.CPU3,,0
LD A,(RAMPAGES.BuffPg4)
SETPORT WINSP.CPU1,,0
LD HL,CPU3
LD (EndSort),HL
SUB A
@ -485,14 +501,6 @@ SortDIR
.L3 LD (HL),A
INC HL
DJNZ .L3
GETPORT WINSP.CPU1
LD (RAMPAGES.BuffPg4),A
GETPORT WINSP.CPU3
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD HL,RAMPAGES.LEFTPANEL
JR Z,.L2
LD HL,RAMPAGES.RIGHTPANEL
.L2 LD (HL),A
POP BC
LD A,B
SETPORT WINSP.CPU3,,0

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 14.08.2025 savelij
; LAST UPDATE: 24.08.2025 savelij
;[]==========================================================[]
; ”®à¬ â â ¡«¨æë
@ -143,11 +143,11 @@ MAINTAB
DW 164,640, 0,256,%0000000100100000,0,MenuExit,0
DW 0x8000
.SelectTab DW 44,196, 29, 43,%0000000100100100,0,RESIDENT.MarkGroupN,0
DW 44,196, 43, 57,%0000000100100100,0,RESIDENT.UnMarkGroupN,0
DW 44,196, 57, 71,%0000000100100100,0,RESIDENT.SelectAllN,0
DW 44,196, 71, 85,%0000000100100100,0,RESIDENT.UnSelectAllN,0
DW 44,196, 85, 99,%0000000100100100,0,RESIDENT.InvertSelectN,0
.SelectTab DW 44,196, 29, 43,%0000000100100100,0,RESIDENT.MarkGroupN,0 ; Mark group +
DW 44,196, 43, 57,%0000000100100100,0,RESIDENT.UnMarkGroupN,0 ; Unmark group -
DW 44,196, 57, 71,%0000000100100100,0,RESIDENT.SelectAllN,0 ; Mark all CTRL+
DW 44,196, 71, 85,%0000000100100100,0,RESIDENT.UnSelectAllN,0 ; Unmark all CTRL-
DW 44,196, 85, 99,%0000000100100100,0,RESIDENT.InvertSelectN,0 ; Invert selection *
DW 6, 40, 15, 26,%0000000010010000,MenuFile.L2,0,0
DW 40, 84, 15, 26,%0000000100101000,0,MenuExit,0
DW 84,138, 15, 26,%0000000010010000,MenuOption.L2,0,0

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 14.08.2025 savelij
; LAST UPDATE: 07.09.2025 savelij
;[]===========================================================[]
CursUp LD A,(IY + PANEL.FILES_ALL)
@ -1036,11 +1036,7 @@ NewFile1 LD HL,0x003F
;[]==========================================================[]
OpenFile BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
IF TREE_REZID
JP NZ,RESIDENT.TestTreeBeg
ELSE
JP NZ,TestTreeR.TestTreeBeg
ENDIF
LD A,(IY+PANEL.FILES_ALL)
OR (IY+PANEL.FILES_ALL + 1)
RET Z
@ -1052,19 +1048,21 @@ OpenFile BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
LD A,(RAMPAGES.RIGHTPANEL)
.L1
SETPORT WINSP.CPU1,,0
LD L,(IY+PANEL.FIRST_FILE)
LD H,(IY+PANEL.FIRST_FILE + 1)
LD E,(IY+PANEL.CURR_FILE)
LD D,(IY+PANEL.CURR_FILE + 1)
ADD HL,DE
ADD HL,HL ; *2
ADD HL,HL ; *4
ADD HL,HL ; *8
LD E,L
LD D,H
ADD HL,HL ; *10
ADD HL,DE ; *18
SET 6,H ; | 0x4000
; LD L,(IY + PANEL.FIRST_FILE)
; LD H,(IY + PANEL.FIRST_FILE + 1)
; LD E,(IY + PANEL.CURR_FILE)
; LD D,(IY + PANEL.CURR_FILE + 1)
; ADD HL,DE
; ADD HL,HL ; *2
; ADD HL,HL ; *4
; ADD HL,HL ; *8
; LD E,L
; LD D,H
; ADD HL,HL ; *10
; ADD HL,DE ; *18
; SET 6,H ; | 0x4000
LD A,HIGH (CPU1)
CALL GET_HANDLE_ADR
LD DE,WorkBuffer
LD BC,FileHDR.Attr
PUSH HL
@ -1080,8 +1078,9 @@ OpenFile BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
INC HL
JP Z,RunEXEfile
LD A,(HL)
CP '.'
JR NZ,OpenF2
CP '.' ; ¢ë室 ¨§ ¤¨à¥ªâ®à¨¨ ¢¢¥àå?
JR NZ,EnterDIR
; ¢ë室 ¨§ ¤¨à¥ªâ®à¨¨ ¢¢¥àå
PUSH HL
PUSH IY
POP HL
@ -1094,7 +1093,7 @@ OpenFile BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
LD A,'\\'
DEC HL
CP (HL)
JR Z,OpenF1
JR Z,.L5
.L3 DEC HL
CP (HL)
JR NZ,.L3
@ -1106,8 +1105,9 @@ OpenFile BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
JR NZ,.L4
LD (DE),A
LD A,'.'
OpenF1 POP HL
OpenF2 PUSH AF
.L5 POP HL
; ¢å®¤ ¢ ¤¨à¥ªâ®à¨î
EnterDIR PUSH AF
PUSH HL
CALL ResInvert
POP HL
@ -1131,7 +1131,7 @@ OpenF2 PUSH AF
SPDSS DSSF.CURDIR
POP IY
CALL PrintPath
BIT PANELFLAG.B_PRNDOSPATH,(IY+PANEL.PANELFLAG)
BIT PANELFLAG.B_PRNDOSPATH,(IY + PANEL.PANELFLAG)
CALL NZ,PrintDOSPath
POP AF
CP '.'
@ -1144,7 +1144,7 @@ OpenF2 PUSH AF
LD DE,PANEL.BAR_X
ADD IX,DE
CALL InitScrollBar
LD A,(IY+PANEL.VIEWFLAG)
LD A,(IY + PANEL.VIEWFLAG)
AND VIEWFLAG.MASK
PUSH AF
CALL Z,DrawHScrollBar
@ -1155,7 +1155,7 @@ OpenF2 PUSH AF
OR A
JP Z,WaitUnpressMouse
PUSH IY
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD IY,LeftPanel
LD HL,RightPanel
JR NZ,.L5
@ -1165,11 +1165,7 @@ OpenF2 PUSH AF
ADD HL,DE
INC HL
INC HL
IF TREE_REZID
CALL RESIDENT.FindTreeDIR
ELSE
CALL FindTreeDIRR
ENDIF
CALL PrintDIR
CALL PrnFileInfo
PUSH IY
@ -1356,7 +1352,7 @@ ShowDSexit
JP WaitUnpressMouse
;[]==========================================================[]
RunEXEfile: LD IX,BUFFERS.fn_ext
RunEXEfile: LD IX,REZ3_BUFFERS.fn_ext
LD DE,PrevFile
PUSH DE
SUB A
@ -1952,19 +1948,21 @@ StViewFile: LD A,0x01
LD A,(RAMPAGES.RIGHTPANEL)
.L2
SETPORT WINSP.CPU1,,0
LD L,(IY+PANEL.FIRST_FILE)
LD H,(IY+PANEL.FIRST_FILE + 1)
LD E,(IY+PANEL.CURR_FILE)
LD D,(IY+PANEL.CURR_FILE + 1)
ADD HL,DE
ADD HL,HL ; *2
ADD HL,HL ; *4
ADD HL,HL ; *8
LD E,L
LD D,H
ADD HL,HL ; *10
ADD HL,DE ; *18
SET 6,H ; | 0x4000
; LD L,(IY+PANEL.FIRST_FILE)
; LD H,(IY+PANEL.FIRST_FILE + 1)
; LD E,(IY+PANEL.CURR_FILE)
; LD D,(IY+PANEL.CURR_FILE + 1)
; ADD HL,DE
; ADD HL,HL ; *2
; ADD HL,HL ; *4
; ADD HL,HL ; *8
; LD E,L
; LD D,H
; ADD HL,HL ; *10
; ADD HL,DE ; *18
; SET 6,H ; | 0x4000
LD A,HIGH (CPU1)
CALL GET_HANDLE_ADR
LD DE,WorkBuffer
LD BC,FileHDR.Attr
PUSH HL
@ -1989,7 +1987,7 @@ StViewFile: LD A,0x01
VFlag: EQU $-1
OR A
JR NZ,View1
View: LD IX,BUFFERS.fnview_ext
View: LD IX,REZ3_BUFFERS.fnview_ext
LD DE,PrevFile
CALL TestEXT
RET NC
@ -2112,19 +2110,21 @@ StEditFile: LD A,0x01
LD A,(RAMPAGES.RIGHTPANEL)
.L2
SETPORT WINSP.CPU1,,0
LD L,(IY+PANEL.FIRST_FILE)
LD H,(IY+PANEL.FIRST_FILE + 1)
LD E,(IY+PANEL.CURR_FILE)
LD D,(IY+PANEL.CURR_FILE + 1)
ADD HL,DE
ADD HL,HL ; *2
ADD HL,HL ; *4
ADD HL,HL ; *8
LD E,L
LD D,H
ADD HL,HL ; *10
ADD HL,DE ; *18
SET 6,H ; | 0x4000
; LD L,(IY+PANEL.FIRST_FILE)
; LD H,(IY+PANEL.FIRST_FILE + 1)
; LD E,(IY+PANEL.CURR_FILE)
; LD D,(IY+PANEL.CURR_FILE + 1)
; ADD HL,DE
; ADD HL,HL ; *2
; ADD HL,HL ; *4
; ADD HL,HL ; *8
; LD E,L
; LD D,H
; ADD HL,HL ; *10
; ADD HL,DE ; *18
; SET 6,H ; | 0x4000
LD A,HIGH (CPU1)
CALL GET_HANDLE_ADR
LD DE,WorkBuffer
LD BC,FileHDR.Attr
PUSH HL
@ -2149,7 +2149,7 @@ StEditFile: LD A,0x01
EFlag: EQU $-1
OR A
JR NZ,Edit1
Edit: LD IX,BUFFERS.fnedit_ext
Edit: LD IX,REZ3_BUFFERS.fnedit_ext
LD DE,PrevFile
CALL TestEXT
RET NC

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 14.08.2025 savelij
; LAST UPDATE: 07.09.2025 savelij
;[]==========================================================[]
CopyFilesR LD A,(IY + PANEL.FILES_ALL)
@ -21,32 +21,17 @@ CopyFilesR LD A,(IY + PANEL.FILES_ALL)
.L1
SETPORT WINSP.CPU3,,0
LD IX,WorkBuffer
LD L,(IY + PANEL.FIRST_FILE)
LD H,(IY + PANEL.FIRST_FILE + 1)
LD E,(IY + PANEL.CURR_FILE)
LD D,(IY + PANEL.CURR_FILE + 1)
ADD HL,DE
ADD HL,HL ; *2
ADD HL,HL ; *4
ADD HL,HL ; *8
LD E,L
LD D,H
ADD HL,HL ; *10
ADD HL,DE ; *18
SET 6,H
SET 7,H ; | 0xC000
LD A,HIGH (CPU3)
CALL GET_HANDLE_ADR
LD (COPY.PathCurrFile),HL
LD DE,WorkBuffer
LD BC,FileHDR.SIZE
LDIR
POP AF
SETPORT WINSP.CPU3,,0
LD HL,CopyNextFile.FLAG_DIRCOPY
XOR A ; ª®¯¨à®¢ âì ⮫쪮 ä ©«ë
LD (HL),A
BIT DIR.B_Dir,(IX + FileHDR.Attr)
IF MARK_DIR
JP NZ,COPY_DIR
JP NZ,.InitCopyDir
ELSE
RET NZ
ENDIF
@ -63,17 +48,17 @@ CopyFilesR LD A,(IY + PANEL.FILES_ALL)
IF MARK_DIR
; ª®¯¨à®¢ ­¨¥ ¤¨àë á® ¢á¥¬ ᮤ¥à¦¨¬ë¬ ¯®¤ ªãàá®à®¬
COPY_DIR INC A
LD (HL),A ; ª®¯¨à®¢ âì ¡ã¤¥¬ ¤¨à¥ªâ®à¨ï¬¨
CALL RESIDENT.CountingDir ; ¨§¬¥à¥­¨¥ à §¬¥à  ¤¨à¥ªâ®à¨¨ á ä ©« ¬¨
.InitCopyDir LD HL,(COPY.PathCurrFile)
PUSH HL
CALL CalcDirSizeR ; ¨§¬¥à¥­¨¥ à §¬¥à  ¤¨à¥ªâ®à¨¨ á ä ©« ¬¨
POP HL
LD (COPY.PathCurrFile),HL
LD HL,JUMPS.FILES_BYTES
LD DE,COPY.CopyBytes
LD BC,5
LD BC,DWORD + 1
LDIR ; § ¡à «¨ à §¬¥à ¤¨à¥ªâ®à¨¨
LD HL,0
LD (COPY.CopyFiles),HL ; ª®«¨ç¥á⢮ 㦥 ᪮¯¨à®¢ ­­ëå ä ©«®¢
CALL RESIDENT.InitCopyDirs ; ¨­¨æ¨ «¨§ æ¨ï ¯ã⥩ ®âªã¤ /ªã¤ 
LD (COPY.CopyFiles),BC ; ª®«¨ç¥á⢮ 㦥 ᪮¯¨à®¢ ­­ëå ä ©«®¢
CALL StorePaths ; á®åà ­¥­¨¥ ⥪ã騩 ¯ã⥩ ¯ ­¥«¥©
LD HL,(COPY.CopyBytes)
LD DE,(COPY.CopyBytes + 2)
CALL ConvBytes2Pages ; ¯¥à¥áç¥â ¢ ª®«¨ç¥á⢮ áâà ­¨æ ¤«ï ª®¯¨à®¢ ­¨ï
@ -124,14 +109,8 @@ CopyLp0 BIT FileHDR.B_MARK,(IX + FileHDR.Flag)
LD E,(IX + FileHDR.SizeBytes + 2)
LD D,(IX + FileHDR.SizeBytes + 3)
CALL ConvBytes2Pages
; LD C,L
; LD B,H
; POP HL
POP BC
ADD HL,BC
; LD C,E
; LD B,D
; POP DE
POP BC
EX DE,HL
ADC HL,BC
@ -176,6 +155,7 @@ CopyNxt LD IX,ProcessAll
LD HL,RightPanel
.L1 LD DE,PANEL.CURR_PATH
ADD HL,DE
LD (.NEWPATH),HL ; ªã¤  ¢®§¢à é âì ®â। ªâ¨à®¢ ­­ë© ¯ãâì
LD DE,CurPath
SUB A
LD C,A
@ -183,7 +163,6 @@ CopyNxt LD IX,ProcessAll
CP (HL)
JR NZ,.L2
LD (DE),A
SUB A
SUB C
LD (PathLen),A
LD IX,PathStr
@ -214,39 +193,40 @@ CopyNxt LD IX,ProcessAll
W_BORDER 16,56,288,12
W_FILL 18,57,284,10,COLORI.WHITE
W_END
SUB A
LD (COPY.OverWriteFlg),A
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD HL,LeftPanel
JR Z,.L4
LD HL,RightPanel
.L4 LD BC,PANEL.CURR_PATH
ADD HL,BC
LD (COPY.PathSrc),HL
LD HL,CurPath
LD (COPY.PathDst),HL
LD DE,0 ;  ¤à¥á ®â। ªâ¨à®¢ ­­®£® ¯ã⨠¯à¨¥¬­¨ª 
.NEWPATH EQU $-2
XOR A
LD (COPY.OverWriteFlg),A
.NP1 LDI
CP (HL)
JR NZ,.NP1
LD (DE),A
CALL DIRLIST.InitCopyDirs
CALL PointerMouseClock
PUSH IY
GETPORT WINSP.CPU3
PUSH AF
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD A,(RAMPAGES.LEFTPANEL)
JR Z,.L3
LD A,(RAMPAGES.RIGHTPANEL)
.L3
; ⥪ãéãî ¤¨à¥ªâ®à¨î £à㧨¬ ¢ ᢮¡®¤­ãî áâà ­¨æã
LD A,(RAMPAGES.BuffPg3)
SETPORT WINSP.CPU3,,0
SET PANELFLAG.B_DIRPAGE,(IY + PANEL.PANELFLAG)
CALL ReadDIR
LD (CopyDir.CURR_PANEL),IY ; ¯à¨ ª®¯¨à®¢ ­¨¨ ä ©«  ¯®àâ¨âáï
; ª®¯¨à®¢ ­¨¥ ä ©«®¢/¤¨à¥ªâ®à¨©
CopyNextFile CALL PrintSrcDst
LD IX,(COPY.PathCurrFile)
CopyNextFile LD IX,(COPY.PathCurrFile)
IF MARK_DIR
BIT DIR.B_Dir,(IX + FileHDR.Attr)
JR Z,.CopyFile
; ª®¯¨à®¢ ­¨¥ ¤¨à¥ªâ®à¨¨
CALL RESIDENT.Add2ListDir ; ¤®¡ ¢«¥­¨¥ ¨¬¥­¨ ¤¨àë ¢ ᯨ᮪
JR CopyNextFile
; § ­®á¨¬ ¨¬ï ¤¨àë ¢ ᯨ᮪ ¤«ï ¤ «ì­¥©è¥£® ª®¯¨à®¢ ­¨ï
CALL DIRLIST.ADD_DIRNAME
JP .NextHandle
ENDIF
.CopyFile LD L,(IX + FileHDR.SizeBytes)
; ª®¯¨à®¢ ­¨¥ ä ©« /¤¨à¥ªâ®à¨¨
.CopyFile PUSH IX
CALL PrintSrcDst
POP IX
LD L,(IX + FileHDR.SizeBytes)
LD H,(IX + FileHDR.SizeBytes + 1)
LD E,(IX + FileHDR.SizeBytes + 2)
LD D,(IX + FileHDR.SizeBytes + 3)
@ -446,7 +426,7 @@ CopyNextFile CALL PrintSrcDst
SPDSS DSSF.CLOSE
LD A,(COPY.MemID)
SPDSS DSSF.FREEMEM
LD IX,(COPY.PathCurrFile)
.NextHandle LD IX,(COPY.PathCurrFile)
RES FileHDR.B_MARK,(IX + FileHDR.Flag)
LD HL,(COPY.CopyBytes)
LD E,(IX + FileHDR.SizeBytes)
@ -454,45 +434,451 @@ CopyNextFile CALL PrintSrcDst
OR A
SBC HL,DE
LD (COPY.CopyBytes),HL
LD HL,(COPY.CopyBytes+2)
LD HL,(COPY.CopyBytes + 2)
LD E,(IX + FileHDR.SizeBytes + 2)
LD D,(IX + FileHDR.SizeBytes + 3)
SBC HL,DE
LD (COPY.CopyBytes+2),HL
LD (COPY.CopyBytes + 2),HL
LD HL,(COPY.CopyFiles)
LD A,H
OR L
JR Z,CopyEnd ; ä ©«ë ª®­ç¨«¨áì?
JR Z,CopyDir ; ä ©«ë ª®­ç¨«¨áì?
DEC HL
LD (COPY.CopyFiles),HL
LD A,H
OR L
JR Z,CopyEnd ; ä ©«ë ª®­ç¨«¨áì?
JR Z,CopyDir ; ä ©«ë ª®­ç¨«¨áì?
LD HL,(COPY.PathCurrFile)
LD DE,FileHDR.SIZE
.L5 ADD HL,DE ; á«¥¤ãî騩 ®¯¨á â¥«ì
IF MARK_DIR
LD A,(.FLAG_DIRCOPY)
AND A ; ª®¯¨à㥬 ⮫쪮 ä ©«ë?
JR Z,.L6
; ¨§-§  ª®¯¨à®¢ ­¨ï ¤¨à¥ªâ®à¨© ä ©«ë ª®¯¨à㥬 ¢á¥
INC HL
LD A,(HL)
AND A
JR NZ,.L7 ; ä ©«ë ¢ ¤¨à¥ ¥é¥ ­¥ ª®­ç¨«¨áì
; ä ©«ë ¢ ¤¨à¥ ª®­ç¨«¨áì, ᬮâà¥âì ®á⠢訥áï ¤¨àë ¢ ᯨ᪥
CALL RESIDENT.CopyDir
ENDIF
.L6 BIT FileHDR.B_MARK,(HL)
BIT FileHDR.B_MARK,(HL)
JR Z,.L5
.L7 LD (COPY.PathCurrFile),HL
LD (COPY.PathCurrFile),HL
JP CopyNextFile
.FLAG_DIRCOPY DB 0
; ª®¯¨à®¢ ­¨¥ ¤¨à¥ªâ®à¨¨
CopyDir LD IY,0
.CURR_PANEL EQU $-2
CALL DIRLIST.GET_DIRNAME ; ¯®«ã祭¨¥ ¨¬¥­¨ ¤¨àë, ¥á«¨ ¥áâì
JP C,CopyEnd ; C=1 ⥪ãé ï ¤¨à  ª®­ç¨« áì ¨«¨ ¨å ­¥â
CALL DIRLIST.ADD_DIRLEVEL ; ¤®¡ ¢«¥­¨¥ ᯨ᪠ ¤¨àë
PUSH IY
LD HL,(COPY.PathDst)
SPDSS DSSF.MKDIR ; á®§¤ ­¨¥ ¤¨àë ­  ¯à¨¥¬­¨ª¥
; CALL C,DOSError
LD HL,(COPY.PathSrc)
SPDSS DSSF.CHDIR ; ᬥ­  ⥪ã饣® ¯ãâ¨
; CALL C,DOSError
POP IY
LD A,(RAMPAGES.BuffPg3)
SET PANELFLAG.B_DIRPAGE,(IY + PANEL.PANELFLAG)
CALL ReadDIR
CALL DIRLIST.MARK_ALL ; ¬ àª¨à®¢ª  ¢á¥å ä ©«®¢/¤¨à
LD HL,0xC000 + FileHDR.SIZE
LD (COPY.PathCurrFile),HL
JP CopyNextFile
BUF_MARKDIR
.DIR_NAME DZ " " ; ¨¬ï ⥪ã饩 ¤¨à¥ªâ®à¨¨
DIRLIST
; ¯®¬¥âª  ¢á¥å ä ©«®¢/¤¨à
.MARK_ALL LD IX,0xC000 - FileHDR.SIZE
LD HL,0
LD (COPY.CopyFiles),HL
LD BC,FileHDR.SIZE
.MLNEXT ADD IX,BC
LD A,(IX + FileHDR.Name)
AND A
RET Z
CP '.'
JR Z,.MLNEXT
SET FileHDR.B_MARK,(IX + FileHDR.Flag)
EXX
LD HL,COPY.CopyBytes
LD E,(IX + FileHDR.SizeBytes)
LD D,(IX + FileHDR.SizeBytes + 1)
LD C,(IX + FileHDR.SizeBytes + 2)
LD B,(IX + FileHDR.SizeBytes + 3)
CALL HLPBCDE
LD HL,(COPY.CopyFiles)
INC HL
LD (COPY.CopyFiles),HL
EXX
JR .MLNEXT
; ¤®¡ ¢«¥­¨¥ ¨¬¥­¨ ¤¨àë ¢ ᯨ᮪, á®§¤ ­¨¥ ¤¨àë ­  ¯à¨¥¬­¨ª¥
.ADD_DIRNAME PUSH IX
POP HL
INC HL
LD DE,BUF_MARKDIR.DIR_NAME
LD BC,8
LDIR ; § ¡à «¨ ¨¬ï ¤¨àë ¤® ¯¥à¥ª«î祭¨ï ¯ £
LD A,(RAMPAGES.FLX)
LD C,WINSP.CPU3
IN B,(C)
PUSH BC
OUT (C),A
LD HL,0xC000
.ANNEXT CALL GET_DWORD
LD A,B
OR C
JR Z,.ANFOUND
LD H,B
LD L,C
JR .ANNEXT
.ANFOUND PUSH HL
LD HL,BUF_MARKDIR.DIR_NAME
LD BC,8
LDIR ; § ­¥á«¨ ¨¬ï ¤¨àë ¢ ᯨ᮪
POP HL
DEC HL
DEC HL
LD (HL),D
DEC HL
LD (HL),E
POP BC
OUT (C),B
RET
.ADDNAME2PATH8 CALL .CHECK_BSLASH
LD (HL),'\\'
INC HL
EX DE,HL
LD BC,8
LDIR
XOR A
LD (DE),A
RET
; ¤®¡ ¢«¥­¨¥ ¨¬¥­¨ ¢ áâப㠯ãâ¨
; HL - ªã¤  ¤®¡ ¢«ïâì (墮áâ ⥪ã饣® ¯ãâ¨)
; DE - ®âªã¤  ¨¬ï ¡à âì
.ADDNAME2PATH CALL .CHECK_BSLASH
LD (HL),'\\'
INC HL
EX DE,HL
; ª®¯¨à®¢ ­¨¥ ¨¬¥­¨ ¨§ ¡ãä¥à 
.COPYNAME2PATH XOR A
.CNP2 CP (HL)
JR Z,.CNP1
LDI
JR .CNP2
.CNP1 LD (DE),A
RET
; ¯à®¢¥àª  ­  BACKSLASH
.CHECK_BSLASH DEC HL
LD A,(HL)
CP '\\'
RET Z
INC HL
RET
; ®âá¥ç¥­¨¥ ¯à®¡¥«®¢ ¢ ¨¬¥­¨
.CUTOFFSPACES LD A,' '
.COS2 DEC HL
CP (HL)
JR Z,.COS2
INC HL
LD (HL),0
RET
; ¤®¡ ¢«¥­¨¥ ã஢­ï ¤«ï ¤¨à
.ADD_DIRLEVEL LD A,(RAMPAGES.FLX)
LD C,WINSP.CPU3
IN B,(C)
PUSH BC
OUT (C),A
LD HL,0xC000
.ALNEXT CALL GET_DWORD
LD A,B
OR C
JR Z,.ALFOUND
LD H,B
LD L,C
JR .ALNEXT
.ALFOUND LD (HL),D
DEC HL
LD (HL),E
LD H,D
LD L,E
INC DE
INC DE
INC DE
INC DE
LD (HL),E
INC HL
LD (HL),D
INC HL
LD (HL),0
INC HL
LD (HL),0
POP BC
OUT (C),B
RET
; ¯®«ã祭¨¥ ¨¬¥­¨ ¤¨àë á 㤠«¥­¨¥¬ ¨§ ᯨ᪠
.GET_DIRNAME LD A,(RAMPAGES.FLX)
LD C,WINSP.CPU3
IN B,(C)
PUSH BC
OUT (C),A
.GNRESTART LD HL,0xC000
.GNNEXT CALL GET_DWORD
LD A,B
OR C
JR Z,.GNFOUND
DEC HL
LD (.GNEL1),HL
LD H,B
LD L,C
JR .GNNEXT
.GNFOUND INC HL
EX DE,HL
AND A
SBC HL,DE
SRL H
RR L
SRL H
RR L
SRL H
RR L
LD B,H
LD C,L
EX DE,HL
LD DE,8
AND A
SBC HL,DE
INC BC
.GNNEXT_FIND DEC BC
LD A,B
OR C
JR Z,.GNEND_LEVEL
ADD HL,DE
LD A,(HL)
AND A
JR Z,.GNNEXT_FIND
PUSH HL
EX DE,HL
PUSH DE
LD HL,(COPY.PathSrcEnd)
CALL .ADDNAME2PATH8
EX DE,HL
CALL .CUTOFFSPACES
LD (COPY.PathSrcEnd),HL
POP DE
LD HL,(COPY.PathDstEnd)
CALL .ADDNAME2PATH8
EX DE,HL
CALL .CUTOFFSPACES
LD (COPY.PathDstEnd),HL
POP HL
LD (HL),0
POP BC
OUT (C),B
AND A
RET
.GNEND_LEVEL LD HL,0
.GNEL1 EQU $-2
LD A,H
OR L
JR Z,.GNEL2
XOR A
LD (HL),A
INC HL
LD (HL),A
LD DE,0xC000 + DWORD - 1
EX DE,HL
SBC HL,DE
EX DE,HL
JR Z,.GNEL2
LD HL,(COPY.PathSrcEnd)
CALL .GNEL4
LD (COPY.PathSrcEnd),HL
LD HL,(COPY.PathDstEnd)
CALL .GNEL4
LD (COPY.PathDstEnd),HL
JP .GNRESTART
.GNEL4 DEC HL
LD A,'\\'
.GNEL3 DEC HL
CP (HL)
JR NZ,.GNEL3
INC HL
LD (HL),0
RET
.GNEL2 POP BC
OUT (C),B
SCF
RET
; ¨­¨æ¨ «¨§ æ¨ï ª®¯¨à®¢ ­¨ï ¤¨à¥ªâ®à¨¨ á ᮤ¥à¦¨¬ë¬
.InitCopyDirs BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD HL,LeftPanel + PANEL.CURR_PATH ; ¤«ï ¯ã⨠®âªã¤  ª®¯¨à®¢ âì
LD DE,RightPanel + PANEL.CURR_PATH ; ¤«ï ¯ã⨠ªã¤  ª®¯¨à®¢ âì
JR Z,.L1
EX DE,HL
; ¢ª«îç ¥¬ ¯ £ã á ¤¨à¥ªâ®à¨¥© ⥪ã饩 ¯ ­¥«¨
.L1 LD (COPY.PathSrc),HL
EX DE,HL
LD (COPY.PathDst),HL
.L2 INC HL
CP (HL)
JR NZ,.L2
LD (COPY.PathDstEnd),HL
EX DE,HL
XOR A
.L3 INC HL
CP (HL)
JR NZ,.L3
LD (COPY.PathSrcEnd),HL
; ¨­¨â ¢ áâà ­¨æ¥ ᯨ᪮¢ ¤¨à¥ªâ®à¨©
GETPORT WINSP.CPU3
EX AF,AF'
LD A,(RAMPAGES.FLX)
SETPORT WINSP.CPU3,,0
LD HL,0xC000
LD (HL),LOW (0xC000 + DWORD)
INC HL
LD (HL),HIGH (0xC000 + DWORD)
INC HL
LD D,H
LD E,L
INC DE
LD BC,FileHDR.Name_Size * 2
LD (HL),B
LDIR
EX AF,AF'
SETPORT WINSP.CPU3,,0
RET
; á®åà ­¥­¨¥ ¯ã⥩ ¯ ­¥«¥©
StorePaths LD HL,LeftPanel + PANEL.CURR_PATH
LD DE,REZ2_BUFFERS.OLDLEFTPANEL
LD BC,PANEL.CURR_PATH_Size
LDIR
LD HL,RightPanel + PANEL.CURR_PATH
LD DE,REZ2_BUFFERS.OLDRIGHTPANEL
LD BC,PANEL.CURR_PATH_Size
LDIR
RET
; ¢®ááâ ­®¢«¥­¨¥ ¯ã⥩ ¯ ­¥«¥©
RestorePaths LD HL,REZ2_BUFFERS.OLDLEFTPANEL
LD DE,LeftPanel + PANEL.CURR_PATH
LD BC,PANEL.CURR_PATH_Size
LDIR
LD HL,REZ2_BUFFERS.OLDRIGHTPANEL
LD DE,RightPanel + PANEL.CURR_PATH
LD BC,PANEL.CURR_PATH_Size
LDIR
RET
; ¯®¤áç¥â ¢ ¡ ©â å à §¬¥à  ®â¬¥ç¥­­®© ¤¨à¥ªâ®à¨¨
CalcDirSizeR: PUSH IX
PUSH IY
GETPORT WINSP.CPU3
PUSH AF ; ⥪ã騩 ­®¬¥à áâà ­¨æë
LD (.CURR_PANEL),IY
LD A,(RAMPAGES.BuffPg3)
SET PANELFLAG.B_DIRPAGE,(IY + PANEL.PANELFLAG)
CALL ReadDIR
LD A,(RAMPAGES.BuffPg3)
SETPORT WINSP.CPU3,,0
LD A,HIGH (CPU3)
CALL GET_HANDLE_ADR
LD (COPY.PathCurrFile),HL
XOR A
LD H,A
LD L,A
LD (JUMPS.FILES_BYTES),HL
LD (JUMPS.FILES_BYTES + 2),HL ; ®¡­ã«¥­¨¥ à §¬¥à  ¤¨àë
LD (JUMPS.FILES_COUNT),HL ; ®¡­ã«¥­¨¥ ª®«¨ç¥á⢠ ä ©«®¢
LD (COPY.CopyFiles),HL
CALL StorePaths
CALL DIRLIST.InitCopyDirs
.NextDirFile LD IX,(COPY.PathCurrFile)
BIT DIR.B_Dir,(IX + FileHDR.Attr)
JR Z,.NextFile
; § ­®á¨¬ ¨¬ï ¤¨àë ¢ ᯨ᮪ ¤«ï ¤ «ì­¥©è¥£® ¨á¯®«ì§®¢ ­¨ï
CALL DIRLIST.ADD_DIRNAME
JP .NextHandle
; ¤«ï ä ©«  ¤®¡ ¢«ï¥¬ ¥£® à §¬¥à ¨ ª®«¨ç¥á⢮ +1
.NextFile LD HL,(JUMPS.FILES_COUNT)
INC HL
LD (JUMPS.FILES_COUNT),HL ; ¨­ªà¥¬¥­â ª®«¨ç¥á⢠ ä ©«®¢
PUSH IX
POP DE
LD HL,FileHDR.SizeBytes
ADD HL,DE
CALL GET_DWORD
LD HL,JUMPS.FILES_BYTES
CALL HLPBCDE ; ¤®¡ ¢¨«¨ ª ⥪ã饬ã à §¬¥àã
; ¯à®¢¥àª  ­  ®ª®­ç ­¨¥ ®¯¨á â¥«¥©
.NextHandle LD HL,(COPY.CopyFiles)
LD A,H
OR L
JR Z,.ENDDIR
DEC HL
LD A,H
OR L
JR Z,.ENDDIR
LD (COPY.CopyFiles),HL
LD HL,(COPY.PathCurrFile)
LD DE,FileHDR.SIZE
.L5 ADD HL,DE ; á«¥¤ãî騩 ®¯¨á â¥«ì
BIT FileHDR.B_MARK,(HL)
JR Z,.L5
LD (COPY.PathCurrFile),HL
JP .NextDirFile
.ENDDIR LD IY,0
.CURR_PANEL EQU $-2
CALL DIRLIST.GET_DIRNAME ; ¯®«ã祭¨¥ ¨¬¥­¨ ¤¨àë, ¥á«¨ ¥áâì
JP C,.CalcEnd ; C=1 ⥪ãé ï ¤¨àë ª®­ç¨« áì ¨«¨ ¨å ­¥â
CALL DIRLIST.ADD_DIRLEVEL ; ¤®¡ ¢«¥­¨¥ ᯨ᪠ ¤¨àë
PUSH IY
LD HL,(COPY.PathSrc)
SPDSS DSSF.CHDIR ; ᬥ­  ⥪ã饣® ¯ãâ¨
; CALL C,DOSError
POP IY
LD A,(RAMPAGES.BuffPg3)
SET PANELFLAG.B_DIRPAGE,(IY + PANEL.PANELFLAG)
CALL ReadDIR
CALL DIRLIST.MARK_ALL ; ¬ àª¨à®¢ª  ¢á¥å ä ©«®¢/¤¨à
LD HL,0xC000 + FileHDR.SIZE
LD (COPY.PathCurrFile),HL
JP .NextDirFile
.CalcEnd CALL RestorePaths
POP AF
SETPORT WINSP.CPU3,,0
POP IY
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD HL,LeftPanel + PANEL.CURR_PATH
JR Z,.CD1
LD HL,RightPanel + PANEL.CURR_PATH
.CD1
; LD HL,(COPY.PathSrc)
PUSH IY
SPDSS DSSF.CHDIR
POP IY
POP IX
RET
; § ¢¥à襭¨¥ ª®¯¨à®¢ ­¨ï
CopyEnd POP AF
CopyEnd CALL RestorePaths
POP AF
SETPORT WINSP.CPU3,,0
POP IY
WINDOWCLOSE
@ -513,6 +899,7 @@ CopyEnd POP AF
LD IY,RightPanel
JR Z,.L1
LD IY,LeftPanel
; ®¡­®¢«¥­¨¥ ¯ ­¥«¨ ¯à¨¥¬­¨ª 
.L1 PUSH IY
POP HL
LD DE,PANEL.CURR_PATH
@ -525,6 +912,7 @@ CopyEnd POP AF
POP AF
CALL NC,RefreshDIR
POP IY
; ®¡­®¢«¥­¨¥ ¯ ­¥«¨ ¨áâ®ç­¨ª 
PUSH IY
POP HL
LD DE,PANEL.CURR_PATH
@ -532,12 +920,19 @@ CopyEnd POP AF
PUSH IY
SPDSS DSSF.CHDIR
POP IY
PUSH AF
CALL C,DOSError
POP AF
PUSH AF
CALL NC,RefreshDIR
POP AF
JP C,BegDIRECTORY
CALL PrintDIR
CALL PrnFileInfo
JP PointerMousePointer
CopyError3: ; …᫨ ­¥â ¬¥áâ  ­  ¤¨áª¥ ¤«ï ª®¯¨à®¢ ­¨ï ;!FIXIT ®¯â¨¬¨§¨à®¢ âì
; !FIXIT ®¯â¨¬¨§¨à®¢ âì
CopyError3: ; …᫨ ­¥â ¬¥áâ  ­  ¤¨áª¥ ¤«ï ª®¯¨à®¢ ­¨ï
POP HL ; á­¨¬ ¥¬ «¨è­¥¥
POP DE ; âãâ «¥¦¨â AF
PUSH AF
@ -706,22 +1101,7 @@ OverExit INC SP
POP IY
JP CopyEnd
;--------------------------------------------------------------
COPY
.PathCurrFile DW 0 ; €¤à¥á ®¯¨á â¥«ï ⥪ã饣® ä ©« /¤¨àë
.PathSrc DW 0 ; €¤à¥á ¯ã⨠¨áâ®ç­¨ª 
.PathDst DW 0 ; €¤à¥á ¯ã⨠¯à¨¥¬­¨ª 
.CopyFiles DW 0 ; Š®«¨ç¥á⢮ ª®¯¨à㥬ëå ä ©«®¢
.CopyBytes DB 5 DUP 0 ; Š®«¨ç¥á⢮ ª®¯¨à㥬ëå ¡ ©â®¢
.OverWriteFlg DB 0 ; ”« £ ¯¥à¥§ ¯¨á¨ ä ©«®¢
.FreeBanks DW 0 ; Š®«¨ç¥á⢮ ᢮¡®¤­ëå ¡ ­ª®¢
.CurrReadBytes DD 0 ; „«¨­  ç¨â ¥¬®£® ä ©« 
.CurrWriteBytes DD 0 ; „«¨­  § ¯¨á뢠¥¬®£® ä ©« 
.FHandleSrc DB 0 ; ” ©« ¨áâ®ç­¨ª
.FHandleDst DB 0 ; ” ©« ¯à¨¥¬­¨ª
.MemID DB 0 ; ˆ¤¥­â¨ä¨ª â®à ¯ ¬ï⨠¯®¤ ª®¯¨à®¢ ­¨¥
;--------------------------------------------------------------
; Š®­¢¥àá¨ï à §¬¥à  ¢ ¡ ©â å ¢ ª®«¨ç¥á⢮ áâà ­¨æ
; <20>  ¢å®¤¥:
; DEHL - ª®«¨ç¥á⢮ ¡ ©â
; <20>  ¢ë室¥:
@ -858,11 +1238,17 @@ ProcessOne DW 178 ; X
DW 0
DB COLORP.BLUE + COLORI.WHITE
PathStr DB 0x80,0x00,0x00,0x00
PathLen DB 0x00
DW 170,106,324
DB 0xF0
CurPath DB 0x81 DUP 0
; ®¯¨á â¥«ì áâப¨
PathStr DB 255 ; +00 Œ ªá¨¬ «ì­ ï ¤«¨­  áâப¨
DB 0 ; +01 ”« £ £®â®¢­®áâ¨
DB 0 ; +02 ⥪ãé ï X ¯®§¨æ¨ï ªãàá®à 
DB 0 ; +03 ⥪ãé ï AddX
PathLen DB 0 ; +04 ª®«¨ç¥á⢮ ¢¢¥¤¥­­ëå ᨬ¢®«®¢
DW 170 ; +05 X ¯®§¨æ¨ï áâப¨ ­  íªà ­¥
DW 106 ; +07 Y ¯®§¨æ¨ï áâப¨ ­  íªà ­¥
DW 324 ; +09 X ¤«¨­  áâப¨ ­  íªà ­¥
DB COLORP.WHITE + COLORI.BLACK ; +0B –¢¥â áâப¨
CurPath DB 256 DUP 0 ; +0C ...á ¬  áâப 
;[]==========================================================[]
ReNameR LD A,(IY + PANEL.FILES_ALL)
@ -888,9 +1274,6 @@ ReNameR LD A,(IY + PANEL.FILES_ALL)
ADD HL,HL
ADD HL,HL
ADD HL,HL
; LD A,H
; OR 0xC0
; LD H,A
SET 6,H
SET 7,H
INC HL
@ -898,7 +1281,7 @@ ReNameR LD A,(IY + PANEL.FILES_ALL)
LD DE,CurName
LD BC,0x000D
LDIR
LD A,DIR.M_Dir;0x10
LD A,DIR.M_Dir
LD (CurAttrib),A
JR ReNameN
@ -909,9 +1292,6 @@ ReNameNr ADD HL,HL ; *2
LD D,H
ADD HL,HL ; *10
ADD HL,DE ; *18
; LD A,H
; OR 0xC0
; LD H,A
SET 6,H
SET 7,H ; | 0xC000
PUSH HL
@ -919,7 +1299,7 @@ ReNameNr ADD HL,HL ; *2
LD DE,CurName
CALL MakeDOSname
POP HL
LD BC,FileHDR.Attr;0x000E
LD BC,FileHDR.Attr
ADD HL,BC
LD A,(HL)
LD (CurAttrib),A
@ -980,7 +1360,8 @@ RNfile EQU $ - STRLEN(" ") - 2
LD A,(NameLen)
OR A
RET Z
;[ ] -¡ £ ¯à¨ ¯¥à¥¨¬¥­®¢ ­¨¨ ä ©«  ¢ ¡ãä¥à¥ Name ¢ ª®­æ¥ ¨¬¥­¨ ä ©«  ­¥ ¢á¥£¤  áâ®ï« § ªà뢠î騩 0 ª®£¤  ­ ¤®. ILDel1
; [ ] -¡ £ ¯à¨ ¯¥à¥¨¬¥­®¢ ­¨¨ ä ©«  ¢ ¡ãä¥à¥ Name ¢ ª®­æ¥ ¨¬¥­¨
; ä ©«  ­¥ ¢á¥£¤  áâ®ï« § ªà뢠î騩 0 ª®£¤  ­ ¤®. ILDel1
LD HL,Name
LD E,A
LD D,0
@ -1141,9 +1522,6 @@ ReNameDIR LD HL,Name
ADD HL,HL ; *4
ADD HL,HL ; *8
ADD HL,HL ; *10
; LD A,H
; OR 0xC0
; LD H,A
SET 6,H
SET 7,H
EX DE,HL
@ -1157,11 +1535,7 @@ ReNameTree BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
ADD HL,DE
INC HL
INC HL
IF TREE_REZID
CALL FindTreeDIRR
ELSE
CALL FindTreeDIRR
ENDIF
JP C,ReNameT
LD HL,0xC001 - 0x10
LD BC,0x0010
@ -1285,17 +1659,9 @@ ReNameExt1 INC SP
LD DE,PANEL.BAR_X
ADD IX,DE
CALL DrawVScrollBar
IF TREE_REZID
CALL TestTreeR.TestTreeBeg
ELSE
CALL TestTreeR.TestTreeBeg
ENDIF
PUSH IY
IF TREE_REZID
CALL MakeTreePathR
ELSE
CALL MakeTreePathR
ENDIF
EX DE,HL
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD IY,RightPanel
@ -1481,11 +1847,7 @@ MkDIR0 LD HL,NewDIR
ADD HL,DE
INC HL
INC HL
IF TREE_REZID
CALL FindTreeDIRR
ELSE
CALL FindTreeDIRR
ENDIF
JP C,MkDIRn
LD HL,0xC001 - 0x10
LD BC,0x0010
@ -1503,9 +1865,6 @@ FnTree1 LD L,(IY + PANEL.FIRST_FILE)
ADD HL,HL
ADD HL,HL
ADD HL,HL
; LD A,H
; OR 0xC0
; LD H,A
SET 6,H
SET 7,H
FnTree2 LD E,(HL)
@ -1562,9 +1921,6 @@ MkDIRend PUSH HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
; LD A,H
; OR 0xC0
; LD H,A
SET 6,H
SET 7,H
PUSH HL
@ -1737,9 +2093,6 @@ DeleteFilesR LD A,(IY + PANEL.FILES_ALL)
ADD HL,HL
ADD HL,HL
ADD HL,HL
; LD A,H
; OR 0xC0
; LD H,A
SET 6,H
SET 7,H
LD (AdrDelFile),HL
@ -1753,9 +2106,6 @@ DelFile ADD HL,HL
LD D,H
ADD HL,HL
ADD HL,DE
; LD A,H
; OR 0xC0
; LD H,A
SET 6,H
SET 7,H
LD (AdrDelFile),HL
@ -1877,9 +2227,7 @@ DeleteFlag DEFB 0x00
MakeDELname LD HL,(AdrDelFile)
INC HL
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
; JR NZ,MakeDELn1
JP Z,MakeDOSname
;MakeDELn1
INC HL
SUB A
.L1 LDI
@ -1964,13 +2312,13 @@ DelDel0 LD IX,(AdrDelFile)
PUSH DE
CALL MakeDELname
POP HL
LD C,DSSF.RMDIR ;0x1C ;RMDIR
LD C,DSSF.RMDIR
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
JR NZ,DelDel1
LD A,(IX + FileHDR.Attr)
BIT DIR.B_Dir,A
JR NZ,DelDel1
LD C,DSSF.DELETE ;0x0E ;DELETE
LD C,DSSF.DELETE
DelDel1 PUSH IY
SPDSS
POP IY
@ -2050,9 +2398,9 @@ DelFrom EQU $-2
POP HL
LD A,(IX + FileHDR.Attr)
BIT DIR.B_Dir,A
LD C,DSSF.DELETE ;0x0E ;DELETE
LD C,DSSF.DELETE
JR Z,.L3
LD C,DSSF.RMDIR ;0x1C ;RMDIR
LD C,DSSF.RMDIR
.L3 PUSH IY
SPDSS
POP IY
@ -2177,11 +2525,7 @@ DelTreeDIR1 LD A,(DeleteFlag)
ADD HL,DE
INC HL
INC HL
IF TREE_REZID
CALL FindTreeDIRR
ELSE
CALL FindTreeDIRR
ENDIF
JP C,DelDIRn
LD HL,0xC001-0x10
LD BC,0x0010
@ -2231,15 +2575,12 @@ DelTree1 LD L,(IY + PANEL.FIRST_FILE)
ADD HL,HL
ADD HL,HL
ADD HL,HL
; LD A,H
; OR 0xC0
; LD H,A
SET 6,H
SET 7,H
DelTree2 LD E,(HL)
INC HL
LD A,(HL)
LD BC,FileHDR.Attr;0x000E
LD BC,FileHDR.Attr
ADD HL,BC
LD D,(HL)
INC HL
@ -2254,9 +2595,6 @@ DelTree2 LD E,(HL)
ADD HL,HL
ADD HL,HL
ADD HL,HL
; LD A,H
; OR 0xC0
; LD H,A
SET 6,H
SET 7,H
OR A
@ -2405,11 +2743,7 @@ DeleteExt1 INC SP
ADD IX,DE
CALL InitScrollBar
CALL DrawVScrollBar
IF TREE_REZID
CALL MakeTreePathR
ELSE
CALL MakeTreePathR
ENDIF
PUSH IY
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD IY,RightPanel
@ -2421,41 +2755,20 @@ DeleteExt1 INC SP
DelName DB 13 DUP 0
;[]==========================================================[]
QuitConfirmWin
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 208,88,224,50
W_FILL 4,2,216,10,COLORI.BLACK
W_TEXT 104,3,COLORI.WHITE,"Quit"
W_TEXT 28,19,COLORP.HIGHGRAY,"Do you want quit Flex Navigator ?"
W_BUTTON 32,32,72,14
W_TEXT 58,35,COLORP.HIGHGRAY,"Yes"
W_BUTTON 120,32,72,14
W_TEXT 150,35,COLORP.HIGHGRAY,"No"
W_END
.Loop LD IX,REZ2TAB.QuitTab
CALL CheckCoordsMouse
SPDSS DSSF.SCANKEY
JR Z,.Loop
LD A,B
OR A
JR NZ,.Loop
LD A,E
CP 0x1B
JR Z,.Abort
CP 0x0D
JR Z,.OK
RES 5,A
CP 'Y'
JR Z,.OK
CP 'N'
JR NZ,.Loop
.Abort
WINDOWCLOSE
SCF
RET
.OK
WINDOWCLOSE
OR A
RET
;--------------------------------------------------------------
COPY
.PathCurrFile DW 0 ; €¤à¥á ®¯¨á â¥«ï ⥪ã饣® ä ©« /¤¨àë
.PathSrc DW 0 ; €¤à¥á ¯ã⨠¨áâ®ç­¨ª 
.PathDst DW 0 ; €¤à¥á ¯ã⨠¯à¨¥¬­¨ª 
.PathSrcEnd DW 0 ; €¤à¥á 墮áâ  ¯ã⨠¨áâ®ç­¨ª 
.PathDstEnd DW 0 ; €¤à¥á 墮áâ  ¯ã⨠¯à¨¥¬­¨ª 
.CopyFiles DW 0 ; Š®«¨ç¥á⢮ ª®¯¨à㥬ëå ä ©«®¢
.CopyBytes DB 5 DUP 0 ; Š®«¨ç¥á⢮ ª®¯¨à㥬ëå ¡ ©â®¢
.OverWriteFlg DB 0 ; ”« £ ¯¥à¥§ ¯¨á¨ ä ©«®¢
.FreeBanks DW 0 ; Š®«¨ç¥á⢮ ᢮¡®¤­ëå ¡ ­ª®¢
.CurrReadBytes DD 0 ; „«¨­  ç¨â ¥¬®£® ä ©« 
.CurrWriteBytes DD 0 ; „«¨­  § ¯¨á뢠¥¬®£® ä ©« 
.FHandleSrc DB 0 ; ” ©« ¨áâ®ç­¨ª
.FHandleDst DB 0 ; ” ©« ¯à¨¥¬­¨ª
.MemID DB 0 ; ˆ¤¥­â¨ä¨ª â®à ¯ ¬ï⨠¯®¤ ª®¯¨à®¢ ­¨¥
;--------------------------------------------------------------

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 31.07.2025 savelij
; LAST UPDATE: 07.09.2025 savelij
;[]==========================================================[]
QSearchR LD A,(IY+PANEL.FILES_ALL)
@ -120,7 +120,7 @@ InsSymbolSrch CP 0x20
LD B,0x00
PUSH IX
POP HL
LD DE,LenInpData
LD DE,INPUTFORM.BUFLINE
ADD HL,DE
LD E,(IX+0x04)
ADD HL,DE
@ -130,7 +130,7 @@ InsSymbolSrch CP 0x20
LDDR
NotInsSrch PUSH IX
POP HL
LD DE,LenInpData
LD DE,INPUTFORM.BUFLINE
ADD HL,DE
LD E,(IX+0x02)
ADD HL,DE
@ -198,7 +198,7 @@ QSdelet LD A,(IX+0x02)
RET Z
PUSH IX
POP HL
LD DE,LenInpData
LD DE,INPUTFORM.BUFLINE
ADD HL,DE
LD E,(IX+0x02)
ADD HL,DE
@ -378,9 +378,5 @@ SrchExit POP HL
SearchExit
WINDOWCLOSE
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
IF TREE_REZID
CALL NZ,TestTreeR.TestTreeBeg
ELSE
CALL NZ,TestTreeR.TestTreeBeg
ENDIF
JP NZ,TestTreeR.TestTreeBeg
RET

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 14.08.2025 savelij
; LAST UPDATE: 15.08.2025 savelij
;[]==========================================================[]
; ”®à¬ â â ¡«¨æë
@ -102,15 +102,5 @@ REZ2TAB
DW 0,640,136,256,%0000000100100000,0,DelExit,0
DW 0x8000
;[]===============================================================[]
.QuitTab:
DW 240,312,120,134,%0000000000100001,0,QuitConfirmWin.OK,0
DW 328,400,120,134,%0000000000100001,0,QuitConfirmWin.Abort,0
DW 0,208, 0,256,%0000000000100000,0,QuitConfirmWin.Abort,0
DW 432,640, 0,256,%0000000000100000,0,QuitConfirmWin.Abort,0
DW 0,640, 0, 88,%0000000000100000,0,QuitConfirmWin.Abort,0
DW 0,640,138,256,%0000000000100000,0,QuitConfirmWin.Abort,0
DW 0x8000
.EmptyTab: DW 0,640, 0,256,%0000000000000000,0,InputLine.InputLineExitCancel,0
DW 0x8000

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 14.08.2025 savelij
; LAST UPDATE: 07.09.2025 savelij
;[]==========================================================[]
MarkFileR LD A,(IY+PANEL.FILES_ALL)
@ -15,20 +15,8 @@ MarkFileR LD A,(IY+PANEL.FILES_ALL)
LD A,(RAMPAGES.RIGHTPANEL)
.L1
SETPORT WINSP.CPU3,,0
LD L,(IY+PANEL.FIRST_FILE)
LD H,(IY+PANEL.FIRST_FILE + 1)
LD E,(IY+PANEL.CURR_FILE)
LD D,(IY+PANEL.CURR_FILE + 1)
ADD HL,DE
ADD HL,HL ; *2
ADD HL,HL ; *4
ADD HL,HL ; *8
LD E,L
LD D,H
ADD HL,HL ; *16
ADD HL,DE ; *18
SET 6,H
SET 7,H ; | 0xC000
LD A,HIGH (CPU3)
CALL GET_HANDLE_ADR
LD E,(HL) ; FileHDR.Flag
POP AF
SETPORT WINSP.CPU3,,0
@ -64,20 +52,8 @@ UnSelectFile: LD IXL,0x00
.L2
SETPORT WINSP.CPU3,,0
SETPORT WINSP.Y_PORT,0xC0
LD L,(IY+PANEL.FIRST_FILE)
LD H,(IY+PANEL.FIRST_FILE + 1)
LD E,(IY+PANEL.CURR_FILE)
LD D,(IY+PANEL.CURR_FILE + 1)
ADD HL,DE
ADD HL,HL ; *2
ADD HL,HL ; *4
ADD HL,HL ; *8
LD E,L
LD D,H
ADD HL,HL ; *16
ADD HL,DE ; *18 - FileHDR.SIZE
SET 6,H
SET 7,H ; | 0xC000
LD A,HIGH (CPU3)
CALL GET_HANDLE_ADR
PUSH HL
LD DE,FileHDR.Attr
ADD HL,DE
@ -85,9 +61,13 @@ UnSelectFile: LD IXL,0x00
POP HL
BIT DIR.B_Dir,C ; íâ® ¤¨à ?
IF MARK_DIR
CALL NZ,CountingDirR ; ¨§¬¥à¥­¨¥ à §¬¥à  ¤¨àë
PUSH HL
PUSH BC
CALL NZ,RESIDENT.CalcDirSize ; ¨§¬¥à¥­¨¥ à §¬¥à  ¤¨àë
POP BC
POP HL
ELSE
JR NZ,.MrFile1 ; ¤¨à¥ª®à¨¨ ª®¯¨à®¢ âì ­¥ 㬥¥¬, ⮫쪮 ä ©«ë
JR NZ,.MrFile1 ; ¤¨à¥ªâ®à¨¨ ª®¯¨à®¢ âì ­¥ 㬥¥¬, ⮫쪮 ä ©«ë
ENDIF
; íâ® ä ©«
LD B,(HL) ; áâ à®¥ á®áâ®ï­¨¥ ¯®¬¥âª¨ ä ©« 
@ -98,10 +78,10 @@ UnSelectFile: LD IXL,0x00
PUSH BC
LD BC,FileHDR.SIZE
LDIR
IF MARK_DIR
BIT DIR.B_Dir,A ; ä ©« ¨«¨ ¤¨à 
JR Z,.L8
IF MARK_DIR
; ª®¯¨à㥬 à §¬¥à ¢ ¡ ©â å ¨§ à §¬¥à  ¤¨àë
; ª®¯¨à㥬 à §¬¥à ¢ ¡ ©â å ¢ à §¬¥à ¤¨àë
LD HL,JUMPS.FILES_BYTES
LD DE,WorkBuffer + FileHDR.SizeBytes
LD BC,DWORD
@ -467,14 +447,14 @@ SMask21 LD (DE),A
SelectAllR: CALL ResInvert
SelectAllRN: LD HL,SetInvert
PUSH HL
LD A,(IY+PANEL.FILES_ALL)
OR (IY+PANEL.FILES_ALL + 1)
LD A,(IY + PANEL.FILES_ALL)
OR (IY + PANEL.FILES_ALL + 1)
RET Z
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
RET NZ
GETPORT WINSP.CPU3
PUSH AF
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD A,(RAMPAGES.LEFTPANEL)
JR Z,.L1
LD A,(RAMPAGES.RIGHTPANEL)
@ -496,6 +476,8 @@ SelectAllRN: LD HL,SetInvert
EX AF,AF' ; [ ] fat32
.loop: BIT DIR.B_Dir,(IX + FileHDR.Attr) ;!HARDCODE DIRECTORY
JR NZ,.SelAll1
; ¬ àª¨à®¢ª  ⮫쪮 ä ©«®¢
PUSH BC
SET FileHDR.B_MARK,(IX + FileHDR.Flag)
LD C,(IX + FileHDR.SizeBytes)
LD B,(IX + FileHDR.SizeBytes + 1)
@ -511,7 +493,8 @@ SelectAllRN: LD HL,SetInvert
EXX
INC HL
EXX
LD BC,FileHDR.SIZE
; LD BC,FileHDR.SIZE
POP BC
.SelAll1: ADD IX,BC
LD A,(IX + FileHDR.Name)
OR A
@ -534,7 +517,7 @@ SelectAllRN: LD HL,SetInvert
LD (IY+PANEL.BYTES_MARK + 3),D
; [ ] FAT32
EX AF,AF'
LD (IY+PANEL.BYTES_MARK_H),A
LD (IY + PANEL.BYTES_MARK_H),A
CALL PrintDIR
JP PrnFileInfo
@ -542,13 +525,13 @@ SelectAllRN: LD HL,SetInvert
UnSelectAllR: CALL ResInvert
UnSelectAllRN: LD HL,SetInvert
PUSH HL
LD A,(IY+PANEL.FILES_ALL)
OR (IY+PANEL.FILES_ALL + 1)
LD A,(IY + PANEL.FILES_ALL)
OR (IY + PANEL.FILES_ALL + 1)
RET Z
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
RET NZ
LD A,(IY+PANEL.FILES_MARK)
OR (IY+PANEL.FILES_MARK + 1)
LD A,(IY + PANEL.FILES_MARK)
OR (IY + PANEL.FILES_MARK + 1)
RET Z
PUSH IY
POP HL
@ -560,7 +543,7 @@ UnSelectAllRN: LD HL,SetInvert
DJNZ .L2
GETPORT WINSP.CPU3
PUSH AF
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG)
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD A,(RAMPAGES.LEFTPANEL)
JR Z,.L1
LD A,(RAMPAGES.RIGHTPANEL)
@ -678,619 +661,3 @@ SUB_SIZE: EX AF,AF' ; [ ] fat32
EXX
EX AF,AF'
RET
IF MARK_DIR
BUF_MARKDIR
.FILES_MASK DZ "*.*" ; ¬ áª  ä ©«®¢
.RET_DIR DZ ".. " ; ¤«ï ¢ë室  ¨§ ¤¨à¥ªâ®à¨¨
.DIR_NAME DZ " " ; ¨¬ï ⥪ã饩 ¤¨à¥ªâ®à¨¨
; ª®¯¨à®¢ ­¨¥ ¤¨à¥ªâ®à¨¨
CopyDirR PUSH IX
PUSH IY
GETPORT WINSP.CPU3
PUSH AF
LD A,(RAMPAGES.FLX)
SETPORT WINSP.CPU3,,0
.EXIT POP AF
SETPORT WINSP.CPU3,,0
POP IY
POP IX
RET
; ¤®¡ ¢«¥­¨¥ ¨¬¥­¨ ¤¨à¥ªâ®à¨¨ ¢ ᯨ᮪ ¨/¨«¨ ¢å®¤/¢ë室
Add2ListDirR
PUSH IX
PUSH IY
GETPORT WINSP.CPU3
PUSH AF
LD A,(RAMPAGES.FLX)
SETPORT WINSP.CPU3,,0
PUSH IX
POP DE
LD HL,FileHDR.Name
ADD HL,DE ; ᬥ饭¨¥ ¤® ¨¬¥­¨ ¢ ®¯¨á â¥«¥
LD DE,BUF_MARKDIR.DIR_NAME
PUSH DE
LD BC,FileHDR.Name_Size
LDIR ; § ¡à «¨ ¨¬ï ¤¨àë
EX DE,HL
CALL .CUTOFFSPACES ; ®âá¥ç¥­¨¥ ¯à®¡¥«®¢
; ¢ë室
.EXIT POP AF
SETPORT WINSP.CPU3,,0
POP IY
POP IX
RET
; ®âá¥ç¥­¨¥ ¯à®¡¥«®¢ ¢ ¨¬¥­¨
.CUTOFFSPACES LD A,' '
.COS2 DEC HL
CP (HL)
JR Z,.COS2
INC HL
LD (HL),0
RET
; ¤®¡ ¢«¥­¨¥ ¨¬¥­¨ ¤¨àë ".." ¤«ï ¢ë室  ¢ ¯à¥¤ë¤ãéãî ¤¨àã
.ADD_2DOT PUSH HL
LD HL,BUF_MARKDIR.RET_DIR
LD DE,(BUFFERS.CURR_DIRNAME)
LD BC,FFIRST.Name_Size
LDIR
LD (BUFFERS.CURR_DIRNAME),DE
POP HL
RET
; ¤®¡ ¢«¥­¨¥ ¨¬¥­¨ ¢ áâப㠯ãâ¨
; HL - ªã¤  ¤®¡ ¢«ïâì (墮áâ ⥪ã饣® ¯ãâ¨)
; DE - ®âªã¤  ¨¬ï ¡à âì
.ADDNAME2PATH CALL .CHECK_BSLASH
LD (HL),'\\'
INC HL
EX DE,HL
; ª®¯¨à®¢ ­¨¥ ¨¬¥­¨ ¨§ ¡ãä¥à 
.COPYNAME2PATH XOR A
.CNP2 CP (HL)
JR Z,.CNP1
LDI
JR .CNP2
.CNP1 LD (DE),A
RET
; ¯à®¢¥àª  ­  BACKSLASH
.CHECK_BSLASH DEC HL
LD A,(HL)
CP '\\'
RET Z
INC HL
RET
; ¯®¤áç¥â ¢ ¡ ©â å à §¬¥à  ®â¬¥ç¥­­®© ¤¨à¥ªâ®à¨¨
; IX -  ¤à¥á ®¯¨á â¥«ï ¤¨àë ¢ áâà ­¨æ¥ ¯ ­¥«¨ ª®â®àãî ¬¥àïâì
CountingDirR PUSH IX
PUSH IY
GETPORT WINSP.CPU3
PUSH AF ; ⥪ã騩 ­®¬¥à áâà ­¨æë
PUSH IX
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD A,(RAMPAGES.LEFTPANEL)
JR Z,.L1
LD A,(RAMPAGES.RIGHTPANEL)
.L1 ; ¢ª«îç ¥¬ ¯ £ã á ¤¨à¥ªâ®à¨¥© ⥪ã饩 ¯ ­¥«¨
SETPORT WINSP.CPU3,,0
XOR A
LD H,A
LD L,A
LD IXH,A ; ®¡­ã«¥­¨¥ ã஢­ï ¢å®¦¤¥­¨ï ¢ ¤¨àë
LD (JUMPS.FILES_BYTES),HL
LD (JUMPS.FILES_BYTES + 2),HL ; ®¡­ã«¥­¨¥ à §¬¥à  ¤¨àë
LD (JUMPS.FILES_COUNT),HL ; ®¡­ã«¥­¨¥ ª®«¨ç¥á⢠ ä ©«®¢
LD HL,CPU3
LD (BUFFERS.CURR_DIRNAME),HL
; á®åà ­¥­¨¥ ⥪ã饣® ¯ã⨠¤«ï ¢®§¢à â 
SPDSS DSSF.CURDISK
LD HL,BUFFERS.OLDPATH ; á®åà ­¥­ë© ¯ãâì ¤«ï ¢®§¢à â 
ADD A,'A'
LD (HL),A
INC HL
LD (HL),':'
INC HL
SPDSS DSSF.CURDIR
POP DE
JP C,.END_COUNT
; ¢å®¤ ¢ ¤¨à¥ªâ®à¨î
LD HL,FileHDR.Name
ADD HL,DE
LD DE,BUF_MARKDIR.DIR_NAME
PUSH DE
LD BC,FileHDR.Name_Size
LDIR ; § ¡à «¨ ¨¬ï ¤¨àë ¤«ï ¨§¬¥à¥­¨ï
LD A,(RAMPAGES.FLX)
SETPORT WINSP.CPU3,,0
CALL .ADD_2DOT ; ¤«ï ¢®§¢à â  ¢ ¯à¥¤ë¤ãéãî ¤¨àã
POP HL
LD DE,(BUFFERS.CURR_DIRNAME)
LD BC,FileHDR.Name_Size
LDIR ; ¨¬ï ¤¨àë ¤«ï ¢å®¤ 
LD (BUFFERS.CURR_DIRNAME),DE
XOR A
LD (DE),A
CALL .SET_PATH ; ãáâ ­®¢ª  ⥪ã饣® ¯ãâ¨
INC IXH ; á«¥¤ãî騩 ã஢¥­ì ¤¨àë
.CONTINUE CALL .ADD_2DOT ; ¤«ï ¢®§¢à â  ¢ ¯à¥¤ë¤ãéãî ¤¨àã
CALL .COUNT_FILES
LD A,IXL
AND A ; §¤¥áì ¤¨àë ¥áâì?
JR Z,.PREV_DIR ; ¤¨àë ­¥ ­ ©¤¥­ë
CALL .SET_PATH ; ¢å®¤ ¢ ¤¨àã ¨§ ᯨ᪠
INC IXH ; á«¥¤ãî騩 ã஢¥­ì ¤¨àë
JR .CONTINUE
; ¢ë室 ¢ ¯à¥¤ë¤ãéãî ¤¨àã
.PREV_DIR CALL .OUT_DIR
LD A,IXH ; ã஢¥­ì ¤¨àë?
AND A
JR Z,.END_COUNT
CALL .GET_NAME
CALL .GET_NAME
LD HL,(BUFFERS.CURR_DIRNAME)
LD DE,-FileHDR.Name_Size
ADD HL,DE
LD A,(HL)
CP '.'
JR Z,.PREV_DIR
CALL .SET_PATH
INC IXH ; á«¥¤ãî騩 ã஢¥­ì ¤¨àë
JR .CONTINUE
; ¢®§¢à â ⥪ã饣® ¯ãâ¨
.END_COUNT POP AF
SETPORT WINSP.CPU3,,0
LD HL,BUFFERS.OLDPATH ; á®åà ­¥­ë© ¯ãâì ¤«ï ¢®§¢à â 
SPDSS DSSF.CHDIR
POP IY
POP IX
RET
; ¢ë室 ¢ ¯à¥¤ë¤ãéãî ¤¨àã
.GET_NAME LD HL,(BUFFERS.CURR_DIRNAME)
LD (HL),0
LD DE,-FileHDR.Name_Size
ADD HL,DE
LD (BUFFERS.CURR_DIRNAME),HL
RET
.OUT_DIR DEC IXH ; ¯à¥¤ë¤ã騩 ã஢¥­ì ¤¨àë
LD HL,BUF_MARKDIR.RET_DIR
JR .SP1
; ¯¥à¥å®¤ ¢ ¤¨àã ¨§ ᯨ᪠
.SET_PATH LD HL,(BUFFERS.CURR_DIRNAME)
LD DE,-FileHDR.Name_Size
ADD HL,DE
LD DE,BUF_MARKDIR.DIR_NAME
PUSH DE
LD BC,FFIRST.Name_Size
LDIR
POP HL
.SP1 PUSH IX
SPDSS DSSF.CHDIR
SPDSS DSSF.CURDISK
LD HL,BUFFERS.CURRPATHSRC
ADD A,'A'
LD (HL),A
INC HL
LD (HL),':'
INC HL
SPDSS DSSF.CURDIR
POP IX
RET
; ¤®¡ ¢«¥­¨¥ ¨¬¥­¨ ¤¨àë ".." ¤«ï ¢ë室  ¢ ¯à¥¤ë¤ãéãî ¤¨àã
.ADD_2DOT PUSH HL
LD HL,BUF_MARKDIR.RET_DIR
LD DE,(BUFFERS.CURR_DIRNAME)
LD BC,FFIRST.Name_Size
LDIR
LD (BUFFERS.CURR_DIRNAME),DE
POP HL
RET
; ¯¥à¥áç¨â뢠¥¬ à §¬¥àë ä ©«®¢ ¢ ⥪ã饩 ¤¨à¥ªâ®à¨¨
; ¨ ¢ë£à¥¡ ¥¬ ¨¬¥­  ¤¨à ¢ â ¡«¨çªã
.COUNT_FILES LD IXL,0 ; ª®«¨ç¥á⢮ ¤¨à ¢ ⥪ã饩 ¤¨à¥
CALL .F_FIRST ; ¨é¥¬ ¯¥à¢ë© ®¯¨á â¥«ì
RET C ; ¢ë室 ¥á«¨ ­¨ç¥£® ­¥ ­ ©¤¥­®
.L2 LD DE,FFIRST.Attr
ADD HL,DE
LD A,(HL)
SBC HL,DE
BIT DIR.B_Dir,A
JR Z,.ADD_FILES_BYTES
; ¤«ï ¤¨àë ª®¯¨à㥬 ¨¬ï ¢ â ¡«¨çªã
LD DE,FFIRST.Name
ADD HL,DE
LD A,(HL)
CP '.' ; . ¨ .. ¯à®¯ã᪠¥¬
JR Z,.L5
; ¤«ï ¤¨àë ª®¯¨à㥬 ¨¬ï ¢ â ¡«¨çªã
LD DE,(BUFFERS.CURR_DIRNAME)
LD BC,FFIRST.Name_Size
LDIR
LD (BUFFERS.CURR_DIRNAME),DE
INC IXL
JR .L5
; ¤«ï ä ©«  ¤®¡ ¢«ï¥¬ ¤«¨­ã
.ADD_FILES_BYTES:
LD DE,FFIRST.FileSize
ADD HL,DE
CALL GET_DWORD ; ¢§ïâì à §¬¥à ¨§ ®¯¨á â¥«ï
LD HL,JUMPS.FILES_BYTES
CALL HLPBCDE ; ¤®¡ ¢¨«¨ ª ⥪ã饬ã à §¬¥àã
LD HL,(JUMPS.FILES_COUNT)
INC HL
LD (JUMPS.FILES_COUNT),HL ; ¨­ªà¥¬¥­â ª®«¨ç¥á⢠ ä ©«®¢
; ¨é¥¬ á«¥¤ãî騩 ®¯¨á â¥«ì
.L5 CALL .F_NEXT
JR NC,.L2
RET
; ¯®¨áª ¯¥à¢®£® ®¯¨á â¥«ï
.F_FIRST LD A, DIR.M_Archive + \
DIR.M_System + \
DIR.M_Hidden + \
DIR.M_ReadOnly + \
DIR.M_Dir
.FFF1 LD HL,BUF_MARKDIR.FILES_MASK
LD DE,BUFFERS.OLDPATH
PUSH DE
PUSH IX
SPDSS DSSF.F_FIRST,0
POP IX
POP HL
RET
; ¯®¨áª á«¥¤ãî饣® ®¯¨á â¥«ï
.F_NEXT LD DE,BUFFERS.OLDPATH
PUSH DE
PUSH IX
SPDSS DSSF.F_NEXT
POP IX
POP HL
RET
; ¨­¨æ¨ «¨§ æ¨ï ª®¯¨à®¢ ­¨ï ¤¨à¥ªâ®à¨¨ á ᮤ¥à¦¨¬ë¬
InitCopyDirsR PUSH IX
PUSH IY
GETPORT WINSP.CPU3
PUSH AF
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD HL,LeftPanel ; ¤«ï ¯ã⨠®âªã¤  ª®¯¨à®¢ âì
LD DE,RightPanel ; ¤«ï ¯ã⨠ªã¤  ª®¯¨à®¢ âì
LD A,(RAMPAGES.LEFTPANEL) ; ¨§ ª ª®© áâà ­¨æë ¯ ­¥«¨ ¡à âì ¯ãâì
JR Z,.L1
LD HL,RightPanel ; ¤«ï ¯ã⨠®âªã¤  ª®¯¨à®¢ âì
LD DE,LeftPanel ; ¤«ï ¯ã⨠ªã¤  ª®¯¨à®¢ âì
LD A,(RAMPAGES.RIGHTPANEL) ; ¨§ ª ª®© áâà ­¨æë ¯ ­¥«¨ ¡à âì ¯ãâì
.L1
; ¢ª«îç ¥¬ ¯ £ã á ¤¨à¥ªâ®à¨¥© ⥪ã饩 ¯ ­¥«¨
PUSH HL
SETPORT WINSP.CPU3,,0
LD HL,PANEL.CURR_PATH
ADD HL,DE ; ®âªã¤  ¯ãâì ¯à¨¥¬­¨ª  ¢§ïâì
LD DE,BUFFERS.CURRPATHDST ; ¡ãä¥à ¯ã⨠¯à¨¥¬­¨ª 
CALL .COPYNAME2PATH
LD (BUFFERS.ENDPATHDST),DE ;  ¤à¥á 墮áâ  ¯ã⨠¯à¨¥¬­¨ª 
; ª®¯¨à®¢ ­¨¥ ¨¬¥­¨ ¤¨à¥ªâ®à¨¨ ¤«ï ª®¯¨à®¢ ­¨ï
PUSH IX
POP DE
LD HL,FileHDR.Name
ADD HL,DE
LD DE,BUF_MARKDIR.DIR_NAME
LD BC,FileHDR.Name_Size
LDIR ; § ¡à «¨ ¨¬ï ¤¨àë ¤«ï ª®¯¨à®¢ ­¨ï
EX DE,HL
CALL .CUTOFFSPACES ; ®âá¥ç¥­¨¥ ¯à®¡¥«®¢
; ¯¥à¥­®á ⥪ã饣® ¯ã⨠¨áâ®ç­¨ª 
POP DE
LD HL,PANEL.CURR_PATH
ADD HL,DE ; ®âªã¤  ¯ãâì ¯à¨¥¬­¨ª  ¢§ïâì
LD DE,BUFFERS.CURRPATHSRC
CALL .COPYNAME2PATH ; ᪮¯¨à®¢ «¨ ¯ãâì ¨áâ®ç­¨ª 
LD (BUFFERS.ENDPATHSRC),DE ;  ¤à¥á 墮áâ  ¯ã⨠¨áâ®ç­¨ª 
; ¤®¡ ¢«¥­¨¥ ¨¬¥­¨ ¤¨àë ¤«ï ª®¯¨à®¢ ­¨ï ¢ ¯ãâì ¨áâ®ç­¨ª 
LD HL,(BUFFERS.ENDPATHSRC)
LD DE,BUF_MARKDIR.DIR_NAME
CALL .ADDNAME2PATH
LD (BUFFERS.ENDPATHSRC),DE ;  ¤à¥á 墮áâ  ¯ã⨠¨áâ®ç­¨ª 
; ¤®¡ ¢«¥­¨¥ ¨¬¥­¨ ¤¨àë ¤«ï ª®¯¨à®¢ ­¨ï ¢ ¯ãâì ¯à¨¥¬­¨ª 
LD HL,(BUFFERS.ENDPATHDST)
LD DE,BUF_MARKDIR.DIR_NAME
CALL .ADDNAME2PATH
LD (BUFFERS.ENDPATHDST),DE
XOR A
LD (BUFFERS.LEVEL_DIR),A
; ¢ë室
POP AF
SETPORT WINSP.CPU3,,0
POP IY
POP IX
RET
; ¤®¡ ¢«¥­¨¥ ¨¬¥­¨ ¢ áâப㠯ãâ¨
; HL - ªã¤  ¤®¡ ¢«ïâì (墮áâ ⥪ã饣® ¯ãâ¨)
; DE - ®âªã¤  ¨¬ï ¡à âì
.ADDNAME2PATH CALL .CHECK_BSLASH
LD (HL),'\\'
INC HL
EX DE,HL
; ª®¯¨à®¢ ­¨¥ ¨¬¥­¨ ¨§ ¡ãä¥à 
.COPYNAME2PATH XOR A
.CNP2 CP (HL)
JR Z,.CNP1
LDI
JR .CNP2
.CNP1 LD (DE),A
RET
;.NAME2DIRNAME
; ¯à®¢¥àª  ­  BACKSLASH
.CHECK_BSLASH DEC HL
LD A,(HL)
CP '\\'
RET Z
INC HL
RET
; ®âá¥ç¥­¨¥ ¯à®¡¥«®¢ ¢ ¨¬¥­¨
.CUTOFFSPACES LD A,' '
.COS2 DEC HL
CP (HL)
JR Z,.COS2
INC HL
LD (HL),0
RET
; á®§¤ ­¨¥ ¯ ¯®ª ­  ¯à¨¥¬­¨ª¥
; HL -  ¤à¥á ®¯¨á â¥«ï ¤¨àë ¢ áâà ­¨æ¥ ¯ ­¥«¨ ª®â®àãî ª®¯¨à®¢ âì
MkdirsDstRR PUSH IX
PUSH IY
GETPORT WINSP.CPU3
PUSH AF
LD (.OLDSP),SP
PUSH HL
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD DE,RightPanel ; ¤«ï ¯ã⨠ªã¤  ª®¯¨à®¢ âì
LD A,(RAMPAGES.LEFTPANEL) ; ¨§ ª ª®© áâà ­¨æë ¯ ­¥«¨ ¡à âì ¯ãâì
JR Z,.L1
LD DE,LeftPanel ; ¤«ï ¯ã⨠ªã¤  ª®¯¨à®¢ âì
LD A,(RAMPAGES.RIGHTPANEL) ; ¨§ ª ª®© áâà ­¨æë ¯ ­¥«¨ ¡à âì ¯ãâì
.L1
; ¢ª«îç ¥¬ ¯ £ã á ¤¨à¥ªâ®à¨¥© ⥪ã饩 ¯ ­¥«¨
SETPORT WINSP.CPU3,,0
LD HL,PANEL.CURR_PATH
ADD HL,DE ; ®âªã¤  ¯ãâì ¯à¨¥¬­¨ª  ¢§ïâì
LD DE,BUFFERS.CURRPATHDST ; ¡ãä¥à ¯ã⨠¯à¨¥¬­¨ª 
CALL .COPYNAME2PATH
LD (BUFFERS.ENDPATHDST),DE ;  ¤à¥á 墮áâ  ¯ã⨠¯à¨¥¬­¨ª 
; á®åà ­¥­¨¥ ⥪ã饣® ¯ã⨠¤«ï ¢®§¢à â 
SPDSS DSSF.CURDISK
LD HL,BUFFERS.OLDPATH ; á®åà ­¥­­ë© ¯ãâì ¤«ï ¢®§¢à â 
ADD A,'A'
LD (HL),A
INC HL
LD (HL),':'
INC HL
SPDSS DSSF.CURDIR
POP DE ;  ¤à¥á ®¯¨á â¥«ï ¤¨àë ¢ áâà ­¨æ¥ ¯ ­¥«¨ ª®â®àãî ª®¯¨à®¢ âì
; JP C,ERROR ;CountingDirR.END_COUNT
; ª®¯¨à®¢ ­¨¥ ¨¬¥­¨ ¤¨à¥ªâ®à¨¨ ¤«ï ª®¯¨à®¢ ­¨ï
LD HL,FileHDR.Name
ADD HL,DE
LD DE,BUF_MARKDIR.DIR_NAME
LD BC,FileHDR.Name_Size
LDIR ; § ¡à «¨ ¨¬ï ¤¨àë ¤«ï ª®¯¨à®¢ ­¨ï
EX DE,HL
CALL .CUTOFFSPACES ; ®âá¥ç¥­¨¥ ¯à®¡¥«®¢
; ¯¥à¥­®á ⥪ã饣® ¯ã⨠¨áâ®ç­¨ª 
LD HL,BUFFERS.OLDPATH
LD DE,BUFFERS.CURRPATHSRC
CALL .COPYNAME2PATH ; ᪮¯¨à®¢ «¨ ¯ãâì ¨áâ®ç­¨ª 
LD (BUFFERS.ENDPATHSRC),DE ;  ¤à¥á 墮áâ  ¯ã⨠¨áâ®ç­¨ª 
; ¤®¡ ¢«¥­¨¥ ¨¬¥­¨ ¤¨àë ¤«ï ª®¯¨à®¢ ­¨ï ¢ ¯ãâì ¨áâ®ç­¨ª 
LD HL,(BUFFERS.ENDPATHSRC)
LD DE,BUF_MARKDIR.DIR_NAME
CALL .ADDNAME2PATH
LD (BUFFERS.ENDPATHSRC),DE ;  ¤à¥á 墮áâ  ¯ã⨠¨áâ®ç­¨ª 
; ¤®¡ ¢«¥­¨¥ ¨¬¥­¨ ¤¨àë ¤«ï ª®¯¨à®¢ ­¨ï ¢ ¯ãâì ¯à¨¥¬­¨ª 
LD HL,(BUFFERS.ENDPATHDST)
LD DE,BUF_MARKDIR.DIR_NAME
CALL .ADDNAME2PATH
LD (BUFFERS.ENDPATHDST),DE
; á®§¤ ­¨¥ ¤¨àë ¢ ¯à¨¥¬­¨ª¥
LD HL,BUFFERS.CURRPATHDST
SPDSS DSSF.MKDIR ; á®§¤ «¨ ¤¨à㠯ਥ¬­¨ª 
JR NC,.L3
CP ERR_DSS.DIR_EXISTS ; ¥á«¨ ¤¨à  㦥 ¥áâì ¨£­®à¨¬ ®è¨¡ªã
; JP C,ERROR
.L3
; TODO 横«¨ç¥áª¨© ¯®¨áª ¤¨à¥ªâ®à¨© á á®§¤ ­¨¥¬ ­  ¯à¨¥¬­¨ª¥
LD HL,BUFFERS.CURRPATHSRC
SPDSS DSSF.CHDIR ; ¢å®¤ ¢ ¤¨àã ¨áâ®ç­¨ª 
CALL .FINDFIRSTSRCDIR ; ¯®¨áª ¯¥à¢®£® ®¯¨á â¥«ï
JP C,.ENDCOPY ; ¡®«ìè¥ ¤¨à¥ªâ®à¨© ­¥â, ¢ë室¨¬
; ¯®¨áª ¤¨à¥ªâ®à¨©
.L2 CALL .FINDNEXTSRCDIR ; ¯®¨áª á«¥¤ãî饣® ®¯¨á â¥«ï
JP C,.ENDFINDNEXT ; ¯®¨áª ®ª®­ç¥­?
LD HL,BUFFERS.FINDBUF + FFIRST.Name
LD A,(HL)
CP '.' ; ®¯¨á â¥«¨ "." ¨ ".." ¨£­®à¨¬
JR Z,.L2
LD DE,.TMPNAMEDIR
PUSH DE
CALL .COPYNAME2PATH
LD HL,(BUFFERS.ENDPATHDST)
POP DE
CALL .ADDNAME2PATH
LD HL,BUFFERS.CURRPATHDST
SPDSS DSSF.MKDIR ; á®§¤ ¥¬ ¤¨àã ­  ¯à¨¥¬­¨ª¥
; JP C,ERROR
LD HL,BUFFERS.CURRPATHSRC
SPDSS DSSF.CHDIR ; ¢®§¢à é ¥¬ ¯ãâì ­  ¨áâ®ç­¨ª
; JP C,ERROR
JR .L2 ; ¨é¥¬ á«¥¤ãî騩
; § ¢¥à襭¨¥ ¨ ¢ë室
JP CountingDirR.END_COUNT;RestoreDIR
; LD A,(RAMPAGES.FLX)
; SETPORT WINSP.CPU3,,0
.ENDFINDNEXT
JR $
; ¯®¨áª ¯¥à¢®© ¤¨àë ¢ ⥪ã饩 ¯®¤¤¨à¥ªâ®à¨¨
.FINDFIRSTSRCDIR
LD HL,BUF_MARKDIR.FILES_MASK
LD DE,BUFFERS.FINDBUF
SPDSS DSSF.F_FIRST,1,DIR.M_Dir
RET
.FINDNEXTSRCDIR
LD DE,BUFFERS.FINDBUF
SPDSS DSSF.F_NEXT
RET
; ¤®¡ ¢«¥­¨¥ ¨¬¥­¨ ¢ áâப㠯ãâ¨
; HL - ªã¤  ¤®¡ ¢«ïâì (墮áâ ⥪ã饣® ¯ãâ¨)
; DE - ®âªã¤  ¨¬ï ¡à âì
.ADDNAME2PATH CALL .CHECK_BSLASH
LD (HL),'\\'
INC HL
EX DE,HL
; ª®¯¨à®¢ ­¨¥ ¨¬¥­¨ ¨§ ¡ãä¥à 
.COPYNAME2PATH XOR A
.CNP2 CP (HL)
JR Z,.CNP1
LDI
JR .CNP2
.CNP1 LD (DE),A
RET
;.NAME2DIRNAME
; ¯à®¢¥àª  ­  BACKSLASH
.CHECK_BSLASH DEC HL
LD A,(HL)
CP '\\'
RET Z
INC HL
RET
; ®âá¥ç¥­¨¥ ¯à®¡¥«®¢ ¢ ¨¬¥­¨
.CUTOFFSPACES LD A,' '
.COS2 DEC HL
CP (HL)
JR Z,.COS2
INC HL
LD (HL),0
RET
; ®âá¥ç¥­¨¥ ¨¬¥­¨ ¤¨àë ¢ áâப¥ ¯ãâ¨
.DELNAME2PATH LD A,'\\'
.COB1 DEC HL
CP (HL)
JR NZ,.COB1
LD (HL),0
RET
; ¢ë室 ¨§ ª®¯¨à®¢ ­¨ï ¤¨à¥ªâ®à¨©
.ENDCOPY LD SP,0
.OLDSP EQU $-2
LD HL,BUFFERS.OLDPATH
SPDSS DSSF.CHDIR
POP AF
SETPORT WINSP.CPU3,,0
POP IY
POP IX
RET
;.ENDPATHSRC DW 0 ;  ¤à¥á 墮áâ  ¯ã⨠¨áâ®ç­¨ª 
;.ENDPATHDST DW 0 ;  ¤à¥á 墮áâ  ¯ã⨠¯à¨¥¬­¨ª 
.TMPNAMEDIR DB 8 DUP 0
ENDIF
; C:/DEV/
; /CAMEL401
; /DEMON
; /MASM80
; /OASM028
; /SOLID
; /DOC
; /EXAMPLES
; /INCLUDE
; /SRC
; /CLIB
; /BUILD
; /SPFORTH
; /F83
; /F99
; /TASM
; DEV
; ..
; CAMEL401
; DEMON
; MASM80
; OASM028
; SOLID
; SPFORTH
; TASM
; ..
; DOC
; EXAMPLES
; INCLUDE
; SRC
; ..
; CLIB
; ..
; BUILD
; ..
; F83
; F99
;DEV/CAMEL401/ 25
;DEV/DEMON/ 2
;DEV/MASM/ 10
;DEV/OASM28/ 5
;DEV/SOLID/ 8
;DEV/SOLID/DOC/ 13
;DEV/SOLID/EXAMPLES/ 36
;DEV/SOLID/INCLUDE/ 16
;DEV/SOLID/SRC/CLIB/ 12
;DEV/SOLID/SRC/CLIB/BUILD/ 8
;DEV/SPFORTH/F83/ 4
;DEV/SPFORTH/F99/ 3
;DEV/TASM/ 6
;-----------------------------------
; 0x94 148
; £¥­¥à æ¨ï ᯨ᪠ ¤«ï ª®¯¨à®¢ ­¨ï ¤¨à
; "." ¤«ï ¢ë室  ¢ ¯à¥¤ë¤ãéãî ¤¨àã
; 0 ª®­¥æ ᯨ᪠
; ¨¬¥­  ¤¨à ¯® 8 ᨬ¢®«®¢ (¬®¦­® ¨ 8.3) ⮫쪮 ¨¬¥­  ¡¥§ 0 ¢ ª®­æ¥ ¨¬¥­¨
; ¯à¨ ª®¯¨à®¢ ­¨¨ ­ ©¤¥­  ¤¨à 
; § ­¥á¥­¨¥ ¢ ¯ãâì ¨áâ®ç­¨ª  ¨¬¥­¨ ¤¨àë
; § ­¥á¥­¨¥ ¢ ¯ãâì ¯à¨¥¬­¨ª  ¨¬¥­¨ ¤¨àë
; § ­¥á¥­¨¥ ¢ ᯨ᮪ ".." ¤«ï ¢ë室 

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 14.08.2025 savelij
; LAST UPDATE: 02.09.2025 savelij
;[]==========================================================[]
VersionR
@ -57,21 +57,23 @@ FileInfoR LD A,(IY+PANEL.FILES_ALL)
LD A,(RAMPAGES.RIGHTPANEL)
.L1
SETPORT WINSP.CPU3,,0
LD L,(IY+PANEL.FIRST_FILE)
LD H,(IY+PANEL.FIRST_FILE + 1)
LD E,(IY+PANEL.CURR_FILE)
LD D,(IY+PANEL.CURR_FILE + 1)
ADD HL,DE
ADD HL,HL
ADD HL,HL
ADD HL,HL
LD E,L
LD D,H
ADD HL,HL
ADD HL,DE
LD A,H
OR 0xC0
LD H,A
; LD L,(IY+PANEL.FIRST_FILE)
; LD H,(IY+PANEL.FIRST_FILE + 1)
; LD E,(IY+PANEL.CURR_FILE)
; LD D,(IY+PANEL.CURR_FILE + 1)
; ADD HL,DE
; ADD HL,HL
; ADD HL,HL
; ADD HL,HL
; LD E,L
; LD D,H
; ADD HL,HL
; ADD HL,DE
; LD A,H
; OR 0xC0
; LD H,A
LD A,HIGH (CPU3)
CALL GET_HANDLE_ADR
LD DE,WorkBuffer
LD BC,0x0018
LDIR
@ -697,21 +699,23 @@ PrintFileR LD A,(IY+PANEL.FILES_ALL)
LD A,(RAMPAGES.RIGHTPANEL)
.L1
SETPORT WINSP.CPU3,,0
LD L,(IY+PANEL.FIRST_FILE)
LD H,(IY+PANEL.FIRST_FILE + 1)
LD E,(IY+PANEL.CURR_FILE)
LD D,(IY+PANEL.CURR_FILE + 1)
ADD HL,DE
ADD HL,HL
ADD HL,HL
ADD HL,HL
LD E,L
LD D,H
ADD HL,HL
ADD HL,DE
LD A,H
OR 0xC0
LD H,A
; LD L,(IY+PANEL.FIRST_FILE)
; LD H,(IY+PANEL.FIRST_FILE + 1)
; LD E,(IY+PANEL.CURR_FILE)
; LD D,(IY+PANEL.CURR_FILE + 1)
; ADD HL,DE
; ADD HL,HL
; ADD HL,HL
; ADD HL,HL
; LD E,L
; LD D,H
; ADD HL,HL
; ADD HL,DE
; LD A,H
; OR 0xC0
; LD H,A
LD A,HIGH (CPU3)
CALL GET_HANDLE_ADR
LD DE,WorkBuffer
LD BC,0x0018
LDIR
@ -955,3 +959,42 @@ PrnFileName: DB 13 DUP 0
PrnFileLen: DB 4 DUP 0
PrnMIndef: DB 0
PrnFHandle: DB 0
;[]==========================================================[]
QuitConfirmWin
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 208,88,224,50
W_FILL 4,2,216,10,COLORI.BLACK
W_TEXT 104,3,COLORI.WHITE,"Quit"
W_TEXT 28,19,COLORP.HIGHGRAY,"Do you want quit Flex Navigator ?"
W_BUTTON 32,32,72,14
W_TEXT 58,35,COLORP.HIGHGRAY,"Yes"
W_BUTTON 120,32,72,14
W_TEXT 150,35,COLORP.HIGHGRAY,"No"
W_END
.Loop LD IX,REZ3TAB.QuitTab
CALL CheckCoordsMouse
SPDSS DSSF.SCANKEY
JR Z,.Loop
LD A,B
OR A
JR NZ,.Loop
LD A,E
CP 0x1B
JR Z,.Abort
CP 0x0D
JR Z,.OK
RES 5,A
CP 'Y'
JR Z,.OK
CP 'N'
JR NZ,.Loop
.Abort
WINDOWCLOSE
SCF
RET
.OK
WINDOWCLOSE
OR A
RET

View File

@ -1,15 +1,15 @@
; LAST UPDATE: 13.08.2025 savelij
; LAST UPDATE: 15.08.2025 savelij
;[]==========================================================[]
InitExtention: LD HL,INIFILES.ExtName1
LD DE,BUFFERS.fn_ext
LD DE,REZ3_BUFFERS.fn_ext
CALL InitExt
LD HL,INIFILES.ExtName2
LD DE,BUFFERS.fnview_ext
LD DE,REZ3_BUFFERS.fnview_ext
CALL InitExt
LD HL,INIFILES.ExtName3
LD DE,BUFFERS.fnedit_ext
LD DE,REZ3_BUFFERS.fnedit_ext
;[]----------------------------------------------------------[]
InitExt: LD (.EXTdata),DE
SPDSS DSSF.OPEN,,1

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 14.08.2025 savelij
; LAST UPDATE: 15.08.2025 savelij
;[]==========================================================[]
; ”®à¬ â â ¡«¨æë
@ -74,3 +74,13 @@ REZ3TAB
;[]===============================================================[]
.PrintFTab: DW 284,356,128,142,%0000000000000001,0,StopPrint,0
DW 0x8000
;[]===============================================================[]
.QuitTab:
DW 240,312,120,134,%0000000000100001,0,QuitConfirmWin.OK,0
DW 328,400,120,134,%0000000000100001,0,QuitConfirmWin.Abort,0
DW 0,208, 0,256,%0000000000100000,0,QuitConfirmWin.Abort,0
DW 432,640, 0,256,%0000000000100000,0,QuitConfirmWin.Abort,0
DW 0,640, 0, 88,%0000000000100000,0,QuitConfirmWin.Abort,0
DW 0,640,138,256,%0000000000100000,0,QuitConfirmWin.Abort,0
DW 0x8000