>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