File Manager for PicoMite


Author Message
twofingers
Guru

Joined: 02/06/2014
Location: Germany
Posts: 1456
Posted: 01:16pm 02 Feb 2025      

Hi Vadim,
thanks for the last version and thanks for "spying" .
Something to look at again ...
BTW: the USB-keyboard+console no longer works in FM123!

Here comes the newest unofficial version:

fm1184.zip

New:
- DeleteDir included
- CopyDir included

(As Matthias suggested.)

It works quite satisfactorily. But not perfectly. For example, the source and target directories for copying must not be identical. It is still a test version, without warranty. I would like to have more dialog functions and feedback from the new functions (for example a progress bar), without making the whole thing too complicated. On the other hand, I don't want to change the design too much.

You can tell me if you like it and if you adopt something from the suggestion.
Now all that's missing is multi select ...

Kind regards
Michael
Edited 2025-02-03 03:12 by twofingers

javavi

Guru

Joined: 01/10/2023
Location: Ukraine
Posts: 402
Posted: 08:45pm 02 Feb 2025      

Speeded up sorting by name by disabling additional readings when forming a list of files.
Yes, I made a USB keyboard, but the console seems to have fallen off, I haven't figured out how to make it universal yet. And why, I think a separate version of FM should be made for the console.
I am watching with interest the implementation of the function of copying/moving a folder with files, I will have to do this too.
I think that multiple selection can be made simultaneously with coloring files by type by introducing one additional array.

twofingers
Guru

Joined: 02/06/2014
Location: Germany
Posts: 1456
Posted: 09:06pm 02 Feb 2025      

Hi Vadim,

  javavi said  I think that multiple selection can be made simultaneously with coloring files by type by introducing one additional array.

Yes, that's how I imagined it. But it could also be very complicated ...

  javavi said  Speeded up sorting by name by disabling additional readings when forming a list of files.

Sure? I didn't notice it, unfortunately. But I only work with file lists of around 100 files.

  javavi said  Yes, I made a USB keyboard, but the console seems to have fallen off, I haven't figured out how to make it universal yet. And why, I think a separate version of FM should be made for the console.

By console I mean Picomites 2 with HDMI, connected to the PC via USB and Teraterm. Unfortunately, that doesn't work anymore with your latest version. Just for information.

  javavi said  I am watching with interest the implementation of the function of copying/moving a folder with files, I will have to do this too.

I'm curious to hear what other suggestions you have.
Kind regards
Michael

twofingers
Guru

Joined: 02/06/2014
Location: Germany
Posts: 1456
Posted: 07:07pm 04 Feb 2025      

Hi Vadim,
minor improvements and error management regarding CopyDir and DeleteDir.

fm1186.zip

I am considering whether a file compare and a directory compare would be useful.

Kind regards
Michael

javavi

Guru

Joined: 01/10/2023
Location: Ukraine
Posts: 402
Posted: 11:48am 05 Feb 2025      

I think that we need to maintain a balance between the most necessary functionality and the desire to expand it.

Perhaps it will be possible to make a menu for calling user extensions that the FM will call with the currently selected files.
Maybe somehow it will be possible to create a universal mechanism for calling such functions.

I want to free the F2 button and move the file renaming function to the F6 function by simply creating a name change field. But I don't know if this will be convenient for users?

If nothing gets in the way, I'll do it over the weekend.
Edited 2025-02-05 21:51 by javavi

Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 7341
Posted: 12:01pm 05 Feb 2025      

I think you have a very good point. IMHO it's probably better to call in "helper" applications as and when needed than make the main program too bloated. That's if such a system is possible, of course.

Amnesie
Guru

Joined: 30/06/2020
Location: Germany
Posts: 503
Posted: 12:42pm 05 Feb 2025      

  javavi said  I think that we need to maintain a balance between the most necessary functionality and the desire to expand it.


Absolutely! For me the File Manager already is a big help and it even looks amazing  

Greetings
Daniel

twofingers
Guru

Joined: 02/06/2014
Location: Germany
Posts: 1456
Posted: 12:55pm 05 Feb 2025      

  javavi said  ... I want to free the F2 button and move the file renaming function to the F6 function by simply creating a name change field. But I don't know if this will be convenient for users? ...


Hi Vadim,
I have put together the keys of the original NC4:
F1=Help
F2=Menue
F3=View
F4=Edit
F5=Copy
F6=Rename/Move
F7=MkDir
F8=Delete
F9=Function
(calls up a command line with menus at the top)
F10=Exit

ALT+F-Key:
F1=Left
F2=Right
F3=View2
F4=Edit
F5=Compress
F6=DeCompress
F7=Find (file)
F8=Batch
F9=EGA (Video Mode)
F10=Tree

