![]() |
Forum Index : Microcontroller and PC projects : File Manager for PicoMite
![]() ![]() |
|||||
Author | Message | ||||
twofingers Guru ![]() Joined: 02/06/2014 Location: GermanyPosts: 1536 |
Hi Vadim, copying directories works fine, thanks! You're on the right track! ![]() Unfortunately, I'm having trouble opening directories that contain more than RMax files. Have you checked this? [87] FList$(RQt+1)="" Error : Index out of bounds I found a silly bug in my last file that affects the display of the scroll bars when there are only a small number of files. FM02046-k.zip Kind regards Michael causality ≠ correlation ≠ coincidence |
||||
javavi![]() Guru ![]() Joined: 01/10/2023 Location: UkrainePosts: 438 |
Hi Michael, I found this problem and seemed to have fixed it and reloaded the archive for downloading in my post, please check again by downloading the archive, maybe I will need to re-upload it.. Edited 2025-04-20 20:52 by javavi |
||||
twofingers Guru ![]() Joined: 02/06/2014 Location: GermanyPosts: 1536 |
Yes, it works as it should! Great! I'd consider whether the user should get a notification that the list isn't completely displayed. By the way, when I switch A: to B: (left), I get a blue left panel. ![]() I just noticed that when I come from a subdirectory, the file cursor is correctly positioned on the subdirectory. Very good! ![]() One more question: What keyboard layout is actually used in Ukraine? Michael causality ≠ correlation ≠ coincidence |
||||
javavi![]() Guru ![]() Joined: 01/10/2023 Location: UkrainePosts: 438 |
![]() The blue color after switching disks also seemed to have been corrected, I don't remember now, I need to check again! But that will be a little later, now I'm a little torn and out of shape. Edited 2025-04-20 22:45 by javavi |
||||
twofingers Guru ![]() Joined: 02/06/2014 Location: GermanyPosts: 1536 |
Hi Vadim, the (blue panel) error has been corrected in the latest FM150. I hadn't checked it again, sorry. Thanks for the look at the keyboard layout. I think everything must be three times as complicated for you (language, layout, fonts). ![]() Which PicoMite keyboard setting are you using? US? No rush to answer! ![]() Michael Edited 2025-04-20 23:46 by twofingers causality ≠ correlation ≠ coincidence |
||||
twofingers Guru ![]() Joined: 02/06/2014 Location: GermanyPosts: 1536 |
Hi Vadim, BTW.(also as a reminder to myself) I think this applies to design in general. But also to programmed code and even to lifestyle. ![]() ... And I'm sure I'll get it thrown in my face at some point. ![]() ![]() In this new version, the page up/down mechanism has been changed. I like it better this way. Also — apart from internal changes — the scroll bars are colored only for the active panel. FM02049.zip Kind regards Michael causality ≠ correlation ≠ coincidence |
||||
javavi![]() Guru ![]() Joined: 01/10/2023 Location: UkrainePosts: 438 |
File Manager v1.51 VGA/HDMI +MMCC Now the music plays continuously if several music files are selected on the panel. Something like a custom playlist, you can mark and unmark on the go, start from the desired place, but not go to other folders)) FM151.zip |
||||
twofingers Guru ![]() Joined: 02/06/2014 Location: GermanyPosts: 1536 |
Hi Vadim, this is just a correction. Due to a bug, I added "-1" twice. ![]() FM02052.zip Just a thought – I'm not currently doing anything with music or sounds on the PicoMite – wouldn't it make more sense to play entire directories? Kind regards Michael Edited 2025-04-29 03:52 by twofingers causality ≠ correlation ≠ coincidence |
||||
twofingers Guru ![]() Joined: 02/06/2014 Location: GermanyPosts: 1536 |
Hi Vadim, there are only a few changes for users in this version. Perhaps the file cursor movement is a bit smoother. This version displays the help screen once for new users upon startup and saves it in the Platform option. FM02060.zip In the main program, I've reduced the use of "TILES" to a single use. The version jump to 02060 is intended to reflect the internal changes. I've also decided to re-sort the file list after sorting, like you do with "ArrangeByIndex." This improves interchangeability between our versions and reduces complexity to further simplify the code. My version ("ArByIdx") is unfortunately five times slower, but it doesn't destroy the sort index. I need it for sorting the selected files. To save some memory, I use a bit-flag array of five integers. The routines for this are: '* Set of flag-routines test_flags End Sub Clr_Flag(F() As integer,Nr) F(Nr\64)=F(Nr\64)And Not(1 <<(Nr Mod 64)) End Sub Sub set_Flag(F() As integer,Nr) F(Nr\64)=F(Nr\64)Or(1 <<(Nr Mod 64)) End Sub Sub Toggle_Flag(F() As integer,Nr) F(Nr\64)=F(Nr\64)Xor(1 <<(Nr Mod 64)) End Sub Function Get_Flag(F() As integer,Nr) Get_Flag=(F(Nr\64)>>Nr Mod 64)And 1 End Function Sub test_flags Local integer NumberOfFlags=200 Local integer fl((NumberOfFlags\64)+1) Print "hello" Toggle_Flag(fl(), 134) Print "134";Get_Flag(fl(),134) Toggle_Flag(fl(), 134) Print "134";Get_Flag(fl(),134) Toggle_Flag(fl(), 134) Print "134";Get_Flag(fl(),134) Clr_Flag(fl(), 134) Print "134";Get_Flag(fl(),134) set_Flag(fl(), 134) Print "134";Get_Flag(fl(),134) Toggle_Flag(fl(), 133) Print "133";Get_Flag(fl(),133) Toggle_Flag(fl(), 133) Print "133";Get_Flag(fl(),133) Toggle_Flag(fl(), 133) Print "133";Get_Flag(fl(),133) set_Flag(fl(), 130) set_Flag(fl(), 0) set_Flag(fl(), 199) Print "130";Get_Flag(fl(),130) For i = 0 To NumberOfFlags-1 Print Get_Flag(fl(),i); Next Timer = 0 For i = 0 To 10000 Next tml=Timer/10 Print " "tml " uSec for an empty loop" Timer = 0 For i = 0 To 10000 set_Flag(fl(), 130) Next tm=Timer Print Tm/10 " uSec" Print MM.Info(cpuspeed) 'RP2350 End Sub They are universal and consume almost no memory. But they aren't very fast. Set_Flag() takes about 70 uSec (RP2350). This means setting 1,000 flags takes 70ms. Of course, it's much faster if all flags are to be set or cleared at once. My idea for a future version is a file viewer with a search function and a function for replacing strings within programs. Kind regards Michael Edited 2025-05-07 18:42 by twofingers causality ≠ correlation ≠ coincidence |
||||
Volhout Guru ![]() Joined: 05/03/2018 Location: NetherlandsPosts: 4905 |
delete Edited 2025-05-09 16:45 by Volhout PicomiteVGA PETSCII ROBOTS |
||||
twofingers Guru ![]() Joined: 02/06/2014 Location: GermanyPosts: 1536 |
Hi Vadim, this is version 0.2064. There are no new features. However, I noticed that the file cursor movement with a USB keyboard is so slow because the default repeat rate is set to a value that is too high (for this purpose). I was wondering why my optimizations had no effect. I don't know how it is for PS2 keyboards. In any case, I've added the "Keyboard Option" for those who like to experiment; the value is reset to the default when you exit the program. FM02065.1.zip (Update 18.05.2025) As you can see from the version number, I've made some internal changes/simplifications. This saved me about 5-10 KB and will make maintenance easier. I'm also planning to set the colors with a subprocedure, which will then enable global adjustments for the different output devices. But that's easy! I hope you're well. Kind regards Michael Edited 2025-05-19 06:57 by twofingers causality ≠ correlation ≠ coincidence |
||||
twofingers Guru ![]() Joined: 02/06/2014 Location: GermanyPosts: 1536 |
Hi Vadim, this is version 0.2066->update 22.05.2025: 0.2067. New here is the search/replace function, which I often miss in the editor. Edit: Some cosmetic changes regarding Replace. (22.05.2025): FM02067.zip Although I've tested it, it still requires further thorough testing. A special feature here is the REGEX function (thanks to Peter!), which makes searching and replacing very flexible and convenient. For example, the regex expression "[0-9]\{2\}/[0-9]\{2\}/[0-9]\{4\}" finds every date in the format "01/12/2025". (See the PicoMite manual, p. 186ff.) Help: Y = Replace only this occurrence N = Skip this occurrence A = Replace all remaining occurrences in the entire file L = Replace all remaining occurrences in this line S = Skips checking for any more matches in this line after the current one X = Abort/Exit replace For security reasons, the changes are written to a temporary backup file. (This behavior can, of course, easily be converted to "Klingon" with a small change in the source code. ![]() Regards Michael Edited 2025-05-22 10:15 by twofingers causality ≠ correlation ≠ coincidence |
||||
![]() ![]() |
![]() |
![]() |
The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2025 |