FlexNavigator 1.16.07:

- получение путей программы и формирование путей до плагинов перенесены
  в начало инициализации.
Flex CD Player 1.11:
- плагин переименован.
This commit is contained in:
savelij13 2026-05-11 21:37:10 +03:00
parent ece3d37a26
commit aa4d5d57e4
16 changed files with 276 additions and 114 deletions

View File

@ -1,4 +1,9 @@
11.05.2026
FlexNavigator 1.16.07
- ¯®«ã祭¨¥ ¯ã⥩ ¯à®£à ¬¬ë ¨ ä®à¬¨à®¢ ­¨¥ ¯ã⥩ ¤® ¯« £¨­®¢ ¯¥à¥­¥á¥­ë
¢ ­ ç «® ¨­¨æ¨ «¨§ æ¨¨.
22.01.2026
FlexNavigator 1.16.06
- ¤«ן ®ט¨<D798>®× ד ×®ג®אכו ­¥ג ג¥×בג  ®¯¨ב ­¨ן ג¥¯¥אל ¢כ¤ ¥ג ¢ב¥£¤ 

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
fn/fn.exe

Binary file not shown.

View File

@ -1,4 +1,9 @@
11.05.2026
FlexNavigator 1.16.07
- ¯®«ã祭¨¥ ¯ã⥩ ¯à®£à ¬¬ë ¨ ä®à¬¨à®¢ ­¨¥ ¯ã⥩ ¤® ¯« £¨­®¢ ¯¥à¥­¥á¥­ë
¢ ­ ç «® ¨­¨æ¨ «¨§ æ¨¨.
22.01.2026
FlexNavigator 1.16.06
- ¤«ן ®ט¨<D798>®× ד ×®ג®אכו ­¥ג ג¥×בג  ®¯¨ב ­¨ן ג¥¯¥אל ¢כ¤ ¥ג ¢ב¥£¤ 

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 18.01.2026 savelij
; LAST UPDATE: 11.05.2026 savelij
NUM_FILES_PANEL EQU 17 ; ª®«¨ç¥á⢮ ä ©«®¢ ¢ á⮫¡æ¥ ¯ ­¥«¨
NUM_PAGES_FN EQU 7 ; ª®«¨ç¥á⢮ áâà ­¨æ ¯ ¬ï⨠¤«ï à ¡®âë FN
@ -152,9 +152,11 @@ PANEL
_SETVAR .BYTES_MARK_H, BYTE ; Š®«-¢® ¬ àª¨à®¢ ­­ëå ¡ ©â®¢ FAT32
_SETVAR .FILE_MASK, MASK_SIZE ; Œ áª  ¯®ª §  ä ©«®¢
_SETVAR .CURR_PATH, 0x100 ; ’¥ªã騩 ¯ãâì ¯ ­¥«¨
_SETVAR .SIZE, 0 ; <20> §¬¥à áâàãªâãàë ¯ ­¥«¨
PANELFLAG
_BITMASK PRNDOSPATH, 7 ; =1-¯¥ç â âì ¯ãâì DOS
_BITMASK DIRS, 2 ; =1-¢ ¯®¬¥ç¥­­ëå ¥áâì ¤¨à¥ªâ®à¨¨, =0-⮫쪮 ä ©«ë
_BITMASK DIRPAGE, 1 ; =1-A-­®¬¥à áâà ­¨æë, =0-áâà ­¨æë ¯ ­¥«¥©
_BITMASK SIDE, 0 ; =1-¯à ¢ ï ¯ ­¥«ì, =0-«¥¢ ï ¯ ­¥«ì

View File

