New File Browser for ZX-UNO

Show us what you're working on, (preferably with screenshots).
velesoft
Berk
Posts: 14
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.
0 x

User avatar
bob_fossil
Manic Miner
Posts: 272
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.
0 x

velesoft
Berk
Posts: 14
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 am
Yes, 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...
1 x

User avatar
bob_fossil
Manic Miner
Posts: 272
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 am
Yes, 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?
0 x

velesoft
Berk
Posts: 14
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
bob_fossil wrote:
Sat Oct 10, 2020 11:16 am
Yes, 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?
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
0 x

velesoft
Berk
Posts: 14
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)
1 x

velesoft
Berk
Posts: 14
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
1 x

User avatar
bob_fossil
Manic Miner
Posts: 272
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.
5 x

velesoft
Berk
Posts: 14
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....
0 x

keithshaw3
Berk
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.
0 x

Post Reply