MMFS Version 2

discussion of beeb/electron applications, languages, utils and educational s/w
Post Reply
mm67
Posts: 55
Joined: Tue Feb 28, 2006 4:44 pm
Location: England
Contact:

MMFS Version 2

Post by mm67 » Mon Jul 29, 2019 11:36 am

For fun I've been working on a new version of MMFS which does away with the MMB file.

Instead it uses a FAT32 formatted card and offers the following commands
*DCAT (<filter>) shows the current DOS dir, filter allows '*' wildard, e.g. *.*sd
*DDIR (<dos dir>) changes the current DOS dir, or if no parameter goes to root
*DIN (<drive>) <dos file> loads image (drive = 0 or 1 only)
*DOUT (<drive>)
(*DBOOT to follow)
temp command *DDUMP dumps the contents of the current drive image.

A very early version is attached (i've disabled writing):

[Superseded : attachment removed]

It works such that I can load games, but I have a list of improvements I want to make, plus I need to 'IF' out all the redundant code and tidy up.

All based on hoglet's much improved MMFS, mods to which I've tried to keep to a minimum.

Not having a real beeb anymore, it's only been tested on beebem. Therefore it would be useful to know if it works on real hardware!
Last edited by mm67 on Thu Sep 26, 2019 11:05 am, edited 1 time in total.
mm67

User avatar
danielj
Posts: 7497
Joined: Thu Oct 02, 2008 4:51 pm
Location: Manchester
Contact:

Re: MMFS Version 2

Post by danielj » Mon Jul 29, 2019 11:41 am

This is a very welcome update! :) I look forward to seeing how it plays with real hardware :D

d.

User avatar
hoglet
Posts: 8529
Joined: Sat Oct 13, 2012 6:21 pm
Location: Bristol
Contact:

Re: MMFS Version 2

Post by hoglet » Mon Jul 29, 2019 12:14 pm

Very interesing work Martin.

It's pretty exciting to see a full FAT32 implementation in 6502 assembler.

Did you have to chop much out to make it fit?

(I'm guessing the PAGE=&E00 SWRAM versions aren't going to have enough space for this)

Dave

mm67
Posts: 55
Joined: Tue Feb 28, 2006 4:44 pm
Location: England
Contact:

Re: MMFS Version 2

Post by mm67 » Mon Jul 29, 2019 12:42 pm

Hi Dave,

Well, when all the code for the MMB file is gone (well ifed out), there will hopefully be plenty of room.
mm67

User avatar
lurkio
Posts: 2177
Joined: Tue Apr 09, 2013 11:30 pm
Location: Doomawangara
Contact:

Re: MMFS Version 2

Post by lurkio » Mon Jul 29, 2019 2:11 pm

mm67 wrote:
Mon Jul 29, 2019 11:36 am
For fun I've been working on a new version of MMFS which does away with the MMB file.

Instead it uses a FAT32 formatted card ...
Very interesting!

=D> =D>

User avatar
myelin
Posts: 726
Joined: Tue Apr 26, 2016 9:17 pm
Location: Mountain View, CA, USA
Contact:

Re: MMFS Version 2

Post by myelin » Mon Jul 29, 2019 11:11 pm

Excellent!
SW/EE from New Zealand, now in Mountain View, CA, making BBC/Electron hardware projects for fun.
Most interesting: Arcflash, FX2+PiTubeDirect Tube/Cartridge adapter, USB cart interface.

duikkie
Posts: 2958
Joined: Fri Feb 07, 2014 3:28 pm
Contact:

Re: MMFS Version 2

Post by duikkie » Tue Jul 30, 2019 7:56 pm

this is what i was thinking about with my project userdos and tubedos rom
maybe my idea of the names to use

*dcat i want it to name it *dosdir
*ddir i want it to name it *doscd
*din i want it to name it *dosload

my roms are a little diffent then the mmfs roms
so maybe the mmfs ver.2 will beat the userdos rom

why only fat32 ??

smart-spi <.....> mmfs
mmfsv2 <....> userdos ???

for now i have not the time :cry:

mm67 wrote:
Mon Jul 29, 2019 11:36 am
For fun I've been working on a new version of MMFS which does away with the MMB file.

Instead it uses a FAT32 formatted card and offers the following commands
*DCAT (<filter>) shows the current DOS dir, filter allows '*' wildard, e.g. *.*sd
*DDIR (<dos dir>) changes the current DOS dir, or if no parameter goes to root
*DIN (<drive>) <dos file> loads image (drive = 0 or 1 only)
*DOUT (<drive>)
(*DBOOT to follow)
temp command *DDUMP dumps the contents of the current drive image.

