$WW,1$$FG,5$$TX+CX,"RedSea File System"$$FG$ The RedSea file system is a simple, 64-bit, file system which is similar to FAT32, but with absolute block addresses instead of clusters, fixed-sized 64-byte directory entries and no FAT table, just an allocation bitmap. A cluster is just one 512 byte sector. Files are stored in contiguous blocks and cannot grow in size. $HL,1$#define CDIR_FILENAME_LEN 38 //Must include terminator zero The following bit field shows valid 8-Bit ASCII filename characters. U32 chars_bmp_filename[8]= {0x0000000, 0x03FF73FB, 0xEFFFFFFF, 0x2FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF}; public class CDirEntry //64-byte fixed-size { U16 attr; //See $LK,"RS_ATTR_DIR",A="MN:RS_ATTR_DIR"$. I would like to change these. U8 name[CDIR_FILENAME_LEN]; //See $LK,"chars_bmp_filename",A="MN:chars_bmp_filename"$, $LK,"FileNameChk",A="MN:FileNameChk"$ I64 cluster; (blk) //One sector per cluster. I64 size; //In bytes CDate datetime; //See $LK,"DateTime",A="::/Doc/TimeDate.TXT"$, $LK,"Implementation of DateTime",A="FI:::/Kernel/Date.CPP"$ }; 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 base_offset; //For CD/DVD image copy. I64 sects; I64 root_cluster; (root_blk) I64 bitmap_sects; I64 unique_id; U8 code[462]; U16 signature2; //0xAA55 }; $HL,0$ See $LK,"implementation of RedSea file system",A="::/Kernel/Dsk/FileSysRedSea.CPP"$. File with names ending in .Z are stored compressed. See $LK,"implementation of LZW compression",A="::/Kernel/Compress.CPP"$. 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.