Форматы файлов для Специалиста (МХ)

Обсуждение советского компьютера Фахiвець / Специалист и его развитие

Moderator: Lavr

User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Форматы файлов для Специалиста (МХ)

Post by fifan »

По инициативе HardWareManа открываю новую тему по форматам файлов для Специалиста (МХ). Перечисляю расширения файлов используемых для хранения данных на Специалистах:

1. rom и bin. Обычные дампы памяти. В них содержится копия памяти компьютера. Обычно применяется для прошивки ПЗУ. Никаких дискрипторов в файлах нет.

2. rks.
Сначало идёт дескриптор:
2 байта адрес загрузки программы, он же начальный;
2 байта конечный адрес программы;
Потом идёт сам дамп памяти.
В конце два байта - контрольная сумма дампа памяти.
Адрес и размер в дискрипторе в нотации i8080, т. е. младший байт первым.

3. i80, cpu. файлы-программы для эмулятора spmx4 Александра Шевцова. Все файлы-программы состоят из двух файлов с одинаковыми именами, но разными расширениями. Файлы с расширением i80 - представляют собой собственно сами программы, т.е. набор двоичных кодов микропроцессора i8080(К580ВМ80). Файлы с расширением - cpu являются сопроводителями файлов i80, они указывают эмулятору куда загружать файл-программу и с какого адреса ее запускать. Сопроводительный файл представляет собой обычный текстовый файл. Все записи в этом текстовом файле нужно делать с первой позиции курсора. В первую строку текста записывается шестнадцатеричный адрес загрузки файла i80 в эмулятор(4 символа), во вторую строку записывается шестнадцатеричный адрес старта файла i80 (тоже 4 символа) и, наконец, в третью строку записывается полное имя файла-монитора, с которым работает данная программа i80 (если имя монитора не указано, то это означает, что файл i80 может исполняться с любым монитором).

4. odi. файл-образ дискеты от ПК "Специалист_МХ". Эти файлы представляют собой образы дискет 3.5" и 5.25" - 80 дорожек/2 стороны/5 секторов объемом 1024 байта на одну дорожку с одной стороны, т.е. это образы стандартных для "Специалиста_МХ" MX_DOS и CP/M дискет. Опознать диск можно по стрингу "Dos_MX V3.6", который находится по смещению 5, в первом секторе нулевой дорожки.

Файл-образ дискеты формируется так: 5 секторов нижней стороны дорожки дискеты, следом 5 секторов верхней стороны дорожки дискеты и т.д. В итоге понятие стороны дорожки исчезает. Получается разбивка образа диска: 80 дорожек, 10 секторов, по 1024 байта каждый. Шаг сектора 0400h. Шаг дорожки 1400h. Общий размер файла 819200 байтов.

Структура диска:
0000-27FFh - 10 секторов нулевой дорожки отведены под MX_DOS.
2800-2FFFh - 2 сетора первой дорожки отведены под FAT. В том числе:
2800-29AFh - файловая таблица выводимая MX_DOS на экран.
29B0-2FFFh - таблица FAT.
3000-33FFh - сектор корневого каталога (если сектор не дефектный, иначе любой другой свободный).
3400... - поле секторов пользователя.

Структура FAT:
Представляет собой план секторов диска. Шаг ячейки сектора 2 байта. Общий размер таблицы 1600 байт. Первые системные ячейки MX_DOS и FAT обозначены кодом 53h("S"). Незанятые сектора обозначены в ячейке байтами 00h 00h. Каталоги помечены в ячейке байтами EBh 00h.

Структура заголовка файла/каталога подобна структуре заголовка на RAM и ROM дисках:

Code: Select all

+---------+----------------------------------------------------+
|Смещение |                   Назначение                       |
+---------+----------------------------------------------------+
|  0   0h |3 байта D3h - признак заголовка                     |
|  3   3h |8 байт  имени                                       |
| 11  0Bh |1 байт  пробел                                      |
| 12  0Ch |3 байта расширение (тип файла)                      |
| 15  0Fh |1 байт - 8Ch/8Bh - признак сохранённости/           |
|         |несохранённости файла (используется в RAMFOS)       |
| 16  10h |3 байта - дата: число, месяц и год в двоично-       |
|         |десятичном формате (например, число 21 будет 21h)   |
| 19  13h |1 байт - номер 1-го сектора дорожки (1...5 -        |
|         |0-я сторона, 6...10 - 1-я сторона)                  |
| 20  14h |1 байт - номер 1-ой дорожки (0...79)                |
| 21  15h |2 байта (слово) объем файла/каталога в Кбайтах      |
| 23  17h |1 байт  - 00h/FFh - признак файла/каталога          |
| 24  18h |2 байта - начальный (стартовый) адрес загрузки файла|
| 26  1Ah |2 байта - конечный адрес загрузки файла             |
| 28  1Ch |2 байта - контрольная сумма файла                   |
| 30  1Eh |2 байта (используются в RAMFOS, назначение не ясно) | 
+---------+----------------------------------------------------+
Чтение файлов производится в следующей последовательности:
Из заголовка файла берется адрес первого сектора. По нему определяется адрес сектора на диске - (10 * (номер дорожки) + (номер сектора)) * (шаг сектора). С этого адреса сектор считывается. Далее по тому же адресу сектора определяется адрес его ячейки в FATе. Формула та же. Только вместо шага сектора используется шаг ячейки. В поле ячейки этого сектора берется адрес следующего сектора и т.д. Прерывается цепочка при встрече в поле ячейки байтов AAh 00h. Размер последнего прочитанного сектора уточняется по конечному адресу файла.
Last edited by fifan on 14 Jan 2012 22:41, edited 10 times in total.
b2m
Devil
Posts: 907
Joined: 26 May 2003 06:57

