Первое, нужно разбить диск на разделы. Я делаю это программой FDISK, из пакета MS-DOS/PC-DOS, но возможно есть аналогичные программы под винду. Итак, первым делом, выбираем нужный нам диск и удаляем с него все разделы. Далее, создаем основной раздел. В CP/M он будет игнорироваться, поэтому на него нет ограничений по размеру. Затем, создаем расширенный раздел на весь оставшийся объем диска. В этом расширенном разделе создаем логические диски, которые и будут отображаться в CP/M. Поэтому, желательно "нарезать" их размерами от 1 до 20 Мб, не более 12 штук (на больше не хватит памяти у ПК8000). По завершении назначаем основной раздел загрузочным (первичным) и выходим. Основной раздел можно отформатировать и записать на него дос и все необходимые утилиты, но это по желанию.
Вот теперь используем F8000D.EXE.
Коротко о параметрах.
В CP/M диск состоит из 128-байтных секторов. То есть, все операции записи/чтения производятся с секторами, а не побайтно. Сектора объединяются в группы, от 2 и выше секторов (всегда кратно степени двойки!). В досе эти группы называют кластерами, в CP/M - блоками. Таким образом, минимальная единица дискового пространства в CP/M - это блок. Даже если файл имеет размер в 1 байт, на диске ему выделится один блок. Понятно, что чем меньше блоки, тем рациональнее используется дисковое пространство. Однако, в системе есть такая таблица - allocation vector (ALV), где помечается статус блоков диска (занят или свободен). Размер этой таблицы естественно ограничен. В данной реализации ее размер 2Кб, то есть на 16384 блоков (1 бит - 1 блок). И если одному диску выделить 8000 блоков, то остальным останется чуть больше половины. Поэтому количество блоков нужно распределить так, чтобы хватило всем дискам. Если имеем 12 дисков одинакового размера, то каждому можно выделить по 16384/12 = 1360 блоков. Это и регулирует параметр:
-a<xxx> - size ALV with 'xxx', [128..512] (default 256)
Размер задается в байтах и чтобы получить количество блоков нужно умножить на 8. Размер я ограничил от 1024 до 4096 блоков. Нужно понимать, что реальный размер блока может отличаться от заданного. Он вычисляется по формуле: size = DiskSize / ((ALV - 1) * 8) и округляется до большего значения кратного степени двойки. К примеру, имеем диск 2Мб и задаем ALV равным 300, то есть 2400 блоков. Размер блока будет равен 2Мб/(299 * 8) = 876. Округляем до ближайшего кратного и получаем 1024. Количество блоков соответственно будет 2048 (вместо запланированных 2400), а размер ALV = 256.
Под оглавление диска тоже выделяется некоторое количество блоков. Чем больше, тем больше файлов можно на нем хранить. Максимально можно выделить 16 блоков. За это отвечает параметр:
-d<x> - size directory in clusters [2..16] (default 2)
Только не нужно забывать, что чем больший размер директории, тем больше времени тратит система на поиск и загрузку файлов. Ну и на размер свободного пространства тоже влияет, не без этого. Тут трудно что-то посоветовать, поскольку один файл может занимать от 1 до нескольких записей (одна запись - 32 байта) и расчитать заранее невозможно. Мне хватает 4 блоков и лишь один раз столкнулся с нехваткой места в директории, когда пытался уместить на диск несколько десятков файлов. В общем, нужно экспериментировать.
Итак, запускаем. Выбираем диск. Далее начинается сканирование и поиск логических дисков. При нахождении логического диска будет выведен запрос на конвертирование его под CP/M. При нахождении диска CP/M будет выведен запрос на его преобразование в диск DOS. Это было сделано после того, как я столкнулся с тем, что FDISK отказывается удалять разделы с дисками НЕ-DOS. Такая вот политкорректность от мелкософта![]()
--------------------------------
Теперь можно приступить к переносу софта. Это делается либо в досе, утилитой C8000D, либо в винде, посредством плагина к Total Commander, я его здесь выкладывал. Утилита C8000D требует задания имени диска, на который копируются файлы. Имя - это имя диска в CP/M, начиная от 'A' и тд. по возрастанию. Копируемые файлы можно задать по маске, как это допускает ДОС. Все, подключаем к ПК и работаем.
PS: Собственно диск в основном разделе я форматирую под FAT16 и делаю его загрузочным. На него записываю вышеперечисленные утилиты и все файлы для ПК8000. Удобно тем, что загрузившись с него можно форматнуть любой CP/M диск и записать нужные файлы. Сам диск прекрасно виден в винде. Как-то так.
PPS: Можно дать на тестирование еще одну прошивку? Хочется уточнить в чем была проблема.




Ответить с цитированием