MMFS Development and Support

for bbc micro/electron hardware, peripherals & programming issues (NOT emulators!)
Wheel_nut
Posts: 53
Joined: Wed May 01, 2019 12:46 pm
Contact:

Re: MMFS Development and Support

Post by Wheel_nut » Sat Aug 10, 2019 12:18 pm

Coeus wrote:
Thu Aug 08, 2019 9:54 pm

There are two, maybe three, trivial changes that could be made to pass the initial checks which would then mean this program would at least try to work with MMFS as the card filing system:
  • Have MMFS use filing system number 4 if it doesn't already.
  • Finish the MMFS ROM with the signature "B8 3A 7E 3F" at BFFC to BFFF
  • Accept *CARD as a means of selecting MMFS.
That means the only area of doubt is whether the save/restore of the NMI area and the filing system zero page area at A0 would upset MMFS. At a guess this is intended to save/restore which image within the BEEB.MMB file is the current virtual disc as well as which drive is selected with the card filing system.
As Dave said earlier, there is a trade-off to changing the *DISK and *DISC commands because some of the games on the STH compendium use these commands. *DISK and *DISC would need to be re-directed to *MMFS rather than just dummied out.

Here are some of the behaviours that I noticed when trying to find a solution to the conundrum:
1) The obvious solution seemed to be to put the DFS in a higher order slot than the MMFS to let DFS intercept any calls to *DISK. However, this created the immediate problem that the system boots (and Breaks) to DFS rather than boot the MMFS Menu.

2) Because I want to use the file copying flexibility afforded by the COP114 Utility, I can't use the out-of-the-box MMFS (T/MMFS, T/SWMMFS or T/ZMMFS) and have only had success with Steve Picton's variants C.MMFS, C.SWMMFS. These work for me but with the only constraint that I cannot use them in Sideways RAM to keep Page at 0E00. I also accept Dave's concern that these variants "may" cause problems with some STH games. It would be nice for me if Steve released a Bootloader version of the C.Variants (pretty please 8) )

3) I can switch to DFS using *DFS and back to MMFS using *MMFS. This seems to work reliably and BREAK goes back to the Default MMFS.

4) I have found that the Graphics Extension ROM interferes with the operation of my DFS and MMFS installation.

5) ADT2.00 and HELP1.2C seem to co-exist with all of the above implementations though I put ADT in a low order socket.

I realise that my need for flexible manipulation of files between Floppy Disk and SD Card may not be a high priority requirement for everybody, I hope that this helps to save your time if you are experimenting with your Beeb.

Thanks to Coeus and Dave and Steve Picton(off-line) for indulging me with their time. ... Robin

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

Re: MMFS Development and Support

Post by Coeus » Sat Aug 10, 2019 1:53 pm

Wheel_nut wrote:
Sat Aug 10, 2019 12:18 pm
As Dave said earlier, there is a trade-off to changing the *DISK and *DISC commands because some of the games on the STH compendium use these commands. *DISK and *DISC would need to be re-directed to *MMFS rather than just dummied out.
There is a limit to what can be achieved by re-ordering the ROMs.

If the MMFS ROM is in the higher numbered and thus higher priority slot then games that have hard-code *DISC or *DISK in their loaders will probably run correctly from MMFS without trying to access the real floppy drives but the copying program COP114 won't work properly.

If the DFS is in the higher numbered and thus higher priority slot then COP114 can probably be made to work correctly by making the changes I outlined above which are, quite possibly, the change Steve made himself to his adapted MMFS versions. Any game, though, that issues *DISC will then select the real DFS and thus try to load its next file from floppy disc rather than MMFS.

Obviously one solution that could be applied if was only a person that would want to select DFS specifically would be patch one of the commands the DFS DFS ROM responds to to select itself and a filing system to something else (like *DFS). That would enable DFS to be in the lower priority slot and still selectable but obviously that isn't the command COP114 is expecting to issue. If you patched COP114 too, that arrangement would probably work.

The other way would be to provide an option on MMFS to control whether it responds to *DISC and *DISK. This option could be turned on for running games and turned off for running COP114. Again, unless patching COP114 it would be necessary to have MMFS self-select on *CARD too.

