1 Отредактировано Voldemar0 (29-01-2020 18:55)

Тема: Опознавание форматов записи

Привет!

У нас иногда возникает проблема с распознаванием формата дисков.
Предлагаю здесь делиться описанием различных форматов записи (5.25'').
Здесь нужно собрать не столько все возможные подробности, сколько информацию,
которая бы позволила определить формат и дальше передать диски уже тем, кто хорошо знаком c ним
или имеет соответствующую аппаратуру.

Итак:

0) Особенности агатовских 140ок, отличия от "обычных" флопов.
Бошка у этого флопа соответствует по ширине и шагу PC-шному 40-цилиндровому дисководу,
но только с головой номер 0. Есть вероятность, что сам привод реально может работать с 40 дорожками,
но в эпле/агате это запрещено, так как ни в дисководе ни в контроллере не предусмотрена компенсация изменения линейной скорости трека на внутренних дорогах (предкомпенсация записи).

По этой причине на потёртой головке треки за 30-м читались плохо. Ну а если бы были разрешены все 40 треков, то, скорее всего, 35-40 треки плохо читались бы и с новой головой.

Так как 140ки имели одну сторону, иногда дискеты использовались "кверху ногами".
Тут есть особенность: у двусторонних флопов верхняя бошка сдвинута относительно нижней на 10%
ближе к центру. Т.е. первые 4 трека на перевёрнутой 140ке не могут быть переписаны двухсторонним дисководом.

Это особенность позволяет обнаружить признаки использования стороны-1 для 140ки даже после многократных форматирований флопа в PC или в агатовской 840ке.


1) Сперва про отличие отформатированных дисков от неформатированных вообще:

Например, если у нас есть 140ка, то вы можете подключиться к контрольным точкам X7 X8 (мс5088)
и замерить амплитуду сигнала. На идеально чистых флопах шум отличается от какой-либо записи
раз в 10. Кроме того, незначительное перемещение головки не приводит к изменению амплитуды сигнала,
если диск не отформатирован. Если есть какая-то запись, отчётливо видно изменение уровня сигнала между
треками.

Хороший диск-140ка будет иметь амплитуду примерно на 10-20% выше, чем диск другого формата
c узкими дорожками (80 цилиндров) (вероятно, из-за чтений широкой бошкой двух узких дорожек).

Точные значения напряжения не будут приводить, так как вы можете сами их легко определить
для своего дисковода и измерительных приборов (частоты высокие, так что дешевый мульт может не суметь зафиксировать это напряжение). Просто возьмите заведомо записанную дискету и сравните уровень сигнала опуская и поднимая прижим головки.

Если же 140ки у вас нет, но есть 840ка, то единственный способ (если только вы не можете залезть во внутренности усилителя чтения) - оценить интервал между импульсами чтения.
На неформатированном диске интервал между импульсами может составлять до 10-20 мкс, а иной раз и больше - это зависит от электроники дисковода.

Есть предположение, что некоторые заводы выпускали дискеты с некоторой тестовой записью.
Скорее всего, это могли быть, например, постоянно идущие импульсы с фиксированным периодом.
Возможно, это использовалось для выходного контроля.


2) Теперь о том, чем "на глаз" отличаются форматы записи различных систем.

Предполагаем, что дисковод крутиться со скоростью 300rpm (5 об/сек, 200 мс/оборот).
И либо есть читалка вроде SCP либо осцилограф или логический анализатор и много свободного времени.

140 кб, Агат:
Период следования импульсов может составлять 3.9, 7.8 и 11.7 mks.
Особенность "обычных" дисководов в том, что они могут не понимать интервалы выше 10 mks, что заметно мешает читать на них агатовские 140ки. Поля с длительностью 11.7 mks используются, в т.ч. для байтовой синхронизации. Специальный маркер начала поля адреса или данных хотя и существует, но содержит около полусотни бит, поэтому визуально (на графике сигнала) опознать его довольно сложно (он начинается с 4-х повторений: 2 импульса с паузами 11.7 и 8 импульсов 3.9 mks).

840 кб, Агат:
Период следования импульсов 3.9, 5.9, 7.8 mks.
Синхрополе: 7.8, 5.9, 5.9, 5.9, 7.8 mks.