@ -1,11 +1,14 @@
; LAST UPDATE: 27.08.2025 savelij
; LAST UPDATE: 11.05.2026 savelij
;[]==========================================================[]
InitVideoMode
InitVideoMode LD A,0x00
.InitFlg EQU $-1
OR A
CALL Z,FirstInit
SPDSS DSSF.GETVMOD
LD C,A ; ⥪ã騩 ०¨¬ íªà ­ 
LD A,(InitFlg)
LD A,(InitVideoMode.InitFlg)
OR A
JR NZ,.L1
LD A,C
@ -105,18 +108,14 @@ InitDrivers SUB A
JR C,.L2
INC A
.L2 LD (CMOSFlag),A
LD A,0x00
InitFlg EQU $-1
OR A
CALL Z,FirstInit
CALL SETUP_DISKS
SPMOUSE MOUSEF.INIT
LD A,(MouseFlag)
OR A
LD C,MOUSEF.SHOW
JR NZ,.L1
JR NZ,.L4
LD C,MOUSEF.HIDE
.L1
.L4
SPMOUSE
;!TEST enable shared interrupts
;Check BIOS version
@ -259,7 +258,7 @@ FirstInit
LD HL,LeftPanel + PANEL.CURR_PATH
SPDSS DSSF.CHDIR
LD A,0x01
LD (InitFlg),A
LD (InitVideoMode.InitFlg),A
RET
.DIRFLX DZ "FLX\\"

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 18.01.2026 savelij
; LAST UPDATE: 30.04.2026 savelij
include fn_const.a80
include fn_macros.a80
@ -236,6 +236,7 @@ HLPBCDE: LD A,(HL)
LD (HL),A
RET
; ¯®«ã祭¨¥ DWORD ¯® 㪠§ â¥«î HL
GET_DWORD: LD E,(HL)
INC HL
LD D,(HL)
@ -245,6 +246,7 @@ GET_DWORD: LD E,(HL)
LD B,(HL)
RET
; ãáâ ­®¢ª  DWROD ¯® 㪠§ â¥«î HL
SET_DWORD: LD (HL),E
INC HL
LD (HL),D
@ -254,6 +256,8 @@ SET_DWORD: LD (HL),E
LD (HL),B
RET
; ¯®«ã祭¨¥ 㪠§ â¥«ï ­  ®¯¨á â¥«ì ä ©« 
; A - áâ à訩 ¡ ©â  ¤à¥á ¡ãä¥à  á ®¯¨á â¥«ï¬¨
GET_HANDLE_ADR LD L,(IY+PANEL.FIRST_FILE)
LD H,(IY+PANEL.FIRST_FILE + 1)
LD E,(IY+PANEL.CURR_FILE)
@ -485,10 +489,10 @@ START_BLOCK_2
; ¡ãä¥à  çâ®¡ë ¯ ¬ïâì ­¥ § ­¨¬ «¨ ¢ EXE ä ©«¥
REZ2_BUFFERS
_INIT_VAR BUF_REZ2.FlexDIRECTORY
_MINUSVAR .OLDLEFTPANEL, 0x100 ; ⥪ã騩 ¯ãâì «¥¢®© ¯ ­¥«¨
_MINUSVAR .OLDRIGHTPANEL, 0x100 ; ⥪ã騩 ¯ãâì ¯à ¢®© ¯ ­¥«¨
_MINUSVAR .FINDCURRPATH, 0x100 ; ¢à¥¬¥­­®© ⥪ã騩 ¯ãâì ¨áâ®ç­¨ª 
_MINUSVAR .FINDBUF, 0x100 ; ¢à¥¬¥­­ë© ¡ãä¥à ¯®¨áª 
_MINUSVAR .OLDLEFTPANEL, PANEL.SIZE ; ⥪ã騩 ¯ãâì «¥¢®© ¯ ­¥«¨
_MINUSVAR .OLDRIGHTPANEL, PANEL.SIZE ; ⥪ã騩 ¯ãâì ¯à ¢®© ¯ ­¥«¨
_MINUSVAR .ENDPATHSRC, WORD ;  ¤à¥á 墮áâ  ¯ã⨠¨áâ®ç­¨ª 
_MINUSVAR .CURR_DIRNAME, WORD ; ⥪ã騩  ¤à¥á ¢ ¯ãâ¨

View File

