Long Filename Browser for ZX-UNO / esxDOS

Field Programmable Gate Array based devices! As exciting as they sound
pangogo
Drutt
Posts: 4
Joined: Tue Jun 29, 2021 8:17 pm

Re: Long Filename Browser for ZX-UNO / esxDOS

Post by pangogo »

Hi, thank you for the excellent browser (it is amazing what can be written).
I face to problems with snapshots with the latest version 0.18 - for example making snapshot of the Zosya game Travel Through Time 1. Any snapshot is somehow damaged, when I start it, the game immediately crashes. When I switch to the original NMI browser and create snapshot via NMI, everything is ok. I made test also with No_MMC_memory version, but the same result.
User avatar
bob_fossil
Manic Miner
Posts: 669
Joined: Mon Nov 13, 2017 6:09 pm

Re: Long Filename Browser for ZX-UNO / esxDOS

Post by bob_fossil »

pangogo wrote: Tue Jun 29, 2021 8:25 pm Hi, thank you for the excellent browser (it is amazing what can be written).
I face to problems with snapshots with the latest version 0.18 - for example making snapshot of the Zosya game Travel Through Time 1. Any snapshot is somehow damaged, when I start it, the game immediately crashes. When I switch to the original NMI browser and create snapshot via NMI, everything is ok. I made test also with No_MMC_memory version, but the same result.
At what point are you taking the snapshot? Can you make a working snapshot from the original NMI browser available somewhere so I can have a look at your issue? Thanks.
User avatar
desUBIKado
Microbot
Posts: 108
Joined: Sun Jan 10, 2021 10:27 am

Re: Long Filename Browser for ZX-UNO / esxDOS

Post by desUBIKado »

pangogo wrote: Tue Jun 29, 2021 8:25 pm Hi, thank you for the excellent browser (it is amazing what can be written).
I face to problems with snapshots with the latest version 0.18 - for example making snapshot of the Zosya game Travel Through Time 1. Any snapshot is somehow damaged, when I start it, the game immediately crashes. When I switch to the original NMI browser and create snapshot via NMI, everything is ok. I made test also with No_MMC_memory version, but the same result.
I have not had that problem. Here is the snapshoot I have made: https://mega.nz/file/SsAxHaxK#SfnHZQ8ya ... Tt54oMxNTw
XoRRoX
Manic Miner
Posts: 237
Joined: Wed Jul 11, 2018 6:34 am

Re: Long Filename Browser for ZX-UNO / esxDOS

Post by XoRRoX »

bob_fossil wrote: Mon Jun 28, 2021 6:15 pm The ULA plugin supports a 64 byte raw palette file and 176 byte .TAP file palettes if they're renamed to a .ULA extension.
Great :)
bob_fossil wrote: Mon Jun 28, 2021 6:15 pm It's a good idea - I had a similar thought of making a container file format that wrapped the palette and game file together somehow so you'd just launch that instead.
As you might know, as the palette .tap is a loader, it's already possible to merge the loader and game .tap to a new .tap, basically making it an all-compassing "container" format. What the method you're thinking of would have as an extra, is to also be able to use raw palette files.

What my aforementioned utility does is merging the palette tap loader and game tap, basically creating such an all-compassing "container".
This was also to offer people a simplified way of loading their ULAplus coloured game as else people have to first load the loader and then the game, which can be a bit fiddly on emulators, as most have options that "reset" their state when loading a tap file, effectively also resetting the ULAplus palette.

When testing Browse now more with ULAplus, I noticed that you seem to also reset/disable ULAplus before loading a .tap, also disabling the intended use of the palette loader.

With the original NMI menu, one can first load the palette, then attach the game-tap for input, exit the menu (will result in a tap-loading error) and then type LOAD "" to load the game, with new palette colours intact.
This is close to how it would work with a physical machine and tape player (save the tape-loading error from happening as the machine would just wait in a loading state for the game-tape to be played).