PC, ZX-spec... (условно назовём формат "вг93"):
Период следования импульсов (из описания использования вг93): 4.0, 6.0, 8.0 mks.
Синхрополя два, более частое: 8.0, 6.0, 8.0, 6.0 mks.

У PC есть возможность менять битрейт из: 500, 300, 250, 125 Кбит/секунду.
Плюс варианты скорости вращения флопика (только 5'25''): 300 и 360 rpm.

Диски до 1 Мб (360, 720, 800...) при чтении на 300rpm будут иметь периоды 4.0, 6.0. 8.0 mks.
Диски 1.2 Мб при чтении на 360rpm будут иметь периоды 2.0, 3.0, 4.0 mks, также сдвигаются и импульсы синхрополя.
Прочитать 1.2 Мб на 300rpm может оказаться невозможным (из-за изменения параметров полосы пропускания - короткие периоды уплывают).

Размеры секторов:
PC - 512 байт.
ZX - 256.
Корвет, Вектор - 1024.

ДВК:
Дисковод MX: FM формат (чередование бит данных и синхробит), битрейт неизвестен, байтовое синхрополе не известно.
Дисковод MY: вероятно, совместим с вг93, (размер сектора 512 байт?)

2

Re: Опознавание форматов записи

Voldemar0 пишет:

Я так предполагал, что 300 kbs на 360 rpm - это то же, что и 250 kbs для 300 rpm.

Да, это для того, чтобы 1.2МБ 5.25" HD-драйв мог работать с 320/360КБ.

Voldemar0 пишет:

Но такое впечатление, что у меня получилось 300 rpm и битрейт 300 kbs.
И я не знаю: глюк ли это софта, джамперов или так всё и задумано ?

А точно у тебя HD-драйв? А джампер оборотов на нем как стоит? И как он реагирует на пин 2 разъема?

Voldemar0 пишет:

Также по размеру секторов есть вопросы:
PC - 512 байт.
ZX - ? 256
Корвет - ? 1024

Вроде да. Вектор тоже, как Корвет.

Voldemar0 пишет:

Вроде MY читались, а MX - нет ? Что там было ?

MY - MFM, с ВГ93 не знаю, а i8272 и NEC765 умеют его (именно ДВКашный MFM), есть читалки/писалки на PC.
MX - FM.

Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

3 Отредактировано Voldemar0 (27-01-2020 06:32)

Re: Опознавание форматов записи

> А точно у тебя HD-драйв? А джампер оборотов на нем как стоит? И как он реагирует на пин 2 разъема?

он HD, mitsumi 509 вроде и он стоял на PC раньше и работал с дисками 1.2.
но какие джамперы как должны стоять - я сильно не вникал.
Поскольку последние годы он использовался с Агатом, джамперы расставлены не по PC-шному.
Я их переткнул только чтобы он заработал на PC, даже удалось прочитать старую PC-шную 360ку.
Также получилось отформатировать и без проблем прочитать 740ку, я и подумал, что всё норм.
Но если ты считаешь, что такой битрейт неправильный, то я найду HD -дискеты и проверю всё в деталях и разных режимах.

У меня тут валяется несколько дискет с отчётливым сигналом, причем там как бы видны поля: ряд 101010, а потом случайные данные - похоже на чередование полей данных и GAP, но я не могу понять - что это за формат. FDA не опознаёт, агат тоже.

4

Re: Опознавание форматов записи

> MX - FM.
Это когда каждый бит данных чередуется с единичкой?
Т.е. там только два периода следования, один в два раза больше другого ? А известно - какие именно ? 4 и 8 мкс, вроде ничего другого в голову не приходит...

5

Re: Опознавание форматов записи

Voldemar0 пишет:

Это когда каждый бит данных чередуется с единичкой?

Каждый бит данных сопровождается синхроимпульсом отрицательной/негативной полярности.

Voldemar0 пишет:

Т.е. там только два периода следования, один в два раза больше другого ?

Йес.

Voldemar0 пишет:

А известно - какие именно ? 4 и 8 мкс, вроде ничего другого в голову не приходит...

Разумеется, от битрэйта зависит. Сколько он в MX - не знаю. Вроде там не секторная организация, а трековая. Точнее, наверное, dkspb скажет.

Турбо АГАТ-9/16 (ЦП 65C802, 5 Махов, dual-port SRAM).

6 Отредактировано dk_spb (28-01-2020 11:59)

Re: Опознавание форматов записи

Я честно говоря не совсем понимаю о чем идёт речь.
Если мы про физический формат, то кроме FM, MFM, GCR есть еще отличия по плотности записи.
Другого вроде по физике не встречается.
И тут если мы исключаем каким-либо образом GCR, то вариантов уже совсем мало, даже с поправкой на скорость вращения дисковода, на котором читаем.
По логической же организации - там море вариантов, начиная с секторная/трековая запись, наличие/отсутствие привязки к индексу и заканчивая совсем уже извратами, типа изменения последовательности следования бит.

7 Отредактировано Voldemar0 (28-01-2020 14:50)

Re: Опознавание форматов записи

Любая инфа, которая позволит опознать принадлежность формата.
Например, у меня есть диски, на которых очень часто встречаются интервалы 4 и 8 мкс. Других нет.
Я считаю, что это MX-формат ДВК. Понятно, что это может быть не единственный правильный вариант, но он наиболее вероятный, с учётом того, что:
1) ДВК была довольно таки распространена в СССР и диски оттуда же.
2) Если бы это был MFM, то, скорее всего, он бы имел либо ещё и периоды 6 мкс (если там были данные) или периоды 4 и 6 мкс, чередующиеся рядом, если почти всё заполнено 00 или FF.
3) Какие ещё распространённые компы использовали FM-формат - мне не известно.

