Вообще-то флэш носители, такие как 'microSD' и 'CF-флэш' в промышленности используют в формате FAT16/32. Для CF это вполне объяснимо, т.к они используют интерфейс винчестера (и служат для их замены). Но как ни странно, и в телефонах, в которых ОС вообще не MSDOS/Windows, для 'microSD', почему-то тоже стали использовать формат FAT16/32.Сообщение от Xrust
Очевидно, из-за этого, все конструкции применяющие флэш-диски для рэтро-ЭВМ используют файлы в формате FAT. Хотя, по крайней мере, в тех в флэш, где есть побайтовый доступ, можно отформатировать его в любой формат. Т.е при желании можно использовать любой формат. Причём не обязательно иметь какую-то ОС, что умеет управлять диском размером в гигабайты, достаточно программно разбить флэш на диски такого размера, что пригодны для конкретной 8-ми разрядной ДОС, и позаботиться, чтобы не было "пересечений".
Я не имел дела с флэш - CF-карты у меня нет, 'microSD' я не умею программировать (чужие устройства на базе МК не годятся для ДОС, они лишь хранят программы 8-ми разрядки в формате FAT16). Имею некоторый опыт использования винчестера в CP/M. Я даже не рассматривал вопрос о совместимости с FAT. Взял винт и написал простейшие подпрограммы чтения и записи сектора 512 байт. Убедился что они работают. В LINUX разбил винт на одну партицию так, чтобы остались неиспользованные цилиндры. Затем в CP/M встроил работу с винчестером, встроив подпрограммы чтения/записи сектора винта. Естественно, в CP/M нумерация треков идёт с нуля, поэтому в п/п-мму "установить трек по заданному в BC номеру трека" я добавил OFFSET. Например, если текущий CP/M-диск начинается с 700-го цилиндра, то к номеру трека добавляем OFFSET=700. Затем я загрузился в CP/M и POWER-ом командой WRITE заполнил цилиндр где находится каталог (т.е есть цилиндр 700) байтами E5 (переформатировать остальные сектора винта нужды нет) . После этого диск на винчестере стал доступен из CP/M. Одновременно этот винчестер имел в начале партицию MSDOS. Можно было грузиться с этого винта на 486-той и хранить там файлы MSDOS. Собирался написать MSDOS программу для обмена с CP/M дисками.
Преимущество такого подхода в том, что можно использовать дохлый винт, который уже не работает на PC. А главное, - не требуется иметь блок кодов, что поддерживает FAT16 (тратить на это 4 кб ОЗУ в CP/M-BIOS глупо). Формат на винте соответствует конкретной DOS. Но сейчас мне доступны только винты гораздо большего размера (десятки и сотни гигабайт). Проблема в том, что для 8-ми разрядки нужны диски маленького размера (более 4 мб неудобно). Отчего на винте умещаются сотни тысяч дисков. Как их адресовать? Например, CP/M допускает только 16 дисков. Это значит, что винт можно использовать на 0.01 процента. Поэтому я собираюсь организовать на винте несколько сотен дисков единого размера в 4 мб. И адресовать их по номерам. При старте в CONFIG.SYS командами типа ASSIGN A 500 (диск 500 назначается приводом A) выбираются стартовые 16 дисков. В нортон естественно тоже надо встроить подобную процедуру.
Вы имеете ввиду случай, когда "слепок" CP/M-диска замаскирован под файл FAT16 и с ним напрямую (побайтово) работает CP/M-BIOS ? Это не будет громоздко, если этот "файл-слепок CP/M-диска" - недефрагментированный, т.е сплошной массив секторов. Т.е с единственным диском громоздко не будет, а вот если надо менять диски, тут уже нужен блок кодов поддерживающий FAT16.Сообщение от Xrust
Эту мысль не понял. В "то время" не делали "кто во что горазд", а использовали диски в формате CP/M. Этот формат определяет CP/M. Но число треков и секторов на треке, размер каталога, число системных дорожек в CP/M (и тем более низкоуровневый физический формат носителя) для каждой машины, естественно, свои. CP/M это без разницы, она считывает БПД, блок параметров диска и узнаёт как устроен конкретный диск.Сообщение от Xrust
Я знаю, как могу сделать я. А как будет лучше я не знаю. Тут, видимо, сколько людей столько и мнений.Сообщение от Xrust




Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 