@ -1,32 +1,58 @@
; LAST UPDATE: 07.09.2025 savelij
; LAST UPDATE: 09.05.2026 savelij
;[]----------------------------------------------------------[]
; <20>  ¢å®¤¥:
; A - ­®¬¥à áâà ­¨æë ¤«ï à ¡®âë ¥á«¨ ¡¨â PANELFLAG.B_DIRPAGE ãáâ ­®¢«¥­
; ¨­ ç¥ ­¥ âॡã¥âáï
ReadDIR BIT PANELFLAG.B_DIRPAGE,(IY + PANEL.PANELFLAG)
JR NZ,.RD1
.RD2 BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD A,(RAMPAGES.LEFTPANEL)
JR Z,.RD1
LD A,(RAMPAGES.RIGHTPANEL)
.RD1 LD (.DIRPAGE),A
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
JP NZ,ReadTreeR
ReadDIRCopy
GETPORT WINSP.CPU3
PUSH AF
LD A,(IY + PANEL.SORTFLAG)
AND SORTFLAG.MASK
JR Z,.L6
; á á®àâ¨à®¢ª®© £à㧨¬ ¢ ᢮¡®¤­ãî ¯ £ã
LD A,(RAMPAGES.BuffPg3)
JR Z,.L1
LD A,(RAMPAGES.BuffPg4)
JR .L1
; ¡¥§ á®àâ¨à®¢ª¨ £à㧨¬ ¢ áâà ­¨æã ¯ ­¥«¨
.L6 LD A,0
.DIRPAGE EQU $-1
.L1
SETPORT WINSP.CPU3,,0
LD HL,NORMmask
.L2 LD DE,FILEmask
LD BC,MASK_SIZE
LDIR
LD IX,0
LD HL,CPU3
LD (AdrNxtFile),HL
LD B,8
.L3 LD (HL),0
INC HL
DJNZ .L3
CALL FindFILES
LD E,IXL
LD D,IXH
LD HL,(AdrNxtFile)
LD B,8
.L4 LD (HL),0
INC HL
DJNZ .L4
POP AF
SETPORT WINSP.CPU3,,0
LD (IY + PANEL.FILES_ALL),E ;EQUIP FIL
LD (IY + PANEL.FILES_ALL + 1),D
LD HL,(RAMPAGES.BuffPg3)
JP ReadDIR.RD3
; § £à㧪  ¤¨à¥ªâ®à¨¨ ¤«ï ®â®¡à ¦¥­¨ï ¢ ¯ ­¥«¨ á á®àâ¨à®¢ª®©
ReadDIR BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
JP NZ,ReadTreeR ; ¯¥à¥å®¤ ¥á«¨ ¯ ­¥«ì ¢ ०¨¬¥ ¤¥à¥¢ 
GETPORT WINSP.CPU3
PUSH AF
LD A,(IY + PANEL.SORTFLAG)
AND SORTFLAG.MASK
LD A,(RAMPAGES.BuffPg3)
JR NZ,.RD1 ; á á®àâ¨à®¢ª®© £à㧨¬ ¢® ¢à¥¬¥­­ãî áâà ­¨æã
; ¨­ ç¥ £à㧨¬ ¢ áâà ­¨æã ¯ ­¥«¨
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD A,(RAMPAGES.LEFTPANEL)
JR Z,.RD1
LD A,(RAMPAGES.RIGHTPANEL)
.RD1
SETPORT WINSP.CPU3,,0
PUSH IY
POP HL
@ -34,8 +60,6 @@ ReadDIR BIT PANELFLAG.B_DIRPAGE,(IY + PANEL.PANELFLAG)
LD E,L
LD BC,PANEL.FILE_MASK
ADD HL,BC
BIT PANELFLAG.B_DIRPAGE,(IY + PANEL.PANELFLAG)
JR NZ,.L8
EX DE,HL
LD BC,PANEL.FILES_ALL
ADD HL,BC
@ -43,8 +67,8 @@ ReadDIR BIT PANELFLAG.B_DIRPAGE,(IY + PANEL.PANELFLAG)
.L5 LD (HL),0
INC HL
DJNZ .L5
.L8 RES PANELFLAG.B_DIRPAGE,(IY + PANEL.PANELFLAG)
BIT SORTFLAG.B_FILTER,(IY + PANEL.SORTFLAG)
EX DE,HL
.L8 BIT SORTFLAG.B_FILTER,(IY + PANEL.SORTFLAG)
JR NZ,.L2
LD HL,NORMmask
.L2 LD DE,FILEmask
@ -71,7 +95,14 @@ ReadDIR BIT PANELFLAG.B_DIRPAGE,(IY + PANEL.PANELFLAG)
SETPORT WINSP.CPU3,,0
LD (IY + PANEL.FILES_ALL),E ;EQUIP FIL
LD (IY + PANEL.FILES_ALL + 1),D
LD A,(IY + PANEL.SORTFLAG)
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD A,(RAMPAGES.LEFTPANEL)
JR Z,.RD2
LD A,(RAMPAGES.RIGHTPANEL)
.RD2 LD L,A ; ªã¤ 
LD A,(RAMPAGES.BuffPg3)
LD H,A ; ®âªã¤ 
.RD3 LD A,(IY + PANEL.SORTFLAG)
AND SORTFLAG.MASK
JP NZ,SortDIR
RET
@ -398,15 +429,23 @@ CorrSmallChar CP 'a'
ENDIF ; CORR_FILENAME
;[]----------------------------------------------------------[]
; H - SRC ­®¬¥à áâà ­¨æë ®âªã¤  ¡à âì ¤«ï á®àâ¨à®¢ª¨
; L - DST ­®¬¥à áâà ­¨æë ªã¤  ᪫ ¤ë¢ âì ®âá®àâ¨à®¢ ­­®¥
SortDIR
GETPORT WINSP.CPU1
LD C,A
GETPORT WINSP.CPU3
LD B,A
PUSH BC
LD A,(ReadDIR.DIRPAGE)
; BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
; LD A,(RAMPAGES.LEFTPANEL)
; JR Z,.RD1
; LD A,(RAMPAGES.RIGHTPANEL)
;.RD1
LD A,L
SETPORT WINSP.CPU3,,0
LD A,(RAMPAGES.BuffPg4)
; LD A,(RAMPAGES.BuffPg3)
LD A,H
SETPORT WINSP.CPU1,,0
LD HL,CPU3
LD (EndSort),HL
@ -501,6 +540,14 @@ SortDIR
.L3 LD (HL),A
INC HL
DJNZ .L3
; GETPORT WINSP.CPU1
; LD (RAMPAGES.BuffPg3),A
; GETPORT WINSP.CPU3
; BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
; LD HL,RAMPAGES.LEFTPANEL
; JR Z,.L2
; LD HL,RAMPAGES.RIGHTPANEL
;.L2 LD (HL),A
POP BC
LD A,B
SETPORT WINSP.CPU3,,0

View File

@ -1,7 +1,7 @@
; LAST UPDATE: 22.01.2026 savelij
; LAST UPDATE: 11.05.2026 savelij
FLEX_VERS
.NAVIGATOR EQU "1.16.06"
.NAVIGATOR EQU "1.16.07"
.EDITOR EQU "1.11"
.VIEWER EQU "1.07"

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 31.07.2025 savelij
; LAST UPDATE: 30.01.2026 savelij
include macros.a80
include fn_const.a80
@ -22,7 +22,7 @@ PluginEntry:
MAKEWINDOW WINSUBOBJ.STORE
W_MAIN 78,79,484,72
W_FILL 4,2,464,10,COLORI.BLUE + COLORP.BLUE
W_TEXT 8,4,COLORI.WHITE + COLORP.BLUE,"SHAOS CD-Player v\{CDVERS}"
W_TEXT 8,4,COLORI.WHITE + COLORP.BLUE,"Flex CD Player v\{CDVERS}"
W_BUTTONTEXT 468,2,12,10,COLORP.HIGHGRAY,"x"
W_BORDER 8,15,268,38
W_FILL 10,16,264,36,COLORI.BLACK
@ -261,7 +261,7 @@ CDinit: LD B,0xC0 - 1
CALL CHANGEDISK
LD HL,FLAG
RES B_TRAY,(HL)
.UPDATE_TOC LD HL,RESULT+6
.UPDATE_TOC LD HL,RESULT + 6
LD (HL),0xAA
LD HL,APCMD.READTOC
CALL SEND_PACKET