Post by b2m »

От себя добавлю (в MX-DOS):
19 - номер сектора (1-5 сторона 0, 6-10 сторона 1)
20 - номер дорожки (0-82)
Начало каталога в образе - 3000h
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Post by fifan »

Спасибо, добавляю.
User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Post by fifan »

Добавил в первый топик информацию о odi формате от Леонида Афанасьева.
User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: Форматы файлов для Специалиста (МХ)

Post by fifan »

Ошибся, редактировал формат odi. Уточнил опытным путём раскладку байтов в заголовке файла/каталога.
Last edited by fifan on 03 Sep 2011 21:31, edited 1 time in total.
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

не проник в смысл последнего поста...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: Форматы файлов для Специалиста (МХ)

Post by fifan »

Всё исправил. Множественное редактирование поста приводит к его копированию в конце темы.
User avatar
Shaos
Admin
Posts: 24011
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Форматы файлов для Специалиста (МХ)

Post by Shaos »

fifan wrote:Всё исправил. Множественное редактирование поста приводит к его копированию в конце темы.
Это ежели не на ту кнопку с просонья нажать, то да ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Post by fifan »

Чтение дескриптора файла/каталога odi формата в эмуляторе привело меня к уточнённой формуле нахождения файла/дескриптора подкаталога:

Адрес в файле odi = [(номер 1-ой дорожки*10) + номер 1-го сектора-1]*1024,

где 1024 - шаг сектора.

Интересно какое максимальное количество файлов/каталогов может быть в текущем каталоге?
User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Post by fifan »

Т.к. мы хотим использовать SD карточку для чтения/записи специалистовских форматов файлов (bin, rks, odi) то наверное стоит поместить сюда формат дескриптора файла записанного на SD карту:

Code: Select all

+--------+-------------------------------------------------+
|Смещение|                   Назначение                    |
+--------+-------------------------------------------------+
|  0 00h |8 байт - имя файла                               |
|  8 08h |3 байта - расширение файла                       |
| 11 0ch |1 байт - атрибуты файла: биты 7,6 = 00, бит 5 -  |
|        |архивный, бит 4 - только для чтения, бит 3 -     |
|        |системный, бит 2=0, бит 1 - каталог, бит 0 - том |
| 22 16h |2 байта - время создания файла: биты 15...11 -   |
|        |часы (0...23); биты 10...5 - минуты (0...59);    |
|        |биты 4...0 - счётчик секунд (0...29 -> 0...58 с.)|
| 24 18h |2 байта - дата создания файла: биты 15...9 - год |
|        |(0 = 1980, 127 = 2107); биты 8...5 - месяц       |
|        |(1...12); биты 4...0 - день (1...31)             |
| 26 1ah |2 байта - номер 1-го кластера                    |
| 28 1ch |4 байта - размер файла                           |
+--------+-------------------------------------------------+
Last edited by fifan on 15 Jan 2012 10:01, edited 2 times in total.
User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Post by fifan »

HardWareMan wrote:Тогда уж FAT сразу сюда кидай.
Не юзал. У тебя есть? Дай на английском, переведу и выложу.
User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Post by fifan »

HardWareMan wrote:У меня есть даже лучше.
Сложнее. Да и для первого знакомства с считыванием с SD карты дескриптора вполне хватает.
User avatar
fifan
Devil
Posts: 912
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Post by fifan »

HardWareMan wrote:Давай называть вещи называть своими именами: если говорим о vFAT, то говорить надо все согласно докам.
Нашёл краткое описание FAT - http://piclist.ru/S-FAT-MMC-RUS/S-FAT-MMC-RUS.html или http://piclist.ru/D-SD-MMC-P-RUS/D-SD-MMC-P-RUS.html.
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

HardWareMan wrote:Давай называть вещи называть своими именами: если говорим о vFAT, то говорить надо все согласно докам.
Ты же сам давал хорошую ссылку!