FATFS is a Windows program to read and extract files from RAW FAT12 or FAT16 DISK IMAGES

FATFS will open a disk image and read the Boot Sector, to determine what format the disk is in. You can Display, Dump or display Directory information about Files and Directories. 

FATFS uses Long file names, if they exist on the disk. FAT12 or FAT16 are chosen based on the number of clusters. 

To facilitate reading and extracting files from Hard Disk Raw Images, you can specify a Partition Offset. 

The Partition Ofsset MUST be set prior to openning a disk image. (defaults to 0 - perfect for a floppy)

The Partition Offset MUST point to the Boot Sector of the filesystem.

NOT to the Disk's Master Boot Record
NOT to an Extended Partition's Boot Record
NOT to a Logical Disk's Master Boot Record.

Each Primary Partition has ONE filesystem.
Each Extended Partition has one or more Logical disks, in a linked chain, using offsets to the next.
Each Logical Disk cantains a Master boot record and ONE Partition containing ONE filesystem. 

Logical disks are contained in an Extended Partition. The Extended Partion's Boot record points to the Master boot record of the first logical disk. The logical disk's MBR has two pointers, one points to the next logical disk's MBR and the other points to the Logical disk's partition's File system's Boot sector.

FATFS's Partition Offset MUST point to the Boot Sector of the filesystem.

WARNING - FATFS can not handle errors in an image's meta data - usually crashes - use a disk editor to fix a disk image before using FATFS.

RAW images are files with the Sector Data from a real floppy disk or a real Hard Disk.

Raw IMage files should NOT use compression or special means to reduce the size or have errors.

RAW images can be made in several ways.

HD-COPY by Oliver Fromme can make Raw images. Uncompressed images are made by turning FAT selection OFF. 

RawWrite and RawWrite for Windows by John Newbigen can make Raw images.

The linux GNU program DD can make Raw images(including Hard Disks). dd if=\dev\fd0,of=file.img,bs=512

The LOOPBACK feature of linux can be used to mount and then read and/or write a floppy disk or Hard disk image file. 

FATFS can also diplay the raw Boot Sector, the raw FAT and raw ROOT Directory.

FATFS can display All the directory information for not-deleted files in a particular directory.

FATFS can Save the display or the actual File contents. 

It is possible to save an entire directory to a Host system directory.

( NOTE - i did not feel like figuring out how to recursively save the entire disk)

You MUST save ONE directory at a time. When saving a directory, you should choose the base directory in the host system. 

For Example, if you want to save the IMAGE directory \dir\rect\ and it is on a disk image named DISK.IMG, then selecting the HOST directory L:\test\images\ will cause the files in a selected directory such as  \dir\rect to be saved in the host directory L:\test\images\DISK\dir\rect\

To save more files in directory \dir\tory\ from the same DISK, again select the host directory L:\test\images\ ... this will cause the files in \dir\tory\ to be saved in L:\test\images\DISK\dir\tory\

Whatever the BASE (L:\test\images\) directory is, is where DISK\dir\... will be saved. 

( It works kind-a-like WGET..but does not traverse into subdirectories)

Clicking on any filename(or directory name) causes the current file/directories to be read , converted and placed into a Rich Text Box control used for display. This can take a while, so there's a STOP button if it is wasting your time.

Double clicking on a directory, will change the list boxes to display that directory.

The display area can display a file's Directory infomation or the file contents as plain data, (ascii) or the file as hexadecimal.

The Save Display menu option will save whatever is currently displayed in the RTF box display area.  However, control characters will have been converted to user readable codes. Like...<EOT> 

You can save a file via the menu, Save File.  All file contents will be saved as-is.