Примерно так.
Мне не нужна большая точность, речь только о том, чтобы понять, кому эти диски могут быть интересны.
У меня нет возможности пробовать их читать на всех возможных компах. Тем более, что у них может быть разрушена служебка (FAT, BOOT.....) - опознание должно происходить по любой дорожке и на любом дисководе, без дополнительного оборудования.
Подал питание на дисковод, ткнулся осцилографом в канал чтения - и примерно уже можешь понять, о чём речь.
Я описал в первом сообщении шаблон для агатовских дисков, но хочу найти такие же шаблоны для других распространённых систем.

Например, я опознал, что группа дисков похожа на совместимый с вг93-формат - значит дальше можно уже доставать PC и уже целенаправленно натравить на них FDA. По его итогу можно уже уточнить - что это будет именно корвет/спектрум/PC.

(В общем-то, именно эти системы нам попадаются на флопиках наиболее часто. Но иногда попадается что-то другое - хочется узнать - что именно ?)

8

Re: Опознавание форматов записи

С MX по памяти так: после индекса много нулей для синхронизации (то есть FM 01010101010101),
потом то ли 373о, то ли F3h (то есть FM 11111111....).
И всё это без сбоя синхронизации (то есть без выпадающего синхробита, свойственного формату IBM)

9 Отредактировано dk_spb (28-01-2020 16:28)

Re: Опознавание форматов записи

Voldemar0 пишет:

Подал питание на дисковод, ткнулся осцилографом в канал чтения - и примерно уже можешь понять, о чём речь.

Для этого есть универсальные читалки и смотрелки.
Читалка умеет засинхронизиоваться и выдать bitstream, а уже смотрелка позволяет побитово этот поток влево-вправо двигать и видеть при этом места синхросбоев.
А осцилографом - это, конечно, круто. Еще можно предложить вместо осцилографа включать динамик, вручную крутить шпиндель  и по звуку учиться форматы определять ;-)

На примере: стартовый экран и экран после двигания bitstream стрелками. Источник в примере - файл 123.flux, но можно указать и живой дисковод.
Болдом выделено место синхросбоев.
пониманиет только FM и MFM (переключение вручную)

Post's attachments

start_screen.jpg, 206.91 kb, 731 x 795
start_screen.jpg 206.91 kb, 466 downloads since 2020-01-28 

Attachment icon view_screen.jpg 195 kb, 225 downloads since 2020-01-28 

10 Отредактировано dk_spb (28-01-2020 16:31)

Re: Опознавание форматов записи

Voldemar0 пишет:

значит дальше можно уже доставать PC и уже целенаправленно натравить на них FDA.

Это подход конца 20 века. Сейчас дисковод и платка (за 10-15$) по USB в ноутбук. Для почти всех форматов.