I can understand that resetting the palette could be convenient as people won't end up with any "remaining" colours from a previously loaded ULAplus game affecting their newly loaded games. But intended behaviour would be to having to do a cold boot to get the default palette again.

What are your thoughts on this? Could the intended behaviour be restored?


I think it would be very charming if it would not be needed to create a "container" with the palette file and the game-tap first as this would mean an extra action that has to be performed non-natively and results in an extra file.
User avatar
bob_fossil
Manic Miner
Posts: 669
Joined: Mon Nov 13, 2017 6:09 pm

Re: Long Filename Browser for ZX-UNO / esxDOS

Post by bob_fossil »

XoRRoX wrote: Tue Jun 29, 2021 10:24 pm When testing Browse now more with ULAplus, I noticed that you seem to also reset/disable ULAplus before loading a .tap, also disabling the intended use of the palette loader.
The default esxDOS NMI browser will also disable any active ULAplus palette when you autostart a tape. If I autoload the Commando palette tap, then insert the Commando game tap, I get Commando with ULAplus colours. If I then enter the NMI and autostart Bruce Lee, the palette is set back to normal.
With the original NMI menu, one can first load the palette, then attach the game-tap for input, exit the menu (will result in a tap-loading error) and then type LOAD "" to load the game, with new palette colours intact.
This is close to how it would work with a physical machine and tape player (save the tape-loading error from happening as the machine would just wait in a loading state for the game-tape to be played).
You can do this in the current browser - autoload the palette tap, enter the NMI, attach the game tape file with Caps Shift + I, exit and the game will load with the ULAplus palette. Again, tested this with Commando.
I can understand that resetting the palette could be convenient as people won't end up with any "remaining" colours from a previously loaded ULAplus game affecting their newly loaded games. But intended behaviour would be to having to do a cold boot to get the default palette again.
The browser will disable any active modes like ULAplus or Radastan to ensure it's correct colours are shown. They are restored on exit. This is the intended behaviour of my browser (and the default esxDOS NMI browser for ULAplus).
pangogo
Drutt
Posts: 4
Joined: Tue Jun 29, 2021 8:17 pm

Re: Long Filename Browser for ZX-UNO / esxDOS

Post by pangogo »

bob_fossil wrote: Tue Jun 29, 2021 9:33 pm
pangogo wrote: Tue Jun 29, 2021 8:25 pm Hi, thank you for the excellent browser (it is amazing what can be written).
I face to problems with snapshots with the latest version 0.18 - for example making snapshot of the Zosya game Travel Through Time 1. Any snapshot is somehow damaged, when I start it, the game immediately crashes. When I switch to the original NMI browser and create snapshot via NMI, everything is ok. I made test also with No_MMC_memory version, but the same result.
At what point are you taking the snapshot? Can you make a working snapshot from the original NMI browser available somewhere so I can have a look at your issue? Thanks.
I made snapshot in several moments and most of them was not working. Please look at the zip here: https://mega.nz/file/BAo0jAiK#sncOO-fmn ... GE_sZtFLNc
There are two snapshots made in the almost same moment (nmi_snap is OK, lfb_snap resets computer).
pangogo
Drutt
Posts: 4
Joined: Tue Jun 29, 2021 8:17 pm

Re: Long Filename Browser for ZX-UNO / esxDOS

Post by pangogo »

desUBIKado wrote: Tue Jun 29, 2021 9:34 pm
pangogo wrote: Tue Jun 29, 2021 8:25 pm Hi, thank you for the excellent browser (it is amazing what can be written).
I face to problems with snapshots with the latest version 0.18 - for example making snapshot of the Zosya game Travel Through Time 1. Any snapshot is somehow damaged, when I start it, the game immediately crashes. When I switch to the original NMI browser and create snapshot via NMI, everything is ok. I made test also with No_MMC_memory version, but the same result.
I have not had that problem. Here is the snapshoot I have made: https://mega.nz/file/SsAxHaxK#SfnHZQ8ya ... Tt54oMxNTw
Yes, this snapshot works on my computer also. You're happy one:)
User avatar
Luzie
Manic Miner
Posts: 917
Joined: Fri May 01, 2020 2:07 pm

