Long Filename Browser for ZX-UNO / esxDOS

Field Programmable Gate Array based devices! As exciting as they sound
velesoft
Drutt
Posts: 34
Joined: Sat Sep 26, 2020 11:51 pm
Location: Czech Republic
Contact:

Re: New File Browser for ZX-UNO

Post by velesoft »

Browser use also zx ram 49152-65535 ? Here may be on zx 128 any zx ram page and locked paging. For example if you in basic write CLEAR 49151: OUT 32765, 50 (OR VALUE 53) then at 49152 is mirrored zx ram page 2 or 5 with disabled paging.
User avatar
bob_fossil
Manic Miner
Posts: 654
Joined: Mon Nov 13, 2017 6:09 pm

Re: New File Browser for ZX-UNO

Post by bob_fossil »

velesoft wrote: Sat Oct 10, 2020 8:15 am Browser use also zx ram 49152-65535 ? Here may be on zx 128 any zx ram page and locked paging. For example if you in basic write CLEAR 49151: OUT 32765, 50 (OR VALUE 53) then at 49152 is mirrored zx ram page 2 or 5 with disabled paging.
Yes, the browser uses 49152-65535 to store the 8.3 filenames and any associated long filenames.
velesoft
Drutt
Posts: 34
Joined: Sat Sep 26, 2020 11:51 pm
Location: Czech Republic
Contact:

Re: New File Browser for ZX-UNO

Post by velesoft »

bob_fossil wrote: Sat Oct 10, 2020 11:16 amYes, the browser uses 49152-65535 to store the 8.3 filenames and any associated long filenames.
Then you may need small memory test before start browser - if is in area 49152-65535 set ram page 2 or 5 and memory paging is locked then memory is unusable = disable NMI or show message "computer need reset..." etc...
User avatar
bob_fossil
Manic Miner
Posts: 654
Joined: Mon Nov 13, 2017 6:09 pm

Re: New File Browser for ZX-UNO

Post by bob_fossil »

velesoft wrote: Sat Oct 10, 2020 4:16 pm
bob_fossil wrote: Sat Oct 10, 2020 11:16 amYes, the browser uses 49152-65535 to store the 8.3 filenames and any associated long filenames.
Then you may need small memory test before start browser - if is in area 49152-65535 set ram page 2 or 5 and memory paging is locked then memory is unusable = disable NMI or show message "computer need reset..." etc...
Not sure I understand the issue. The NMI copies 16384 - 65535 to the divMMC banks and restores this back on exit. Why wouldn't 49152 - 65535 get restored by this operation? If the 128 paging is locked, can't I still copy 49152-65535 to somewhere else (divMMC memory) and then restore it?
velesoft
Drutt
Posts: 34
Joined: Sat Sep 26, 2020 11:51 pm
Location: Czech Republic
Contact:

Re: New File Browser for ZX-UNO

Post by velesoft »

bob_fossil wrote: Sat Oct 10, 2020 5:43 pm
velesoft wrote: Sat Oct 10, 2020 4:16 pm Then you may need small memory test before start browser - if is in area 49152-65535 set ram page 2 or 5 and memory paging is locked then memory is unusable = disable NMI or show message "computer need reset..." etc...
Not sure I understand the issue. The NMI copies 16384 - 65535 to the divMMC banks and restores this back on exit. Why wouldn't 49152 - 65535 get restored by this operation? If the 128 paging is locked, can't I still copy 49152-65535 to somewhere else (divMMC memory) and then restore it?
If you set on zx128 ram page 2 from 49152 then area 32768-49151 is mirrored with area 49152-65535. Then if you write byte 255 to address 32768 then will be visible also on 49152.
And zx ram page 5 is mirrored with zx videoram area 16384-32767
velesoft
Drutt
Posts: 34
Joined: Sat Sep 26, 2020 11:51 pm
Location: Czech Republic
Contact:

Re: New File Browser for ZX-UNO

Post by velesoft »

idea for nmi start:

You can before start nmi detect if zx model is 128 or 48 kB.
If is detected only 48kB model then backup zx memory to divmmc and use this detection code :
XOR A
LD (16384),A
LD (32768),A
LD A,5
LD (49152),A
LD A,(16384)
CP 5
JR Z,END
LD A,2
LD (49152),A
LD A,(32768)
CP 2
JR Z,END
LD A,(32768)
END: RET

If this code return in register A value 5 or 2 then is detected zx128 with locked memory paging and set incorrect zx ram page. Need reset for unlock memory....
If A = 255 then detected zx spectrum 16kB model. Here is zx ram 32768-65535 unusable.
Value 0 sign usable zx ram in full address space.

