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 * * ޝ¨á ­¨¥ 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 Š®«¨ç¥á⢮ ãáâனá⢠NUM_DEVICES 1 Š®«¨ç¥á⢮ ãáâனáâ¢
TreeFlag 1 ”« £ ¤¥à¥¢  ¤¨à¥ªâ®à¨© TreeFlag 1 ”« £ ¤¥à¥¢  ¤¨à¥ªâ®à¨©
@ -706,8 +706,8 @@ RAMPAGES
.RIGHTPANEL 1 ‘âà ­¨æ  ª â «®£  <20>à ¢®© ¯ ­¥«¨ .RIGHTPANEL 1 ‘âà ­¨æ  ª â «®£  <20>à ¢®© ¯ ­¥«¨
.BuffPg1 1 .BuffPg1 1
.BuffPg2 1 .BuffPg2 1
.BuffPg3 1 .BuffPg3 1 ¨á¯®«ì§ã¥âáï ª®¯¨à®¢é¨ª®¬ ä ©«®¢/¤¨à¥ªâ®à¨©
.BuffPg4 1 .BuffPg4 1 ¨á¯®«ì§ã¥âáï á®àâ¨à®¢ª®©, à ¡®â  á ¤¥à¥¢®¬ ¤¨à¥ªâ®à¨©
.BuffPgEnd 1 .BuffPgEnd 1 ¡ ©â 0xFF ¬ àª¥à ª®­æ  ᯨ᪠ áâà ­¨æ
.FILES_COUNT 2 ª®«¨ç¥á⢮ ¯®¬¥ç¥­­ëå ä ©«®¢ .FILES_COUNT 2 ª®«¨ç¥á⢮ ¯®¬¥ç¥­­ëå ä ©«®¢
.FILES_BYTES 5 à §¬¥à ¯®¬¥ç¥­­ëå ä ©«®¢ ¢ ¡ ©â å .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 FlexNavigator 1.16.03
- ¨á¯à ¢«¥­® ä®à¬¨à®¢ ­¨¥ ¯ã⨠¤® ¯ ¯ª¨ ¯« £¨­®¢.
- MISC ä㭪樨 ¯¥à¥­¥á¥­ë ¨§ 2 १¨¤¥­â  ¢ 3. - MISC ä㭪樨 ¯¥à¥­¥á¥­ë ¨§ 2 १¨¤¥­â  ¢ 3.
- ¯¥à¥à á¯à¥¤¥«¥­¨¥ TAB â ¡«¨æ. - ¯¥à¥à á¯à¥¤¥«¥­¨¥ TAB â ¡«¨æ.
- ¢ ®¯¨á ­¨¥ Flex Navigator API ¤®¡ ¢«¥­® ®¯¨á ­¨¥ £«®¡ «ì­ëå - ¢ ®¯¨á ­¨¥ Flex Navigator API ¤®¡ ¢«¥­® ®¯¨á ­¨¥ £«®¡ «ì­ëå

View File