11 Отредактировано Voldemar0 (29-01-2020 06:08)

Re: Опознавание форматов записи

Читалки не прокатывают.
1) тот же агат, формат 140ок, на читалке может и не читаться, и я в первом сообщении написал почему: дисковод не пропускает импульсы с периодом выше 10 мкс. Какие-то дисководы пропускают, какие-то - нет. Гарантированно пропускает только мс5088 ну и, видимо, sa-400. Какая читалка позволяет зацепить мс5088 с его шаговым управлением бошкой ? Да и нету у меня её всё равно. Была SCP, но в штатном софте к ней определителя формата не было.
2) осцилограф и даже мультиметр уже позволяют отличить на том же 5088 неформатированный диск от форматированного, что заметно сокращает варианты.

И как раз описание формата MX я тоже видел в инете. Но я пока не видел битрейта этого формата. Ты знаешь какой он, с каким периодом там идут импульсы синхро и данных ?
{Я понимаю, что подходы в этой задаче могут быть разные. Но меня интересует - самый низкий физический формат}

ЗЫ Кстати, подключить динамик к голове - это не так уж и плохо и вполне логично. Если его подключить через группу делителей, то там реально будет слышен спектр сигнала, что уже позволит многое узнать. Я, по сути, сейчас и провожу анализ спектра как первый этап. Поиск синросбоев или каких-то уточняющих признаков - это уже второй этап - финальный.

12

Re: Опознавание форматов записи

PPS Однажды в ремонт притащили HP-шный стример. Разобрал - там какая-то лента обровалась, см 20 длиной, которая использовалась для вытягивания магнитной ленты из кассеты. Давно было, деталей не помню уже. Я её чуть подрезал, сделал вырез, за который она должна была держаться, но, в итоге, всё равно аппарат не заработал. Но интересно было другое: на сайте техподдержки были выложены записи звуков, которые он издаёт при нормальной работе и некоторых видах поломок :)
Ну и был там этот звук оборванной ленты загрузки - быстрое пощёлкивание.
(А когда владелец позвонил в техподдержку, чтобы договориться о платном ремонте у HP, техподдержка не верила, что у них на сайте есть такая инфа. Пока URL не отправили им :))

13 Отредактировано dk_spb (29-01-2020 10:09)

Re: Опознавание форматов записи

Voldemar0 пишет:

тот же агат, формат 140ок, на читалке может и не читаться

Зато круто читается на осцилографе ;-)
Я двухсторонние диски 140К от AppleII читаю. Да, иногда бывают проблемы, но не факт что это не от сохранности дисков.
И уж с пониманием что это 140К от AppleII _никаких_ проблем на читалке нет.
А те случаи когда вдруг 5-10 секторов не читаются, а очень нужны - можно применить и 5088
И еще раз: стоимость _универсальной_ читалки USB - 10-15$. Если кто-то по какой-то причине хочет вместо специально заточенного, простого, дешевого и удобного инструмента пользоваться осцилографом или динамиком с делителями - это его право. Но я лично этого не понимаю и считаю это странным ;-)

14

Re: Опознавание форматов записи

Как вам такое: https://commons.wikimedia.org/wiki/File … gView).jpg

15

Re: Опознавание форматов записи

Я видел, но не оценил.
Сразу вспомнился анекдот как выясняли аттрибуты обнаруженного в египетской пирамиде захоронения фараона.
Сначала английский ученые с изучением пыли через лупу - вывод с точностью 400-500 лет.
Потом японские всё лазерами промеряли - - вывод с точностью 250-300 лет.
Потом наши зашли на пару часов. Выходят, расправляют закатанные рукава и "Это фараон такой-то, похоронен в таком-то году вместе с (список)".
И на вопрос "А как Вы узнали" ответ "Да ерунда, сам сознался"

16 Отредактировано Prol (17-02-2021 21:22)

Re: Опознавание форматов записи

Voldemar0 пишет:

Кстати, подключить динамик к голове - это не так уж и плохо и вполне логично.

В теханализе финансовых рынков был в свое время интересный метод. Информация с техиндикаторов преобразовывалась в звуковые и визуальные (по типу модуля визуализации винампа) образы. И человек учился определять моменты входа и выхода, а также направление входа в рынок. Потом наделали роботов и исключили человека, как самое тормозное звено. Так что думаю метод оценки по звуку(цвету) будет работоспособен. А со временем может и магнитосканеры доступные появятся (тоже своего рода визуализация). Еще наверное ИИ можно подключить..

