ableos/sysdata/programs/filesystem_fat32/src/main.hb

47 lines
1 KiB
Plaintext
Raw Normal View History

2024-09-17 08:01:16 -05:00
stn := @use("../../../libraries/stn/src/lib.hb");
.{string, memory, buffer, log} := stn
attributes := @use("rel:attributes.hb")
datetime := @use("rel:datetime.hb")
directory := @use("rel:file.hb")
bios_parameter_block := @use("rel:bios_parameter_block.hb");
.{bpb_sanity_check, ebr_sanity_check, fs_info_sanity_check} := bios_parameter_block;
.{new_bpb, new_ebr, new_fs_info} := bios_parameter_block
FAT12_THRESHOLD := 4085
FAT16_THRESHOLD := 65525
ExFAT := 0
FAT12 := 1
FAT16 := 2
FAT32 := 3
calculate_fat_type := fn(sector_size: int, total_clusters: int): int {
if sector_size == 0 {
return ExFAT
} else if total_clusters < 4085 {
return FAT12
} else if total_clusters < 65525 {
return FAT16
} else {
return FAT32
}
}
main := fn(): int {
bpb := new_bpb()
ebr := new_ebr()
fsi := new_fs_info()
fat_type := calculate_fat_type(1, 100)
if fat_type != FAT32 {
log.warn("filesystem_fat32 driver only supports Fat32.\0")
}
bpb_sanity_check(bpb)
ebr_sanity_check(ebr)
fs_info_sanity_check(fsi)
return 0
}