A very early version is attached (i've disabled writing):

build.zip

It works such that I can load games, but I have a list of improvements I want to make, plus I need to 'IF' out all the redundant code and tidy up.

All based on hoglet's much improved MMFS, mods to which I've tried to keep to a minimum.

Not having a real beeb anymore, it's only been tested on beebem. Therefore it would be useful to know if it works on real hardware!

Coeus
Posts: 1378
Joined: Mon Jul 25, 2016 11:05 am
Contact:

Re: MMFS Version 2

Post by Coeus » Wed Jul 31, 2019 1:12 am

duikkie wrote:
Tue Jul 30, 2019 7:56 pm
why only fat32 ??
Do you mean why only the 32bit version of FAT? Or is there some other filing system you want to see? ExFAT, maybe? I think it unlikely that someone would need to use an SD card big enough that it needs to be formatted as ExFAT with a BBC micro.

Although I believe there is a proprietary ROM to allow the BBC Micro to use a FAT filing system as a native filing system so BBC files can be ready individually with ease from a PC that isn't how FAT is used with the original MMFS or what is proposed here. As far as I can tell the existing MMFS only works with a FAT formatted partition on the SD card because that is what SD cards have been formatted with historically and because WIndows doesn't make it easy to access raw partitions.

I think mm67's idea is to make the disc images that would otherwise be inside an MMB file, FAT files in their own right. This makes it easier to replace one of the SSDs on the card as one then only has to copy the SSD file onto the card which can be done from Windows or any other OS that works with SD cards without the need for a special program that can maintain an MMB file. It also means that the code within MMFS that is specific to the MMB file format can go.
Last edited by Coeus on Wed Jul 31, 2019 1:13 am, edited 1 time in total.

duikkie
Posts: 2958
Joined: Fri Feb 07, 2014 3:28 pm
Contact:

Re: MMFS Version 2

Post by duikkie » Wed Jul 31, 2019 5:19 am

there are FAT and FAT32 :) and others but most of them use FAT or FAT32 , mmfs and SMART-SPI can detect now FAT and fat32, so why del. the FAT detection ?

i understand what mm67 whants to do , it is the same i want with USERDOS and TUBEDOS , i only don't have the time to make the softwarerom :(

the names DOSCD,DOSDIR,and DOSLOAD , is to make a different name
els you get people who are using DIN in the mmfs/smart-spi , and allso in the dos version. that will not work fine :)

alldo i have difficult understand how mmfs are made ( c++ based ?) i use the martin .... option

i allso know you have to loss a lot of stuff in the mmfs calc for MMB file to make the dos version

*doscd= because the command in DOS to change directorie is cd ( cd c:\main\ssdfiles)
*dosdir= because the command in dos too list directorie is dir ( dir c:\main or dir *.* or dir .. )
*dosload= because to load normal thing to do in dos is type in ( programmes with *.exe or *.bat )

*dossave is not possible because you only have 4 kilobytes for a bbcrom. you save a file in your *dosload game.ssd file :)
Coeus wrote:
Wed Jul 31, 2019 1:12 am
duikkie wrote:
Tue Jul 30, 2019 7:56 pm
why only fat32 ??
Do you mean why only the 32bit version of FAT? Or is there some other filing system you want to see? ExFAT, maybe? I think it unlikely that someone would need to use an SD card big enough that it needs to be formatted as ExFAT with a BBC micro.

Although I believe there is a proprietary ROM to allow the BBC Micro to use a FAT filing system as a native filing system so BBC files can be ready individually with ease from a PC that isn't how FAT is used with the original MMFS or what is proposed here. As far as I can tell the existing MMFS only works with a FAT formatted partition on the SD card because that is what SD cards have been formatted with historically and because WIndows doesn't make it easy to access raw partitions.

I think mm67's idea is to make the disc images that would otherwise be inside an MMB file, FAT files in their own right. This makes it easier to replace one of the SSDs on the card as one then only has to copy the SSD file onto the card which can be done from Windows or any other OS that works with SD cards without the need for a special program that can maintain an MMB file. It also means that the code within MMFS that is specific to the MMB file format can go.
Last edited by duikkie on Wed Jul 31, 2019 5:30 am, edited 1 time in total.

User avatar
geraldholdsworth
Posts: 519
Joined: Tue Nov 04, 2014 9:42 pm
Location: Inverness, Scotland
Contact:

Re: MMFS Version 2

Post by geraldholdsworth » Wed Jul 31, 2019 8:47 am

I think that this is a fantastic idea. I never saw the point of the MMB file anyway.
duikkie wrote:
Wed Jul 31, 2019 5:19 am
*dossave is not possible because you only have 4 kilobytes for a bbcrom. you save a file in your *dosload game.ssd file :)
What if you wanted to create a new disc image on the SD card, on the BBC side, and then copy data from a real disc?

Cheers,