17

Re: Опознавание форматов записи

Я только зафиксировал  что активно мной рекомендованный год назад fluxengine всё-таки у Вас появился. Несмотря на речи по ослик и динамик ;-)
Но я прекрасно понимаю что Вы легко могли подождать пока "магнитосканеры доступные появятся"  ;-)
Поэтому ни на что не претендую ;-)

18

Re: Опознавание форматов записи

В итоге на практике, как инструмент первоначального исследования, победил анализатор спектра.
Уже не осцилограф, но ещё не полный декодер.
Это самое удобное решение для того, чтобы чётко опознать наличие записи, порой даже сильно убитой, оценить плотность, отличить MFM от GCR и от FM.

А осцилограф (или даже AC вольтметр), включенный сразу после предусилителя головки, к тому же позволяет отдельно подтвердить отсутствие записи вообще.

19 Отредактировано garnizon (12-06-2026 18:58)

Re: Опознавание форматов записи

ATARI ST. Type 765 как у PC но с изюминкой.

Суть описана тут: https://atari.8bitchip.info/FloppyMistery.php

И как это описал ИИ:

Формат дискет Atari ST — это, по сути, FAT12 с минимальными отклонениями. Atari сознательно сделала GEMDOS-файловую систему совместимой с MS-DOS, так что короткий ответ на ваш вопрос: да, образы 1.44 МБ почти наверняка открываются как обычные FAT-образы.

Что общего и что отличается
Структура идентична PC: бутсектор с BPB по тем же смещениям, две копии FAT12, корневой каталог, кластерная область данных, формат записей каталога 8.3 тот же. Отличия в бутсекторе:
На PC первый байт — переход x86 (0xEB/0xE9), на ST там либо нули, либо бранч 68000 (0x60xx) для загрузочных дискет. DOS до версии ~5.0 на это ругался, современные драйверы — нет.
Вместо сигнатуры 0x55AA в конце Atari использует контрольную сумму: дискета загрузочная, если сумма всех слов бутсектора (big-endian, по 16 бит) равна 0x1234. Для данных это неважно.
По смещению 8 лежит 24-битный серийный номер вместо части OEM-имени.
Файловая система при этом полноценный FAT12, и сами Atari HD-дискеты (Mega STE, TT, Falcon — именно они имели HD-дисководы) форматировались как 80 дорожек × 2 стороны × 18 секторов × 512 байт = 1 474 560 байт, то есть один в один PC 1.44 МБ. С DD-дискетами (720 КБ) ST-шники любили нестандартную геометрию — 10–11 секторов на дорожку, 81–83 дорожки — но образ всё равно остаётся валидным FAT, потому что геометрия описана в BPB.

У нас если что есть диски от Атари ST, причём с русскими текстами. Формат образа точно такой же DSK, только вместо ".DSK" - ".ST".

20 Отредактировано garnizon (19-08-2026 02:47)

Re: Опознавание форматов записи

Вектор 06Ц. Type 765.

Все контроллеры ведут родословную от изначального "Кишенев" и совместимы с ним
(есть еще редкий контроллер COMAN/Vector-DOS, но данное повествование к нему не имеет отношения).

Геометрия диска.
Мне записали видео с работой двух популярных форматеров.

Первый форматер по умолчанию размечает 2х80х5х1024, но самостоятельно пытается создать максимальное кол-во дорожек на диске. С учётом обычной конструкции дисководов, чаще всего получается 2х82х5х1024 = 820Кб.
Большинство физических дисков Вектора именно такие, а часть образов (которые 800кб) просто обрезаны от этих двух цилиндров. Но подавляющее большинство образов именно 820Кб.

https://forum.agatcomp.ru//misc.php?action=pun_attachment&item=1425&download=0


Второй форматер выдаёт таблицу возможных вариантов форматирования. Значения тут стандартные, но по факту и эта софтина тоже пытается создать максимальное кол-во дорожек на диске. Например самый популярный пункт 1 - всё равно будет шуровать на 82 цилиндра (0-81).
https://forum.agatcomp.ru//misc.php?action=pun_attachment&item=1426&download=0
https://forum.agatcomp.ru//misc.php?action=pun_attachment&item=1427&download=0