Moving F2 should be OK IMHO.
Perhaps the F keys could be expanded to 10?
EXIT with F10 would probably be a better solution.

Regards
Michael

Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4722
Posted: 03:35pm 05 Feb 2025      

  Mixtel90 said  I think you have a very good point. IMHO it's probably better to call in "helper" applications as and when needed than make the main program too bloated. That's if such a system is possible, of course.


Peter would want to implement the file manager inside MMBasic when it was a stable closed program. Calling "helpers" may inviolate that.

My personal opinion is that the core function should be to manage files in the file system (*). I am not sure what helper functions are needed, but an ascii table is not among  what I would see key for a file manager. Most functions that are now in the F9 menu I would also range in the category "information", and not "file managing".

But opinions are individual, you may think different.

Volhout
(*) =
primary functions = view/browse folders, move/copy/delete files between panes.
secondar functions = view/listen/edit file content
tertiary functions = file/folder compare
I am still using fm 1.12, and I like it. Will try newer ones soon.

vegipete

Guru

Joined: 29/01/2013
Location: Canada
Posts: 1118
Posted: 05:27pm 05 Feb 2025      

  twofingers said  I have put together the keys of the original NC4:
Please try to make key commands consistent with the built in editor and anywhere else in MMBasic, wherever possible.

twofingers
Guru

Joined: 02/06/2014
Location: Germany
Posts: 1456
Posted: 04:58pm 09 Feb 2025      

Hi Vadim,
here is the latest test version of your FM with some changes by me:
fm1190.zip
The FM file is crunched. If anyone needs the formatted version, please let me know.

Let me know how you like the changes. I didn't like the built-in LIST command, so I replaced it with a more convenient version, which is also capable of storing small text snippets. FREEPINS has been replaced by LIST PINS (needs v6.00.02).

As for the criticism from some users regarding the large number of functions. I think there is a misunderstanding. My suggestions are only for Vadim (and interested parties). Everyone is free to use only the official version. For me, the FM is a Swiss Army knife (like the original NC) and I want to show Vadim what you can do with it... or better not.

I still plan to write a merge function, similar to the F7 function in the CMM2 editor, which I miss for PicoMites. But that will be a separate program.

Regards
Michael
Edited 2025-02-10 04:44 by twofingers

javavi

Guru

Joined: 01/10/2023
Location: Ukraine
Posts: 402
Posted: 06:10pm 09 Feb 2025      

  twofingers said  Let me know how you like the changes.

Hi Michael,
I am currently working on the basic version of File Manager 1.25, maybe it will even be version 1.3
I want to organize the code a little and ideally bring it to some API so that it would be easy to make extensions.
I consider all your developments to be very useful for the further development and improvement of FM
I really appreciate your efforts in this direction, thank you.

Regards
Vadim
Edited 2025-02-10 04:11 by javavi

twofingers
Guru

Joined: 02/06/2014
Location: Germany
Posts: 1456
Posted: 08:55pm 09 Feb 2025      

  javavi said  ... I am currently working on the basic version of File Manager 1.25, maybe it will even be version 1.3

Sounds promising.
  javavi said  I really appreciate your efforts in this direction, thank you.

Thanks for the encouragement!

I just saw that I destroyed the screen saver.
fm1191.zip

Kind regards
Michael

twofingers
Guru

Joined: 02/06/2014
Location: Germany
Posts: 1456
Posted: 01:06pm 17 Feb 2025      

Hi Vadim,
here comes the latest test version.


fm01979a.zip


This version is now much faster in displaying the file list because "GetFList" has been reworked!

Multiselect is almost finished, but not yet released.


Please note that this test version of FM is configured to work together with DiskInfo  ("di.bas" accessible with F12 when a folder is selected).

What's new? A MERGE function to insert smaller text files (snippets) into larger ones. The "snippets" can be created with the text viewer, for example.
The merge module will be moved out later. At the moment it is called with F11 or Alt-F9. A file "merged.txt" is created. The file to be inserted must have the name "0snippet.cut".

I have written a new input routine that I think is much more convenient. The overwrite function is activated with the "INSERT" key, the cursor then changes color from white to red. If the function is aborted with Esc, the return value of Maxlen is -1

'* Supported keys:
'* left arrow, right arrow
'* Enter
'* Esc
'* Home
'* End
'* Del
'* Ins
'* Backspace
'* all ASCII chars (char 32-126)


I have also found some of my stupid mistakes, but see for yourself.  

I am considering using a separate name for my test versions so that I don't conflict with your version numbers, e.g. fx...

What do you think?
Best regards
Michael


