I'm kind of interested in the file system implementation. In Vera, will there only be a filesystem in flash memory, and all ram will considered volatile? Or will there also be a ram filesystem?
I found this website, where someone describes a simple filesystem he/she wrote for a small computer (z80, in fact!) I could write a filesystem based on his/her specs, with modifications agreed upon by the Vera team.
http://www.retroleum.co.uk/z80-filesystem.html
One important thing I'm worried about, though, is if the filesystem is intended for flash memory. The smallest sector is 64kb, which will have to be erased and rewritten for all file saves. Therefore, we'll want to implement some form of wear-leveling. TI-OS had its garbage collection, but that was pretty lame. I think we can come up with something better. Perhaps, every time a file is written, the sector its in is copied (with changes) to a new sector (not a swap sector, but a legit sector) and the old sector is marked as dirty, waiting to be erased and used later. The sectors could be kept in a sorted list, so that they aren't re-used too often, and if a sector is ever found to be faulty, it could be taken off the list, so that the whole calculator isn't useless!
I'm afraid I'm in the middle of a cappella hellweek, and as a result I can't let myself spend my free time on much else besides studies for university classes. But once things settle down, I'd love to get more involved in this project!
Update: I'm a dum-dum! Functioning on very little sleep, so sorry about a mistake I made about how to do wear-leveling. It's not as bad as I thought at first. We can have a bit that marks a file valid or invalid, and when the file has to be re-saved with changes, we mark the original invalid, and write the new valid one below the files on whatever sector it fits in, and update pointers. Sector cycling only needs to happen when we run out of space on all the sectors and want to get rid of the invalid entries. Wait...darn, that's garbage collection. I'm confused....gonna have to think about this one some more. Figure out what we want to do to keep speed up and wear down....Sleep would help, that's for sure. Gonna have to wait a bit for that though.....
Update Two: Hmm, I took another look at the filesystem driver page on the wiki. There are no specs for directories! Are we really going to make a filesystem a la TIOS, without directories? They're so useful! You know, I think you'd better give me an account or add me to the mailing list, however I can communicate with team members. There are some things I want to talk about with the team!