Page 1 of 49

Long Filename Browser for ZX-UNO / esxDOS

Posted: Thu Apr 23, 2020 3:33 pm
by bob_fossil
As I now have a lot of free time on my hands, I've been spending some of it playing around with the ZX-UNO I purchased a while back. I wondered whether it was possible to do a nicer file browser than the current NMI (F5) implementation. After a couple of days of hacking around, I've knocked up a prototype browser.

For comparison, here's the standard NMI browser:

Image

And here's mine:

Image

It supports long filenames by reading the disk directly. It also sorts the folders and files alphabetically.

The latest version can be downloaded from here.

To install, unzip and copy the BROWSE file into the root SYS folder (where all the other command files live) on your disk. You should then be able to enter:

.browse

from BASIC to launch the browser.

Keyboard commands:
  • Cursor up / down - move selection
  • Space / Enter - select a folder or launch a supported file
  • Delete / P - navigate to parent folder
  • Break / X - exit browser
Issues (I'm aware of):
  • Currently supports FAT16 disks only.
  • Currently only reads from esxdos device 0.
  • Limit of browsing 256 files in a folder.
  • Only launches .tap files (no .sna / .trd support yet).
  • Doesn't start browsing from the current directory - always starts from the root folder.
  • Unsupported characters (> ASCII 127) are displayed as '~'.
  • Filenames (> 32 characters) are not clipped.
I've tried this on a ZX-UNO with a FAT16 formatted 512mb SD card and developed the code with z88dk using an a HDF image of the SD card with SpecEmu. I'd be interested to hear if anyone else can get it working with their ZXUNO. It shouldn't damage your SD card (famous last words) as it's not writing to the disk.

Re: New File Browser for ZX-UNO

Posted: Sun Apr 26, 2020 6:14 pm
by bob_fossil
v0.02
  • Now supports FAT32.
  • Improved directory handling - some folders were being truncated or listing garbage entries.
  • When you launch the browser it now starts from the current esxdos path, rather than dropping you back at the root folder every time.

Re: New File Browser for ZX-UNO

Posted: Tue Apr 28, 2020 10:07 pm
by bob_fossil
v0.03
  • Added 42 character display.
  • Long filenames that spill over the screen are now truncated to fit the screen width and are indicated with an ellipsis character.
  • You can now select and autostart .trd files.
Image

Re: New File Browser for ZX-UNO

Posted: Wed Apr 29, 2020 10:01 am
by emook
Hi Bob - looks great and works well on the Next in classic esxdos mode.

Only issue I see is that its called the same as an existing dotcommand on the Next, .BROWSE on the Next initiates the build in browser.

Cheers

emk

Re: New File Browser for ZX-UNO

Posted: Wed Apr 29, 2020 10:15 am
by bob_fossil
emook wrote: Wed Apr 29, 2020 10:01 am
Only issue I see is that its called the same as an existing dotcommand on the Next, .BROWSE on the Next initiates the build in browser.
Thanks for the kind words. I wasn't aware of a clash as I don't have a Next. :) At the risk of it ending up being called .browseymcbrowseface, I'm open to new name suggestions.

Re: New File Browser for ZX-UNO

Posted: Wed Apr 29, 2020 11:41 am
by XoRRoX
Thanks a lot - nice work! :)

Do you have some sort of a feature roadmap so we can see what's still going to be implemented/improved? That way we'll not suggest things that are already planned.

Re: New File Browser for ZX-UNO

Posted: Wed Apr 29, 2020 11:52 am
by nihirash
Thank you a lot!

Feel free to integrate my scl2trd converter inside it.
Or you may share sources and I'll do it by myself.

https://github.com/nihirash/esxdos-scl2trd

Re: New File Browser for ZX-UNO

Posted: Wed Apr 29, 2020 12:20 pm
by Seven.FFF
bob_fossil wrote: Wed Apr 29, 2020 10:15 am
emook wrote: Wed Apr 29, 2020 10:01 am
Only issue I see is that its called the same as an existing dotcommand on the Next, .BROWSE on the Next initiates the build in browser.
Thanks for the kind words. I wasn't aware of a clash as I don't have a Next. :) At the risk of it ending up being called .browseymcbrowseface, I'm open to new name suggestions.
It shouldn’t be a problem if you want to keep calling it .browse. NextZXOS keeps its dot commands in /dot/, and eaxDOS running on a Next in the other personalities still uses /bin/, so they won’t clash.

It was done that way deliberately, as NextZXOS provides enhanced versions of many of the standard esxDOS commands which wouldn’t work in esxDOS -.ls for example, is 24KB instead of 2KB and has lots of sorting and column choosing options, more like the *nix version.

Re: New File Browser for ZX-UNO

Posted: Wed Apr 29, 2020 12:55 pm
by lordoftime79
Does this not work on actual spectrums? I have tried it but either it dosnt find the command if i extract it where you say to or if i put it where i know the commands live it works but its a empty list I cant see any of my tap files?