For problematic values 5 , 2 , 255 you can also disable nmi / automatic return from nmi. Or load original nmi code (run also on zx16 and not use higher ram)
velesoft
Drutt
Posts: 34
Joined: Sat Sep 26, 2020 11:51 pm
Location: Czech Republic
Contact:

Re: New File Browser for ZX-UNO

Post by velesoft »

Optimised code:

XOR A
LD (16384), A
LD (32768), A
LD A, 5
LD (49152), A
LD A, (16384)
CP 5
RET Z
LD A, 2
LD (49152), A
LD A, (32768)
RET
User avatar
bob_fossil
Manic Miner
Posts: 654
Joined: Mon Nov 13, 2017 6:09 pm

Re: New File Browser for ZX-UNO

Post by bob_fossil »

New test version available here.

This version includes the new plugin system which allows the browser to support filetypes in an extensible manner. The 'BPLUGINS' sub folder in the 'BIN' directory holds all the available plugins which provide support for:

Code: Select all

.bas
.lce
.pt2
.pt3
.pzx
.scr
.sna
.sqt
.stc
.tap
.trd
.z80
If you copy the contents of the 'BIN' folder from the .zip file onto your card / device you should be good to go.

The 'plugins' folder has the source and documentation explaining how you can write your own browser plugin. I've also built a version of the browser for devices without 128k of MMC memory - though I haven't tested this (it built OK :) ). This is in the 'No_MMC_Memory' folder. This doesn't support plugins but it will have any additional bug fixes or features that don't require MMC memory.

There's been a lot of changes so apologies if I've broken anything.
velesoft
Drutt
Posts: 34
Joined: Sat Sep 26, 2020 11:51 pm
Location: Czech Republic
Contact:

Re: New File Browser for ZX-UNO

Post by velesoft »

Idea for LCE and SCR plugin.
Add manual or automatic loading of next screen files....
keithshaw3
Drutt
Posts: 31
Joined: Wed May 20, 2020 4:52 pm

Re: New File Browser for ZX-UNO

Post by keithshaw3 »

Hi,

Does the new test version load all the file types listed out of the box or are there some adjustments needed within the plugin config?

Keith.
User avatar
bob_fossil
Manic Miner
Posts: 654
Joined: Mon Nov 13, 2017 6:09 pm

Re: New File Browser for ZX-UNO

Post by bob_fossil »

keithshaw3 wrote: Mon Nov 02, 2020 5:11 pm Hi,

Does the new test version load all the file types listed out of the box or are there some adjustments needed within the plugin config?

Keith.
Yes it should, so long as you've copied the BPLUGINS folder into the BIN folder. Plugins are loaded by the file extension so as long as you don't do anything silly like rename a .scr file to a .z80 it should work fine.
keithshaw3
Drutt
Posts: 31
Joined: Wed May 20, 2020 4:52 pm

Re: New File Browser for ZX-UNO

Post by keithshaw3 »

Great, thanks I will give it a test in the week and let you know if I encounter any issues :)
keithshaw3
Drutt
Posts: 31
Joined: Wed May 20, 2020 4:52 pm

Re: New File Browser for ZX-UNO

Post by keithshaw3 »

Works great thanks, any chance of adding .TZX support?

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

Re: New File Browser for ZX-UNO

Post by Luzie »

keithshaw3 wrote: Mon Nov 02, 2020 9:06 pm Works great thanks, any chance of adding .TZX support?

Keith.
I think I should dampen your hopes for .TZX-Support:

From post (in 2017!) "esxDOS on ZX Next FAQ" on: http://board.esxdos.org/viewtopic.php?pid=279#p279
lordcoxis:
Question: Will esxDOS have .TZX support? Is it a Next exclusive feature?
Answer: Yes, but only for standard data blocks using the ROM loader (just like ResiDOS). It's not a Next exclusive feature.
keithshaw3
Drutt
Posts: 31
Joined: Wed May 20, 2020 4:52 pm

Re: New File Browser for ZX-UNO

Post by keithshaw3 »

I think I should dampen your hopes for .TZX-Support:

From post (in 2017!) "esxDOS on ZX Next FAQ" on: http://board.esxdos.org/viewtopic.php?pid=279#p279
lordcoxis:
Question: Will esxDOS have .TZX support? Is it a Next exclusive feature?
Answer: Yes, but only for standard data blocks using the ROM loader (just like ResiDOS). It's not a Next exclusive feature.
Oh, Thanks for the info, I didn't realise it wasn't a feature of esxDos, that's a bummer, guess I will just have to keep converting using an emulator :(
User avatar
bob_fossil
Manic Miner
Posts: 654
Joined: Mon Nov 13, 2017 6:09 pm

