User:Superleaf1995/lowFS: Difference between revisions

m (moved User:Superleaf1995/uniFS to User:Superleaf1995/lowFS: there is already a filesystem with that name-)
Line 10:
 
== Bootsector ==
There are three ways to identify a lowFS disk: checking byte 0x02, checking the last 4 bytes of sector 4 or checking the last 4 bytes of the disk. It should contain the labelcharacters '_LF_LFFL' (ASCII). It should always be in big endian. Followed by a table:
<source lang="c">
struct lowFS_megatable {
uint8_t attribute; // Attribute byte
uint64_t nlb; // Number of LBAs
uint8_t version; // lowFS version
union {
};
struct lowFS_floppy {
uint8_t heads;
uint8_t sectors_per_track;
uint8_t drive_no;
uint8_t bytes_per_sector;
};
struct lowFS_non_floppy {
uint32_t n_lba;
};
}table;
uint16_t reserved;
}__attribute__((packed));
</source>
 
Line 34 ⟶ 45:
| TBD
|}
 
* If all bits are set, the endianess is little, the disk has no bad sectors (assumed) and there are no checksums
 
== Entry ==
170

edits