Re: New File Browser for ZX-UNO

Posted: Wed Apr 29, 2020 2:13 pm
by nihirash
lordoftime79 wrote: Wed Apr 29, 2020 12:55 pm Does this not work on actual spectrums? I have tried it but either it dosnt find the command if i extract it where you say to or if i put it where i know the commands live it works but its a empty list I cant see any of my tap files?
You should put it into /BIN folder.

esxDOS and divMMC(in zxuno) are the same as on usual speccy.

It should work as I understand.

Re: New File Browser for ZX-UNO

Posted: Wed Apr 29, 2020 2:41 pm
by lordoftime79
yea tried that - it runs but it dosnt show any files

Re: New File Browser for ZX-UNO

Posted: Wed Apr 29, 2020 3:03 pm
by Seven.FFF
nihirash wrote: Wed Apr 29, 2020 2:13 pm You should put it into /BIN folder.

esxDOS and divMMC(in zxuno) are the same as on usual speccy.

It should work as I understand.
It launches fine in the /BIN folder on my +3 with esxDOS 0.8.6, and my Next running esxDOS 0.8.6 in non-Next personalities. However it hangs on the +3 when I try to launch Castlevania.tap. After powering the +3 off and on again, my SD card seems corrupted. When I type .browse again, I get ESXDOS error #19, 0:1.

It doesn't run in NextZXOS when moved to /DOT/BROWSEBOB - hangs on entry. No idea why. Which esxDOS API calls does it make? Does it make any private non-API calls into the esxDOS ROM?

Re: New File Browser for ZX-UNO

Posted: Wed Apr 29, 2020 4:08 pm
by stupidget
Works fine when I put it in the /BIN folder on my DivMMX.

Do you know if there is any way to make this the default Browser because when I NMI it obviously defaults back to the normal browser.

Also any plans to add the ability to run .sna files?

Re: New File Browser for ZX-UNO

Posted: Wed Apr 29, 2020 6:14 pm
by lordoftime79
what am i doing wrong then? all i get is the backslash no list of files.

Re: New File Browser for ZX-UNO

Posted: Wed Apr 29, 2020 6:16 pm
by bob_fossil
XoRRoX wrote: Wed Apr 29, 2020 11:41 am Thanks a lot - nice work! :)

Do you have some sort of a feature roadmap so we can see what's still going to be implemented/improved? That way we'll not suggest things that are already planned.
Thanks! No roadmap as such. I just wanted a more pleasant environment to browse the files on my ZX-UNO. Things left on my to do list include:
  • .sna support.
  • Maybe do something with .pzx files using the loadpzx command for the ZX-UNO?
  • Some sort of settings file / configuration so you can change the colour scheme?
  • Bug fixing - I'm not convinced the FAT16 / 32 reading is 100% correct.
The current development version has some speed ups to the 42 character print routine and lets you scroll up and down a full page of files with cursor left and right. I'm also thinking of adding 'q 'and 'a 'keys to take you to the first and last files in the list.

Re: New File Browser for ZX-UNO

Posted: Wed Apr 29, 2020 6:24 pm
by bob_fossil
Seven.FFF wrote: Wed Apr 29, 2020 3:03 pm
nihirash wrote: Wed Apr 29, 2020 2:13 pm You should put it into /BIN folder.

esxDOS and divMMC(in zxuno) are the same as on usual speccy.

It should work as I understand.
It launches fine in the /BIN folder on my +3 with esxDOS 0.8.6, and my Next running esxDOS 0.8.6 in non-Next personalities. However it hangs on the +3 when I try to launch Castlevania.tap. After powering the +3 off and on again, my SD card seems corrupted. When I type .browse again, I get ESXDOS error #19, 0:1.

It doesn't run in NextZXOS when moved to /DOT/BROWSEBOB - hangs on entry. No idea why. Which esxDOS API calls does it make? Does it make any private non-API calls into the esxDOS ROM?
First off, apologies for breaking your SD card. I haven't used any private API calls (getting documentation for the actual API was difficult enough :) ) aside from the rst 8 codes the NMI menu uses to open and autostart .tap and .trd files. From a quick search of my code, I'm using the following z88dk functions:

Code: Select all

esxdos_f_getcwd
esxdos_f_chdir
esxdos_disk_info
esxdos_disk_read

Re: New File Browser for ZX-UNO

Posted: Wed Apr 29, 2020 6:27 pm
by bob_fossil
lordoftime79 wrote: Wed Apr 29, 2020 6:14 pm what am i doing wrong then? all i get is the backslash no list of files.
I don't think you're doing anything wrong. If you're getting an empty listing screen, it sounds like my FAT code hasn't managed to read the root folder or current folder correctly. Is your disk FAT16 or FAT32? If you do .cd before running the browser what path does esxdos display?

Re: New File Browser for ZX-UNO

