nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 04:06



Reply to topic  [ 14 posts ] 
Форматы файлов для Специалиста (МХ) 
Author Message
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
По инициативе 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:
+---------+----------------------------------------------------+
|Смещение |                   Назначение                       |
+---------+----------------------------------------------------+
|  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.



04 Feb 2011 10:29
Profile
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post 
От себя добавлю (в MX-DOS):
19 - номер сектора (1-5 сторона 0, 6-10 сторона 1)
20 - номер дорожки (0-82)
Начало каталога в образе - 3000h

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


04 Feb 2011 11:36
Profile WWW
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Post 
Спасибо, добавляю.


04 Feb 2011 20:56
Profile
Devil

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


18 Apr 2011 00:12
Profile
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Ошибся, редактировал формат odi. Уточнил опытным путём раскладку байтов в заголовке файла/каталога.


Last edited by fifan on 03 Sep 2011 21:31, edited 1 time in total.



03 Sep 2011 11:42
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
Post 
не проник в смысл последнего поста...

_________________
:dj: https://mastodon.social/@Shaos


03 Sep 2011 20:13
Profile WWW
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Всё исправил. Множественное редактирование поста приводит к его копированию в конце темы.


03 Sep 2011 21:41
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22409
Location: Silicon Valley
Reply with quote
fifan wrote:
Всё исправил. Множественное редактирование поста приводит к его копированию в конце темы.


Это ежели не на ту кнопку с просонья нажать, то да ;)

_________________
:dj: https://mastodon.social/@Shaos


03 Sep 2011 21:52
Profile WWW
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Post 
Чтение дескриптора файла/каталога odi формата в эмуляторе привело меня к уточнённой формуле нахождения файла/дескриптора подкаталога:

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

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

Интересно какое максимальное количество файлов/каталогов может быть в текущем каталоге?


03 Sep 2011 22:04
Profile
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Post 
Т.к. мы хотим использовать SD карточку для чтения/записи специалистовских форматов файлов (bin, rks, odi) то наверное стоит поместить сюда формат дескриптора файла записанного на SD карту:
Code:
+--------+-------------------------------------------------+
|Смещение|                   Назначение                    |
+--------+-------------------------------------------------+
|  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.



14 Jan 2012 23:23
Profile
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Post 
HardWareMan wrote:
Тогда уж FAT сразу сюда кидай.

Не юзал. У тебя есть? Дай на английском, переведу и выложу.


15 Jan 2012 05:56
Profile
Devil

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


15 Jan 2012 09:19
Profile
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Post 
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.


15 Jan 2012 10:02
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
HardWareMan wrote:
Давай называть вещи называть своими именами: если говорим о vFAT, то говорить надо все согласно докам.

Ты же сам давал хорошую ссылку!


15 Jan 2012 10:58
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 14 posts ] 

Who is online

Users browsing this forum: No registered users and 9 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.