2/11/2018 We now have a tiny 162-byte bootloader, which loads sectors 258-1024 of the currently selected disk to memory starting at address 0x500. This is the BDOS image, and once it starts it will erase the 256 bytes used to contain the bootloader and replace it with the BDOS vtable. The bootloader image is padded out with zeros to 32K to fit into the boot track neatly. The BDOS follows in the image, but has 256 bytes zero'd out at the start for the BDOS table, hence start reading at sector 258 to memory location 0x500. This should be backwards compatible for now, however, it means that the BDOS image (main.out) can grow up to 64K in size before we need to patch the bootloader again, since we are now not restricted by the size of the boot track anymore (32K). Next features to be implemented: * ELF binary support. Once this is working, support for raw binaries will be deprecated, then removed. * double-indirect block support for ext2 (to read files > 268K size) -- Fletcher-16: https://en.wikipedia.org/wiki/Fletcher%27s_checksum CRC32: https://stackoverflow.com/questions/122982/robust-and-fast-checksum-algorithm -- LZ4 optimized for ARM Cortex ASM https://community.arm.com/processors/b/blog/posts/lz4-decompression-routine-for-cortex-m0-and-later Atari ST? -- http://www.atari-forum.com/viewtopic.php?t=26825