Posted: Wed Apr 29, 2020 6:33 pm
by bob_fossil
stupidget wrote: Wed Apr 29, 2020 4:08 pm Works fine when I put it in the /BIN folder on my DivMMX.

Do you know if there is any way to make this the default Browser because when I NMI it obviously defaults back to the normal browser.

Also any plans to add the ability to run .sna files?
Cheers. I don't know what differentiates a .dot command from the nmi.sys - is the NMI.SYS just a .dot command in a different location on the disk? I've kept it as a separate command as it's not really an NMI replacement at the moment yet - it's barely a week old at the moment.

I don't use .sna files personally but it's on my to do list to try and get similar loading functionality with the NMI.

Re: New File Browser for ZX-UNO

Posted: Wed Apr 29, 2020 6:49 pm
by lordoftime79
ok so I have just formatted a card with fat32 and it works so its my fat16 card it has issue with

Re: New File Browser for ZX-UNO

Posted: Wed Apr 29, 2020 9:18 pm
by bob_fossil
lordoftime79 wrote: Wed Apr 29, 2020 6:49 pm ok so I have just formatted a card with fat32 and it works so its my fat16 card it has issue with
Good stuff! What size is your FAT16 card? How many partitions does it have? If I can create a similar setup, I can try and replicate the issue here and then try and fix it.

Re: New File Browser for ZX-UNO

Posted: Wed Apr 29, 2020 9:49 pm
by Seven.FFF
bob_fossil wrote: Wed Apr 29, 2020 6:24 pm First off, apologies for breaking your SD card.
No problem, I have lots of cards, and it's easy to repair or reformat any broken ones :) This byte mode 256MB card is also FAT16, with a single partition, so perhaps this is the problem. I will try with FAT32 on the same card, and a larger block mode card, to see if the issue goes away.

Here is the castlevania.tap file which blew up, if you want to try it yourself.

Re: New File Browser for ZX-UNO

Posted: Wed Apr 29, 2020 9:54 pm
by lordoftime79
It is a 2gb no partitions other than standard.

Re: New File Browser for ZX-UNO

Posted: Wed Apr 29, 2020 10:29 pm
by bob_fossil
Seven.FFF wrote: Wed Apr 29, 2020 9:49 pm
No problem, I have lots of cards, and it's easy to repair or reformat any broken ones :) This byte mode 256MB card is also FAT16, with a single partition, so perhaps this is the problem. I will try with FAT32 on the same card, and a larger block mode card, to see if the issue goes away.

Here is the castlevania.tap file which blew up, if you want to try it yourself.
If you were able to navigate the folders on the card okay (e.g. root folder shown, no garbage or corrupted filename entries), then that suggests the FAT reading code was working. Having had another look at the code which autostarts .tap files, I have spotted an issue which I've just fixed in the current development version. I'd found some code online which autostarts .tap files but that code wasn't designed to run from a .dot file - it uses the ix register to pass the filename into esxdos whereas .dot commands use hl. I'm surprised .tap file loading works at all. :)

Re: New File Browser for ZX-UNO

Posted: Fri May 01, 2020 11:12 am
by bob_fossil
v0.04
  • You can now use cursor left / right to scroll up and down a page of files.
  • You can now use q and a keys to jump to the first and last entries in the list.
  • Fix possible issue using incorrect register when autostarting .tap files.
  • Optimisations to the 42 character print routine.
  • For FAT16 discs, the root cluster contains a set amount of directory entries and the code wasn't taking the size of this area into account when calculating the disk sector offset from the starting cluster of a directory entry. This would manifest itself as showing the root directory but showing garbage or empty lists for the subfolders. Thanks to Spezzi63 for supplying me with a HDF file to debug with.
  • Added .SNA and .Z80 autostart support via the .snapload dot command.
This is software in development so be aware they may be bugs. I haven't encountered any problems with SD card corruption but I've have had one report on a configuration I can't test on outside of emulation. If possible please test on a spare SD card or backup your SD card so you can restore it.

Re: New File Browser for ZX-UNO

Posted: Fri May 01, 2020 2:15 pm
by Luzie
Seven.FFF wrote: Wed Apr 29, 2020 12:20 pm
bob_fossil wrote: Wed Apr 29, 2020 10:15 am Thanks for the kind words. I wasn't aware of a clash as I don't have a Next. :) At the risk of it ending up being called .browseymcbrowseface, I'm open to new name suggestions.
It shouldn’t be a problem if you want to keep calling it .browse. NextZXOS keeps its dot commands in /dot/, and eaxDOS running on a Next in the other personalities still uses /bin/, so they won’t clash.

It was done that way deliberately, as NextZXOS provides enhanced versions of many of the standard esxDOS commands which wouldn’t work in esxDOS -.ls for example, is 24KB instead of 2KB and has lots of sorting and column choosing options, more like the *nix version.
Dear bob_fossil, I just register here on the forum to say "Thank you" for this nice New File Browser supporting LFN!

btw. I renamed it to B so I can start it faster by just entering a .b :lol: