Added more waiting/polling loops to make sure the drive has enough time to get ready (BSY, DRQ and RDY bits)
Added code to read the MBR of disks.
TODO:
Detect and parse GPT partition tables.
Get a abstract data type List going, to more efficiently store devices (ATA, PCI, partitions)
Possibly move the partition list into a one-per-drive.
Write a buddy allocator in addition to the current one
Write a SLAB allocator on top of the buddy allocator.
Partially complete List ADT. Complete with destructors and stuff -- also discovered a bug in the heap...
Fixed a few more bugs regarding chunk coalescing. Need to find out why the last footer keeps getting corrupted -- stopgap solution now is to just write a new footer if it's not there, since the information stored there is mostly needless. (AKA simpler left-unification)
Mostly got GPT partition parsing working -- very minimal, still have some kinks to work out.
Interestingly, the protective MBR is listed as a partition.
Namely still need to support more than 4 partitions -- somehow the partition-count reads as 128.
temp commit
Managed to get preliminary FAT32 support going. Also fixed a bug in the FS-reader for both GPT and MBR; since the disk only has one buffer, subsequent accesses of the 'Partition Table' might actually be something else, after filesystem initialisation.
Actual working cluster-following and file-reading.
Just need to piece it together to make a pluggable function.
commit
Somewhat-working recursive directory-listing function.
Doesn't want to exit the recursive loop properly though.
Deep-recursion function to read files and folders from FAT32 filesystems.

Priority now: Make SLAB buddy allocator to replace CHUNK system. AKA increase reliability of the entire system. ALSO: FAT32 write-support would be nice. Kinda.