EDIT:
Here is another smaller version of the text viewer (LIST). Maybe you can use it sometime? I like the larger version better.

Sub TtView(FName$)
Const LinesPP = 37'lines per page
Local string LN$
Local lineCount
Close #1
Open FName$ For INPUT As #1
If Lof(#1) Then
Do
 CLS
 lineCount = 0
 Do Until Eof(#1)
   On error ignore
   If LN$ ="" Then
     Line Input #1,LN$
     If MM.Errno>0 Then
      cprint(38,MM.ErrMsg$)
      mywait
      Close #1
      Exit Sub
     EndIf
   EndIf
   Print Left$(LN$,80)
   LN$ =Mid$(LN$,81)
   Inc lineCount
 Loop Until lineCount+1 > LinesPP
 If getKey("-")=27 Then Close #1:Exit Sub
Loop While Not Eof(#1)
EndIf
Close #1
End Sub

Function getKey(msg$,ln) As integer
 If msg$="-" Then
   msg$="Press any key!"
 EndIf
 If ln=0 Then ln=39
 cprint(ln,msg$)
 Do :getKey=Asc(Inkey$):Loop While getKey=0
End Functio

Sub CPrint(line%,msg$,cl)
 Print @((Int(80-cl)/2)*FW,line%*FH)Space$(cl);
 Print @((Int(80-Len(msg$))/2)*FW,line%*FH)msg$;
End Sub

Edited 2025-03-03 00:40 by twofingers

twofingers
Guru

Joined: 02/06/2014
Location: Germany
Posts: 1456
Posted: 02:51pm 05 Mar 2025      

Hi Vadim.
I haven't heard from you in a while. I hope you're well!

In this test version I have implemented multiple file selection.
fm01998.zip

I have included the "DiskInfo" (di.bas) tool as a demonstration of the cooperation between two programs. I wrote DiskInfo so that I can check the new functions (e.g. DirCopy).

Files are selected individually with the space bar. File groups are selected/unselected with "+" and "-" using wildcards (actually RegEx). The selection is reversed with "#". I hope that these keys are suitable for all keyboards. Selected files can be copied (F5) and deleted (F8) together. Group copying/deleting is automatically active if there are files selected for the panel. I have not enabled the selection of folders because I think that is too risky.

In this test version the maximum number of files/folders is 300 (RMax). If more files exist in a folder, an error message appears and the program aborts. This could be solved even more elegantly...)

From my point of view, according to my needs, the program is now quite complete. I tested it for several days. The program should also be reviewed again to optimize it in terms of speed and memory consumption.

I would also like the cursor to jump to certain files when I enter an initial letter.

BTW: On my USB keyboard (serial console) I now get reasonable keyboard values ​​with Inkey$ for Shift-F3-F10 (179-186) with V6.0002b14.

If you have any questions or suggestions, I would be happy to read them. Of course, suggestions and error reports from interested users are also welcome.

Kind regards
Michael

Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4722
Posted: 03:38pm 05 Mar 2025      

Hi Michael,

I haven't tested extensively, but what I have tried so far all worked. Nice release.
Tested on 6.00.02b14 on PicoMite VGA 2040.

I do hope javavi is well. It is amazing what destroyed world he is living in, and still manages to contribute to the forum. Keep breathing javavi...

Volhout

twofingers
Guru

Joined: 02/06/2014
Location: Germany
Posts: 1456
Posted: 04:49pm 05 Mar 2025      

Thanks for the feedback, Harm!
I admire the brave people in Ukraine too, our worries are peanuts compared to that.
I hope Vadim is doing well.
Best regards
Michael

Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 4722
Posted: 03:14pm 06 Mar 2025      

Hi Michael,

Just tried your fm01998 on the new picomite 6.00.02b16 (2040 VGA design) and (through console port attached keyboard) you cannot select folders anymore. This worked on b14, but not on b16.
In filemanager you select a folder with <enter>. Maybe the key is not handled well.
But I can type <enter> through console port (i.e. to start the filemanager), and that works okay.

Regards,

Volhout
Edited 2025-03-07 01:15 by Volhout

matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 9805
Posted: 03:24pm 06 Mar 2025      

Out of interest please try this


PicoMiteRP2040VGAV6.00.02b16.zip

twofingers
Guru

Joined: 02/06/2014
Location: Germany
Posts: 1456
Posted: 03:53pm 06 Mar 2025      

@Harm,

Thanks for the message. I don't see any problem. I'm absolutely certain that Peter will fix it quickly. The keyboard query is very simple in my version (inkey$), so not much can go wrong.
However, I don't have a Pico 1 ((2040 ) with a screen to test.

Kind regards
MIchael