Gerald.
Gerald Holdsworth
Repton Resource Page
www.reptonresourcepage.co.uk

Coeus
Posts: 1378
Joined: Mon Jul 25, 2016 11:05 am
Contact:

Re: MMFS Version 2

Post by Coeus » Wed Jul 31, 2019 10:49 am

duikkie wrote:
Wed Jul 31, 2019 5:19 am
there are FAT and FAT32 :) and others but most of them use FAT or FAT32 , mmfs and SMART-SPI can detect now FAT and fat32, so why del. the FAT detection ?
Ok, so this refers to the variations where the number of bits in the file allocation table is different. I think I have seen 12, 16 and 32 and there is an 8-bit version that pre-dates MS-DOS. I assume what you are calling FAT is actually FAT16?
duikkie wrote:
Wed Jul 31, 2019 5:19 am
the names DOSCD,DOSDIR,and DOSLOAD , is to make a different name
else you get people who are using DIN in the mmfs/smart-spi , and allso in the dos version. that will not work fine :)
That would make it possible to have more than one ROM that provides DFS-like access to an SD installed at the same time but I wonder how many people want to do that? On the other hand the *DIN and *DABOUT commands have been built into a nice games menu that people like so there is an advantage to being compatible.
duikkie wrote:
Wed Jul 31, 2019 5:19 am
alldo i have difficult understand how mmfs are made ( c++ based ?) i use the martin .... option
If you're referring to the Hoglet version of MMFS, the assembler BeebAsm is written in C++ but there are pre-built versions of that for Windows and Linux so you don't need a C++ compiler. The rest of the build automation is a bash script. This works natively on Linux and I assume Hoglet has in mind that the Windows GIT implementation includes bash so presumably that is sufficient to run it on Windows.

duikkie
Posts: 2958
Joined: Fri Feb 07, 2014 3:28 pm
Contact:

Re: MMFS Version 2

Post by duikkie » Wed Jul 31, 2019 1:19 pm

yes fat =fat16
i don't understand why people use *rom commando's in there games menu ? if one you can change *din in *dosload
but never use *rom commando's , i have seen this with utilsroms or basicedit rom , if someone do not have this roms , program blocks , allso if you use real disc. oke programmer standpoint :)

i am old even windows is new stuff :roll: , give me 6502,8088 and i am happy , all other languane is too high for me :)
event basic is a high languane :) , i ones did a program in c++ terible simple instuctions of a simple man :)


Coeus wrote:
Wed Jul 31, 2019 10:49 am
duikkie wrote:
Wed Jul 31, 2019 5:19 am
there are FAT and FAT32 :) and others but most of them use FAT or FAT32 , mmfs and SMART-SPI can detect now FAT and fat32, so why del. the FAT detection ?
Ok, so this refers to the variations where the number of bits in the file allocation table is different. I think I have seen 12, 16 and 32 and there is an 8-bit version that pre-dates MS-DOS. I assume what you are calling FAT is actually FAT16?
duikkie wrote:
Wed Jul 31, 2019 5:19 am
the names DOSCD,DOSDIR,and DOSLOAD , is to make a different name
else you get people who are using DIN in the mmfs/smart-spi , and allso in the dos version. that will not work fine :)
That would make it possible to have more than one ROM that provides DFS-like access to an SD installed at the same time but I wonder how many people want to do that? On the other hand the *DIN and *DABOUT commands have been built into a nice games menu that people like so there is an advantage to being compatible.
duikkie wrote:
Wed Jul 31, 2019 5:19 am
alldo i have difficult understand how mmfs are made ( c++ based ?) i use the martin .... option
If you're referring to the Hoglet version of MMFS, the assembler BeebAsm is written in C++ but there are pre-built versions of that for Windows and Linux so you don't need a C++ compiler. The rest of the build automation is a bash script. This works natively on Linux and I assume Hoglet has in mind that the Windows GIT implementation includes bash so presumably that is sufficient to run it on Windows.

User avatar
DutchAcorn
Posts: 2130
Joined: Fri Mar 21, 2014 9:56 am
Location: Maarn, Netherlands
Contact:

Re: MMFS Version 2

Post by DutchAcorn » Thu Aug 01, 2019 8:42 am

This is an excellent improvement! =D>

Combining this with Ultra DFS would make it even more extremely useful. 8)
geraldholdsworth wrote:
Wed Jul 31, 2019 8:47 am

What if you wanted to create a new disc image on the SD card, on the BBC side, and then copy data from a real disc?
Yes, that.
Paul

Image

Coeus
Posts: 1378
Joined: Mon Jul 25, 2016 11:05 am
Contact:

Re: MMFS Version 2

Post by Coeus » Thu Aug 01, 2019 2:51 pm

