I mostly agree with mke_et, and I did mention "if all goes well" exactly because of the various details that must be in place for this trick to work. It certainly isn't a production solution, only a little hack to get you by for 'quick-n-dirty' prototyping, or hobby projects for which you have full control. Certainly though, not something you'd give your customers, and continue sleeping well at night.
As mke_et said, any uncontrolled operation done by third parties will most certainly mess things up. But the PC by itself will not do anything naughty to the card upon insertion (as mke_et seems to imply, if I understood correctly). And, I didn't quite follow the 'MAC' thing (we're still talking about FAT16, aren't we?). What do you mean by that and how is it relevant when we have a read-only operation on the PC at all times (except for the initialization)?
All we achieve is mark a (hopefully -- and there are ways to ensure this before using) contiguous area on the card for our dummy file(s) which we can use any way we like, we can erase the blocks, re-write the blocks, mark them any way we like, it's just data within a file as far as the PC is concerned. Just have to be careful of two things. Not let anyone re-arrange the initial layout of the card, and not use any area outside the dummy file(s).
By the way, you can actually have more than a single file but I wanted to keep the original description simpler, as there are extra considerations to work with multiple files, but a single file is good enough in most situations because you can still logically subdivide it into multiple files, anyway. And the header section can be made smarter than just include a search string (e.g., it can keep the number of total usable blocks in the file so that the device can dynamically handle different file sizes, etc.)
If you were to use the card for raw data (not with a filesystem), you'd still have to come up with some data verification and/or recovery techniques in case something goes wrong (e.g., bad blocks). You can still implement these techniques, only this time they will be within the framework of the dummy file.
Bottom line: The correct solution to have a filesystem is to implement a filesystem. A quick and dirty solution is have someone else create it for you (the PC) and use it (albeit, at your own risk).
Message Edited by tonyp on 2006-12-0612:45 PM