Цитата:
Сообщение от ^m00h^
Hi Многоуважаемый All! Недавно заимел IDE-контроллер (Nemo), и у меня возникло огромное желание реализовать поддержку файловых систем FAT16/32 и возможно, NTFS, а также ext2/ext3/reiserfs на Спектруме.
Желание быстро иссякнет. Особенно если цель не имеет
практически никакого смысла. ПЦ-ориентированные ФС для
спектрума не эффективны и чрезвычайно ресурсоёмки.
Может быть, минимальный смысл имеет FAT12 и FAT16 --
исключительно с целью совместимости. Не только с ПЦ,
но и, например, с MSX.
Для спектрума считаю целесообразным поддержку ISO9660.
Причины разные:
* это международный стандарт, следовательно можно
расчитывать на поддержку данной ФС на разнообразном
оборудовании и в разных ОС;
* минимальная поддержка для копирования файлов уже
реализована в CD-Walk (см. http://spbzxnet.org.ru/cdwalk);
Я думаю, несложно будет его доработать для работы с
разделом HDD.
* В ФС ISO 9660 заложена возможность расширения
под конкретные нужды, чем активно пользуются. Так
Windows использует т.н. Jouliet расширение, а Unix --
Rockridge. Mac имеет своё. Спектрум может ввести собственное
расширение с целью поддержки специфических для него
атрибутов файлов (порядковый номер в каталоге, адрес
загрузки и т.п.);
* ISO9660 позволяет организовывать более сложную структуру
каталогов, чем ациклический граф с обязательно единственным
путём от каждого узла к вершине и наоборот (имеется ввиду FAT)
-- считаю, это важное свойство.
Из недостатков можно отметить опять необходимость дефрагментации диска (как в TR-DOS), что, впрочем, не особенно
актуально для современных носителей: объём типично ~640МБайт,
размер файла <64Кб. Итого имеем дробление диска на >=10000
независимых частей (файлов).
Цитата:
Имея справочный материал по командам HDD из газеты Абзац, я получил примерное представление о реализации чтения/записи на винт,
Написать грамотный драйвер без фирменных спецификаций
НЕВОЗМОЖНО. И не спорь. На сайте CDWALK (выше ссылка)
есть ссылка на источники информации. Абзац -- это вводная
статья, но ни в коем случае не справочный материал!
Цитата:
но сейчас мне не хватает именно информации о структуре и программировании FAT, серфинг в поисковиках дал только общее представление по сабджу.
Значит ты просто не умеешь пользоваться интернетом. FAT --
изобретение микрософта. И микрософт свободно публикует
всю необходимую информацию. Я почему-то её нахожу в
первых ссылках на гугле по запросу "FAT filesystem specification".
Цитата:
Может быть кто-то задавался подобным вопросом, и может поделиться своими исследованиями или документациенй ? Буду очень благодарен. В моих планах написание коммандера, работающего со всеми файловыми системами на zx, (tr-dos, is-dos(tr-dos, is-dos, msdos), в том числе и FAT. Согласитесь, было бы очень неплохо использовать весь обьем HDD ( а не 16 mb only как в ISDOS) исключительно для хранения спековского вареза, и любых других файлов неограниченного количества и размера, как это делают эмуляторщики.
Не соглашусь. Хрен ли толку с такого командера? Файлы туда-сюда
копировать? У меня и другие дела есть. А тот же ZXASM с винта
не запустишь. Или просто игрушки, демки. RAM-диск? Так говорят
те, кто практически так не пробовал: запись должна быть
надёжной -- когда я в ZASM нажимаю "Save" должно записываться.
Цитата:
С возможностью редактирования и копирования с/на tr-dos, isdos. IMHO, для ZX с HDD нужна не ось, а именно навороченный командер.
Я это слышу 7-й год.
Цитата:
В данный момент, испытывая дефицит информации, я пробую реализовать подобие FAT12 на винте. Если вам интересен данный subj, его востребованность на ZX, а также если вы желаете принять
Интересно -- см. выше. Драйвера любых контроллеров. Любых накопителей (из ширпотреба: ATAPI CD-ROM, ATA-2 HDD,
compact flash). Поддержка файловой системы ISO9660 на чтение
и на запись (по крайней мере на HDD, если на запись). Поддержка
виртуального TR-DOS диска, формируемого из каталогов ФС ISO9660.
Поддержка напрямую: запись это запись, а чтение это чтение.
Никаких доработок спектрума. Аппаратный минимум: Pentagon-128
и NEMO-IDE. Разрешается своп на диск (IDE), своп в 8-ю банку
памяти (скорпион и аналоги), своп в 2-ю банку кеша.
Всё (минимальный загрузчик и поддержка свопа) должно размещаться
в ПЗУ TR-DOS, остальное загружаться с диска, вариант: дополнительного ПЗУ (для чтения CD-ROM без наличия HDD) или
compact-flash -- это позволит обновление ПО.
Далее -- реализация псевдомногозадачного режима с высвопливанием памяти на НЖМД. Прерывание в обработчкие
клавиатуры ПЗУ Basic-48 и, параллельно, на кнопке Magic.
Это -- интересно. Реализовывать -- некому. Кто хочет тот
не знает как и не может. Кто может, тому нафиг не нужно.