Smaky FOS on GNU/Linux & Window$
Fosfat: library and FUSE extension

Fosblup copyright Mathieu Schroeter,
      2007
This image is licensed under a
Creative Commons License
Contents

top Introduction

Fosfat is a library written in C for accessing in read-only to an Smaky formatted disk (compatible hard disk and floppy disk). A tool and a FUSE extension are available for reading a Smaky FOS disk. For Window$, some features are not supported, like the images conversions and the FUSE extension.

It is a free software - it is licensed under the terms of the GNU General Public License (GNU/GPL) version 3.

Fosfat is copyright (C) 2006-2010 Mathieu Schroeter.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.

top Requirements

The following programs are required to build fosfat for GNU/Linux:

top Building and Installation for GNU/Linux

Compile libfosfat, libfosgra, fosread, fosrec, fosmount and smascii by running:

./configure
make

This should produce four executables fosread, fosrec and smascii (in ./tools/), fosmount (in ./fosmount/) and two libraries libfosfat.a/.so (in ./libfosfat/) and libfosgra.a/.so (in ./libfosgra/). No extra files need to be installed. You can change some options for configure, look ./configure --help for more informations.

If you want to install Fosfat on your system, run :

make install

The binaries are copied into their appropriate directories (/usr/local/bin and /usr/local/lib), and the header into /usr/local/include in this example. Change the --prefix for an other target directory.

top Building for Window$ 9x/NT

Compile libfosfat, fosread, fosrec and smascii by running:

./configure --cross-compile --cross-prefix=i586-mingw32msvc-
make

This should produce three executables fosread, fosrec and smascii (in ./tools/), and three libraries libfosfat-0.dll (in ./libfosfat/), libw32disk-0.dll (in ./libw32disk/) and libfosgra-0.dll (in ./libfosgra/). No extra files need to be installed. You can change some options for configure, look in the ./configure --help script for more informations.

top Usage

You can found a doxygen documentation of the library here.

Fosmount (only GNU/Linux)

The fosmount tool uses FUSE to mount the FOS in your tree.

Usage: fosmount [options] device mountpoint

-h --help             this help
-v --version          version
-a --harddisk         force an hard disk (default autodetect)
-f --floppydisk       force a floppy disk (default autodetect)
-l --fos-logger       that will turn on the FOS logger
-d --fuse-debugger    that will turn on the FUSE debugger
-i --image-pbm        convert on the fly .IMAGE to .PBM
-j --image-xpm        convert on the fly .COLOR to .XPM (ver. 2)

device                /dev/fd0 : floppy disk
                      /dev/sda : hard disk, etc
mountpoint            for example, /mnt/smaky

Example:

Fosread (GNU/Linux & Window$)

The fosread tool can be used only from the console. It can be used with two modes. One to list all files in a directory, and the second to copy a file in a local directory.

Usage: fosread [options] device mode [node] [path]

-h --help             this help
-v --version          version
-a --harddisk         force an hard disk (default autodetect)
-f --floppydisk       force a floppy disk (default autodetect)
-l --fos-logger       that will turn on the FOS logger
-u --undelete         enable the undelete mode, even deleted files will
                      be listed and sometimes restorable with 'get' mode.

device                /dev/fd0 : floppy disk
                      /dev/sda : hard disk, etc
mode
  list                list the content of a node
  get                 copy a file from the Smaky's disk in a local directory
node                  the tree with the file (or folder) for 'get' or 'list'
                      example: foo/bar/toto.text
path                  you can specify a path for save the file (with get mode)

Examples GNU/Linux:

Examples Window$:

Fosrec (GNU/Linux & Window$)

The fosrec tool can be used only from the console. This tool can retrieve the deleted files.

Usage: fosrec [options] device destination

-h --help             this help
-v --version          version
-a --harddisk         force an hard disk (default autodetect)
-f --floppydisk       force a floppy disk (default autodetect)
-l --fos-logger       that will turn on the FOS logger

Examples GNU/Linux:

Examples Window$:

Smascii

The smascii tool can be used to convert Smaky text file to Extended ASCII (ISO-8859-1).

Usage: smascii smaky_file converted_file [--unix]

smaky_file            the smaky text file
converted_file        the file converted
--unix                the Carriage Return (Old Mac) will be
                      converted to Line Feed (unix)

Example:

top Download

The last release (0.4.0), is available to http://download.gna.org/fosfat/

But use the trunk is better as long as no stable version is available.

Development Tree

The latest fosfat development tree can be grabbed using Subversion, a revision control system, similar in purpose to tools such as CVS, SCCS, and Arch. It is used to keep track of the changes made to a source tree and to help programmers combine and otherwise manipulate changes made by multiple people or at different times.

There are currently 2 ways of accessing the Subversion tree :
via command-line or (to just have a look to some changes on a specific file, for example) : web-svn

In order to access to Subversion via command line, create and enter a new directory and do the following (be sure that you have installed the SVN package) :

* svn co http://svn.gna.org/svn/fosfat/trunk fosfat - To fetch all the files from the directory trunk.
* svn update - To update your local copy of the Subversion, synchronizing with the server.

top Mailing list

You can subscribing to Fosfat-commits list here.

top Feedback

The author of fosfat and this document, Mathieu Schroeter, can be contacted by e-mail.

Please send bug reports, suggestions, ideas, comments or patches to : fosfat-devel@gamesover.ch

top Thanks

Many thanks to Pierre Arnaud for his help and the FOS's documentation
and to Gna! for the hosting!