Я предлагаю сделать так, чтобы настроить реализацию FAT 16 для использования файла в качестве носителя жесткого диска. Интерфейс файловой системы FAT к жесткому диску - это команды системного уровня, такие как read_sectors и write_sectors, которые читают / записывают кратные буферы 512B на определенные адреса LBA. В вашем случае вы можете заменить вызовы для чтения секторов и записи функций секторов фактическими записями чтения в файл.
Таким образом, изменяя эти две функции, вы заменяете доступ к носителю на доступ к файлу.
Если быть точным, то существует жесткий системный вызов на жесткий диск, который возвращает размер носителя, который здесь должен быть заменен максимальным размером файла, который предполагается выступать в качестве носителя.
Облегченную реализацию FAT можно найти по адресу здесь