Re: New File Browser for ZX-UNO

Post by bob_fossil »

New test version available here.

I've made some proof of concept changes to the SCR plugin. The plugin system now supports fetching the next or previous file from the browser. You can now use the 1 and 2 keys to move backwards and forwards between screens and SPACE to exit. I've also added an SCL plugin based on [mention]nihirash[/mention] 's scl2trd C source code. If you select a SCL file, the browser will try and convert it to a trimmed .TRD file and then autostart that file.
User avatar
Luzie
Manic Miner
Posts: 906
Joined: Fri May 01, 2020 2:07 pm

Re: New File Browser for ZX-UNO

Post by Luzie »

Dear Bob,

I discovered a bug which maybe introduced from Final Version v0.11 to Final Version v0.12 and later up to latest v0.13-Test2:

I load your "New File Browser for ZX-UNO" from within "Dr. Slumps NMI navigator v.0.0.17" http://board.esxdos.org/viewtopic.php?pid=1584#p1584 via Hotkey J

This works with \SYS\NMI.SYS from your "New File Browser for ZX-UNO" v0.11 Final (Size=444 Bytes) renamed and copied to \SYS\nmi\old088.sys

But it don´t work anymore with \SYS\NMI.SYS from your "New File Browser for ZX-UNO" v0.12 Final (Size=412 Bytes)
neither with \SYS\NMI.SYS from your "New File Browser for ZX-UNO" v0.13-Test2 Final (Size=411 Bytes)
User avatar
bob_fossil
Manic Miner
Posts: 654
Joined: Mon Nov 13, 2017 6:09 pm

Re: New File Browser for ZX-UNO

Post by bob_fossil »

Luzie wrote: Sun Nov 08, 2020 7:14 pm Dear Bob,

I discovered a bug which maybe introduced from Final Version v0.11 to Final Version v0.12 and later up to latest v0.13-Test2:

I load your "New File Browser for ZX-UNO" from within "Dr. Slumps NMI navigator v.0.0.17" http://board.esxdos.org/viewtopic.php?pid=1584#p1584 via Hotkey J

This works with \SYS\NMI.SYS from your "New File Browser for ZX-UNO" v0.11 Final (Size=444 Bytes) renamed and copied to \SYS\nmi\old088.sys

But it don´t work anymore with \SYS\NMI.SYS from your "New File Browser for ZX-UNO" v0.12 Final (Size=412 Bytes)
neither with \SYS\NMI.SYS from your "New File Browser for ZX-UNO" v0.13-Test2 Final (Size=411 Bytes)
The only change from v0.11 to v0.12 in the NMI.SYS was the usage of divMMC memory bank paging to avoid writing the contents of the RAM to the temp folder. Why this would cause issues with the other NMI browser, I've no idea. You could try using the files from the 'No_MMC_memory' folder and see if they work correctly with it to confirm if this is the cause of the problem. Or just use my browser as your default - the problem should go away then. :)
User avatar
bob_fossil
Manic Miner
Posts: 654
Joined: Mon Nov 13, 2017 6:09 pm

Re: New File Browser for ZX-UNO

Post by bob_fossil »

Luzie wrote: Sun Nov 08, 2020 7:14 pm Dear Bob,

I discovered a bug which maybe introduced from Final Version v0.11 to Final Version v0.12 and later up to latest v0.13-Test2:

I load your "New File Browser for ZX-UNO" from within "Dr. Slumps NMI navigator v.0.0.17" http://board.esxdos.org/viewtopic.php?pid=1584#p1584 via Hotkey J

This works with \SYS\NMI.SYS from your "New File Browser for ZX-UNO" v0.11 Final (Size=444 Bytes) renamed and copied to \SYS\nmi\old088.sys

But it don´t work anymore with \SYS\NMI.SYS from your "New File Browser for ZX-UNO" v0.12 Final (Size=412 Bytes)
neither with \SYS\NMI.SYS from your "New File Browser for ZX-UNO" v0.13-Test2 Final (Size=411 Bytes)
Okay, so I created a new .hdf image with esxdos 0.8.8, the latest version of my NMI browser and v0.0.17 of Dr Slump's NMI browser. When I hit the NMI, I go into Dr Slump's NMI. I press J, the screen flips back to what it was before the NMI (with some extra code running in the screen) before my NMI browser appears. Seems to work fine here.

Code: Select all

