PDA

Просмотр полной версии : HDD Вектора и FAT16



Improver
27.08.2025, 16:38
Получилось скрестить "ежа с ужом" -- сделать НЖМД соответствующим формату Вектора, и оставить место под FAT16. Методика такая, на примере CF-карты на 128Мб:


Для начала надо полностью очистить карту, затереть нулями. С этим легко справляется, например, программа Paragon Partition Manager или Acronis Disk Director.
Инициализируем диск в той же программе -- создаём таблицу разделов MBR.
Создаём первичный раздел c FAT16, но начинаться он должен с сектора 130072 и до конца карты -- оставляем первые 64Мб для Вектора.
Создаём первичный раздел с кодом 0x52 (CP/M-раздел) в начале диска, на оставленных 64Мб. Он предназначен только для того, чтобы какая-либо винда вдруг не решила, что там свободное место и не затёрла его чем-то своим.
Теперь надо определить параметры карты, сколько там головок/секторов/цилиндров. Для исправленных на LBA МДОСов и загрузчика эти данные не имеют значения, но при старте старых версий МДОС они пригодятся. Итак, наиболее адекватные для Вектора значения выдаёт, как ни странно, программа тестирования HDD под названием Victoria. Для моей карты она показала 992(03E0h) цилиндра, 8 головок и 32(20h) секторов, точно также видит карту и Вектор, другие же программы показывают по 63 сектора / 255 головок, что нам не подходит.
В том же Парагоне или Акронисе заходим в редактирование диска и правим значения в нулевом секторе по смещению 0х0080, заносим туда значения: 20 (секторов), 08 (головок), 00 02 (цилиндров пишем меньше, до размера в 64Мб нужно 0200h), 53 00 (число дискет). Это, естественно, портит MBR и его контрольную сумму, но, к счастью, это не повлияет на работу карты в обычном ПК.
Далее с сектора 1 и до сектора 130071 включительно (адреса 00000200..03FFFFFF) заполняем данными с соответствующих адресов HDD Вектора, или просто значением E5h, если нужен пустой диск.

Размер выделяемой на карте области для Вектора может быть любым, мне кажется оптимальным 32..64Мб, а остальное выделить под FAT16. Вот для примера образ полученной CF-карты (с Т-72 в загрузочной области и с пустым содержимым дискет на HDD Вектора): 82704
С ним, кстати, можно использовать и мою доработку драйвера для FAT16 (https://zx-pk.ru/threads/29892-sd-karta-i-sdos-dlya-8i-bitnykh-pk.html?p=1148859&viewfull=1#post1148859), который я когда-то начал делать и забросил, но теперь есть повод к нему вернуться. :) Полагаю, можно его доработать до программы с функциями DIR/CD/DEL/COPY/RUN использовать его для обмена файликами с разделом FAT16, без встраивания в ОС...

ivagor
27.08.2025, 18:26
Создаём первичный раздел c FAT16, но начинаться он должен с сектора 130072 и до конца карты -- оставляем первые 64кБ для Вектора
Может все же 64Мб? Ну и тут

Размер выделяемой на карте области для Вектора может быть любым, мне кажется оптимальным 32..64кБ

Improver
27.08.2025, 23:34
Может все же 64Мб? Ну и тутДа, конечно Мб. :)

Improver
04.09.2025, 17:23
Набросал по-быстрому программку по работе с FAT16, пока она имеет возможности только в пределах существующего драйвера, а именно:

Показывать содержимое директорий по команде DIR
Переходить по директориям по команде CD
Загружать с раздела FAT16 в память и запускать на исполнение ROM файлы (с предварительным отключением квази-дисков), в том числе и большие
Загружать с FAT16 в память и запускать на исполнение СOM файлы (но пока без передачи им параметров командной строки, из-за чего многие программы или глючат, или сразу выдают ошибку)
Копировать файлы с раздела FAT16, пока только в текущий диск и с обязательным заданием имени выходного файла

Все остальные функции требуют доработки драйвера FAT16, да и самой программки тоже. В общем, можно сказать, это только начало, но уже можно оценить работу Вектора с разделами FAT. :)

Вот сама программа с исходниками: 82737