@ -1,8 +1,11 @@
Flex navigator TODO: Flex navigator TODO:
[] ¢ ª®¯¨à®¢ ­¨¨ ä ©«®¢/¤¨à¥ªâ®à¨© ¤®¤¥« âì ®¡à ¡®âªã ®è¨¡®ª ¯à¨ á®§¤ ­¨¨ ¤¨à¥ªâ®à¨©.
[] ¢ ¯« £¨­¥ । ªâ®à  ¨á¯à ¢¨âì ­¥ á®åà ­¥­¨¥ ¢¢¥¤¥­­ë®© áâப¨ ¯à¨ ­ ¦ â¨¨¨ ä㭪樮­ «ì­ëå ª« ¢¨è ­¥ á¢ï§ ­­ëå á । ªâ¨à®¢ ­¨¥¬.
[] ¤«ï à ¡®âë ¢ ¤¥à¥¢®¬ ¤¨à¥ªâ®à¨© ã¡à âì ¯®¤¬¥­ã áâà ­¨æ ¢ ᯨ᪥ ¢ë¤ ­­ëå.
[] ¤®¡ ¢¨âì áâ५ª¨ ¢«¥¢®/¢¯à ¢® ¤«ï ¢ë¡®à  ¤¨áª®¢ ¥á«¨ ¡®«ìè¥ 10.
[] ¤®¡ ¢¨âì ¢ ­ áâனª¨  ¢â®¯®ª § ¨«¨ ¯® ENTER ¯à¨ ¯¥à¥¬¥é¥­¨¨ ¯® ¤¥à¥¢ã ª â «®£®¢ [] ¤®¡ ¢¨âì ¢ ­ áâனª¨  ¢â®¯®ª § ¨«¨ ¯® ENTER ¯à¨ ¯¥à¥¬¥é¥­¨¨ ¯® ¤¥à¥¢ã ª â «®£®¢
[] ¤®¡ ¢¨âì ¢ ­ áâனª¨ ¢ë¡®à ¬¥­ïâì «¨  ªâ¨¢­ãî ¯ ­¥«ì ¯à¨ ᬥ­¥ ¤¨áª  ­  ­¥  ªâ¨¢­®© ¯ ­¥«¨
[] ¯à¨ ¢ë¢®¤¥ ¤¥à¥¢  ª â «®£®¢ ᤥ« âì áªà®«« ¢«¥¢®/¢¯à ¢® ¥á«¨ ¤¥à¥¢® ­¥ ¢«¥§ ¥â ¯® £®à¨§®­â «¨ [] ¯à¨ ¢ë¢®¤¥ ¤¥à¥¢  ª â «®£®¢ ᤥ« âì áªà®«« ¢«¥¢®/¢¯à ¢® ¥á«¨ ¤¥à¥¢® ­¥ ¢«¥§ ¥â ¯® £®à¨§®­â «¨
[] ¯® ª­®¯ª¥ F6 ⮫쪮 ¯¥à¥¨¬¥­®¢ ­¨¥,   ¤®«¦­® ¡ëâì ¯¥à¥¨¬¥­®¢ ­¨¥/¯¥à¥¬¥é¥­¨¥ ä ©«  ¥á«¨ ­  ¯ ­¥«ïå à §­ë¥ ¯ã⨠[] ¯® ª­®¯ª¥ F6 ⮫쪮 ¯¥à¥¨¬¥­®¢ ­¨¥,   ¤®«¦­® ¡ëâì ¯¥à¥¨¬¥­®¢ ­¨¥/¯¥à¥¬¥é¥­¨¥ ä ©«  ¥á«¨ ­  ¯ ­¥«ïå à §­ë¥ ¯ãâ¨
[] ¯¥à¥¤¥« âì § å®à¤ª®¦¥­­ë¥ ª®®à¤¨­ âë, ¯¥à¥¤¥« âì ­  ¯à¨¢ï§ªã ª ª®®à¤¨­ â ¬ ®ª­  [] ¯¥à¥¤¥« âì § å®à¤ª®¦¥­­ë¥ ª®®à¤¨­ âë, ¯¥à¥¤¥« âì ­  ¯à¨¢ï§ªã ª ª®®à¤¨­ â ¬ ®ª­ 
@ -11,6 +14,7 @@ Flex navigator TODO:
[] ¯« £¨­ ¤«ï á®§¤ ­¨ï ä®à¬ ®ª®­ [] ¯« £¨­ ¤«ï á®§¤ ­¨ï ä®à¬ ®ª®­
[?] ¢ë§®¢ ¨ ¢§ ¨¬®¤¥©á⢨¥ ¯« £¨­  á ¯« £¨­®¬ [?] ¢ë§®¢ ¨ ¢§ ¨¬®¤¥©á⢨¥ ¯« £¨­  á ¯« £¨­®¬
[x] (¥áâì ¨§­ ç «ì­®) ¤®¡ ¢¨âì ¢ ­ áâனª¨ ¢ë¡®à ¬¥­ïâì «¨  ªâ¨¢­ãî ¯ ­¥«ì ¯à¨ ᬥ­¥ ¤¨áª  ­  ­¥  ªâ¨¢­®© ¯ ­¥«¨
[x] § £à㧪  FLX ¯« £¨­  ¯® ¨¬¥­¨ ¡¥§ § ¯ã᪠ [x] § £à㧪  FLX ¯« £¨­  ¯® ¨¬¥­¨ ¡¥§ § ¯ã᪠
[x] ¢¢®¤ ¢ ª®¬ ­¤­ãî áâப㠨 ­ ¦ â¨¥ ALT+F1/F2 (¢ë¡®à ¤à ©¢ ) ¯®¤¢¨á ¥â [x] ¢¢®¤ ¢ ª®¬ ­¤­ãî áâப㠨 ­ ¦ â¨¥ ALT+F1/F2 (¢ë¡®à ¤à ©¢ ) ¯®¤¢¨á ¥â
[x] á®àâ¨à®¢é¨ª á®àâ¨àã¥â "..",   ­¥ ¤®«¦¥­ [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 FlexNavigator 1.16.03
- ¨á¯à ¢«¥­® ä®à¬¨à®¢ ­¨¥ ¯ã⨠¤® ¯ ¯ª¨ ¯« £¨­®¢.
- MISC ä㭪樨 ¯¥à¥­¥á¥­ë ¨§ 2 १¨¤¥­â  ¢ 3. - MISC ä㭪樨 ¯¥à¥­¥á¥­ë ¨§ 2 १¨¤¥­â  ¢ 3.
- ¯¥à¥à á¯à¥¤¥«¥­¨¥ TAB â ¡«¨æ. - ¯¥à¥à á¯à¥¤¥«¥­¨¥ TAB â ¡«¨æ.
- ¢ ®¯¨á ­¨¥ Flex Navigator API ¤®¡ ¢«¥­® ®¯¨á ­¨¥ £«®¡ «ì­ëå - ¢ ®¯¨á ­¨¥ 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_FILES_PANEL EQU 17 ; ª®«¨ç¥á⢮ ä ©«®¢ ¢ á⮫¡æ¥ ¯ ­¥«¨
NUM_PAGES_FN EQU 7 ; ª®«¨ç¥á⢮ áâà ­¨æ ¯ ¬ï⨠¤«ï à ¡®âë FN NUM_PAGES_FN EQU 7 ; ª®«¨ç¥á⢮ áâà ­¨æ ¯ ¬ï⨠¤«ï à ¡®âë FN
@ -36,7 +36,6 @@ FLXMODES
; 1 -  ¤à¥á ª®¬¯¨«ï樨 ¨ à ¡®âë ¢  ¤à¥á å 0x4000-0x7FFF ; 1 -  ¤à¥á ª®¬¯¨«ï樨 ¨ à ¡®âë ¢  ¤à¥á å 0x4000-0x7FFF
LenInpData EQU 12 ; ª ª®¥-⮠ᬥ饭¨¥ ¤«ï ¬¥âª¨ SearchStr
CursTimer EQU 6 ; "ç áâ®â " ¬®à£ ­¨ï ⥪á⮢®£® ªãàá®à  CursTimer EQU 6 ; "ç áâ®â " ¬®à£ ­¨ï ⥪á⮢®£® ªãàá®à 
Step EQU 8 ; è¨à¨­  ᨬ¢®«  ¤«ï ¯¥à¥¬¥é¥­¨ï ªãàá®à  ¯à¨ ¢¢®¤¥ ⥪áâ  Step EQU 8 ; è¨à¨­  ᨬ¢®«  ¤«ï ¯¥à¥¬¥é¥­¨ï ªãàá®à  ¯à¨ ¢¢®¤¥ ⥪áâ 
MainPullMenu EQU 6 ; ª®«¨ç¥á⢮ ¯ã­ªâ®¢ ¢ £« ¢­®¬ ¬¥­î MainPullMenu EQU 6 ; ª®«¨ç¥á⢮ ¯ã­ªâ®¢ ¢ £« ¢­®¬ ¬¥­î
@ -123,6 +122,7 @@ WINSUBOBJ
PANEL PANEL
_INIT_VAR _INIT_VAR
_SETVAR .PANELFLAG, BYTE ; ”« £ ¯ ­¥«¨ ¡¨â 7 - ¡¨â ¢ë¤¥«¥­­®á⨠_SETVAR .PANELFLAG, BYTE ; ”« £ ¯ ­¥«¨ ¡¨â 7 - ¡¨â ¢ë¤¥«¥­­®áâ¨
; ¡¨â 1 - áâà ­¨æ  ¤«ï á®àâ¨à®¢ª¨
; ¡¨â 0 - ­®¬¥à ¯ ­¥«¨ ; ¡¨â 0 - ­®¬¥à ¯ ­¥«¨
_SETVAR .VIEWFLAG, BYTE ; ”« £ ¢¨¤  ¯ ­¥«¨ 0 - ªà âª ï ¯ ­¥«ì _SETVAR .VIEWFLAG, BYTE ; ”« £ ¢¨¤  ¯ ­¥«¨ 0 - ªà âª ï ¯ ­¥«ì
; ¡¨â 0 - ¯®¤à®¡­ ï ¯ ­¥«ì ; ¡¨â 0 - ¯®¤à®¡­ ï ¯ ­¥«ì
@ -154,6 +154,7 @@ PANEL
PANELFLAG PANELFLAG
_BITMASK PRNDOSPATH, 7 ; =1-¯¥ç â âì ¯ãâì DOS _BITMASK PRNDOSPATH, 7 ; =1-¯¥ç â âì ¯ãâì DOS
_BITMASK DIRPAGE, 1 ; =1-A-­®¬¥à áâà ­¨æë, =0-áâà ­¨æë ¯ ­¥«¥©
_BITMASK SIDE, 0 ; =1-¯à ¢ ï ¯ ­¥«ì, =0-«¥¢ ï ¯ ­¥«ì _BITMASK SIDE, 0 ; =1-¯à ¢ ï ¯ ­¥«ì, =0-«¥¢ ï ¯ ­¥«ì
VIEWFLAG VIEWFLAG
@ -259,6 +260,20 @@ FORMTABL
_BITMASK CLOSEWIN, 0 ; ¢ë§¢ âì äã­ªæ¨î § ªàëâ¨ï ®ª­  ¯¥à¥¤ § ¯ã᪮¬ ¯à®£à ¬¬ë ¯® «¥¢®© ª­®¯ª¥ _BITMASK CLOSEWIN, 0 ; ¢ë§¢ âì äã­ªæ¨î § ªàëâ¨ï ®ª­  ¯¥à¥¤ § ¯ã᪮¬ ¯à®£à ¬¬ë ¯® «¥¢®© ª­®¯ª¥
_BITMASK ENDTABL, 7 ; ¡¨â ¢ .XMINH 㪠§ â¥«ì ­  ª®­¥æ ᯨ᪠ _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 JUMPS
.JUMPSIZE EQU 3 .JUMPSIZE EQU 3
@ -331,8 +346,8 @@ JUMPS
_SETVAR .RIGHTPANEL, BYTE ; ‘âà ­¨æ  ª â «®£  <20>à ¢®© ¯ ­¥«¨ _SETVAR .RIGHTPANEL, BYTE ; ‘âà ­¨æ  ª â «®£  <20>à ¢®© ¯ ­¥«¨
_SETVAR .BuffPg1, BYTE _SETVAR .BuffPg1, BYTE
_SETVAR .BuffPg2, BYTE _SETVAR .BuffPg2, BYTE
_SETVAR .BuffPg3, BYTE _SETVAR .BuffPg3, BYTE ; ¨á¯®«ì§ã¥âáï ª®¯¨à®¢é¨ª®¬ ä ©«®¢/¤¨à¥ªâ®à¨©
_SETVAR .BuffPg4, BYTE + BYTE _SETVAR .BuffPg4, BYTE + BYTE ; ¨á¯®«ì§ã¥âáï á®àâ¨à®¢ª®©, à ¡®â  á ¤¥à¥¢®¬ ¤¨à¥ªâ®à¨©
_SETVAR .FILES_COUNT, WORD _SETVAR .FILES_COUNT, WORD
_SETVAR .FILES_BYTES, DWORD + 1 _SETVAR .FILES_BYTES, DWORD + 1
@ -366,14 +381,17 @@ FILENAME
.EDIT_FLX EQU "FNEDITOR.FLX" .EDIT_FLX EQU "FNEDITOR.FLX"
.VIEW_FLX EQU "FNVIEWER.FLX" .VIEW_FLX EQU "FNVIEWER.FLX"
; ¢­ãâ७­¨¥ ®è¨¡ª¨
FNinternal FNinternal
_INIT_VAR 0xF0 _INIT_VAR 0xF0
_SETVAR .PlugNotFound _SETVAR .PlugNotFound
; ®â« ¤®ç­®¥, ­¥ ¬¥­ïâì ¯® ¨§¡¥¦ ­¨¥ £«îª®¢ ; ®â« ¤®ç­®¥, ­¥ ¬¥­ïâì ¯® ¨§¡¥¦ ­¨¥ £«îª®¢
PLUGS_ENABLE EQU 0 ; ¬¥­î ¯« £¨­®¢ PLUGS_ENABLE EQU 0 ; ¬¥­î ¯« £¨­®¢
TREE_REZID EQU 0 MARK_DIR EQU 1 ; ¢ë¡®à ¤¨à¥ªâ®à¨¨ á ¯®¤áç¥â®¬ à §¬¥à  ¢á¥å ä ©«®¢
MARK_DIR EQU 0 ; ¢ë¡®à ¤¨à¥ªâ®à¨¨ á ¯®¤áç¥â®¬ à §¬¥à  ¢á¥å ä ©«®¢
TREE_DIR_ENTER EQU 0 ; ¯®ª § ᮤ¥à¦¨¬®£® ¤¨à¥ªâ®à¨¨ ¢ ¤¥à¥¢¥ ¯® ENTER TREE_DIR_ENTER EQU 0 ; ¯®ª § ᮤ¥à¦¨¬®£® ¤¨à¥ªâ®à¨¨ ¢ ¤¥à¥¢¥ ¯® ENTER
CORR_FILENAME EQU 1 ; ¯à¥®¡à §®¢ ­¨¥ ᨬ¢®«®¢ ¨¬¥­¨ ä ©«  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 include macros.a80
@ -52,7 +52,7 @@ EntryExec: DI
LD A,(MAIN.FNMAIN) ; set pages from 0xC000 LD A,(MAIN.FNMAIN) ; set pages from 0xC000
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
LD HL,BASE_ADDR ; FNMAIN LD HL,BASE_ADDR ; FNMAIN
LD DE,END_BLOCK_1 - START_BLOCK_1 LD DE,BLOCK1_SIZE
LD A,(MAIN.hFile) LD A,(MAIN.hFile)
SPDSS DSSF.READ SPDSS DSSF.READ
JP C,disk_error JP C,disk_error
@ -60,7 +60,7 @@ EntryExec: DI
LD A,(MAIN.FNREZ2) LD A,(MAIN.FNREZ2)
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
LD HL,0xC000 ; FNREZ2 LD HL,0xC000 ; FNREZ2
LD DE,END_BLOCK_2 - START_BLOCK_2 LD DE,BLOCK2_SIZE
LD A,(MAIN.hFile) LD A,(MAIN.hFile)
SPDSS DSSF.READ SPDSS DSSF.READ
JP C,disk_error JP C,disk_error
@ -88,7 +88,7 @@ EntryExec: DI
LD A,(MAIN.FNREZ3) ; FNREZ3 LD A,(MAIN.FNREZ3) ; FNREZ3
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
LD HL,0xC000 LD HL,0xC000
LD DE,END_BLOCK_3 - START_BLOCK_3 LD DE,BLOCK3_SIZE
LD A,(MAIN.hFile) LD A,(MAIN.hFile)
SPDSS DSSF.READ SPDSS DSSF.READ
JP C,disk_error JP C,disk_error

View File

@ -1,7 +1,7 @@
; LAST UPDATE: 14.08.2025 savelij ; LAST UPDATE: 07.09.2025 savelij
FLEX_VERS FLEX_VERS
.NAVIGATOR EQU "1.16.03" .NAVIGATOR EQU "1.16.04"
.EDITOR EQU "1.11" .EDITOR EQU "1.11"
.VIEWER EQU "1.07" .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 BegDIRECTORY LD HL,BegDIR
@ -78,13 +78,8 @@ NewDIRTree PUSH IY
ADD HL,DE ADD HL,DE
INC HL INC HL
INC HL INC HL
IF TREE_REZID
CALL RESIDENT.FindTreeDIR
CALL RESIDENT.MakeTreePath
ELSE
CALL FindTreeDIRR CALL FindTreeDIRR
CALL MakeTreePathR CALL MakeTreePathR
ENDIF
PUSH IY PUSH IY
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG) BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD IY,RightPanel LD IY,RightPanel

View File

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

View File

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

View File

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

View File

