RedSea File System

The RedSea file system is a simple, 64-bit, file system which is similar to 
FAT32, but with absolute block addresses instead of clus, fixed-sized 64-byte 
directory entries and no FAT table, just an allocation bitmap.  A clus is just 
one 512 byte sector.  Files are stored in contiguous blocks and cannot grow in 
size.

#define CDIR_FILENAME_LEN       38 //Must include terminator zero

The following bit field shows valid 8-Bit ASCII filename characters.

U32 char_bmp_filename[8]=
{0x0000000, 0x03FF73FB, 0xEFFFFFFF, 0x2FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 
0xFFFFFFFF, 0xFFFFFFFF};

public class CDirEntry //64-byte fixed-size
{
  U16 attr;     //See RS_ATTR_DIR.  I would like to change these.
  U8 name[CDIR_FILENAME_LEN]; //See char_bmp_filename, FileNameChk
  I64 clus; (blk) //One sector per clus.
  I64 size;     //In bytes
  CDate datetime; //See  DateTime, Implementation of DateTime
};

public class CRedSeaBoot //RedSea is type FAT32 in partition table to fool BIOS.
{
  U8 jump_and_nop[3];
  U8 signature,reserved[4]; //MBR_PT_REDSEA=0x88. Distinguish from real FAT32.
  I64 drv_offset;       //For CD/DVD image copy.
  I64 sects;
  I64 root_clus; (root_blk)
  I64 bitmap_sects;
  I64 unique_id;
  U8 code[462];
  U16 signature2;       //0xAA55
};

See ::/Kernel/BlkDev/FileSysRedSea.HC and ::/Adam/Opt/Boot/DskISORedSea.HC.

Files with names ending in .Z are compressed.  See ::/Kernel/Compress.HC.

To replace ISO9660, make hard-drive partition image of a measured size and copy 
onto a CD/DVD starting at about sector 20, with EL TORITO booting.  512-byte 
sectors will be placed on top of 2048-byte CD/DCD sectors, so there will be four 
blocks per CD/DVD sector.

RedSea file system has no bad block table and no redundant allocation table.

See Block Chain for RedSea allocation bitmap discussion.

See Reliability for RedSea reliability discussion.