Re: Long Filename Browser for ZX-UNO / esxDOS

Post by Luzie »

Bubu wrote: Mon Jun 28, 2021 6:38 pm My games are in GAMES folder. Would be it possible to configure the browser so that as I boot it goes stright to GAMES folder?
An alternate maybe the usage of the "SpeedDial"-Function of this LFN-Browser:

From "ZX-UNO / esxDOS File Browser v0.18 Manual" = File "manual.txt":
Speed Dials
-----------

You can jump to a specific folder or launch a specific file by using the speed dial system to associate them with the Symbol Shift 1 - 9 keypresses. You can create a file:

/bin/bplugins/_spd.dat

which is a text file that can contain the following layout:

1=/
2=/tap/games
3=/tap/demos
4=/pzx
5=/screens/gigasc~1
6=/trdos
7=/music
8=/tap/games/manicm~1.tap

A speed dial entry starts with a number from 1-9 followed by an equals sign and then a path on the disk starting with the / character. In the above example, speed dials are assigned to Symbol Shift 1-8. Symbol Shift + 1 navigates you to the root folder, whereas pressing Symbol Shift + 3 takes you to 'demos' sub folder inside the 'tap' folder. Symbol Shift + 8 will launch Manic Miner. As you can see from the entries for speed dials 5 and 8, the paths are in 8.3 format and don't support long file names.

You can also press Symbol Shift + 0 on a file or folder to assign it to a specific speed dial. You will be prompted to select which speed dial you want to use. If the speed dial you select is already defined, you will be prompted to overwrite it - you need to press Shift + Y to confirm.
User avatar
bob_fossil
Manic Miner
Posts: 669
Joined: Mon Nov 13, 2017 6:09 pm

Re: Long Filename Browser for ZX-UNO / esxDOS

Post by bob_fossil »

New test version available here.