А, заодно предлагает выбрать порядок нумерации секторов на дорожке!?

При форматировании обе софтины заполняют сектора байтами #E5



ОС.
Располагается в самом начале диска как бесфайловое тело.
Для Вектора существовало много разных ОС, в основном на базе двух канонических: МикроДОС и cp/m.

Я перелопатил много дисков, в некоторых ОС не получилось найти хоть какой-то устойчивой сигнатуры.
Кроме того диск может быть отформатирован, но ОС не записана, тогда начало диска забито кодом #E5.
Зато очень-очень часто попадаются два случая:

1)
https://forum.agatcomp.ru//misc.php?action=pun_attachment&item=1428&download=0

Поскольку это только табличка, выводимая при загрузке, в ней могут быть варианты. Устойчиво из табличек попадаются только фразы "РДС V" и "Вектор 06Ц".



2)
https://forum.agatcomp.ru//misc.php?action=pun_attachment&item=1429&download=0

Устойчиво попадаются "MicroDOS  Vers" или полное "MicroDOS  Vers. 3.1"


Замечу что надписи могут в точности повторяются, но располагаются в чуть разных местах:
ОС располагаются в самом начале диска, но не всегда с фиксированным смещением, там есть механизм указывающий где тело ОС начинается. Ну вот и надписи могут гулять.


Прилагаю 5 образов дисков иллюстрирующих это.

Post's attachments

Attachment icon BARVINEN.FDD 820 kb, 19 downloads since 2026-08-18 

Attachment icon DOS 2_2.fdd 820 kb, 22 downloads since 2026-08-18 

Attachment icon DOS22.png 54.63 kb, 8 downloads since 2026-08-18 

Attachment icon FORM1.jpg 169.43 kb, 9 downloads since 2026-08-18 

FORM2_1.jpg, 126.08 kb, 629 x 632
FORM2_1.jpg 126.08 kb, 24 downloads since 2026-08-18 

FORM2_2.jpg, 105.55 kb, 597 x 600
FORM2_2.jpg 105.55 kb, 29 downloads since 2026-08-18 

Attachment icon MicroDOS21_310.fdd 820 kb, 20 downloads since 2026-08-18 

Attachment icon MicroDOS31_210.fdd 820 kb, 20 downloads since 2026-08-18 

Attachment icon VER31.png 51.29 kb, 15 downloads since 2026-08-18 

Attachment icon cdpacman .fdd 820 kb, 20 downloads since 2026-08-18 

21 Отредактировано garnizon (19-08-2026 17:19)

Re: Опознавание форматов записи

В целом у нескольких советских компов используется геометрия 2х80х5х1024, не считая что РС так тоже может делать.

Есть правда отличия в том, где заканчивается загрузочная область и размещается каталог. Не смотря на то, что CP\M позволяет на диске указывать где это начало, в наших системах всё загрублено до конкретных значений.

- Вектор - каталог с 8 дорожки. (но у него хотя бы 82 дорожки, и часто повторяющиеся текстовые места за что можно зацепиться)

- Корвет - каталог с 3 дорожки.

- Орион128, ПК8000 («Сура», «Веста» и т. д.) - каталог с 4 дорожки.

Эмуляторы ничего не анализируют, просто ориентируются на расширение файла, типа .fdd / .odi / .kdi .

Для того, чтобы точно дифференцировать такие диски,  нужно иметь информацию об их отличиях: это может быть постоянная сигнатура или какие-то сочетания значений в каких-то секторах файловой системы. Или любые другие идеи.

Тут нужно общаться с владельцами соответствующих систем, чтобы они могли указать какой-то критерий. Какой нибудь байт в каком нибудь секторе или строчку. Но у кого бы я не спрашивал - ничего уверенного не говорят.

22 Отредактировано avivanov76 (19-08-2026 23:30)

Re: Опознавание форматов записи

У CP/M очень неудобная для опознавания файловая система. Битовой карты нет, никаких трек/секторных списков тоже.

Формально у диска есть блок параметров (DPB), в котором описан размер секторов, расположение каталога и число зарезервированных треков. Вот только он не хранится на диске. Он либо зашит в ПЗУ BIOS или загрузчика, либо по непонятно каким правилам генерируется на лету. https://www.seasip.info/Cpm/format22.html