@ -1,11 +1,5 @@
; LAST UPDATE: 14.08.2025 savelij ; LAST UPDATE: 07.09.2025 savelij
;[]=======================================================================[]
; FLEX NAVIGATOR ;
; v1.11 ;
; Last edition: 03/02/2000 ;
;[]=======================================================================[]
include fn_const.a80 include fn_const.a80
include fn_macros.a80 include fn_macros.a80
@ -87,9 +81,9 @@ RAMPAGES
.RIGHTPANEL DB 0 ; 2 ‘âà ­¨æ  ª â «®£  <20>à ¢®© ¯ ­¥«¨ .RIGHTPANEL DB 0 ; 2 ‘âà ­¨æ  ª â «®£  <20>à ¢®© ¯ ­¥«¨
.BuffPg1 DB 0 ; 3 .BuffPg1 DB 0 ; 3
.BuffPg2 DB 0 ; 4 .BuffPg2 DB 0 ; 4
.BuffPg3 DB 0 ; 5 .BuffPg3 DB 0 ; 5 ¨á¯®«ì§ã¥âáï ª®¯¨à®¢é¨ª®¬ ä ©«®¢/¤¨à¥ªâ®à¨©
.BuffPg4 DB 0 ; 6 .BuffPg4 DB 0 ; 6 ¨á¯®«ì§ã¥âáï á®àâ¨à®¢ª®©, à ¡®â  á ¤¥à¥¢®¬ ¤¨à¥ªâ®à¨©
.BuffPgEnd DB 0xFF .BuffPgEnd DB 0xFF ; ¬ àª¥à ª®­æ  ᯨ᪠ áâà ­¨æ
.FILES_COUNT DW 0 ; ª®«¨ç¥á⢮ ¯®¬¥ç¥­­ëå ä ©«®¢ .FILES_COUNT DW 0 ; ª®«¨ç¥á⢮ ¯®¬¥ç¥­­ëå ä ©«®¢
.FILES_BYTES DB 5 DUP 0 ; à §¬¥à ¯®¬¥ç¥­­ëå ä ©«®¢ ¢ ¡ ©â å .FILES_BYTES DB 5 DUP 0 ; à §¬¥à ¯®¬¥ç¥­­ëå ä ©«®¢ ¢ ¡ ©â å
@ -260,6 +254,22 @@ SET_DWORD: LD (HL),E
LD (HL),B LD (HL),B
RET 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
; ==============resident 2============== ; ==============resident 2==============
@ -277,35 +287,16 @@ RESIDENT
.DeleteFiles: LD DE,DeleteFilesR .DeleteFiles: LD DE,DeleteFilesR
jr .FunctResident 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 .Setup: LD DE,SetupR
jr .FunctResident jr .FunctResident
.QSearch: LD DE,QSearchR .QSearch: LD DE,QSearchR
jr .FunctResident jr .FunctResident
IF TREE_REZID IF MARK_DIR
.TestTree LD DE,TestTreeR ; áç¨â «ª  ᮤ¥à¦¨¬®£® ¤¨à¥ªâ®à¨¨ ¢ ¡ ©â å
jr .FunctResident .CalcDirSize LD DE,CalcDirSizeR
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
ENDIF ENDIF
; ==============resident 2============== ; ==============resident 2==============
@ -315,24 +306,6 @@ RESIDENT
LD C,WINSP.CPU1 LD C,WINSP.CPU1
JP Resident 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 .UnMarkGroup: LD DE,UnMarkGroupR
jr .HelpResident jr .HelpResident
@ -387,6 +360,14 @@ RESIDENT
.SystemInfo: LD DE,SystemInfoR .SystemInfo: LD DE,SystemInfoR
jr .HelpResident jr .HelpResident
.Quit: CALL ResInvert
.QuitL1 LD DE,QuitConfirmWin
CALL .HelpResident
JP C,SetInvert
LD HL,ComExit
EX (SP),HL
RET
; ==============resident 3============== ; ==============resident 3==============
; ‚ë室 ; ‚ë室
@ -427,11 +408,7 @@ MainLoop: LD IX,MAINTAB.FilePanelLeft
CALL C,DOSline CALL C,DOSline
LD A,(TreeFlag) LD A,(TreeFlag)
OR A OR A
IF TREE_REZID
CALL NZ,RESIDENT.TestTree
ELSE
CALL NZ,TestTreeR CALL NZ,TestTreeR
ENDIF
JR MainLoop JR MainLoop
TestKeys TestKeys
@ -488,11 +465,9 @@ MouseOnOff LD A,(MouseFlag)
START_SORT START_SORT
include fnsort.a80 include fnsort.a80
END_SORT END_SORT
IF TREE_REZID = 0
START_TREE START_TREE
include fntree.a80 include fntree.a80
END_TREE END_TREE
ENDIF
include fnpanel.a80 include fnpanel.a80
include fndos.a80 include fndos.a80
@ -507,14 +482,21 @@ END_BLOCK_1:
; ==============resident 2============== ; ==============resident 2==============
PHASE 0x4000 PHASE 0x4000
START_BLOCK_2 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_fnfunct.a80
include rez2_fnsearch.a80 include rez2_fnsearch.a80
include rez2_fnconfig.a80 include rez2_fnconfig.a80
include rez2_fnerror.a80 include rez2_fnerror.a80
include rez2_fntab.a80 include rez2_fntab.a80
IF TREE_REZID
include fntree.a80
ENDIF
END_BLOCK_2: END_BLOCK_2:
DEPHASE ; 0x4000 DEPHASE ; 0x4000
; ==============resident 2============== ; ==============resident 2==============
@ -523,7 +505,6 @@ END_BLOCK_2:
PHASE 0xC000 PHASE 0xC000
; MAIN.FNFONT ; MAIN.FNFONT
START_BLOCK_4 START_BLOCK_4
FONT_RAW_PACK binclude tmp/font_raw.pack FONT_RAW_PACK binclude tmp/font_raw.pack
IFFFONT_RAW_PACK binclude tmp/iff_font_raw.pack IFFFONT_RAW_PACK binclude tmp/iff_font_raw.pack
IFFFONT_RAW_END IFFFONT_RAW_END
@ -536,13 +517,8 @@ END_BLOCK_4:
PHASE 0x4000 PHASE 0x4000
; MAIN.FNREZ3 ; MAIN.FNREZ3
START_BLOCK_3 START_BLOCK_3
include rez3_fnnext.a80
include rez3_fnmark.a80
include rez3_fnmisc.a80
include rez3_fntab.a80
; ¡ãä¥à  çâ®¡ë ¯ ¬ïâì ­¥ § ­¨¬ «¨ ¢ EXE ä ©«¥ ; ¡ãä¥à  çâ®¡ë ¯ ¬ïâì ­¥ § ­¨¬ «¨ ¢ EXE ä ©«¥
BUFFERS REZ3_BUFFERS
_INIT_VAR 0x8000 ; á ª®­æ  áâà ­¨æë _INIT_VAR 0x8000 ; á ª®­æ  áâà ­¨æë
_MINUSVAR .DOShistory, 0x200 ;times 0x200 db 0 _MINUSVAR .DOShistory, 0x200 ;times 0x200 db 0
@ -550,19 +526,14 @@ BUFFERS
_MINUSVAR .fnview_ext, WorkBuffer_Size ;times 0x400 db 0 _MINUSVAR .fnview_ext, WorkBuffer_Size ;times 0x400 db 0
_MINUSVAR .fn_ext, WorkBuffer_Size ;times 0x400 db 0 _MINUSVAR .fn_ext, WorkBuffer_Size ;times 0x400 db 0
_MINUSVAR .OLDPATH, 0x100 ; á®åà ­¥­­ë© ⥪ã騩 ¯ãâì include rez3_fnnext.a80
_MINUSVAR .CURRPATHSRC, 0x100 ; ¢à¥¬¥­­®© ⥪ã騩 ¯ãâì ¨áâ®ç­¨ª  include rez3_fnmark.a80
_MINUSVAR .CURRPATHDST, 0x100 ; ¢à¥¬¥­­®© ⥪ã騩 ¯ãâì ¯à¨¥¬­¨ª  include rez3_fnmisc.a80
_MINUSVAR .FINDBUF, 0x100 ; ¢à¥¬¥­­ë© ¡ãä¥à ¯®¨áª  include rez3_fntab.a80
_MINUSVAR .LEVEL_DIR, BYTE ; ⥪ã騩 ã஢¥­ì ¤¨à¥ªâ®à¨¨
_MINUSVAR .ENDPATHSRC, WORD ;  ¤à¥á 墮áâ  ¯ã⨠¨áâ®ç­¨ª 
_MINUSVAR .ENDPATHDST, WORD ;  ¤à¥á 墮áâ  ¯ã⨠¯à¨¥¬­¨ª 
_MINUSVAR .CURR_DIRNAME, WORD ; ⥪ã騩  ¤à¥á ¢ ¯ãâ¨
END_BLOCK_3: END_BLOCK_3:
DEPHASE ; 0x4000 DEPHASE ; 0x4000
; ==============resident 3============== ; ==============resident 3==============
; ç¨áâ® ¤«ï ®â« ¤ª¨
BLOCK1_SIZE EQU END_BLOCK_1 - START_BLOCK_1 ; ®á­®¢­®© ª®¤ BLOCK1_SIZE EQU END_BLOCK_1 - START_BLOCK_1 ; ®á­®¢­®© ª®¤
BLOCK2_SIZE EQU END_BLOCK_2 - START_BLOCK_2 ; १¨¤¥­â 2 BLOCK2_SIZE EQU END_BLOCK_2 - START_BLOCK_2 ; १¨¤¥­â 2
BLOCK3_SIZE EQU END_BLOCK_3 - START_BLOCK_3 ; १¨¤¥­â 3 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) PrintDisks LD L,(IY + PANEL.X)
@ -164,19 +164,21 @@ PrnFileInfo BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
LD A,(RAMPAGES.RIGHTPANEL) LD A,(RAMPAGES.RIGHTPANEL)
.L1 .L1
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
LD L,(IY + PANEL.FIRST_FILE) ; LD L,(IY + PANEL.FIRST_FILE)
LD H,(IY + PANEL.FIRST_FILE + 1) ; LD H,(IY + PANEL.FIRST_FILE + 1)
LD E,(IY + PANEL.CURR_FILE) ; LD E,(IY + PANEL.CURR_FILE)
LD D,(IY + PANEL.CURR_FILE + 1) ; LD D,(IY + PANEL.CURR_FILE + 1)
ADD HL,DE ; ADD HL,DE
ADD HL,HL ; *2 ; ADD HL,HL ; *2
ADD HL,HL ; *4 ; ADD HL,HL ; *4
ADD HL,HL ; *8 ; ADD HL,HL ; *8
LD E,L ; LD E,L
LD D,H ; LD D,H
ADD HL,HL ; *10 ; ADD HL,HL ; *10
ADD HL,DE ; *18 ; ADD HL,DE ; *18
SET 6,H ; | 0x4000 ; SET 6,H ; | 0x4000
LD A,HIGH (CPU1)
CALL GET_HANDLE_ADR
LD DE,WorkBuffer LD DE,WorkBuffer
LD BC,FileHDR.SIZE LD BC,FileHDR.SIZE
CALL MoveBytesInc CALL MoveBytesInc
@ -314,12 +316,7 @@ Get8Bit LD B,'0' - 1
INC HL INC HL
RET RET
PrnTreeInfo PrnTreeInfo CALL MakeTreePathR
IF TREE_REZID
CALL RESIDENT.MakeTreePath
ELSE
CALL MakeTreePathR
ENDIF
EX DE,HL EX DE,HL
PUSH IY PUSH IY
POP HL POP HL
@ -432,8 +429,8 @@ PrnDIRECT BIT VIEWFLAG.B_FULL,(IY+PANEL.VIEWFLAG)
LD A,(RAMPAGES.RIGHTPANEL) LD A,(RAMPAGES.RIGHTPANEL)
.L1 .L1
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
LD L,(IY+PANEL.FIRST_FILE) LD L,(IY + PANEL.FIRST_FILE)
LD H,(IY+PANEL.FIRST_FILE + 1) LD H,(IY + PANEL.FIRST_FILE + 1)
ADD HL,HL ; *2 ADD HL,HL ; *2
ADD HL,HL ; *4 ADD HL,HL ; *4
ADD HL,HL ; *8 ADD HL,HL ; *8
@ -526,8 +523,8 @@ PrintFULL PUSH IY
LD A,(RAMPAGES.RIGHTPANEL) LD A,(RAMPAGES.RIGHTPANEL)
.L1 .L1
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
LD L,(IY+PANEL.FIRST_FILE) LD L,(IY + PANEL.FIRST_FILE)
LD H,(IY+PANEL.FIRST_FILE + 1) LD H,(IY + PANEL.FIRST_FILE + 1)
ADD HL,HL ; *2 ADD HL,HL ; *2
ADD HL,HL ; *4 ADD HL,HL ; *4
ADD HL,HL ; *8 ADD HL,HL ; *8
@ -664,8 +661,8 @@ PrintTREE
DJNZ .L2 DJNZ .L2
POP DE POP DE
LD HL,0x4000 LD HL,0x4000
LD C,(IY+PANEL.FIRST_FILE) LD C,(IY + PANEL.FIRST_FILE)
LD B,(IY+PANEL.FIRST_FILE + 1) LD B,(IY + PANEL.FIRST_FILE + 1)
LD A,B LD A,B
OR C OR C
JR Z,.PrDIRb2 JR Z,.PrDIRb2
@ -1083,19 +1080,21 @@ PrnInvert LD A,(IY + PANEL.FILES_ALL)
LD A,(RAMPAGES.RIGHTPANEL) LD A,(RAMPAGES.RIGHTPANEL)
.L1 .L1
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
LD L,(IY + PANEL.FIRST_FILE) ; LD L,(IY + PANEL.FIRST_FILE)
LD H,(IY + PANEL.FIRST_FILE + 1) ; LD H,(IY + PANEL.FIRST_FILE + 1)
LD E,(IY + PANEL.CURR_FILE) ; LD E,(IY + PANEL.CURR_FILE)
LD D,(IY + PANEL.CURR_FILE + 1) ; LD D,(IY + PANEL.CURR_FILE + 1)
ADD HL,DE ; ADD HL,DE
ADD HL,HL ; *2 ; ADD HL,HL ; *2
ADD HL,HL ; *4 ; ADD HL,HL ; *4
ADD HL,HL ; *8 ; ADD HL,HL ; *8
LD E,L ; LD E,L
LD D,H ; LD D,H
ADD HL,HL ; *10 ; ADD HL,HL ; *10
ADD HL,DE ; *18 ; ADD HL,DE ; *18
SET 6,H ; | 0xC000 ; SET 6,H ; | 0xC000
LD A,HIGH (CPU1)
CALL GET_HANDLE_ADR
LD E,(HL) LD E,(HL)
POP AF POP AF
SETPORT WINSP.CPU1,,0 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) ; <20>  ¢å®¤¥:
IF TREE_REZID ; A - ­®¬¥à áâà ­¨æë ¤«ï à ¡®âë ¥á«¨ ¡¨â PANELFLAG.B_DIRPAGE ãáâ ­®¢«¥­
JP NZ,RESIDENT.ReadTree ; ¨­ ç¥ ­¥ âॡã¥âáï
ELSE 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 JP NZ,ReadTreeR
ENDIF
GETPORT WINSP.CPU3 GETPORT WINSP.CPU3
PUSH AF PUSH AF
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG) LD A,(IY + PANEL.SORTFLAG)
LD A,(RAMPAGES.LEFTPANEL) AND SORTFLAG.MASK
JR Z,.L1 JR Z,.L6
LD A,(RAMPAGES.RIGHTPANEL) ; á á®àâ¨à®¢ª®© £à㧨¬ ¢ ᢮¡®¤­ãî ¯ £ã
LD A,(RAMPAGES.BuffPg4)
JR .L1
; ¡¥§ á®àâ¨à®¢ª¨ £à㧨¬ ¢ áâà ­¨æã ¯ ­¥«¨
.L6 LD A,0
.DIRPAGE EQU $-1
.L1 .L1
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
PUSH IY PUSH IY
POP HL 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 LD BC,PANEL.FILES_ALL
ADD HL,BC ADD HL,BC
LD B,PANEL.FILE_MASK - PANEL.FILES_ALL LD B,PANEL.FILE_MASK - PANEL.FILES_ALL
.L5 LD (HL),0 .L5 LD (HL),0
INC HL INC HL
DJNZ .L5 DJNZ .L5
.L8 RES PANELFLAG.B_DIRPAGE,(IY + PANEL.PANELFLAG)
BIT SORTFLAG.B_FILTER,(IY + PANEL.SORTFLAG) BIT SORTFLAG.B_FILTER,(IY + PANEL.SORTFLAG)
JR NZ,.L2 JR NZ,.L2
LD HL,NORMmask LD HL,NORMmask
@ -108,8 +128,8 @@ FindFILESm LD HL,NORMmask
POP IX POP IX
POP IY POP IY
RET C RET C
FFILEm1 LD A,(WorkBuffer + FFIRST.Attr);+0x20) FFILEm1 LD A,(WorkBuffer + FFIRST.Attr)
AND DIR.M_Dir;0x10 AND DIR.M_Dir
CALL NZ,InsFileInfo CALL NZ,InsFileInfo
RET C RET C
LD DE,WorkBuffer LD DE,WorkBuffer
@ -160,7 +180,7 @@ InsFileInfo EX DE,HL
LD (DE),A LD (DE),A
INC DE INC DE
PUSH HL PUSH HL
LD BC,FFIRST.Attr;0x20 LD BC,FFIRST.Attr
ADD HL,BC ADD HL,BC
LD B,(HL) ; FFIRST.Attr LD B,(HL) ; FFIRST.Attr
INC HL INC HL
@ -384,14 +404,10 @@ SortDIR
GETPORT WINSP.CPU3 GETPORT WINSP.CPU3
LD B,A LD B,A
PUSH BC PUSH BC
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG) LD A,(ReadDIR.DIRPAGE)
LD A,(RAMPAGES.LEFTPANEL)
JR Z,.L1
LD A,(RAMPAGES.RIGHTPANEL)
.L1
SETPORT WINSP.CPU1,,0
LD A,(RAMPAGES.BuffPg4)
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
LD A,(RAMPAGES.BuffPg4)
SETPORT WINSP.CPU1,,0
LD HL,CPU3 LD HL,CPU3
LD (EndSort),HL LD (EndSort),HL
SUB A SUB A
@ -485,14 +501,6 @@ SortDIR
.L3 LD (HL),A .L3 LD (HL),A
INC HL INC HL
DJNZ .L3 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 POP BC
LD A,B LD A,B
SETPORT WINSP.CPU3,,0 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 164,640, 0,256,%0000000100100000,0,MenuExit,0
DW 0x8000 DW 0x8000
.SelectTab DW 44,196, 29, 43,%0000000100100100,0,RESIDENT.MarkGroupN,0 .SelectTab DW 44,196, 29, 43,%0000000100100100,0,RESIDENT.MarkGroupN,0 ; Mark group +
DW 44,196, 43, 57,%0000000100100100,0,RESIDENT.UnMarkGroupN,0 DW 44,196, 43, 57,%0000000100100100,0,RESIDENT.UnMarkGroupN,0 ; Unmark group -
DW 44,196, 57, 71,%0000000100100100,0,RESIDENT.SelectAllN,0 DW 44,196, 57, 71,%0000000100100100,0,RESIDENT.SelectAllN,0 ; Mark all CTRL+
DW 44,196, 71, 85,%0000000100100100,0,RESIDENT.UnSelectAllN,0 DW 44,196, 71, 85,%0000000100100100,0,RESIDENT.UnSelectAllN,0 ; Unmark all CTRL-
DW 44,196, 85, 99,%0000000100100100,0,RESIDENT.InvertSelectN,0 DW 44,196, 85, 99,%0000000100100100,0,RESIDENT.InvertSelectN,0 ; Invert selection *
DW 6, 40, 15, 26,%0000000010010000,MenuFile.L2,0,0 DW 6, 40, 15, 26,%0000000010010000,MenuFile.L2,0,0
DW 40, 84, 15, 26,%0000000100101000,0,MenuExit,0 DW 40, 84, 15, 26,%0000000100101000,0,MenuExit,0
DW 84,138, 15, 26,%0000000010010000,MenuOption.L2,0,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) CursUp LD A,(IY + PANEL.FILES_ALL)
@ -1036,11 +1036,7 @@ NewFile1 LD HL,0x003F
;[]==========================================================[] ;[]==========================================================[]
OpenFile BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) OpenFile BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
IF TREE_REZID
JP NZ,RESIDENT.TestTreeBeg
ELSE
JP NZ,TestTreeR.TestTreeBeg JP NZ,TestTreeR.TestTreeBeg
ENDIF
LD A,(IY+PANEL.FILES_ALL) LD A,(IY+PANEL.FILES_ALL)
OR (IY+PANEL.FILES_ALL + 1) OR (IY+PANEL.FILES_ALL + 1)
RET Z RET Z
@ -1052,19 +1048,21 @@ OpenFile BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
LD A,(RAMPAGES.RIGHTPANEL) LD A,(RAMPAGES.RIGHTPANEL)
.L1 .L1
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
LD L,(IY+PANEL.FIRST_FILE) ; LD L,(IY + PANEL.FIRST_FILE)
LD H,(IY+PANEL.FIRST_FILE + 1) ; LD H,(IY + PANEL.FIRST_FILE + 1)
LD E,(IY+PANEL.CURR_FILE) ; LD E,(IY + PANEL.CURR_FILE)
LD D,(IY+PANEL.CURR_FILE + 1) ; LD D,(IY + PANEL.CURR_FILE + 1)
ADD HL,DE ; ADD HL,DE
ADD HL,HL ; *2 ; ADD HL,HL ; *2
ADD HL,HL ; *4 ; ADD HL,HL ; *4
ADD HL,HL ; *8 ; ADD HL,HL ; *8
LD E,L ; LD E,L
LD D,H ; LD D,H
ADD HL,HL ; *10 ; ADD HL,HL ; *10
ADD HL,DE ; *18 ; ADD HL,DE ; *18
SET 6,H ; | 0x4000 ; SET 6,H ; | 0x4000
LD A,HIGH (CPU1)
CALL GET_HANDLE_ADR
LD DE,WorkBuffer LD DE,WorkBuffer
LD BC,FileHDR.Attr LD BC,FileHDR.Attr
PUSH HL PUSH HL
@ -1080,8 +1078,9 @@ OpenFile BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
INC HL INC HL
JP Z,RunEXEfile JP Z,RunEXEfile
LD A,(HL) LD A,(HL)
CP '.' CP '.' ; ¢ë室 ¨§ ¤¨à¥ªâ®à¨¨ ¢¢¥àå?
JR NZ,OpenF2 JR NZ,EnterDIR
; ¢ë室 ¨§ ¤¨à¥ªâ®à¨¨ ¢¢¥àå
PUSH HL PUSH HL
PUSH IY PUSH IY
POP HL POP HL
@ -1094,7 +1093,7 @@ OpenFile BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
LD A,'\\' LD A,'\\'
DEC HL DEC HL
CP (HL) CP (HL)
JR Z,OpenF1 JR Z,.L5
.L3 DEC HL .L3 DEC HL
CP (HL) CP (HL)
JR NZ,.L3 JR NZ,.L3
@ -1106,8 +1105,9 @@ OpenFile BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
JR NZ,.L4 JR NZ,.L4
LD (DE),A LD (DE),A
LD A,'.' LD A,'.'
OpenF1 POP HL .L5 POP HL
OpenF2 PUSH AF ; ¢å®¤ ¢ ¤¨à¥ªâ®à¨î
EnterDIR PUSH AF
PUSH HL PUSH HL
CALL ResInvert CALL ResInvert
POP HL POP HL
@ -1131,7 +1131,7 @@ OpenF2 PUSH AF
SPDSS DSSF.CURDIR SPDSS DSSF.CURDIR
POP IY POP IY
CALL PrintPath CALL PrintPath
BIT PANELFLAG.B_PRNDOSPATH,(IY+PANEL.PANELFLAG) BIT PANELFLAG.B_PRNDOSPATH,(IY + PANEL.PANELFLAG)
CALL NZ,PrintDOSPath CALL NZ,PrintDOSPath
POP AF POP AF
CP '.' CP '.'
@ -1144,7 +1144,7 @@ OpenF2 PUSH AF
LD DE,PANEL.BAR_X LD DE,PANEL.BAR_X
ADD IX,DE ADD IX,DE
CALL InitScrollBar CALL InitScrollBar
LD A,(IY+PANEL.VIEWFLAG) LD A,(IY + PANEL.VIEWFLAG)
AND VIEWFLAG.MASK AND VIEWFLAG.MASK
PUSH AF PUSH AF
CALL Z,DrawHScrollBar CALL Z,DrawHScrollBar
@ -1155,7 +1155,7 @@ OpenF2 PUSH AF
OR A OR A
JP Z,WaitUnpressMouse JP Z,WaitUnpressMouse
PUSH IY PUSH IY
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG) BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD IY,LeftPanel LD IY,LeftPanel
LD HL,RightPanel LD HL,RightPanel
JR NZ,.L5 JR NZ,.L5
@ -1165,11 +1165,7 @@ OpenF2 PUSH AF
ADD HL,DE ADD HL,DE
INC HL INC HL
INC HL INC HL
IF TREE_REZID
CALL RESIDENT.FindTreeDIR
ELSE
CALL FindTreeDIRR CALL FindTreeDIRR
ENDIF
CALL PrintDIR CALL PrintDIR
CALL PrnFileInfo CALL PrnFileInfo
PUSH IY PUSH IY
@ -1356,7 +1352,7 @@ ShowDSexit
JP WaitUnpressMouse JP WaitUnpressMouse
;[]==========================================================[] ;[]==========================================================[]
RunEXEfile: LD IX,BUFFERS.fn_ext RunEXEfile: LD IX,REZ3_BUFFERS.fn_ext
LD DE,PrevFile LD DE,PrevFile
PUSH DE PUSH DE
SUB A SUB A
@ -1952,19 +1948,21 @@ StViewFile: LD A,0x01
LD A,(RAMPAGES.RIGHTPANEL) LD A,(RAMPAGES.RIGHTPANEL)
.L2 .L2
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
LD L,(IY+PANEL.FIRST_FILE) ; LD L,(IY+PANEL.FIRST_FILE)
LD H,(IY+PANEL.FIRST_FILE + 1) ; LD H,(IY+PANEL.FIRST_FILE + 1)
LD E,(IY+PANEL.CURR_FILE) ; LD E,(IY+PANEL.CURR_FILE)
LD D,(IY+PANEL.CURR_FILE + 1) ; LD D,(IY+PANEL.CURR_FILE + 1)
ADD HL,DE ; ADD HL,DE
ADD HL,HL ; *2 ; ADD HL,HL ; *2
ADD HL,HL ; *4 ; ADD HL,HL ; *4
ADD HL,HL ; *8 ; ADD HL,HL ; *8
LD E,L ; LD E,L
LD D,H ; LD D,H
ADD HL,HL ; *10 ; ADD HL,HL ; *10
ADD HL,DE ; *18 ; ADD HL,DE ; *18
SET 6,H ; | 0x4000 ; SET 6,H ; | 0x4000
LD A,HIGH (CPU1)
CALL GET_HANDLE_ADR
LD DE,WorkBuffer LD DE,WorkBuffer
LD BC,FileHDR.Attr LD BC,FileHDR.Attr
PUSH HL PUSH HL
@ -1989,7 +1987,7 @@ StViewFile: LD A,0x01
VFlag: EQU $-1 VFlag: EQU $-1
OR A OR A
JR NZ,View1 JR NZ,View1
View: LD IX,BUFFERS.fnview_ext View: LD IX,REZ3_BUFFERS.fnview_ext
LD DE,PrevFile LD DE,PrevFile
CALL TestEXT CALL TestEXT
RET NC RET NC
@ -2112,19 +2110,21 @@ StEditFile: LD A,0x01
LD A,(RAMPAGES.RIGHTPANEL) LD A,(RAMPAGES.RIGHTPANEL)
.L2 .L2
SETPORT WINSP.CPU1,,0 SETPORT WINSP.CPU1,,0
LD L,(IY+PANEL.FIRST_FILE) ; LD L,(IY+PANEL.FIRST_FILE)
LD H,(IY+PANEL.FIRST_FILE + 1) ; LD H,(IY+PANEL.FIRST_FILE + 1)
LD E,(IY+PANEL.CURR_FILE) ; LD E,(IY+PANEL.CURR_FILE)
LD D,(IY+PANEL.CURR_FILE + 1) ; LD D,(IY+PANEL.CURR_FILE + 1)
ADD HL,DE ; ADD HL,DE
ADD HL,HL ; *2 ; ADD HL,HL ; *2
ADD HL,HL ; *4 ; ADD HL,HL ; *4
ADD HL,HL ; *8 ; ADD HL,HL ; *8
LD E,L ; LD E,L
LD D,H ; LD D,H
ADD HL,HL ; *10 ; ADD HL,HL ; *10
ADD HL,DE ; *18 ; ADD HL,DE ; *18
SET 6,H ; | 0x4000 ; SET 6,H ; | 0x4000
LD A,HIGH (CPU1)
CALL GET_HANDLE_ADR
LD DE,WorkBuffer LD DE,WorkBuffer
LD BC,FileHDR.Attr LD BC,FileHDR.Attr
PUSH HL PUSH HL
@ -2149,7 +2149,7 @@ StEditFile: LD A,0x01
EFlag: EQU $-1 EFlag: EQU $-1
OR A OR A
JR NZ,Edit1 JR NZ,Edit1
Edit: LD IX,BUFFERS.fnedit_ext Edit: LD IX,REZ3_BUFFERS.fnedit_ext
LD DE,PrevFile LD DE,PrevFile
CALL TestEXT CALL TestEXT
RET NC 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) CopyFilesR LD A,(IY + PANEL.FILES_ALL)
@ -21,32 +21,17 @@ CopyFilesR LD A,(IY + PANEL.FILES_ALL)
.L1 .L1
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
LD IX,WorkBuffer LD IX,WorkBuffer
LD L,(IY + PANEL.FIRST_FILE) LD A,HIGH (CPU3)
LD H,(IY + PANEL.FIRST_FILE + 1) CALL GET_HANDLE_ADR
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 (COPY.PathCurrFile),HL LD (COPY.PathCurrFile),HL
LD DE,WorkBuffer LD DE,WorkBuffer
LD BC,FileHDR.SIZE LD BC,FileHDR.SIZE
LDIR LDIR
POP AF POP AF
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
LD HL,CopyNextFile.FLAG_DIRCOPY
XOR A ; ª®¯¨à®¢ âì ⮫쪮 ä ©«ë
LD (HL),A
BIT DIR.B_Dir,(IX + FileHDR.Attr) BIT DIR.B_Dir,(IX + FileHDR.Attr)
IF MARK_DIR IF MARK_DIR
JP NZ,COPY_DIR JP NZ,.InitCopyDir
ELSE ELSE
RET NZ RET NZ
ENDIF ENDIF
@ -63,17 +48,17 @@ CopyFilesR LD A,(IY + PANEL.FILES_ALL)
IF MARK_DIR IF MARK_DIR
; ª®¯¨à®¢ ­¨¥ ¤¨àë á® ¢á¥¬ ᮤ¥à¦¨¬ë¬ ¯®¤ ªãàá®à®¬ ; ª®¯¨à®¢ ­¨¥ ¤¨àë á® ¢á¥¬ ᮤ¥à¦¨¬ë¬ ¯®¤ ªãàá®à®¬
COPY_DIR INC A .InitCopyDir LD HL,(COPY.PathCurrFile)
LD (HL),A ; ª®¯¨à®¢ âì ¡ã¤¥¬ ¤¨à¥ªâ®à¨ï¬¨ PUSH HL
CALL RESIDENT.CountingDir ; ¨§¬¥à¥­¨¥ à §¬¥à  ¤¨à¥ªâ®à¨¨ á ä ©« ¬¨ CALL CalcDirSizeR ; ¨§¬¥à¥­¨¥ à §¬¥à  ¤¨à¥ªâ®à¨¨ á ä ©« ¬¨
POP HL
LD (COPY.PathCurrFile),HL
LD HL,JUMPS.FILES_BYTES LD HL,JUMPS.FILES_BYTES
LD DE,COPY.CopyBytes LD DE,COPY.CopyBytes
LD BC,5 LD BC,DWORD + 1
LDIR ; § ¡à «¨ à §¬¥à ¤¨à¥ªâ®à¨¨ LDIR ; § ¡à «¨ à §¬¥à ¤¨à¥ªâ®à¨¨
LD HL,0 LD (COPY.CopyFiles),BC ; ª®«¨ç¥á⢮ 㦥 ᪮¯¨à®¢ ­­ëå ä ©«®¢
LD (COPY.CopyFiles),HL ; ª®«¨ç¥á⢮ 㦥 ᪮¯¨à®¢ ­­ëå ä ©«®¢ CALL StorePaths ; á®åà ­¥­¨¥ ⥪ã騩 ¯ã⥩ ¯ ­¥«¥©
CALL RESIDENT.InitCopyDirs ; ¨­¨æ¨ «¨§ æ¨ï ¯ã⥩ ®âªã¤ /ªã¤ 
LD HL,(COPY.CopyBytes) LD HL,(COPY.CopyBytes)
LD DE,(COPY.CopyBytes + 2) LD DE,(COPY.CopyBytes + 2)
CALL ConvBytes2Pages ; ¯¥à¥áç¥â ¢ ª®«¨ç¥á⢮ áâà ­¨æ ¤«ï ª®¯¨à®¢ ­¨ï CALL ConvBytes2Pages ; ¯¥à¥áç¥â ¢ ª®«¨ç¥á⢮ áâà ­¨æ ¤«ï ª®¯¨à®¢ ­¨ï
@ -124,14 +109,8 @@ CopyLp0 BIT FileHDR.B_MARK,(IX + FileHDR.Flag)
LD E,(IX + FileHDR.SizeBytes + 2) LD E,(IX + FileHDR.SizeBytes + 2)
LD D,(IX + FileHDR.SizeBytes + 3) LD D,(IX + FileHDR.SizeBytes + 3)
CALL ConvBytes2Pages CALL ConvBytes2Pages
; LD C,L
; LD B,H
; POP HL
POP BC POP BC
ADD HL,BC ADD HL,BC
; LD C,E
; LD B,D
; POP DE
POP BC POP BC
EX DE,HL EX DE,HL
ADC HL,BC ADC HL,BC
@ -176,6 +155,7 @@ CopyNxt LD IX,ProcessAll
LD HL,RightPanel LD HL,RightPanel
.L1 LD DE,PANEL.CURR_PATH .L1 LD DE,PANEL.CURR_PATH
ADD HL,DE ADD HL,DE
LD (.NEWPATH),HL ; ªã¤  ¢®§¢à é âì ®â। ªâ¨à®¢ ­­ë© ¯ãâì
LD DE,CurPath LD DE,CurPath
SUB A SUB A
LD C,A LD C,A
@ -183,7 +163,6 @@ CopyNxt LD IX,ProcessAll
CP (HL) CP (HL)
JR NZ,.L2 JR NZ,.L2
LD (DE),A LD (DE),A
SUB A
SUB C SUB C
LD (PathLen),A LD (PathLen),A
LD IX,PathStr LD IX,PathStr
@ -214,39 +193,40 @@ CopyNxt LD IX,ProcessAll
W_BORDER 16,56,288,12 W_BORDER 16,56,288,12
W_FILL 18,57,284,10,COLORI.WHITE W_FILL 18,57,284,10,COLORI.WHITE
W_END 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 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 CALL PointerMouseClock
PUSH IY PUSH IY
GETPORT WINSP.CPU3 GETPORT WINSP.CPU3
PUSH AF PUSH AF
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG) ; ⥪ãéãî ¤¨à¥ªâ®à¨î £à㧨¬ ¢ ᢮¡®¤­ãî áâà ­¨æã
LD A,(RAMPAGES.LEFTPANEL) LD A,(RAMPAGES.BuffPg3)
JR Z,.L3
LD A,(RAMPAGES.RIGHTPANEL)
.L3
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
SET PANELFLAG.B_DIRPAGE,(IY + PANEL.PANELFLAG)
CALL ReadDIR
LD (CopyDir.CURR_PANEL),IY ; ¯à¨ ª®¯¨à®¢ ­¨¨ ä ©«  ¯®àâ¨âáï
; ª®¯¨à®¢ ­¨¥ ä ©«®¢/¤¨à¥ªâ®à¨© ; ª®¯¨à®¢ ­¨¥ ä ©«®¢/¤¨à¥ªâ®à¨©
CopyNextFile CALL PrintSrcDst CopyNextFile LD IX,(COPY.PathCurrFile)
LD IX,(COPY.PathCurrFile)
IF MARK_DIR IF MARK_DIR
BIT DIR.B_Dir,(IX + FileHDR.Attr) BIT DIR.B_Dir,(IX + FileHDR.Attr)
JR Z,.CopyFile JR Z,.CopyFile
; ª®¯¨à®¢ ­¨¥ ¤¨à¥ªâ®à¨¨ ; § ­®á¨¬ ¨¬ï ¤¨àë ¢ ᯨ᮪ ¤«ï ¤ «ì­¥©è¥£® ª®¯¨à®¢ ­¨ï
CALL RESIDENT.Add2ListDir ; ¤®¡ ¢«¥­¨¥ ¨¬¥­¨ ¤¨àë ¢ ᯨ᮪ CALL DIRLIST.ADD_DIRNAME
JR CopyNextFile JP .NextHandle
ENDIF 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 H,(IX + FileHDR.SizeBytes + 1)
LD E,(IX + FileHDR.SizeBytes + 2) LD E,(IX + FileHDR.SizeBytes + 2)
LD D,(IX + FileHDR.SizeBytes + 3) LD D,(IX + FileHDR.SizeBytes + 3)
@ -446,7 +426,7 @@ CopyNextFile CALL PrintSrcDst
SPDSS DSSF.CLOSE SPDSS DSSF.CLOSE
LD A,(COPY.MemID) LD A,(COPY.MemID)
SPDSS DSSF.FREEMEM SPDSS DSSF.FREEMEM
LD IX,(COPY.PathCurrFile) .NextHandle LD IX,(COPY.PathCurrFile)
RES FileHDR.B_MARK,(IX + FileHDR.Flag) RES FileHDR.B_MARK,(IX + FileHDR.Flag)
LD HL,(COPY.CopyBytes) LD HL,(COPY.CopyBytes)
LD E,(IX + FileHDR.SizeBytes) LD E,(IX + FileHDR.SizeBytes)
@ -454,45 +434,451 @@ CopyNextFile CALL PrintSrcDst
OR A OR A
SBC HL,DE SBC HL,DE
LD (COPY.CopyBytes),HL LD (COPY.CopyBytes),HL
LD HL,(COPY.CopyBytes+2) LD HL,(COPY.CopyBytes + 2)
LD E,(IX + FileHDR.SizeBytes + 2) LD E,(IX + FileHDR.SizeBytes + 2)
LD D,(IX + FileHDR.SizeBytes + 3) LD D,(IX + FileHDR.SizeBytes + 3)
SBC HL,DE SBC HL,DE
LD (COPY.CopyBytes+2),HL LD (COPY.CopyBytes + 2),HL
LD HL,(COPY.CopyFiles) LD HL,(COPY.CopyFiles)
LD A,H LD A,H
OR L OR L
JR Z,CopyEnd ; ä ©«ë ª®­ç¨«¨áì? JR Z,CopyDir ; ä ©«ë ª®­ç¨«¨áì?
DEC HL DEC HL
LD (COPY.CopyFiles),HL LD (COPY.CopyFiles),HL
LD A,H LD A,H
OR L OR L
JR Z,CopyEnd ; ä ©«ë ª®­ç¨«¨áì? JR Z,CopyDir ; ä ©«ë ª®­ç¨«¨áì?
LD HL,(COPY.PathCurrFile) LD HL,(COPY.PathCurrFile)
LD DE,FileHDR.SIZE LD DE,FileHDR.SIZE
.L5 ADD HL,DE ; á«¥¤ãî騩 ®¯¨á â¥«ì .L5 ADD HL,DE ; á«¥¤ãî騩 ®¯¨á â¥«ì
IF MARK_DIR BIT FileHDR.B_MARK,(HL)
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)
JR Z,.L5 JR Z,.L5
.L7 LD (COPY.PathCurrFile),HL LD (COPY.PathCurrFile),HL
JP CopyNextFile 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 SETPORT WINSP.CPU3,,0
POP IY POP IY
WINDOWCLOSE WINDOWCLOSE
@ -513,6 +899,7 @@ CopyEnd POP AF
LD IY,RightPanel LD IY,RightPanel
JR Z,.L1 JR Z,.L1
LD IY,LeftPanel LD IY,LeftPanel
; ®¡­®¢«¥­¨¥ ¯ ­¥«¨ ¯à¨¥¬­¨ª 
.L1 PUSH IY .L1 PUSH IY
POP HL POP HL
LD DE,PANEL.CURR_PATH LD DE,PANEL.CURR_PATH
@ -525,6 +912,7 @@ CopyEnd POP AF
POP AF POP AF
CALL NC,RefreshDIR CALL NC,RefreshDIR
POP IY POP IY
; ®¡­®¢«¥­¨¥ ¯ ­¥«¨ ¨áâ®ç­¨ª 
PUSH IY PUSH IY
POP HL POP HL
LD DE,PANEL.CURR_PATH LD DE,PANEL.CURR_PATH
@ -532,12 +920,19 @@ CopyEnd POP AF
PUSH IY PUSH IY
SPDSS DSSF.CHDIR SPDSS DSSF.CHDIR
POP IY POP IY
PUSH AF
CALL C,DOSError
POP AF
PUSH AF
CALL NC,RefreshDIR
POP AF
JP C,BegDIRECTORY JP C,BegDIRECTORY
CALL PrintDIR CALL PrintDIR
CALL PrnFileInfo CALL PrnFileInfo
JP PointerMousePointer JP PointerMousePointer
CopyError3: ; …᫨ ­¥â ¬¥áâ  ­  ¤¨áª¥ ¤«ï ª®¯¨à®¢ ­¨ï ;!FIXIT ®¯â¨¬¨§¨à®¢ âì ; !FIXIT ®¯â¨¬¨§¨à®¢ âì
CopyError3: ; …᫨ ­¥â ¬¥áâ  ­  ¤¨áª¥ ¤«ï ª®¯¨à®¢ ­¨ï
POP HL ; á­¨¬ ¥¬ «¨è­¥¥ POP HL ; á­¨¬ ¥¬ «¨è­¥¥
POP DE ; âãâ «¥¦¨â AF POP DE ; âãâ «¥¦¨â AF
PUSH AF PUSH AF
@ -706,22 +1101,7 @@ OverExit INC SP
POP IY POP IY
JP CopyEnd 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>  ¢å®¤¥: ; <20>  ¢å®¤¥:
; DEHL - ª®«¨ç¥á⢮ ¡ ©â ; DEHL - ª®«¨ç¥á⢮ ¡ ©â
; <20>  ¢ë室¥: ; <20>  ¢ë室¥:
@ -858,11 +1238,17 @@ ProcessOne DW 178 ; X
DW 0 DW 0
DB COLORP.BLUE + COLORI.WHITE DB COLORP.BLUE + COLORI.WHITE
PathStr DB 0x80,0x00,0x00,0x00 ; ®¯¨á â¥«ì áâப¨
PathLen DB 0x00 PathStr DB 255 ; +00 Œ ªá¨¬ «ì­ ï ¤«¨­  áâப¨
DW 170,106,324 DB 0 ; +01 ”« £ £®â®¢­®áâ¨
DB 0xF0 DB 0 ; +02 ⥪ãé ï X ¯®§¨æ¨ï ªãàá®à 
CurPath DB 0x81 DUP 0 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) 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 ADD HL,HL
ADD HL,HL ADD HL,HL
; LD A,H
; OR 0xC0
; LD H,A
SET 6,H SET 6,H
SET 7,H SET 7,H
INC HL INC HL
@ -898,7 +1281,7 @@ ReNameR LD A,(IY + PANEL.FILES_ALL)
LD DE,CurName LD DE,CurName
LD BC,0x000D LD BC,0x000D
LDIR LDIR
LD A,DIR.M_Dir;0x10 LD A,DIR.M_Dir
LD (CurAttrib),A LD (CurAttrib),A
JR ReNameN JR ReNameN
@ -909,9 +1292,6 @@ ReNameNr ADD HL,HL ; *2
LD D,H LD D,H
ADD HL,HL ; *10 ADD HL,HL ; *10
ADD HL,DE ; *18 ADD HL,DE ; *18
; LD A,H
; OR 0xC0
; LD H,A
SET 6,H SET 6,H
SET 7,H ; | 0xC000 SET 7,H ; | 0xC000
PUSH HL PUSH HL
@ -919,7 +1299,7 @@ ReNameNr ADD HL,HL ; *2
LD DE,CurName LD DE,CurName
CALL MakeDOSname CALL MakeDOSname
POP HL POP HL
LD BC,FileHDR.Attr;0x000E LD BC,FileHDR.Attr
ADD HL,BC ADD HL,BC
LD A,(HL) LD A,(HL)
LD (CurAttrib),A LD (CurAttrib),A
@ -980,7 +1360,8 @@ RNfile EQU $ - STRLEN(" ") - 2
LD A,(NameLen) LD A,(NameLen)
OR A OR A
RET Z RET Z
;[ ] -¡ £ ¯à¨ ¯¥à¥¨¬¥­®¢ ­¨¨ ä ©«  ¢ ¡ãä¥à¥ Name ¢ ª®­æ¥ ¨¬¥­¨ ä ©«  ­¥ ¢á¥£¤  áâ®ï« § ªà뢠î騩 0 ª®£¤  ­ ¤®. ILDel1 ; [ ] -¡ £ ¯à¨ ¯¥à¥¨¬¥­®¢ ­¨¨ ä ©«  ¢ ¡ãä¥à¥ Name ¢ ª®­æ¥ ¨¬¥­¨
; ä ©«  ­¥ ¢á¥£¤  áâ®ï« § ªà뢠î騩 0 ª®£¤  ­ ¤®. ILDel1
LD HL,Name LD HL,Name
LD E,A LD E,A
LD D,0 LD D,0
@ -1141,9 +1522,6 @@ ReNameDIR LD HL,Name
ADD HL,HL ; *4 ADD HL,HL ; *4
ADD HL,HL ; *8 ADD HL,HL ; *8
ADD HL,HL ; *10 ADD HL,HL ; *10
; LD A,H
; OR 0xC0
; LD H,A
SET 6,H SET 6,H
SET 7,H SET 7,H
EX DE,HL EX DE,HL
@ -1157,11 +1535,7 @@ ReNameTree BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
ADD HL,DE ADD HL,DE
INC HL INC HL
INC HL INC HL
IF TREE_REZID
CALL FindTreeDIRR CALL FindTreeDIRR
ELSE
CALL FindTreeDIRR
ENDIF
JP C,ReNameT JP C,ReNameT
LD HL,0xC001 - 0x10 LD HL,0xC001 - 0x10
LD BC,0x0010 LD BC,0x0010
@ -1285,17 +1659,9 @@ ReNameExt1 INC SP
LD DE,PANEL.BAR_X LD DE,PANEL.BAR_X
ADD IX,DE ADD IX,DE
CALL DrawVScrollBar CALL DrawVScrollBar
IF TREE_REZID
CALL TestTreeR.TestTreeBeg CALL TestTreeR.TestTreeBeg
ELSE
CALL TestTreeR.TestTreeBeg
ENDIF
PUSH IY PUSH IY
IF TREE_REZID
CALL MakeTreePathR CALL MakeTreePathR
ELSE
CALL MakeTreePathR
ENDIF
EX DE,HL EX DE,HL
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG) BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD IY,RightPanel LD IY,RightPanel
@ -1481,11 +1847,7 @@ MkDIR0 LD HL,NewDIR
ADD HL,DE ADD HL,DE
INC HL INC HL
INC HL INC HL
IF TREE_REZID
CALL FindTreeDIRR CALL FindTreeDIRR
ELSE
CALL FindTreeDIRR
ENDIF
JP C,MkDIRn JP C,MkDIRn
LD HL,0xC001 - 0x10 LD HL,0xC001 - 0x10
LD BC,0x0010 LD BC,0x0010
@ -1503,9 +1865,6 @@ FnTree1 LD L,(IY + PANEL.FIRST_FILE)
ADD HL,HL ADD HL,HL
ADD HL,HL ADD HL,HL
ADD HL,HL ADD HL,HL
; LD A,H
; OR 0xC0
; LD H,A
SET 6,H SET 6,H
SET 7,H SET 7,H
FnTree2 LD E,(HL) FnTree2 LD E,(HL)
@ -1562,9 +1921,6 @@ MkDIRend PUSH HL
ADD HL,HL ADD HL,HL
ADD HL,HL ADD HL,HL
ADD HL,HL ADD HL,HL
; LD A,H
; OR 0xC0
; LD H,A
SET 6,H SET 6,H
SET 7,H SET 7,H
PUSH HL PUSH HL
@ -1737,9 +2093,6 @@ DeleteFilesR LD A,(IY + PANEL.FILES_ALL)
ADD HL,HL ADD HL,HL
ADD HL,HL ADD HL,HL
ADD HL,HL ADD HL,HL
; LD A,H
; OR 0xC0
; LD H,A
SET 6,H SET 6,H
SET 7,H SET 7,H
LD (AdrDelFile),HL LD (AdrDelFile),HL
@ -1753,9 +2106,6 @@ DelFile ADD HL,HL
LD D,H LD D,H
ADD HL,HL ADD HL,HL
ADD HL,DE ADD HL,DE
; LD A,H
; OR 0xC0
; LD H,A
SET 6,H SET 6,H
SET 7,H SET 7,H
LD (AdrDelFile),HL LD (AdrDelFile),HL
@ -1877,9 +2227,7 @@ DeleteFlag DEFB 0x00
MakeDELname LD HL,(AdrDelFile) MakeDELname LD HL,(AdrDelFile)
INC HL INC HL
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG) BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
; JR NZ,MakeDELn1
JP Z,MakeDOSname JP Z,MakeDOSname
;MakeDELn1
INC HL INC HL
SUB A SUB A
.L1 LDI .L1 LDI
@ -1964,13 +2312,13 @@ DelDel0 LD IX,(AdrDelFile)
PUSH DE PUSH DE
CALL MakeDELname CALL MakeDELname
POP HL POP HL
LD C,DSSF.RMDIR ;0x1C ;RMDIR LD C,DSSF.RMDIR
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
JR NZ,DelDel1 JR NZ,DelDel1
LD A,(IX + FileHDR.Attr) LD A,(IX + FileHDR.Attr)
BIT DIR.B_Dir,A BIT DIR.B_Dir,A
JR NZ,DelDel1 JR NZ,DelDel1
LD C,DSSF.DELETE ;0x0E ;DELETE LD C,DSSF.DELETE
DelDel1 PUSH IY DelDel1 PUSH IY
SPDSS SPDSS
POP IY POP IY
@ -2050,9 +2398,9 @@ DelFrom EQU $-2
POP HL POP HL
LD A,(IX + FileHDR.Attr) LD A,(IX + FileHDR.Attr)
BIT DIR.B_Dir,A BIT DIR.B_Dir,A
LD C,DSSF.DELETE ;0x0E ;DELETE LD C,DSSF.DELETE
JR Z,.L3 JR Z,.L3
LD C,DSSF.RMDIR ;0x1C ;RMDIR LD C,DSSF.RMDIR
.L3 PUSH IY .L3 PUSH IY
SPDSS SPDSS
POP IY POP IY
@ -2177,11 +2525,7 @@ DelTreeDIR1 LD A,(DeleteFlag)
ADD HL,DE ADD HL,DE
INC HL INC HL
INC HL INC HL
IF TREE_REZID
CALL FindTreeDIRR CALL FindTreeDIRR
ELSE
CALL FindTreeDIRR
ENDIF
JP C,DelDIRn JP C,DelDIRn
LD HL,0xC001-0x10 LD HL,0xC001-0x10
LD BC,0x0010 LD BC,0x0010
@ -2231,15 +2575,12 @@ DelTree1 LD L,(IY + PANEL.FIRST_FILE)
ADD HL,HL ADD HL,HL
ADD HL,HL ADD HL,HL
ADD HL,HL ADD HL,HL
; LD A,H
; OR 0xC0
; LD H,A
SET 6,H SET 6,H
SET 7,H SET 7,H
DelTree2 LD E,(HL) DelTree2 LD E,(HL)
INC HL INC HL
LD A,(HL) LD A,(HL)
LD BC,FileHDR.Attr;0x000E LD BC,FileHDR.Attr
ADD HL,BC ADD HL,BC
LD D,(HL) LD D,(HL)
INC HL INC HL
@ -2254,9 +2595,6 @@ DelTree2 LD E,(HL)
ADD HL,HL ADD HL,HL
ADD HL,HL ADD HL,HL
ADD HL,HL ADD HL,HL
; LD A,H
; OR 0xC0
; LD H,A
SET 6,H SET 6,H
SET 7,H SET 7,H
OR A OR A
@ -2405,11 +2743,7 @@ DeleteExt1 INC SP
ADD IX,DE ADD IX,DE
CALL InitScrollBar CALL InitScrollBar
CALL DrawVScrollBar CALL DrawVScrollBar
IF TREE_REZID
CALL MakeTreePathR CALL MakeTreePathR
ELSE
CALL MakeTreePathR
ENDIF
PUSH IY PUSH IY
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG) BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD IY,RightPanel LD IY,RightPanel
@ -2421,41 +2755,20 @@ DeleteExt1 INC SP
DelName DB 13 DUP 0 DelName DB 13 DUP 0
;[]==========================================================[] ;--------------------------------------------------------------
QuitConfirmWin COPY
MAKEWINDOW WINSUBOBJ.STORE .PathCurrFile DW 0 ; €¤à¥á ®¯¨á â¥«ï ⥪ã饣® ä ©« /¤¨àë
W_MAIN 208,88,224,50 .PathSrc DW 0 ; €¤à¥á ¯ã⨠¨áâ®ç­¨ª 
W_FILL 4,2,216,10,COLORI.BLACK .PathDst DW 0 ; €¤à¥á ¯ã⨠¯à¨¥¬­¨ª 
W_TEXT 104,3,COLORI.WHITE,"Quit" .PathSrcEnd DW 0 ; €¤à¥á 墮áâ  ¯ã⨠¨áâ®ç­¨ª 
W_TEXT 28,19,COLORP.HIGHGRAY,"Do you want quit Flex Navigator ?" .PathDstEnd DW 0 ; €¤à¥á 墮áâ  ¯ã⨠¯à¨¥¬­¨ª 
W_BUTTON 32,32,72,14 .CopyFiles DW 0 ; Š®«¨ç¥á⢮ ª®¯¨à㥬ëå ä ©«®¢
W_TEXT 58,35,COLORP.HIGHGRAY,"Yes" .CopyBytes DB 5 DUP 0 ; Š®«¨ç¥á⢮ ª®¯¨à㥬ëå ¡ ©â®¢
W_BUTTON 120,32,72,14 .OverWriteFlg DB 0 ; ”« £ ¯¥à¥§ ¯¨á¨ ä ©«®¢
W_TEXT 150,35,COLORP.HIGHGRAY,"No" .FreeBanks DW 0 ; Š®«¨ç¥á⢮ ᢮¡®¤­ëå ¡ ­ª®¢
W_END .CurrReadBytes DD 0 ; „«¨­  ç¨â ¥¬®£® ä ©« 
.Loop LD IX,REZ2TAB.QuitTab .CurrWriteBytes DD 0 ; „«¨­  § ¯¨á뢠¥¬®£® ä ©« 
CALL CheckCoordsMouse .FHandleSrc DB 0 ; ” ©« ¨áâ®ç­¨ª
SPDSS DSSF.SCANKEY .FHandleDst DB 0 ; ” ©« ¯à¨¥¬­¨ª
JR Z,.Loop .MemID DB 0 ; ˆ¤¥­â¨ä¨ª â®à ¯ ¬ï⨠¯®¤ ª®¯¨à®¢ ­¨¥
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,5 +1,5 @@
; LAST UPDATE: 31.07.2025 savelij ; LAST UPDATE: 07.09.2025 savelij
;[]==========================================================[] ;[]==========================================================[]
QSearchR LD A,(IY+PANEL.FILES_ALL) QSearchR LD A,(IY+PANEL.FILES_ALL)
@ -120,7 +120,7 @@ InsSymbolSrch CP 0x20
LD B,0x00 LD B,0x00
PUSH IX PUSH IX
POP HL POP HL
LD DE,LenInpData LD DE,INPUTFORM.BUFLINE
ADD HL,DE ADD HL,DE
LD E,(IX+0x04) LD E,(IX+0x04)
ADD HL,DE ADD HL,DE
@ -130,7 +130,7 @@ InsSymbolSrch CP 0x20
LDDR LDDR
NotInsSrch PUSH IX NotInsSrch PUSH IX
POP HL POP HL
LD DE,LenInpData LD DE,INPUTFORM.BUFLINE
ADD HL,DE ADD HL,DE
LD E,(IX+0x02) LD E,(IX+0x02)
ADD HL,DE ADD HL,DE
@ -198,7 +198,7 @@ QSdelet LD A,(IX+0x02)
RET Z RET Z
PUSH IX PUSH IX
POP HL POP HL
LD DE,LenInpData LD DE,INPUTFORM.BUFLINE
ADD HL,DE ADD HL,DE
LD E,(IX+0x02) LD E,(IX+0x02)
ADD HL,DE ADD HL,DE
@ -378,9 +378,5 @@ SrchExit POP HL
SearchExit SearchExit
WINDOWCLOSE WINDOWCLOSE
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
IF TREE_REZID JP NZ,TestTreeR.TestTreeBeg
CALL NZ,TestTreeR.TestTreeBeg
ELSE
CALL NZ,TestTreeR.TestTreeBeg
ENDIF
RET 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 0,640,136,256,%0000000100100000,0,DelExit,0
DW 0x8000 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 .EmptyTab: DW 0,640, 0,256,%0000000000000000,0,InputLine.InputLineExitCancel,0
DW 0x8000 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) MarkFileR LD A,(IY+PANEL.FILES_ALL)
@ -15,20 +15,8 @@ MarkFileR LD A,(IY+PANEL.FILES_ALL)
LD A,(RAMPAGES.RIGHTPANEL) LD A,(RAMPAGES.RIGHTPANEL)
.L1 .L1
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
LD L,(IY+PANEL.FIRST_FILE) LD A,HIGH (CPU3)
LD H,(IY+PANEL.FIRST_FILE + 1) CALL GET_HANDLE_ADR
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 E,(HL) ; FileHDR.Flag LD E,(HL) ; FileHDR.Flag
POP AF POP AF
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
@ -64,20 +52,8 @@ UnSelectFile: LD IXL,0x00
.L2 .L2
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
SETPORT WINSP.Y_PORT,0xC0 SETPORT WINSP.Y_PORT,0xC0
LD L,(IY+PANEL.FIRST_FILE) LD A,HIGH (CPU3)
LD H,(IY+PANEL.FIRST_FILE + 1) CALL GET_HANDLE_ADR
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
PUSH HL PUSH HL
LD DE,FileHDR.Attr LD DE,FileHDR.Attr
ADD HL,DE ADD HL,DE
@ -85,9 +61,13 @@ UnSelectFile: LD IXL,0x00
POP HL POP HL
BIT DIR.B_Dir,C ; íâ® ¤¨à ? BIT DIR.B_Dir,C ; íâ® ¤¨à ?
IF MARK_DIR IF MARK_DIR
CALL NZ,CountingDirR ; ¨§¬¥à¥­¨¥ à §¬¥à  ¤¨àë PUSH HL
PUSH BC
CALL NZ,RESIDENT.CalcDirSize ; ¨§¬¥à¥­¨¥ à §¬¥à  ¤¨àë
POP BC
POP HL
ELSE ELSE
JR NZ,.MrFile1 ; ¤¨à¥ª®à¨¨ ª®¯¨à®¢ âì ­¥ 㬥¥¬, ⮫쪮 ä ©«ë JR NZ,.MrFile1 ; ¤¨à¥ªâ®à¨¨ ª®¯¨à®¢ âì ­¥ 㬥¥¬, ⮫쪮 ä ©«ë
ENDIF ENDIF
; íâ® ä ©« ; íâ® ä ©«
LD B,(HL) ; áâ à®¥ á®áâ®ï­¨¥ ¯®¬¥âª¨ ä ©«  LD B,(HL) ; áâ à®¥ á®áâ®ï­¨¥ ¯®¬¥âª¨ ä ©« 
@ -98,10 +78,10 @@ UnSelectFile: LD IXL,0x00
PUSH BC PUSH BC
LD BC,FileHDR.SIZE LD BC,FileHDR.SIZE
LDIR LDIR
IF MARK_DIR
BIT DIR.B_Dir,A ; ä ©« ¨«¨ ¤¨à  BIT DIR.B_Dir,A ; ä ©« ¨«¨ ¤¨à 
JR Z,.L8 JR Z,.L8
IF MARK_DIR ; ª®¯¨à㥬 à §¬¥à ¢ ¡ ©â å ¢ à §¬¥à ¤¨àë
; ª®¯¨à㥬 à §¬¥à ¢ ¡ ©â å ¨§ à §¬¥à  ¤¨àë
LD HL,JUMPS.FILES_BYTES LD HL,JUMPS.FILES_BYTES
LD DE,WorkBuffer + FileHDR.SizeBytes LD DE,WorkBuffer + FileHDR.SizeBytes
LD BC,DWORD LD BC,DWORD
@ -467,14 +447,14 @@ SMask21 LD (DE),A
SelectAllR: CALL ResInvert SelectAllR: CALL ResInvert
SelectAllRN: LD HL,SetInvert SelectAllRN: LD HL,SetInvert
PUSH HL PUSH HL
LD A,(IY+PANEL.FILES_ALL) LD A,(IY + PANEL.FILES_ALL)
OR (IY+PANEL.FILES_ALL + 1) OR (IY + PANEL.FILES_ALL + 1)
RET Z RET Z
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
RET NZ RET NZ
GETPORT WINSP.CPU3 GETPORT WINSP.CPU3
PUSH AF PUSH AF
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG) BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD A,(RAMPAGES.LEFTPANEL) LD A,(RAMPAGES.LEFTPANEL)
JR Z,.L1 JR Z,.L1
LD A,(RAMPAGES.RIGHTPANEL) LD A,(RAMPAGES.RIGHTPANEL)
@ -496,6 +476,8 @@ SelectAllRN: LD HL,SetInvert
EX AF,AF' ; [ ] fat32 EX AF,AF' ; [ ] fat32
.loop: BIT DIR.B_Dir,(IX + FileHDR.Attr) ;!HARDCODE DIRECTORY .loop: BIT DIR.B_Dir,(IX + FileHDR.Attr) ;!HARDCODE DIRECTORY
JR NZ,.SelAll1 JR NZ,.SelAll1
; ¬ àª¨à®¢ª  ⮫쪮 ä ©«®¢
PUSH BC
SET FileHDR.B_MARK,(IX + FileHDR.Flag) SET FileHDR.B_MARK,(IX + FileHDR.Flag)
LD C,(IX + FileHDR.SizeBytes) LD C,(IX + FileHDR.SizeBytes)
LD B,(IX + FileHDR.SizeBytes + 1) LD B,(IX + FileHDR.SizeBytes + 1)
@ -511,7 +493,8 @@ SelectAllRN: LD HL,SetInvert
EXX EXX
INC HL INC HL
EXX EXX
LD BC,FileHDR.SIZE ; LD BC,FileHDR.SIZE
POP BC
.SelAll1: ADD IX,BC .SelAll1: ADD IX,BC
LD A,(IX + FileHDR.Name) LD A,(IX + FileHDR.Name)
OR A OR A
@ -534,7 +517,7 @@ SelectAllRN: LD HL,SetInvert
LD (IY+PANEL.BYTES_MARK + 3),D LD (IY+PANEL.BYTES_MARK + 3),D
; [ ] FAT32 ; [ ] FAT32
EX AF,AF' EX AF,AF'
LD (IY+PANEL.BYTES_MARK_H),A LD (IY + PANEL.BYTES_MARK_H),A
CALL PrintDIR CALL PrintDIR
JP PrnFileInfo JP PrnFileInfo
@ -542,13 +525,13 @@ SelectAllRN: LD HL,SetInvert
UnSelectAllR: CALL ResInvert UnSelectAllR: CALL ResInvert
UnSelectAllRN: LD HL,SetInvert UnSelectAllRN: LD HL,SetInvert
PUSH HL PUSH HL
LD A,(IY+PANEL.FILES_ALL) LD A,(IY + PANEL.FILES_ALL)
OR (IY+PANEL.FILES_ALL + 1) OR (IY + PANEL.FILES_ALL + 1)
RET Z RET Z
BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG) BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
RET NZ RET NZ
LD A,(IY+PANEL.FILES_MARK) LD A,(IY + PANEL.FILES_MARK)
OR (IY+PANEL.FILES_MARK + 1) OR (IY + PANEL.FILES_MARK + 1)
RET Z RET Z
PUSH IY PUSH IY
POP HL POP HL
@ -560,7 +543,7 @@ UnSelectAllRN: LD HL,SetInvert
DJNZ .L2 DJNZ .L2
GETPORT WINSP.CPU3 GETPORT WINSP.CPU3
PUSH AF PUSH AF
BIT PANELFLAG.B_SIDE,(IY+PANEL.PANELFLAG) BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD A,(RAMPAGES.LEFTPANEL) LD A,(RAMPAGES.LEFTPANEL)
JR Z,.L1 JR Z,.L1
LD A,(RAMPAGES.RIGHTPANEL) LD A,(RAMPAGES.RIGHTPANEL)
@ -678,619 +661,3 @@ SUB_SIZE: EX AF,AF' ; [ ] fat32
EXX EXX
EX AF,AF' EX AF,AF'
RET 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 VersionR
@ -57,21 +57,23 @@ FileInfoR LD A,(IY+PANEL.FILES_ALL)
LD A,(RAMPAGES.RIGHTPANEL) LD A,(RAMPAGES.RIGHTPANEL)
.L1 .L1
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
LD L,(IY+PANEL.FIRST_FILE) ; LD L,(IY+PANEL.FIRST_FILE)
LD H,(IY+PANEL.FIRST_FILE + 1) ; LD H,(IY+PANEL.FIRST_FILE + 1)
LD E,(IY+PANEL.CURR_FILE) ; LD E,(IY+PANEL.CURR_FILE)
LD D,(IY+PANEL.CURR_FILE + 1) ; LD D,(IY+PANEL.CURR_FILE + 1)
ADD HL,DE ; ADD HL,DE
ADD HL,HL ; ADD HL,HL
ADD HL,HL ; ADD HL,HL
ADD HL,HL ; ADD HL,HL
LD E,L ; LD E,L
LD D,H ; LD D,H
ADD HL,HL ; ADD HL,HL
ADD HL,DE ; ADD HL,DE
LD A,H ; LD A,H
OR 0xC0 ; OR 0xC0
LD H,A ; LD H,A
LD A,HIGH (CPU3)
CALL GET_HANDLE_ADR
LD DE,WorkBuffer LD DE,WorkBuffer
LD BC,0x0018 LD BC,0x0018
LDIR LDIR
@ -697,21 +699,23 @@ PrintFileR LD A,(IY+PANEL.FILES_ALL)
LD A,(RAMPAGES.RIGHTPANEL) LD A,(RAMPAGES.RIGHTPANEL)
.L1 .L1
SETPORT WINSP.CPU3,,0 SETPORT WINSP.CPU3,,0
LD L,(IY+PANEL.FIRST_FILE) ; LD L,(IY+PANEL.FIRST_FILE)
LD H,(IY+PANEL.FIRST_FILE + 1) ; LD H,(IY+PANEL.FIRST_FILE + 1)
LD E,(IY+PANEL.CURR_FILE) ; LD E,(IY+PANEL.CURR_FILE)
LD D,(IY+PANEL.CURR_FILE + 1) ; LD D,(IY+PANEL.CURR_FILE + 1)
ADD HL,DE ; ADD HL,DE
ADD HL,HL ; ADD HL,HL
ADD HL,HL ; ADD HL,HL
ADD HL,HL ; ADD HL,HL
LD E,L ; LD E,L
LD D,H ; LD D,H
ADD HL,HL ; ADD HL,HL
ADD HL,DE ; ADD HL,DE
LD A,H ; LD A,H
OR 0xC0 ; OR 0xC0
LD H,A ; LD H,A
LD A,HIGH (CPU3)
CALL GET_HANDLE_ADR
LD DE,WorkBuffer LD DE,WorkBuffer
LD BC,0x0018 LD BC,0x0018
LDIR LDIR
@ -955,3 +959,42 @@ PrnFileName: DB 13 DUP 0
PrnFileLen: DB 4 DUP 0 PrnFileLen: DB 4 DUP 0
PrnMIndef: DB 0 PrnMIndef: DB 0
PrnFHandle: 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 InitExtention: LD HL,INIFILES.ExtName1
LD DE,BUFFERS.fn_ext LD DE,REZ3_BUFFERS.fn_ext
CALL InitExt CALL InitExt
LD HL,INIFILES.ExtName2 LD HL,INIFILES.ExtName2
LD DE,BUFFERS.fnview_ext LD DE,REZ3_BUFFERS.fnview_ext
CALL InitExt CALL InitExt
LD HL,INIFILES.ExtName3 LD HL,INIFILES.ExtName3
LD DE,BUFFERS.fnedit_ext LD DE,REZ3_BUFFERS.fnedit_ext
;[]----------------------------------------------------------[] ;[]----------------------------------------------------------[]
InitExt: LD (.EXTdata),DE InitExt: LD (.EXTdata),DE
SPDSS DSSF.OPEN,,1 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 .PrintFTab: DW 284,356,128,142,%0000000000000001,0,StopPrint,0
DW 0x8000 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