DutchAcorn wrote:
Thu Aug 01, 2019 8:42 am
Combining this with Ultra DFS would make it even more extremely useful. 8)
As long as that doesn't remove the ability to use the Turbo hardware.

BTW, that thread mentions the disappearance of SRAM utilities. I don't know if the official Acorn utils will fit but I was able to get sideways RAM utilities into the spare space in the Exmon II ROM using the usual trick of daisy chaining the service calls.

mm67
Posts: 55
Joined: Tue Feb 28, 2006 4:44 pm
Location: England
Contact:

Re: MMFS Version 2

Post by mm67 » Mon Sep 23, 2019 3:15 pm

Finished this a month ago and have been meaning to do some checks to make sure it compiles exactly the same as Dave's (hoglet) version before posting (that is when the switch _MM32_ = FALSE).

This I have finally done - plus I've updated it to version 1.44.

Here it is:

Builds:
MMFS2_Build_20190923.zip
(559.5 KiB) Downloaded 9 times
Source:
MMFS2_Source_20190923.zip
(50.26 KiB) Downloaded 8 times
Notes (some quick ones):
MMFS2_Notes.txt
(2.65 KiB) Downloaded 24 times
New version of mmbeeb.dll (for BeebEm) which deals with images > 2GB:
mmbeebXL.zip
(22.06 KiB) Downloaded 6 times
(I will post the source when I find it.)

Not done much testing, but Elite seems to run ok.
mm67

User avatar
KenLowe
Posts: 695
Joined: Mon Oct 18, 2004 4:35 pm
Location: Scotland
Contact:

Re: MMFS Version 2

Post by KenLowe » Mon Sep 23, 2019 3:26 pm

Nice one =D> =D> =D>.

Will be testing this out tonight.

User avatar
KenLowe
Posts: 695
Joined: Mon Oct 18, 2004 4:35 pm
Location: Scotland
Contact:

Re: MMFS Version 2

Post by KenLowe » Mon Sep 23, 2019 5:04 pm

Just done a quick test with User Port version of SWMMFS installed into RAM bank 4. When trying to load Elite, I get a 'Not Allowed' error when I try to LOAD"MENU". Using the standard MMFS version works fine.

Edit: I like the way that *DIN file.dsd loads to both drives 0/2 and DIN 1 file.dsd loads to both drives 1/3. So *DBOOT lancelot.dsd starts up and runs perfectly without having to worry about loading two single sided .ssd files.
Last edited by KenLowe on Mon Sep 23, 2019 5:27 pm, edited 1 time in total.

Ramtop
Posts: 135
Joined: Tue Oct 23, 2018 12:40 pm
Contact:

Re: MMFS Version 2

Post by Ramtop » Mon Sep 23, 2019 9:45 pm

No time to really test today, but trying to load Jet Set Willy and Elite on my Electron with an ElkSD64 I also get the 'not allowed' error using the ESWMMFS. The 'Haven' menu program crashes on both the SW and non-SW versions.

Have to say, though, I really like dealing with individual disk images. It's a lot less cumbersome than having to use the beeb.mmb file. =D>
Gary

mm67
Posts: 55
Joined: Tue Feb 28, 2006 4:44 pm
Location: England
Contact:

Re: MMFS Version 2

Post by mm67 » Tue Sep 24, 2019 11:07 am

I think I was trying to be too clever by getting it to check if the load address was >=&10000.

Of course host addresses should be &FFFFxxxx so always producing the error.

Difficult to check on beebem, so although I've fixed it I haven't tested it (SW ram versions only attached):
buildz.zip
(194.16 KiB) Downloaded 6 times

Don't know what the Haven menu is.

Also, in the notes I put BOOT.SSD, this should be BOOT.DSD.
Last edited by mm67 on Tue Sep 24, 2019 11:10 am, edited 2 times in total.
mm67

User avatar
KenLowe
Posts: 695
Joined: Mon Oct 18, 2004 4:35 pm
Location: Scotland
Contact:

Re: MMFS Version 2

Post by KenLowe » Tue Sep 24, 2019 11:51 am

Thank you. I'll re-test again this evening and report back.

User avatar
KenLowe
Posts: 695
Joined: Mon Oct 18, 2004 4:35 pm
Location: Scotland
Contact:

Re: MMFS Version 2

Post by KenLowe » Tue Sep 24, 2019 5:55 pm

mm67 wrote:
Tue Sep 24, 2019 11:07 am
I think I was trying to be too clever by getting it to check if the load address was >=&10000.

Of course host addresses should be &FFFFxxxx so always producing the error.

Difficult to check on beebem, so although I've fixed it I haven't tested it (SW ram versions only attached)
Just done a quick test with Elite, and that's working now. Will test more thoroughly later.

Post Reply