I go a little off topic here, please skip this section if you are not interested in what slack space is.

An interesting "feature" of the FAT12 filesystem is that it allocates the file size divided by cluster size (rounded up) number of clusters to a file. For example, if the cluster size is the typical (for FAT12) 512 bytes, and the file is only 16 bytes long, the file system will allocate the whole cluster to the file, but only read the file size modulus the cluster size bytes out of the final cluster of the file. To illustrate this in the context of the challenge:

  1. The directory entry for "cover page.jpgc" states it is 15,585 bytes long
  2. The cluster size on disk is 512 bytes
  3. The number of clusters allocated to the file will be: (15585 / 512 = 30.439453125) (rounded up to 31)
  4. When the OS reads in the file, it will read only the first (15585 % 512 = 225) bytes of the last cluster leaving (512 - 225 = 287) bytes slack and unused

This space can be writen to and read from outside of the OS, but is not available through the OS file system. It can be accessed and modified via BIOS calls, accessing the disk RAW. It is a volitile area and may be overwritten or erased if the file grows or is deleted, etc. I digress.