Формат дисков CP/M 1.4

Материал из Emuverse
Данный материал защищён авторскими правами!

Использование материала заявлено как добросовестное, исключительно для образовательных некоммерческих целей.

Источник: http://www.seasip.info/Cpm/format14.html

Перевод: Black Cat / Era CG (era_cg@speccy.su)

Формат дисков CP/M 1.4

CP/M 1.4 была предназначена для работы с 8" дисками емкостью 250k. Таким образом диск CP/M 1.4 разбит следующим образом:

 77 дорожек всего;
 26 128-байтных секторов на дорожке, перемешанных программно (см.ниже);
  2 зарезервированные дорожки;
  2 1k блока директории, вмещавшие 64 записи;
240 1k блокаов данных, с номерами 2-241.

Таблица порядка чтения секторов:
1,7,13,19,25,5,11,17,23,3,9,15,21,2,8,14,20,26,6,12,18,24,4,10,16,22

Зарезервированные дорожки содержат образ CP/M 2.2, используемый при перезапуске системы с диска. Таким образом, можно сделать вывод, что CP/M 1.4 помещается в 6.5k.

Директория CP/M 1.4

Директория CP/M 1.4 имеет только один тип записи:

SS F1 F2 F3 F4 F5 F6 F7 F8 T1 T2 T3 EX S1 S2 RC   .FILENAMETYP....
AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL AL   ................

SS = Status.   0  => Файл существует
             0E5h => Файл удален
              80h => Скрытый файл. Данное свойство является недокументированным
                    и не поддерживается в более поздних версиях CP/M.
Fn - Filename - имя файла.
Tn - FyleType - тип файла. Используется 7-бит ASCII.
EX = Extent counter - номер экстента. Если файл занимает более 16k, он получает несколько
записей. Первая запись имеет EX=0, вторая - EX=1 и т.д.
    EX может принимать значения от 0 до 31, таким образом допуская файлы до 512k. Однако,
    CP/M 1.4 в любом случае поддерживает диски размером лишь 250k.
S2 - зарезервировано, устанавливается в 0.
S1 - зарезервировано, устанавливается в 0.
RC - Число записей (1 запись=128 байт) занятых этим экстентом. Если RC равно 80h, этот
    экстент полный и может существовать еще один на этом диске.
    Размеры файлов округляются в сторону ближайших 128 байт.
AL - Allocation - расположение (карта расположения блоков файла). Каждый байт AL - это номер
    1k блока на диске. Если AL содержит ноль, то он не указывает на какой-либо блок (то есть 
    соответствующий блок не существует). Например 3k файл может иметь следующее расположение:
    5,6,8,0,0.... - первые 1k - в блоке 5, вторые - в блоке 6, третьи - в блоке 8.
     AL-номера могут быть либо 8-битными (если диск содержит менее 256 блоков), либо 16-
    битными (первым хранится младший байт).

От переводчика

Данный перевод ни в коем случае не претендует на то, чтобы считаться абсолютно точным и безошибочным. В случае, если Вами будут найдены какие-то ошибки или неточности, просьба написать мне: era_cg@speccy.su

Black Cat / Era CG
3o.o9.2o15