Added new HAM and ULA plugins. The HAM plugin can display HAM256 and HAM8 ULAPlus images. Code is currently timed to 48k. The ULA plugin will load and apply a ULAPlus palette 176 byte .tap file (https://sites.google.com/site/ulaplus/), a raw 64 byte ULA colour palette or a special container file which loads a palette and starts a game automatically. This has the following layout:

Code: Select all

ULA!
PALETTE=ULAPLU~1/NINJAJAR.ULA
GAME=NINJAJ~1.TAP
The _INF plugin (Caps Shift + R) now supports extended information for certain filetypes (/BIN/BPLUGINS/INFO). This currently supports .tap, .scl and .trd files.

Also hopefully fixed a reported issue saving snapshots in certain 128k titles (Travel Through Time vol. 1). Saving a snapshot could sometimes cause a crash after exiting the NMI browser. The AY plugin wasn't using the custom browser font and you can now specify a path with the .browse command to start the browser from a specific folder, e.g:

Code: Select all

.browse /bin/bplugins
will start the browser in the /bin/bplugins folder.

I've also put together a small media pack to help with testing the ULAPlus plugins and some of the other plugins which is available here.
User avatar
Luzie
Manic Miner
Posts: 917
Joined: Fri May 01, 2020 2:07 pm

Re: Long Filename Browser for ZX-UNO / esxDOS

Post by Luzie »

bob_fossil wrote: Sun Jun 27, 2021 9:24 pm
Luzie wrote: Sun Jun 27, 2021 6:42 pm I discovered another thing (same on v0.16, v0.17 and v0.18 Final): When I go into /TMP, than it end up with Listing of Root-Dir. On Top it shows /TMP/ instead of /. Entering TMP again shows /TMP/TMP/ on Top and so on. But I always get the listing of the /-Directory. Seems only to be the case with the /TMP-Dir:
I can't replicate this with the HDF image I use for developing / debugging with Fuse or on the SD Card I use on my ZX-UNO. Both show the contents of /TMP correctly. Is the disk image you're browsing created by HDFMonkey? I've encountered issues during development where using HDFMonkey to put files into HDF files it originally created files went wrong and caused odd corruptions to occur.
I think I found the error, and it´s really HDFmonkey-related: I create, format and fill my .HDF-File with a Windows-Batchfile and HDFMonkey.EXE. Having a closer look I´ve seen an error "Directory creation failed: Access denied" while putting files from a directory into the .HDF-File. Problem is not really an "Access Violation" but the .HDF was full/ran out of free space. While this HDFMONKEY "put/copy directories" runs it seems to create a faulty directory-entry for the TMP-Folder which causes FAT-corruption resulting in LFN-Browser getting wrong FAT-data.
User avatar
bob_fossil
Manic Miner
Posts: 669
Joined: Mon Nov 13, 2017 6:09 pm

Re: Long Filename Browser for ZX-UNO / esxDOS

Post by bob_fossil »

Luzie wrote: Sun Jul 04, 2021 6:27 pm I think I found the error, and it´s really HDFmonkey-related: I create, format and fill my .HDF-File with a Windows-Batchfile and HDFMonkey.EXE. Having a closer look I´ve seen an error "Directory creation failed: Access denied" while putting files from a directory into the .HDF-File. Problem is not really an "Access Violation" but the .HDF was full/ran out of free space. While this HDFMONKEY "put/copy directories" runs it seems to create a faulty directory-entry for the TMP-Folder which causes FAT-corruption resulting in LFN-Browser getting wrong FAT-data.
Impressive detective work there!
pangogo
Drutt
Posts: 4
Joined: Tue Jun 29, 2021 8:17 pm

Re: Long Filename Browser for ZX-UNO / esxDOS

Post by pangogo »

bob_fossil wrote: Sun Jul 04, 2021 11:44 am
...
Also hopefully fixed a reported issue saving snapshots in certain 128k titles (Travel Through Time vol. 1). Saving a snapshot could sometimes cause a crash after exiting the NMI browser. The AY plugin wasn't using the custom browser font and you can now specify a path with the .browse command to start the browser from a specific folder, e.g:
...

Thank you for the fix! It seems to work properly now.
User avatar
desUBIKado
Microbot
Posts: 108
Joined: Sun Jan 10, 2021 10:27 am

Re: Long Filename Browser for ZX-UNO / esxDOS

Post by desUBIKado »

bob_fossil wrote: Sun Jul 04, 2021 11:44 am
The ULA plugin will load and apply a ULAPlus palette 176 byte .tap file (https://sites.google.com/site/ulaplus/), a raw 64 byte ULA colour palette or a special container file which loads a palette and starts a game automatically. This has the following layout:

Code: Select all

ULA!
PALETTE=ULAPLU~1/NINJAJAR.ULA
GAME=NINJAJ~1.TAP
That the 64-byte file with the palette and the special container share the same .ULA extension is confusing to me. Wouldn't it be better to change the extension of the second file to, for example, .UPL - ULAplus launcher -?
User avatar
bob_fossil
Manic Miner
Posts: 669
Joined: Mon Nov 13, 2017 6:09 pm

Re: Long Filename Browser for ZX-UNO / esxDOS

Post by bob_fossil »

desUBIKado wrote: Wed Jul 07, 2021 1:54 pm That the 64-byte file with the palette and the special container share the same .ULA extension is confusing to me. Wouldn't it be better to change the extension of the second file to, for example, .UPL - ULAplus launcher -?
The idea for containers came after I'd written the plugin which just applied the palette tap or raw palette file. I'll think about it. You can just copy the ULA plugin file in BPLUGINS and rename it to UPL - then rename your container files to the same extension UPL and that should give you the same effect.
User avatar
bob_fossil
Manic Miner
Posts: 669
Joined: Mon Nov 13, 2017 6:09 pm

Re: Long Filename Browser for ZX-UNO / esxDOS

Post by bob_fossil »

New test version available here.

The fullscreen preview mode (Symbol Shift + F) code has now been moved into an external plugin (_FUL). This plugin lets the .browse dot command support showing compressed screens from .TAP files and screens from .Z80 files - previously this functionality was limited to the NMI browser. Additional error checking was also added to the No_MMC_Memory version of NMI.SYS when the disk is full and a bug which caused memory not to be restored correctly when you exited the .browse dot command was also fixed.
User avatar
Cgonzalez
Drutt
Posts: 40
Joined: Thu Mar 15, 2018 10:03 pm
Location: Santiago, Chile

Re: Long Filename Browser for ZX-UNO / esxDOS

Post by Cgonzalez »

I love your browser, use it every day! Thank you!

What would be neat feature, will be a dual pane view mode aka Norton commander, for copy files between folders.
User avatar
bob_fossil
Manic Miner
Posts: 669
Joined: Mon Nov 13, 2017 6:09 pm

Re: Long Filename Browser for ZX-UNO / esxDOS

Post by bob_fossil »

Cgonzalez wrote: Sat Jul 24, 2021 4:12 am I love your browser, use it every day! Thank you!

What would be neat feature, will be a dual pane view mode aka Norton commander, for copy files between folders.
Thanks! I'm not sure how useful that would be as the copying, folder creation and renaming is limited to 8.3 filenames? The long filename support in the browser is read only.
User avatar
Luzie
Manic Miner
Posts: 917
Joined: Fri May 01, 2020 2:07 pm

Re: Long Filename Browser for ZX-UNO / esxDOS

Post by Luzie »

bob_fossil wrote: Tue Jul 27, 2021 10:05 pm
Cgonzalez wrote: Sat Jul 24, 2021 4:12 am I love your browser, use it every day! Thank you!

What would be neat feature, will be a dual pane view mode aka Norton commander, for copy files between folders.
Thanks! I'm not sure how useful that would be as the copying, folder creation and renaming is limited to 8.3 filenames? The long filename support in the browser is read only.
My opinion is that this will help much, even if it´s 8.3-filename-only.
User avatar
bob_fossil
Manic Miner
Posts: 669
Joined: Mon Nov 13, 2017 6:09 pm

Re: Long Filename Browser for ZX-UNO / esxDOS

Post by bob_fossil »

v0.19
  • Added HAM plugin to load in HAM8x1/HAM256 ULAPlus images.
  • Added ULA plugin to load in ULAPlus colour palettes for games.
  • _INF Plugin now supports displaying extended information like content listing for certain filetypes via information plugins stored in /BIN/BPLUGINS/INFO. Currently supports showing additional information for TAP, TRD and SCL files.
  • Previous fix in v0.17 to stop the NMI corrupting the current 128k memory bank broke snapshot saving on some 128k titles (Travel Through Time vol. 1).
  • Saving a snapshot could also cause a crash after exiting the NMI browser.
  • AY plugin now supports the custom browser font.
  • You can now specify a path with the .browse command to start the browser from a specific folder.
  • Enable 28mhz turbo when doing disk read functions to speed up the process on the ZX-UNO.
  • Added additional error checking to No_MMC_Memory version of NMI.SYS when the disk is full.
  • Moved full screen mode code into _FUL plugin. .browse dot command now supports showing compressed screens in fullscreen mode.
  • .browse command wasn't restoring the 8k memory block at address 40960 on exit.
Download here.

I've also put together a small media pack to show off the ULAPlus plugins and some of the other plugins which you can get from here.
User avatar
Luzie
Manic Miner
Posts: 917
Joined: Fri May 01, 2020 2:07 pm

Re: Long Filename Browser for ZX-UNO / esxDOS

Post by Luzie »

bob_fossil wrote: Tue Jul 27, 2021 10:05 pm Thanks! I'm not sure how useful that would be as the copying, folder creation and renaming is limited to 8.3 filenames? The long filename support in the browser is read only.
Dear [mention]bob_fossil[/mention] What´s the reason LFN-write-support can´t be handled? WIll LFN-write-handling require to have all the long file names of a FAT-table in memory at one time and that´s "simple too much for the Spectrums RAM"?
Last edited by Luzie on Sat Aug 28, 2021 11:33 am, edited 1 time in total.
User avatar
bob_fossil
Manic Miner
Posts: 669
Joined: Mon Nov 13, 2017 6:09 pm

Re: Long Filename Browser for ZX-UNO / esxDOS

Post by bob_fossil »

Luzie wrote: Sat Aug 28, 2021 9:48 am Dear @bob_fossil What´s the reason LFN-write-support can´t be handled? WIll LFN-write-handling require to be have all the long file names of a FAT-table to be in memory at one time and that´s "simple to much for the Spectrums RAM"?
Short answer is because it's difficult. :)

Long file names are stored in a series of invalid file entry blocks before the 8.3 filename in the FAT. So I'd have to convert the filename to these blocks and then write them directly to the disk and then update the FAT correctly.There is code available to do this as this is what Linux does to access FAT32 drives but it's way out of scope for a simple file browser / one man hobby project. Reading long filenames is not straightforward - but the data is already on the disk so it's the easier part to handle. Writing long filenames to disk would run the risk of corrupting the disk if not done correctly.
User avatar
bob_fossil
Manic Miner
Posts: 669
Joined: Mon Nov 13, 2017 6:09 pm

Re: Long Filename Browser for ZX-UNO / esxDOS

Post by bob_fossil »

User avatar
Luzie
Manic Miner
Posts: 917
Joined: Fri May 01, 2020 2:07 pm

Re: Long Filename Browser for ZX-UNO / esxDOS

Post by Luzie »

bob_fossil wrote: Sun Sep 05, 2021 5:35 pm Things to come in v0.20
Superb. Especially .2browse !
User avatar
bob_fossil
Manic Miner
Posts: 669
Joined: Mon Nov 13, 2017 6:09 pm

Re: Long Filename Browser for ZX-UNO / esxDOS

Post by bob_fossil »

New test version available here.

Plugins can now support per plugin configuration files, e.g. the WAV plugin can load /BIN/BPLUGINS/CFG/WAV.CFG file for settings. The new .plugcfg command lets you configure settings for a specific plugin, e.g. Ensure you copy across the /BIN/BPLUGINS/CFG folder and plugins.ini file inside it. If no file is present in the CFG folder, the plugin will default to it's normal behaviour.

To configure a specific plugin - in this case the SCR plugin - from BASIC type:

Code: Select all

.plugcfg scr
.plugcfg keys:

Browser Up / Down - Select Option
Browser Left / Right - Change option value
Break - Exit without saving
Enter - Exit and save

Currently the PT3, WAV and SCR plugins support configurable settings. The WAV plugin now supports configurable waveform display during playback, the SCR plugin supports configurable slideshow mode and delay and the PT3 plugin supports configurable playback looping and automatically playing the next song when playback ends.

A new RAD plugin to display Radistan bitmaps was also added. See the supplied files in the Screens/Radastan folder in the updated media package.
User avatar
Luzie
Manic Miner
Posts: 917
Joined: Fri May 01, 2020 2:07 pm

Re: Long Filename Browser for ZX-UNO / esxDOS

Post by Luzie »

bob_fossil wrote: Mon Sep 13, 2021 9:36 pm New test version available http://www.thefossilrecord.co.uk/wp-con ... T020-1.zip
...
Dear [mention]bob_fossil[/mention]: .2browse not yet included in the package? - Am I right?
Post Reply