View File

@ -1,7 +1,7 @@
; LAST UPDATE: 11.07.2025 savelij
; LAST UPDATE: 11.05.2026 savelij
CDVERS EQU "1.1"
CDVERS EQU "1.11"
PAUSE EQU 10 ; è £ ¢ ᥪ㭤 å ¤«ï ¯¥à¥¬®âª¨
PAUSEDIGITS EQU 12 ; ¯ ã§  ¬®à£ ­¨ï æ¨äà ¢ ०¨¬¥ ¯ ã§ 

View File

@ -3,14 +3,9 @@ Flex Navigator для компьютера Sprinter
Собранные файлы забирать из папки fn
`FlexNavigator 1.16.06`
- для ошибок у которых нет текста описания теперь выдает всегда
текст ошибки "Unknown Error".
- исправлена ошибка приводящая к вылету при копировании нескольких файлов
на уже существующие и выборе отмены от продолжения копирования.
`FlexNavigator 1.16.07`
- получение путей программы и формирование путей до плагинов перенесены
в начало инициализации.
`FileViewer.flx 1.07`
- мелкое исправление позиции вывода даты/времени.
`FileEditor.flx 1.11`
- мелкое исправление позиции вывода даты/времени.
`Flex CD Player 1.11`
- плагин переименован.

View File

