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.
RedSea File System