Чистый отформатированный диск содержит только секторы, заполненные байтами $E5. С одной стороны, для CP/M этого достаточно ($E5 - признак пустой записи каталога). С другой стороны опознавать, собственно, нечего.

Так что тут один выход: искать каталог и проверять значения всех полей для всех записей в нем. Чтобы никакие поля не выходили за установленные диапазоны, в названиях не было символов с кодом меньше пробела, и никакие файлы не пересекались друг с другом по экстентам.

Экстенты эти - вообще дичь. Каждая запись каталога описывает один экстент файла. Поскольку размер одного экстента - 16 Кб, то для файлов большего размера нужно несколько экстентов. То есть, один файл может занимать несколько записей в каталоге. И каждая запись будет описывать кусочек в 16 Кб. Соответственно, имя и все атрибуты файла будут несколько раз повторены (и не факт, что правильно).

Наверно есть смысл написать процедуру, которая будет проверять, содержит ли сектор записи каталога. Потом просканировать ей весь диск и дальше, по положению каталога определять, это диск для "Корвета", "Вектора" или "Ориона".

Вообще, первый раз про формат 5 секторов по 1Кб я узнал в связи с "Корветом". Из всех машин он самый старый, так что наверно на остальные машины CP/M тянули с него.

23 Отредактировано garnizon (20-08-2026 19:19)

Re: Опознавание форматов записи

Каталог вообще признак хороший, например та же ИРИША на сипиэм, тоже отличается от всех. У неё на диске нет системной записи (всё в  ПЗУ) и каталог прям с нулевой дорожки. Только каталог глазами легко найти, а алгоритм какой-то скорее всего будет сложно написать.

Вообще то, у них у всех (сипиэмовских - НАШИХ) каталоги в разных местах расположены, только у Орион и ПК8000 совпадают.

24

Re: Опознавание форматов записи

Поправка насчет DPB.

Я почитал про CP/M, посмотрел исходники и понял, что наврал.
Да, на диске нет специального блока с параметрами диска типа VTOC у Apple DOS.
Но дело в том, что часть CP/M под названием BDOS (базовая дисковая операционная система), хранится на диске вместе с рабочими переменными. А в них хранится и блок параметров диска DPB.

Смотрим сюда:
http://forum.agatcomp.ru//misc.php?action=pun_attachment&item=1438&download=1

Что значат эти байты:
$28 $00 - это число 128-байтовых записей на трек. (CP/M изначально была расчитана на диск со 128-байтными секторами, поэтому все меряется в них) 5 секторов по 1024 байта делим на 128, получаем 40 = $28. Значение 2-байтовое (слово).
$04 - блоковый сдвиг. На сколько нужно сдвинуть 128, чтобы получить размер блока на диске. Сдвиг 4 - это блок в 2 КБайта.
$0F - маска блока (какую часть номера записи нужно игнорировать, так как она находится в том же блоке)
$00 - маска экстента
$87 $01 - размер диска в блоках минус 1. $0187=391 блоков. Плюс 1 блок, итого 392 блока по 2 КБайт или 784 Кбайт. Резервные треки не считаются.
$7F $00 - число записей в каталоге минус 1. То есть, 128.
$C0 $00 - битовая карта секторов каталога. Два бита установлены, то есть каталог занимает первые 2 сектора.
$20 $00 - размер вектора контрольной суммы. Что это - я не совсем понял, но значение равно числу записей каталога, деленному на 4 и округленному вверх.
$08 $00 - число зарезервированных треков (8 штук)

То есть, если BDOS на диске, а не в ПЗУ, и известно, какая именно это версия CP/M, то параметры диска узнать можно.

Post's attachments

CPM_DPB.png, 4.55 kb, 537 x 113
CPM_DPB.png 4.55 kb, 55 downloads since 2026-08-20 

25 Отредактировано garnizon (21-08-2026 01:31)

Re: Опознавание форматов записи

Спрашивал я даже у Виктора Пыхонина и у других, ответ один:

корректная информация в первой записи диска встречается редко, к сожалению.

Софт просто дует по шаблону одному. Это про Вектор, про остальные пока не знаю.