There is an issue logged for MMFS on this very thing: https://github.com/hoglet67/MMFS/issues/7
Last edited by Coeus on Sat Aug 10, 2019 1:56 pm, edited 1 time in total.

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

Re: MMFS Development and Support

Post by hoglet » Sat Aug 10, 2019 3:05 pm

Another solution would be to use a ROM Manager to disable DFS or MMFS when not required.

This is typically what I do in my own Model Bs.

Dave

Wheel_nut
Posts: 53
Joined: Wed May 01, 2019 12:46 pm
Contact:

Re: MMFS Development and Support

Post by Wheel_nut » Sat Aug 10, 2019 3:36 pm

hoglet wrote:
Sat Aug 10, 2019 3:05 pm
Another solution would be to use a ROM Manager to disable DFS or MMFS when not required.

This is typically what I do in my own Model Bs.

Dave
I went back to Steve Picton's documentation on the CD that came with his TurboSPI adapter and the attached document now makes a lot of sense to me. I had read it before but didn't appreciate the intricacies of the problems and solutions.

Now, if only I could coax Steve into releasing a C.SWMMFSBL , I could blow my EPROMS and go to bed! :idea: [-o<
Attachments
MMFS+SWMMFS+MAMMFS.pdf
(243.96 KiB) Downloaded 3 times

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

Re: MMFS Development and Support

Post by Coeus » Sat Aug 10, 2019 4:58 pm

Coeus wrote:
Sat Aug 10, 2019 1:53 pm
There is an issue logged for MMFS on this very thing: https://github.com/hoglet67/MMFS/issues/7
And see my recent update to this issue - I think this feature is now available.

Wheel_nut
Posts: 53
Joined: Wed May 01, 2019 12:46 pm
Contact:

Re: MMFS Development and Support

Post by Wheel_nut » Sat Aug 10, 2019 5:52 pm

Coeus wrote:
Sat Aug 10, 2019 4:58 pm
Coeus wrote:
Sat Aug 10, 2019 1:53 pm
There is an issue logged for MMFS on this very thing: https://github.com/hoglet67/MMFS/issues/7
And see my recent update to this issue - I think this feature is now available.
YAY! I would love to see that implemented and a MMFS and Z/MMFS versions released. I have to admit that I cannot contribute to the design or implementation discussion as it is way above my level of competence. :cry:

I am happy to test any releases for any of you. ... Robin

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

Re: MMFS Development and Support

Post by hoglet » Sat Aug 10, 2019 5:58 pm

Wheel_nut wrote:
Sat Aug 10, 2019 5:52 pm
YAY! I would love to see that implemented and a MMFS and Z/MMFS versions released. I have to admit that I cannot contribute to the design or implementation discussion as it is way above my level of competence. :cry:
It's already there in the verion you have (1.41), albeit untested.

Wheel_nut
Posts: 53
Joined: Wed May 01, 2019 12:46 pm
Contact:

Re: MMFS Development and Support

Post by Wheel_nut » Sat Aug 10, 2019 7:31 pm

hoglet wrote:
Sat Aug 10, 2019 5:58 pm
Wheel_nut wrote:
Sat Aug 10, 2019 5:52 pm
YAY! I would love to see that implemented and a MMFS and Z/MMFS versions released. I have to admit that I cannot contribute to the design or implementation discussion as it is way above my level of competence. :cry:
It's already there in the verion you have (1.41), albeit untested.
Please explain ... Which Version (Filename) has the *DISK and *DISC dummied out and is Bootloadable into Sideways RAM? I am happy to test it. Remember that I have Turbo Hardware. - Robin
Last edited by Wheel_nut on Sat Aug 10, 2019 7:36 pm, edited 2 times in total.

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

Re: MMFS Development and Support

Post by Coeus » Sat Aug 10, 2019 8:11 pm

Wheel_nut wrote:
Sat Aug 10, 2019 7:31 pm
Please explain ... Which Version (Filename) has the *DISK and *DISC dummied out and is Bootloadable into Sideways RAM? I am happy to test it. Remember that I have Turbo Hardware. - Robin
None of them have had the *DISC or *DISK commands patched out, instead there is an option to tell MMFS to ignore the *DISC and *DISK commands and only respond to *MMFS. To use it, you need to have MMFS as the current filing system first so if it doesn't start as the default filing system then do:

Code: Select all

*MMFS
after that:

Code: Select all

*OPT 5,1
that tells MMFS not to respond to *DISC and *DISK so these are passed on to the real DFS. This option is present in all the builds of MMFS so you need to pick the T version for the Turbo hardware.
Last edited by Coeus on Sat Aug 10, 2019 8:12 pm, edited 1 time in total.

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

Re: MMFS Development and Support

Post by Coeus » Sat Aug 10, 2019 8:17 pm

Wheel_nut wrote:
Sat Aug 10, 2019 7:31 pm
...and is Bootloadable into Sideways RAM?
So I forgot to respond to this bit in my previous message. I have an idea of why Steve doesn't supply patched, sideways RAM versions of MMFS to work with the disc copier. The sideways RAM-specific versions of MMFS use the end of their own sideways RAM bank as workspace so as to free up low memory for games/other programs, i.e. keep page at &0E00. The copier, COP114 checks for a signature or "magic number" at the very end of the ROM that implements the current filing system when it is invoked (i.e. probably MMFS). With the sideways ROM versions of MMFS that would be workspace so one can't rely on it having that magic number even if MMFS were to copy it there at the start.

You can, of course, load the non-sideways-RAM version into sideways RAM for testing. That won't give you page at 0E00 but it should be good enough for testing.

Wheel_nut
Posts: 53
Joined: Wed May 01, 2019 12:46 pm
Contact:

Re: MMFS Development and Support

Post by Wheel_nut » Mon Aug 12, 2019 7:16 pm

Coeus and Dave,

I have tried T/MMFS, T/SWMMFS and T/ZMMFS with *OPT 5,1 and all of them give me the "MMC not active" error when I tru to use the MTOD function in COP114. In these tests, the Sideways heirarchy is MMFS, Basic2, DFS and ADT200. I should report that I can however, switch to the Floppy Drive using *DISK and back to the SD Card using *MMFS.
Coeus wrote:
Sat Aug 10, 2019 8:17 pm
Wheel_nut wrote:
Sat Aug 10, 2019 7:31 pm
...and is Bootloadable into Sideways RAM?
So I forgot to respond to this bit in my previous message. I have an idea of why Steve doesn't supply patched, sideways RAM versions of MMFS to work with the disc copier. The sideways RAM-specific versions of MMFS use the end of their own sideways RAM bank as workspace so as to free up low memory for games/other programs, i.e. keep page at &0E00. The copier, COP114 checks for a signature or "magic number" at the very end of the ROM that implements the current filing system when it is invoked (i.e. probably MMFS). With the sideways ROM versions of MMFS that would be workspace so one can't rely on it having that magic number even if MMFS were to copy it there at the start.

You can, of course, load the non-sideways-RAM version into sideways RAM for testing. That won't give you page at 0E00 but it should be good enough for testing.
Late last night, Steve Picton sent me a "Test" version of his C.SWMMFSBL (Bootloader) ROM. I have to patch the first Byte of the ROM to the address of the Sidewats RAM into which it is to be Bootloaded and then blow it into a Bank Higher than that Bank. I am using Bank B (11) for Sideways Ram so I have put the Bootloader ROM in Bank D (13).

I haven't done any rigorous testing but COP114 works when loaded in SWR Bank F(15). I can switch to the Floppy Drive using *DISK and back to the SD Card using *CARD. Shift-Break Loads the STH Menu and after a Break out of a game, I can Shift-Break back to the STH Menu. So far so good...

I realise that I may have problems loading games which require *Disk to return to the SD Card to load Data or Pages mid game. If you can give me an example of such a game, I will test it.

EDIT: Tuesday 13 August 2019: I have done some more intensive testing with the above configuration and can report that I have NOT been able to fault the operation of COP114 with Steve's C.SWMMBL Bootloader. The *MTOD and *DTOM work flawlessly as do the *FCAT and other Floppy Disc functions.

I have encountered the problem with some of the games not loading, typically the compendiums which present an initial screen with a choice of game; then loading the game seected. These do try to load the subsequent selection from the Floppy Drive. However, I have found a very simple work-around:

When playing games, instead of loading COP114 into Sideways RAM Bank F, I load the Vanilla T/MMFS into Bank F(15). Being higher than Steve's Bootloader in Bank D(13) and the Bootloaded SWMMFS in Bank B(11), a Ctrl-BreaK followed by a Shift Break boots the STH Menu using the Vanilla T/MMFS and then all of the games that I have tested load just fine.

I would call that a SUCCESS =D> =D>

Thanks to Steve Picton, Dave and Coeus for your help in solving this conundrum. :D =D> :D
Last edited by Wheel_nut on Tue Aug 13, 2019 5:06 pm, edited 2 times in total.

User avatar
vanekp
Posts: 642
Joined: Thu Nov 30, 2000 7:09 am
Location: The Netherlands
Contact:

Re: MMFS Development and Support

Post by vanekp » Wed Aug 14, 2019 9:45 am

I am having a problem building the ROM's from github I am trying this under linuxmint in a terminal, I run it with ./build.sh it then starts running :-

Code: Select all

desktop:~/MMFS-master$ ./build.sh
Building MMFS 1.41
Blank build/U/mmfs.ssd created
build/U/mmfs.ssd updated

Building U/EMMFS...
./build.sh: line 58: tools/beebasm/beebasm: No such file or directory
build failed to create U/EMMFS
it creates a build folder with a folder U in it with EMMFS.log and mmfs.ssd in the folder, the log file contains the error message above about beebasm.
ok so i see it's looking for BEEBASM and not beebasm as its called, if i rename it or change the script to the same case i get :-
build.sh: line 58 -i: command not found
build failed to create U/EMMFS

What am I doing wrong? I am not a linux user maybe there is something I don't understand :)
Peter.

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

Re: MMFS Development and Support

Post by hoglet » Wed Aug 14, 2019 10:11 am

vanekp wrote:
Wed Aug 14, 2019 9:45 am
it creates a build folder with a folder U in it with EMMFS.log and mmfs.ssd in the folder, the log file contains the error message above about beebasm.
ok so i see it's looking for BEEBASM and not beebasm as its called, if i rename it or change the script to the same case i get :-
build.sh: line 58 -i: command not found
build failed to create U/EMMFS

What am I doing wrong? I am not a linux user maybe there is something I don't understand :)

Code: Select all

       # Assember the ROM
        $BEEBASM -i ${top} -o ${build}/${name} -v >& ${build}/${name}.log
It's not looking for BEEBASM, it's looking for $BEEBASM which is an environment variable set earlier in the script (to tools/beebasm/beebasm)

Can you try running the following commands:

Code: Select all

echo $PATH
ls -l tools/beebasm
tools/beebasm/beebasm --help
./tools/beebasm/beebasm --help
Dave

User avatar
vanekp
Posts: 642
Joined: Thu Nov 30, 2000 7:09 am
Location: The Netherlands
Contact:

Re: MMFS Development and Support

Post by vanekp » Wed Aug 14, 2019 10:38 am

ahhh okay I was wondering about that as I said I am not a linux user :lol:
okay echo $path shows no path and I also don't see where its setting that in the build.sh script
Peter.

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

Re: MMFS Development and Support

Post by hoglet » Wed Aug 14, 2019 10:43 am

vanekp wrote:
Wed Aug 14, 2019 10:38 am
okay echo $path shows no path and I also don't see where its setting that in the build.sh script
Linux is case sensitive, so echo $path is different to echo $PATH

Please make sure you try the commands exactly as I posted, and post the log. You can even just cut/paste them into a terminal if you like.

User avatar
vanekp
Posts: 642
Joined: Thu Nov 30, 2000 7:09 am
Location: The Netherlands
Contact:

Re: MMFS Development and Support

Post by vanekp » Wed Aug 14, 2019 10:57 am

lol yes I keep forgetting that, okay here is the text from all the commands :-

Code: Select all

qwerty@qwerty-desktop:~/MMFS-master$ ./build.sh
Building MMFS 1.41
Blank build/U/mmfs.ssd created
build/U/mmfs.ssd updated

Building U/EMMFS...
./build.sh: line 58: tools/beebasm/beebasm: No such file or directory
build failed to create U/EMMFS
qwerty@qwerty-desktop:~/MMFS-master$ ./build.sh
Building MMFS 1.41
Blank build/U/mmfs.ssd created
build/U/mmfs.ssd updated

Building U/EMMFS...
./build.sh: line 58: tools/beebasm/beebasm: No such file or directory
build failed to create U/EMMFS

qwerty@qwerty-desktop:~/MMFS-master$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

qwerty@qwerty-desktop:~/MMFS-master$ ls -l tools/beebasm
total 1380
-rwxr-xr-x 1 qwerty qwerty 215012 Aug 11 12:02 beebasm
-rwxr-xr-x 1 qwerty qwerty 284852 Aug 11 12:02 beebasm-darwin
-rw-rw-r-- 1 qwerty qwerty 884736 Aug 11 12:02 beebasm.exe
-rw-rw-r-- 1 qwerty qwerty  22904 Aug 11 12:02 README.txt
qwerty@qwerty-desktop:~/MMFS-master$ tools/beebasm/beebasm --help
bash: tools/beebasm/beebasm: No such file or directory
qwerty@qwerty-desktop:~/MMFS-master$ ./tools/beebasm/beebasm --help
bash: ./tools/beebasm/beebasm: No such file or directory
qwerty@qwerty-desktop:~/MMFS-master$ 
mmm it's not seeing beebasm as a program on linux mint odd, even thou it has execute permission.
Last edited by vanekp on Wed Aug 14, 2019 11:06 am, edited 1 time in total.
Peter.

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

Re: MMFS Development and Support

Post by hoglet » Wed Aug 14, 2019 11:14 am

It's possibly a shared library issue.

Can you run the following, and post the response.

Code: Select all

ldd tools/beebasm/beebasm
Dave

User avatar
vanekp
Posts: 642
Joined: Thu Nov 30, 2000 7:09 am
Location: The Netherlands
Contact:

Re: MMFS Development and Support

Post by vanekp » Wed Aug 14, 2019 11:22 am

says :- "not a dynamic executable"
Peter.

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

Re: MMFS Development and Support

Post by hoglet » Wed Aug 14, 2019 11:25 am

vanekp wrote:
Wed Aug 14, 2019 11:22 am
says :- "not a dynamic executable"
OK, lets just check it's not corrupt. Two more commands:

Code: Select all

md5sum tools/beebasm/beebasm
file tools/beebasm/beebasm
(and make sure you do this on beebasm, not beebasm.exe)

Edit:I think I know what this is....but do those commands anyway

Dave
Last edited by hoglet on Wed Aug 14, 2019 11:28 am, edited 3 times in total.

User avatar
vanekp
Posts: 642
Joined: Thu Nov 30, 2000 7:09 am
Location: The Netherlands
Contact:

Re: MMFS Development and Support

Post by vanekp » Wed Aug 14, 2019 11:43 am

was just looking on internet and its because your tying to run a 32 bit app on a 64bit OS so had to install 32-bit libraries using "sudo apt-get install ia32-libs-multiarch"

here are the results of the other commands : -
desktop:~/MMFS-master$ md5sum tools/beebasm/beebasm
abc12ad3c20ac171b1da117c6e8b0dd7 tools/beebasm/beebasm
desktop:~/MMFS-master$ file tools/beebasm/beebasm
tools/beebasm/beebasm: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-, for GNU/Linux 2.6.24, BuildID[sha1]=5659188f66a03d89c8446dddd581ae8d83b8c8f2, stripped

and now it works thank you for pointing me in the right direction :D
Peter.

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

Re: MMFS Development and Support

Post by hoglet » Wed Aug 14, 2019 11:48 am

Yes, that's what I thought. The precompiled version of beebasm was 32-bit.

I've just added both 32 and 64 bit versions of beebasm into github:
tools/beebasm/beebasm32
tools/beebasm/beebasm64

And also some checks in build.sh to select the appropriate version.

Hopefully no-one else will now trip over this.

Dave
Last edited by hoglet on Wed Aug 14, 2019 11:49 am, edited 1 time in total.

User avatar
vanekp
Posts: 642
Joined: Thu Nov 30, 2000 7:09 am
Location: The Netherlands
Contact:

Re: MMFS Development and Support

Post by vanekp » Wed Aug 14, 2019 11:53 am

indeed and because i am not expert on linux I was not sure where I was going wrong :)
but with a bit of help worked it out thanks again :wink:
Peter.

Post Reply