>I would certainly be interested in looking at this code for inclusion in 
>ArcEm.

>I have also had a go at writing a host-based filing system for ArcEm, and 
>although not yet complete I have managed to get it far enough to have a 
>problem with !SparkPlug as well.

>I have not yet implemented every call needed for a RISC OS filing system (so 
>it sounds like you have got further than I), but I have done a lot of work on 
>mapping filenames. I am sure that if the code is combined there will not be 
>much outstanding.

>Could the code be placed somewhere that is Internet accessible (Web, FTP)? 
>Then we could test it ready for inclusion in ArcEm.

>Matthew

Hi,

I have just prepared a patch and new files that should build against what is 
in cvs.

Ok, it is bundled up in 
http://giles.vickycoleman.co.uk/~daniel/arcem_stuff.tar.bz2

So to try it out, apply the patch emfs.diff, next put emfs.cpp,emfs.h into 
arcem/arch/, and then put in the floppy image as usual as FloppyImage0 or 
whatever. --- Before building, you may like to set the disc paths in 
emfs.cpp, these are the lines in emfs_init() that look like 
discMap.insert(pair<string,string>("discname","/absolute/linux/path"));
Obviously eventually this map would be read in from the config file.
Obviously also, it helps to make directories at the paths you have specified.

Then just run !EmFS on the floppy, and fingers crossed it will work.

There are several bits

- Routines added to arch/armarch.c to allow reading and writing of blocks of 
host memory to the arch's memory.
- Slight changes to the archio.c to pass all relevant IO requests to the emfs 
code.
- The emfs code itself in emfs.cpp, emfs.h

and of course the riscos modules, which are on the floppy image entitled 
EmFSFloppyImage, I packaged it up into an app just for neatness.
I haven't tidied the modules up much yet, and they will probably leak memory 
everywhere and crash if you run them more than once. (but if you load just 
once they should be fine).

I have written the main bit in C++, mainly because I wanted strings and maps 
and other convenient things, this meant I had to alter the makefile to use 
CXX for the final big link.

I haven't looked closely at how archio.c works properly, and in one bit I as a 
hack added a return statement as it was otherwise ignoring my io requests.

Regarding the !SparkPlug issue. My problem was that whatever I decompressed, 
it always extracted !Sprites as X+!Sprites, or B+!Sprites if that existed and 
so on. Magically the problem has fixed itself for me now, if this is the 
problem you encountered then I think it just goes away once you have 
implemented the fs more fully. (And bizarrely, the *only* file that it did 
this for, was one named !Sprites).

This afternoon I got case insensitivity working properly, or almost, it is 
only leaf names that are insensitive, I think it would have to be made to do 
a lot more scanning through host directories to make the full pathname 
insensitive. Maybe you have got that cracked already.

Please email me if you have any problems getting it to work.

Regards,
Daniel


-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
arcem-devel mailing list
arcem-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/arcem-devel

Reply via email to