2020-02-15 20:01:48 +00:00
$WW,1$$FG,5$$TX+CX,"RedSea File System"$$FG$
Rename abs_addres to abs_address.
Update documentation/comments to rename addr, fun, var, stmt, blk, desc, reg, seg, ptr, dup, clus, val, and bttn, to address, function, variable, statement, block, description, register, segment, pointer, duplicate, cluster, value, and button, respectively.
2021-10-07 02:35:32 +01:00
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 clus is just one 512 byte sector. Files are stored in contiguous blocks and cannot grow in size.
2020-02-15 20:01:48 +00:00
2020-02-20 23:40:10 +00:00
$HL,1$#define CDIR_FILENAME_LEN 38 //Must include terminator zero
2020-02-15 20:01:48 +00:00
The following bit field shows valid 8-Bit ASCII filename characters.
2020-12-23 23:27:18 +00:00
U32 char_bmp_filename[8] = {0x0000000, 0x03FF73FB, 0xEFFFFFFF, 0x2FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF};
2020-02-15 20:01:48 +00:00
public class CDirEntry //64-byte fixed-size
{
2021-07-02 09:24:53 +01:00
U16 attr; //See $LK,"RS_ATTR_DIR",A="MN:RS_ATTR_DIR"$. Terry wanted to change these.
2020-12-23 23:27:18 +00:00
U8 name[CDIR_FILENAME_LEN]; //See $LK,"char_bmp_filename",A="MN:char_bmp_filename"$, $LK,"FileNameCheck",A="MN:FileNameCheck"$
Rename abs_addres to abs_address.
Update documentation/comments to rename addr, fun, var, stmt, blk, desc, reg, seg, ptr, dup, clus, val, and bttn, to address, function, variable, statement, block, description, register, segment, pointer, duplicate, cluster, value, and button, respectively.
2021-10-07 02:35:32 +01:00
I64 clus; $HL,0$$FG,7$(blk)$FG,0$$HL,1$ //One sector per cluster.
2020-12-23 23:27:18 +00:00
I64 size; //In bytes
2021-12-11 11:21:22 +00:00
CDate datetime; //See $LK,"DateTime",A="::/Doc/TimeDate.DD"$, $LK,"Implementation of DateTime",A="FI:::/Kernel/KDate.ZC"$
2020-02-15 20:01:48 +00:00
};
public class CRedSeaBoot //RedSea is type FAT32 in partition table to fool BIOS.
{
2020-12-23 23:27:18 +00:00
U8 jump_and_nop[3];
U8 signature, reserved[4]; //MBR_PT_REDSEA=0x88. Distinguish from real FAT32.
2020-02-20 23:40:10 +00:00
I64 drv_offset; //For CD/DVD image copy.
I64 sects;
2020-12-23 23:27:18 +00:00
I64 root_clus; $HL,0$$FG,7$(root_blk)$FG,0$$HL,1$
2020-02-20 23:40:10 +00:00
I64 bitmap_sects;
I64 unique_id;
2020-12-23 23:27:18 +00:00
U8 code[462];
2020-02-20 23:40:10 +00:00
U16 signature2; //0xAA55
2020-02-15 20:01:48 +00:00
};
$HL,0$
2021-12-11 11:21:22 +00:00
See $LK,"::/Kernel/BlkDev/FileSysRedSea.ZC"$ and $LK,"::/System/Boot/DiskISORedSea.ZC"$.
2020-02-15 20:01:48 +00:00
Rename abs_addres to abs_address.
Update documentation/comments to rename addr, fun, var, stmt, blk, desc, reg, seg, ptr, dup, clus, val, and bttn, to address, function, variable, statement, block, description, register, segment, pointer, duplicate, cluster, value, and button, respectively.
2021-10-07 02:35:32 +01:00
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/DVD sectors, so there will be four blocks per CD/DVD sector.
2020-02-15 20:01:48 +00:00
RedSea file system has no bad block table and no redundant allocation table.
See $LK,"Block Chain",A="FI:::/Doc/BlkChain.DD"$ for RedSea allocation bitmap discussion.