@ -1,5 +1,5 @@
; LAST UPDATE: 22.01.2026 savelij
; LAST UPDATE: 09.05.2026 savelij
;[]==========================================================[]
CopyFilesR LD A,(IY + PANEL.FILES_ALL)
@ -33,7 +33,7 @@ CopyFilesR LD A,(IY + PANEL.FILES_ALL)
IF MARK_DIR
JP NZ,.InitCopyDir
ELSE
RET NZ
RET NZ ; ª®¯¨à®¢ ­¨¥ ¤¨à¥ªâ®à¨© ­¥â, ¢ë室
ENDIF
LD HL,0
LD (COPY.CopyFiles),HL
@ -53,6 +53,8 @@ CopyFilesR LD A,(IY + PANEL.FILES_ALL)
CALL CalcDirSizeR ; ¨§¬¥à¥­¨¥ à §¬¥à  ¤¨à¥ªâ®à¨¨ á ä ©« ¬¨
POP HL
LD (COPY.PathCurrFile),HL
LD HL,(JUMPS.FILES_COUNT)
LD (COPY.CopyFiles),HL
LD HL,JUMPS.FILES_BYTES
LD DE,COPY.CopyBytes
LD BC,DWORD + 1
@ -194,7 +196,11 @@ CopyNxt LD IX,ProcessAll
W_FILL 18,57,284,10,COLORI.WHITE
W_END
XOR A
LD (COPY.OverWriteFlg),A
LD (COPY.OverWriteFlg),A ; á¡à®á ä« £  ¯¥à¥§ ¯¨á¨ ä ©« 
LD (COPY.LevelDir),A ; á¡à®á ã஢­ï ¢å®¦¤¥­¨ï ¢ ¤¨à¥ªâ®à¨¨
LD H,A
LD L,A
LD (COPY.PathCurrRoot),HL
LD HL,CurPath
LD DE,0 ;  ¤à¥á ®â। ªâ¨à®¢ ­­®£® ¯ã⨠¯à¨¥¬­¨ª 
.NEWPATH EQU $-2
@ -209,19 +215,15 @@ CopyNxt LD IX,ProcessAll
PUSH AF
LD (CopyDir.CURR_PANEL),IY ; ¯à¨ ª®¯¨à®¢ ­¨¨ ä ©«  ¯®àâ¨âáï
IF MARK_DIR
; ⥪ãéãî ¤¨à¥ªâ®à¨î £à㧨¬ ¢ ᢮¡®¤­ãî áâà ­¨æã
LD A,(RAMPAGES.BuffPg3)
SETPORT WINSP.CPU3,,0
SET PANELFLAG.B_DIRPAGE,(IY + PANEL.PANELFLAG)
CALL ReadDIR
ELSE
; ⥪ãéãî ¤¨à¥ªâ®à¨î £à㧨¬ ¢ ᢮¡®¤­ãî áâà ­¨æã ¤«ï ª®¯¨à®¢ ­¨ï ¤¨à¥ªâ®à¨©
CALL ReadDIRCopy
ENDIF
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD A,(RAMPAGES.LEFTPANEL)
JR Z,.L3
LD A,(RAMPAGES.RIGHTPANEL)
.L3
SETPORT WINSP.CPU3,,0
ENDIF
; ª®¯¨à®¢ ­¨¥ ä ©«®¢/¤¨à¥ªâ®à¨©
CopyNextFile LD IX,(COPY.PathCurrFile)
IF MARK_DIR
@ -313,7 +315,7 @@ CopyNextFile LD IX,(COPY.PathCurrFile)
AND A ; OverWrite.REWRITE
JR Z,.CopyLp2 ; ¯à®¤®«¦ âì á ¯¥à¥§ ¯¨áìî
DEC A ; OverWrite.SKIP
JP Z,CopyNextFile.CloseFile1 ; ¯à®¯ã᪠ª®¯¨à®¢ ­¨ï
JP Z,.CloseFile1 ; ¯à®¯ã᪠ª®¯¨à®¢ ­¨ï
; ¯à¥à뢠­¨¥ ª®¯¨à®¢ ­¨ï OverWrite.BREAK
LD A,(COPY.FHandleSrc)
SPDSS DSSF.CLOSE
@ -448,6 +450,7 @@ CopyNextFile LD IX,(COPY.PathCurrFile)
SPDSS DSSF.CLOSE
LD A,(COPY.MemID)
SPDSS DSSF.FREEMEM
; ä ©« ᪮¯¨à®¢ ­, ¯à®¢¥à塞 ¥áâì «¨ ¥é¥ çâ®-â®
.NextHandle LD IX,(COPY.PathCurrFile)
RES FileHDR.B_MARK,(IX + FileHDR.Flag)
LD HL,(COPY.CopyBytes)
@ -481,6 +484,11 @@ CopyNextFile LD IX,(COPY.PathCurrFile)
LD HL,(COPY.PathCurrFile)
LD DE,FileHDR.SIZE
.L5 ADD HL,DE ; á«¥¤ãî騩 ®¯¨á â¥«ì
INC HL
LD A,(HL)
DEC HL
AND A
JR Z,CopyDir ; ¤¨à¥ªâ®à¨ï ª®­ç¨« áì
BIT FileHDR.B_MARK,(HL)
JR Z,.L5
LD (COPY.PathCurrFile),HL
@ -489,8 +497,14 @@ CopyNextFile LD IX,(COPY.PathCurrFile)
; ª®¯¨à®¢ ­¨¥ ¤¨à¥ªâ®à¨¨
CopyDir LD IY,0
.CURR_PANEL EQU $-2
CALL DIRLIST.GET_DIRNAME ; ¯®«ã祭¨¥ ¨¬¥­¨ ¤¨àë, ¥á«¨ ¥áâì
JP C,CopyEnd ; C=1 ⥪ãé ï ¤¨à  ª®­ç¨« áì ¨«¨ ¨å ­¥â
LD DE,(COPY.PathCurrRoot)
LD A,D
OR E
JR NZ,.L1
LD HL,(COPY.PathCurrFile)
LD (COPY.PathCurrRoot),HL
.L1 CALL DIRLIST.GET_DIRNAME ; ¯®«ã祭¨¥ ¨¬¥­¨ ¤¨àë, ¥á«¨ ¥áâì
JR C,.CopyEnd ; C=1 ⥪ãé ï ¤¨à  ª®­ç¨« áì ¨«¨ ¨å ­¥â
CALL DIRLIST.ADD_DIRLEVEL ; ¤®¡ ¢«¥­¨¥ ᯨ᪠ ¤¨àë
PUSH IY
LD HL,(COPY.PathDst)
@ -500,16 +514,41 @@ CopyDir LD IY,0
SPDSS DSSF.CHDIR ; ᬥ­  ⥪ã饣® ¯ãâ¨
; CALL C,DOSError
POP IY
LD A,(RAMPAGES.BuffPg3)
SET PANELFLAG.B_DIRPAGE,(IY + PANEL.PANELFLAG)
CALL ReadDIR
LD A,(RAMPAGES.BuffPg3) ; ¤«ï ª®¯¨à®¢ ­¨ï ¤¨àë ¢ª«îç ¥¬ áâà ­¨æã á ¯®¤¤¨à¥ªâ®à¨¥©
SETPORT WINSP.CPU3,,0
CALL ReadDIRCopy
CALL DIRLIST.MARK_ALL ; ¬ àª¨à®¢ª  ¢á¥å ä ©«®¢/¤¨à
LD HL,0xC000 + FileHDR.SIZE
LD (COPY.PathCurrFile),HL
JP CopyNextFile
BUF_MARKDIR
.DIR_NAME DZ " " ; ¨¬ï ⥪ã饩 ¤¨à¥ªâ®à¨¨
; ¤¨à¥ªâ®à¨ï ᪮¯¨à®¢ ­ , ¯à®¢¥àª  ¢ ª®à­¥ ®ª®­ç ­¨ï ®¯¨á â¥«¥©
.CopyEnd LD HL,LeftPanel + PANEL.CURR_PATH
CALL DIRLIST.FIND_END_LINE
LD HL,RightPanel + PANEL.CURR_PATH
CALL DIRLIST.FIND_END_LINE
BIT PANELFLAG.B_SIDE,(IY + PANEL.PANELFLAG)
LD A,(RAMPAGES.LEFTPANEL)
JR Z,.L2
LD A,(RAMPAGES.RIGHTPANEL)
.L2
SETPORT WINSP.CPU3,,0
XOR A
LD HL,COPY.PathCurrRoot
LD E,(HL)
LD (HL),A
INC HL
LD D,(HL)
LD (HL),A
EX DE,HL
LD DE,FileHDR.SIZE + 1
ADD HL,DE
LD A,(HL)
SBC HL,DE
DEC DE
AND A
JP NZ,CopyNextFile.L5 ; ¥áâì ¥é¥ çâ® ª®¯¨à®¢ âì
JP CopyEnd ; ¡®«ìè¥ ­¨ç¥£® ­¥ ®áâ «®áì
DIRLIST
; ¯®¬¥âª  ¢á¥å ä ©«®¢/¤¨à
@ -537,13 +576,15 @@ DIRLIST
EXX
JR .MLNEXT
; ¤®¡ ¢«¥­¨¥ ¨¬¥­¨ ¤¨àë ¢ ᯨ᮪, á®§¤ ­¨¥ ¤¨àë ­  ¯à¨¥¬­¨ª¥
; ¤®¡ ¢«¥­¨¥ ¨¬¥­¨ ¤¨àë ¢ ᯨ᮪
.ADD_DIRNAME PUSH IX
POP HL
INC HL
LD DE,BUF_MARKDIR.DIR_NAME
LD BC,8
LDIR ; § ¡à «¨ ¨¬ï ¤¨àë ¤® ¯¥à¥ª«î祭¨ï ¯ £
LD HL,COPY.LevelDir
INC (HL) ; ¤®¡ ¢«¥­¨¥ ã஢­ï ¤¨à¥ªâ®à¨¨
LD A,(RAMPAGES.FLX)
LD C,WINSP.CPU3
IN B,(C)
@ -558,6 +599,7 @@ DIRLIST
LD L,C
JR .ANNEXT
; ­ ©¤¥­® ᢮¡®¤­®¥ ¬¥áâ®
.ANFOUND PUSH HL
LD HL,BUF_MARKDIR.DIR_NAME
LD BC,8
@ -607,6 +649,19 @@ DIRLIST
INC HL
RET
; ¯®¨áª ª®­æ  áâப¨
.FIND_END_LINE LD A,(HL)
INC HL
AND A
JR NZ,.FIND_END_LINE
.FEL1 DEC HL
LD A,(HL)
CP '\\'
JR NZ,.FEL1
INC HL
LD (HL),0
RET
; ®âá¥ç¥­¨¥ ¯à®¡¥«®¢ ¢ ¨¬¥­¨
.CUTOFFSPACES LD A,' '
.COS2 DEC HL
@ -631,9 +686,10 @@ DIRLIST
LD L,C
JR .ALNEXT
.ALFOUND LD (HL),D
.ALFOUND
; LD (HL),D
DEC HL
LD (HL),E
; LD (HL),E
LD H,D
LD L,E
INC DE
@ -657,6 +713,8 @@ DIRLIST
IN B,(C)
PUSH BC
OUT (C),A
LD HL,COPY.LevelDir
DEC (HL) ; 㬥­ì襭¨¥ ã஢­ï ¤¨à¥ªâ®à¨¨
.GNRESTART LD HL,0xC000
.GNNEXT CALL GET_DWORD
LD A,B
@ -760,12 +818,12 @@ DIRLIST
.L1 LD (COPY.PathSrc),HL
EX DE,HL
LD (COPY.PathDst),HL
XOR A
.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
@ -790,37 +848,50 @@ DIRLIST
SETPORT WINSP.CPU3,,0
RET
; á®åà ­¥­¨¥ ¯ã⥩ ¯ ­¥«¥©
StorePaths LD HL,LeftPanel + PANEL.CURR_PATH
; á®åà ­¥­¨¥ ®¯¨á â¥«¥© ¯ ­¥«¥©
StorePaths
GETPORT WINSP.CPU1
LD (COPY.PageStorePaths),A
LD HL,LeftPanel
LD DE,REZ2_BUFFERS.OLDLEFTPANEL
LD BC,PANEL.CURR_PATH_Size
LD BC,PANEL.SIZE
LDIR
LD HL,RightPanel + PANEL.CURR_PATH
LD HL,RightPanel
LD DE,REZ2_BUFFERS.OLDRIGHTPANEL
LD BC,PANEL.CURR_PATH_Size
LD BC,PANEL.SIZE
LDIR
RET
; ¢®ááâ ­®¢«¥­¨¥ ¯ã⥩ ¯ ­¥«¥©
RestorePaths LD HL,REZ2_BUFFERS.OLDLEFTPANEL
LD DE,LeftPanel + PANEL.CURR_PATH
LD BC,PANEL.CURR_PATH_Size
; ¢®ááâ ­®¢«¥­¨¥ ®¯¨á â¥«¥© ¯ ­¥«¥©
RestorePaths LD A,(COPY.PageStorePaths)
AND A
RET Z ; á®åà ­¥­¨ï ­¥ ¡ë«®, ¢ë室¨¬
GETPORT WINSP.CPU1
EX AF,AF'
LD HL,COPY.PageStorePaths
LD A,(HL)
LD (HL),0
SETPORT WINSP.CPU1,,0
LD HL,REZ2_BUFFERS.OLDLEFTPANEL
LD DE,LeftPanel
LD BC,PANEL.SIZE
LDIR
LD HL,REZ2_BUFFERS.OLDRIGHTPANEL
LD DE,RightPanel + PANEL.CURR_PATH
LD BC,PANEL.CURR_PATH_Size
LD DE,RightPanel
LD BC,PANEL.SIZE
LDIR
EX AF,AF'
SETPORT WINSP.CPU1,,0
RET
; ¯®¤áç¥â ¢ ¡ ©â å à §¬¥à  ®â¬¥ç¥­­®© ¤¨à¥ªâ®à¨¨
CalcDirSizeR: PUSH IX
PUSH IY
SET PANELFLAG.B_DIRS,(IY + PANEL.PANELFLAG)
GETPORT WINSP.CPU3
PUSH AF ; ⥪ã騩 ­®¬¥à áâà ­¨æë
LD (.CURR_PANEL),IY
LD A,(RAMPAGES.BuffPg3)
SET PANELFLAG.B_DIRPAGE,(IY + PANEL.PANELFLAG)
CALL ReadDIR
CALL ReadDIRCopy
LD A,(RAMPAGES.BuffPg3)
SETPORT WINSP.CPU3,,0
LD A,HIGH (CPU3)
@ -881,9 +952,7 @@ CalcDirSizeR: PUSH IX
SPDSS DSSF.CHDIR ; ᬥ­  ⥪ã饣® ¯ãâ¨
; CALL C,DOSError
POP IY
LD A,(RAMPAGES.BuffPg3)
SET PANELFLAG.B_DIRPAGE,(IY + PANEL.PANELFLAG)
CALL ReadDIR
CALL ReadDIRCopy
CALL DIRLIST.MARK_ALL ; ¬ àª¨à®¢ª  ¢á¥å ä ©«®¢/¤¨à
LD HL,0xC000 + FileHDR.SIZE
LD (COPY.PathCurrFile),HL
@ -985,6 +1054,7 @@ CopyError1 PUSH AF
CALL DOSError
JP CopyEnd
; ¯à¥à뢠­¨¥ ª®¯¨à®¢ ­¨ï
CopyBreak POP HL
POP AF
SETPORT WINSP.CPU3,,0
@ -2112,13 +2182,16 @@ MDIRLen DB 0x00
NewDIR DB 0x0D DUP 0x00
;[]==========================================================[]
; 㤠«¥­¨¥ ä ©«®¢/¤¨à¥ªâ®à¨©
DeleteFilesR LD A,(IY + PANEL.FILES_ALL)
OR (IY + PANEL.FILES_ALL + 1)
RET Z
RET Z ; ä ©«®¢ ­¥â
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
RET NZ ; ०¨¬ ®â®¡à ¦¥­¨ï ¯ ­¥«¨ - ¤¥à¥¢®
SETPORT WINSP.Y_PORT,0xC0
LD A,(IY + PANEL.FILES_MARK)
OR (IY + PANEL.FILES_MARK + 1)
JR NZ,DeleteMark
JR NZ,DeleteMark ; ¥áâì ¯®¬¥ç¥­­ë¥ ä ©«ë
; 㤠«¥­¨¥ ¯®¤ ªãàá®à®¬ ä ©« /¤¨à¥ªâ®à¨¨
GETPORT WINSP.CPU3
PUSH AF
@ -2128,13 +2201,14 @@ DeleteFilesR LD A,(IY + PANEL.FILES_ALL)
LD A,(RAMPAGES.RIGHTPANEL)
.L1
SETPORT WINSP.CPU3,,0
if 0
LD L,(IY + PANEL.FIRST_FILE)
LD H,(IY + PANEL.FIRST_FILE + 1)
LD E,(IY + PANEL.CURR_FILE)
LD D,(IY + PANEL.CURR_FILE + 1)
ADD HL,DE
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
JR Z,DelFile
JR Z,.DelFile
ADD HL,HL
ADD HL,HL
ADD HL,HL
@ -2143,9 +2217,9 @@ DeleteFilesR LD A,(IY + PANEL.FILES_ALL)
SET 7,H
LD (AdrDelFile),HL
INC HL
JR DelFil1
JR .DelFil1
DelFile ADD HL,HL
.DelFile ADD HL,HL
ADD HL,HL
ADD HL,HL
LD E,L
@ -2155,17 +2229,38 @@ DelFile ADD HL,HL
SET 6,H
SET 7,H
LD (AdrDelFile),HL
DelFil1 INC HL
.DelFil1 INC HL
LD E,(HL)
POP AF
SETPORT WINSP.CPU3,,0
else ; if 0
LD IX,WorkBuffer
LD A,HIGH (CPU3)
CALL GET_HANDLE_ADR
LD (AdrDelFile),HL
LD DE,WorkBuffer
LD BC,FileHDR.SIZE
LDIR ; ª®¯¨à®¢ ­¨¥ ⥪ã饣® ®¯¨á â¥«ï
POP AF
SETPORT WINSP.CPU3,,0
; BIT DIR.B_Dir,(IX + FileHDR.Attr)
; IF MARK_DIR
; JP NZ,.InitDeleteDir ; ¯¥à¥å®¤ ­  ¯®¤£®â®¢ªã 㤠«¥­¨ï ¤¨àë
; ELSE
; RET NZ ; ¢ë室 ¥á«¨ ¤¨à¥ªâ®à¨ï
; ENDIF
endif ; if 0
LD A,E
CP '.' ; ¢ ¨¬¥­¨ ä ©«  ¢ ®¯¨á â¥«¥? áâà ­­ ï ¯à®¢¥àª 
CP '.' ; ­¥«ì§ï 㤠«¨âì § ¯¨áì ".."
RET Z
CP '\\' ; ¢ ¨¬¥­¨ ä ©«  ¢ ®¯¨á â¥«¥? ¥é¥ áâà ­­¥©
CP '\\' ; ¢ ¨¬¥­¨ ä ©«  ¢ ®¯¨á â¥«¥? çâ® §  ¯à®¢¥àª ?
RET Z
JR DelNext
; 㤠«¥­¨¥ ¤¨àë á® ¢á¥¬ ᮤ¥à¦¨¬ë¬
;.InitDeleteDir CALL StorePaths ; á®åà ­¥­¨¥ ⥪ãé¨å ¯ã⥩ ¯ ­¥«¥©
; JR DelNext
; 㤠«¥­¨¥ ¬ àª¨à®¢ ­­ëå ä ©«®¢/¤¨à¥ªâ®à¨©
DeleteMark
GETPORT WINSP.CPU3
@ -2268,9 +2363,7 @@ DelJump
WINDOWCLOSE
JP (HL)
AdrDelFile DEFW 0x0000
DeleteFlag DEFB 0x00
; á®§¤ ­¨¥ ¨¬¥­¨ 㤠«ï¥¬®£® ä ©« /¤¨à¥ªâ®à¨¨
MakeDELname LD HL,(AdrDelFile)
INC HL
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
@ -2330,7 +2423,8 @@ DeleteSkip LD C,(IY + PANEL.FILES_MARK)
; 㤠«¥­¨¥ ®¤­®£® ä ©« /¤¨àë
DeleteOne CALL PointerMouseClock
BIT VIEWFLAG.B_TREE,(IY + PANEL.VIEWFLAG)
JR Z,DelDel0
JR Z,.DelDel0
; ¤«ï ०¨¬  ¯®ª §  ¤¥à¥¢  ¦¨à¥ªâ®à¨©
PUSH IY
POP HL
LD DE,PANEL.CURR_PATH
@ -2356,7 +2450,7 @@ DeleteOne CALL PointerMouseClock
CALL C,DOSError
POP AF
JP C,DeleteExit
DelDel0 LD IX,(AdrDelFile)
.DelDel0 LD IX,(AdrDelFile)
LD DE,WorkBuffer
PUSH DE
CALL MakeDELname
@ -2382,6 +2476,7 @@ DelDel2 LD A,0x01
CALL PointerMousePointer
JP DeleteSkip
; 㤠«¥­¨¥ ¢á¥å ä ©«®¢/¤¨à¥ªâ®à¨©
DeleteAll BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
JR NZ,DeleteOne
LD A,0x01
@ -2413,6 +2508,7 @@ DeleteAll BIT VIEWFLAG.B_TREE,(IY+PANEL.VIEWFLAG)
LD (IX + PROGRESSBAR.MAX_PAGES + 2),A
LD (IX + PROGRESSBAR.MAX_PAGES + 3),A
CALL InitProgressBar
; ­ ç «® 横«¨ç¥áª®£® 㤠«¥­¨ï
DeleteAllLp LD HL,0x0000
DelFrom EQU $-2
LD DE,WorkBuffer
@ -2795,11 +2891,18 @@ DeleteExt1 INC SP
POP IY
RET
DelName DB 13 DUP 0
;--------------------------------------------------------------
BUF_MARKDIR ; 01234567
.DIR_NAME DZ " " ; ¨¬ï ⥪ã饩 ¤¨à¥ªâ®à¨¨
.DIR_PREV DZ ".."
DelName DB 13 DUP 0
AdrDelFile DW 0
DeleteFlag DB 0
COPY
.PathCurrFile DW 0 ; €¤à¥á ®¯¨á â¥«ï ⥪ã饣® ä ©« /¤¨àë
.PathCurrRoot DW 0 ; €¤à¥á ®¯¨á â¥«ï ¢ ¤¨à¥ªâ®à¨¨ áâ àâ  ª®¯¨à®¢ ­¨ï
.PathSrc DW 0 ; €¤à¥á ¯ã⨠¨áâ®ç­¨ª 
.PathDst DW 0 ; €¤à¥á ¯ã⨠¯à¨¥¬­¨ª 
.PathSrcEnd DW 0 ; €¤à¥á 墮áâ  ¯ã⨠¨áâ®ç­¨ª 
@ -2810,6 +2913,8 @@ COPY
.FreeBanks DW 0 ; Š®«¨ç¥á⢮ ᢮¡®¤­ëå ¡ ­ª®¢
.CurrReadBytes DD 0 ; „«¨­  ç¨â ¥¬®£® ä ©« 
.CurrWriteBytes DD 0 ; „«¨­  § ¯¨á뢠¥¬®£® ä ©« 
.LevelDir DB 0 ; “஢¥­ì ¢å®¦¤¥­¨ï ¢ ¤¨à¥ªâ®à¨¨ ®â ⥪ã饩 ¯®§¨æ¨¨ ª®¯¨à®¢ ­¨ï
.PageStorePaths DB 0 ; ‘âà ­¨æ  á®åà ­¥­­ëå ®¯¨á â¥«¥© ¯ ­¥«¥©
.FHandleSrc DB 0 ; ” ©« ¨áâ®ç­¨ª
.FHandleDst DB 0 ; ” ©« ¯à¨¥¬­¨ª
.MemID DB 0 ; ˆ¤¥­â¨ä¨ª â®à ¯ ¬ï⨠¯®¤ ª®¯¨à®¢ ­¨¥