/sys/nmi/old088.sys 441 bytes
pjrodriguez
Drutt
Posts: 23
Joined: Tue May 05, 2020 9:38 am

Re: New File Browser for ZX-UNO

Post by pjrodriguez »

Hi Bob,
Thank you for keeping on updating your file browser.
The .scl plugin is a very good idea and in my real Spectrum+3 it creates the .trd in only a few seconds. But the plugin fails to execute the .trd file after creating it (I get an error) and the .trd file has a 8.3 filename. Maybe the two issues are related. Not a big deal but maybe you can fix it.
User avatar
bob_fossil
Manic Miner
Posts: 654
Joined: Mon Nov 13, 2017 6:09 pm

Re: New File Browser for ZX-UNO

Post by bob_fossil »

pjrodriguez wrote: Mon Nov 09, 2020 6:15 pm Hi Bob,
Thank you for keeping on updating your file browser.
The .scl plugin is a very good idea and in my real Spectrum+3 it creates the .trd in only a few seconds. But the plugin fails to execute the .trd file after creating it (I get an error) and the .trd file has a 8.3 filename. Maybe the two issues are related. Not a big deal but maybe you can fix it.
Thanks! The SCL plugin will create the .trd filename from the 8.3 filename of the SCL file - I'm not adding long filename writing support. :) The .trd file should be slightly larger than the original .scl file if it worked correctly (you should see some lines in the border while it writes the file). Do you have a link or could you make the .scl file available that you tried to convert so I can investigate further? Thanks.
User avatar
Luzie
Manic Miner
Posts: 906
Joined: Fri May 01, 2020 2:07 pm

Re: New File Browser for ZX-UNO

Post by Luzie »

bob_fossil wrote: Mon Nov 09, 2020 6:15 pm Okay, so I created a new .hdf image with esxdos 0.8.8, the latest version of my NMI browser and v0.0.17 of Dr Slump's NMI browser. When I hit the NMI, I go into Dr Slump's NMI. I press J, the screen flips back to what it was before the NMI (with some extra code running in the screen) before my NMI browser appears. Seems to work fine here.

Code: Select all

/sys/nmi/old088.sys 441 bytes
Maybe I´ve done something wrong here. Which Emulator/Interface-Settings do you use for testing?
I´ve tried with SpecEmu (divMMC-Emulation only).
Maybe you could share your .HDF-File for comparison with my "compilation"? (Please send PM). Thank you!
User avatar
bob_fossil
Manic Miner
Posts: 654
Joined: Mon Nov 13, 2017 6:09 pm

Re: New File Browser for ZX-UNO

Post by bob_fossil »

Luzie wrote: Mon Nov 09, 2020 6:25 pm
bob_fossil wrote: Mon Nov 09, 2020 6:15 pm Okay, so I created a new .hdf image with esxdos 0.8.8, the latest version of my NMI browser and v0.0.17 of Dr Slump's NMI browser. When I hit the NMI, I go into Dr Slump's NMI. I press J, the screen flips back to what it was before the NMI (with some extra code running in the screen) before my NMI browser appears. Seems to work fine here.

Code: Select all

/sys/nmi/old088.sys 441 bytes
Maybe I´ve done something wrong here. Which Emulator/Interface-Settings do you use for testing?
I´ve tried with SpecEmu (divMMC-Emulation only).
Maybe you could share your .HDF-File for comparison with my "compilation"? (Please send PM). Thank you!
I've had to switch over to Fuse. During development of the new browser features in v12 and later I found that SpecEmu didn't seem to emulate the divMMC's 128k of memory correctly (only the 32k needed for esxdos to run) which I'm now using for saving the RAM contents and plugins.
User avatar
Luzie
Manic Miner
Posts: 906
Joined: Fri May 01, 2020 2:07 pm

Re: New File Browser for ZX-UNO

Post by Luzie »

bob_fossil wrote: Mon Nov 09, 2020 6:30 pm I've had to switch over to Fuse. During development of the new browser features in v12 and later I found that SpecEmu didn't seem to emulate the divMMC's 128k of memory correctly (only the 32k needed for esxdos to run) which I'm now using for saving the RAM contents and plugins.
OK. I not tried it with Fuse yet. This maybe the problem I discovered. Not yet tested "No_MMC_Memory"-Version. I´ll keep you informed.
pjrodriguez
Drutt
Posts: 23
Joined: Tue May 05, 2020 9:38 am

Re: New File Browser for ZX-UNO

Post by pjrodriguez »

The .trd file can't be executed when created after selecting the .scl file but it's always succesfully saved and can be executed later.
Post Reply