FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups nedoPC.org    
 Donate Bitcoins to support nedoPC.org: 1F2d97c5oUpk7v3jzfy5RvdmYgMm3epMZi
 Not tax-deductible! All transactions are public and irreversible! No goods or cash in exchange!
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in    
 
Форматы файлов для Специалиста (МХ)

 
Post new topic   Reply to topic    nedoPC.org Forum Index -> Spetsialist

fifan Reply with quote
Retired


Joined: 06 Oct 2006
Posts: 234

PostPosted: 04 Feb 2011 13:29    Post subject: Форматы файлов для Специалиста (МХ)
 
По инициативе 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 15 Jan 2012 01:41; edited 10 times in total
Back to top
View user's profile Send private message

b2m Reply with quote
Doomed


Joined: 26 May 2003
Posts: 627

PostPosted: 04 Feb 2011 14:36    Post subject:
 
От себя добавлю (в MX-DOS):
19 - номер сектора (1-5 сторона 0, 6-10 сторона 1)
20 - номер дорожки (0-82)
Начало каталога в образе - 3000h
_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
Back to top
View user's profile Send private message Visit poster's website

fifan Reply with quote
Retired


Joined: 06 Oct 2006
Posts: 234

PostPosted: 04 Feb 2011 23:56    Post subject:
 
Спасибо, добавляю.
Back to top
View user's profile Send private message

fifan Reply with quote
Retired


Joined: 06 Oct 2006
Posts: 234

PostPosted: 18 Apr 2011 03:12    Post subject:
 
Добавил в первый топик информацию о odi формате от Леонида Афанасьева.
Back to top
View user's profile Send private message

fifan Reply with quote
Retired


Joined: 06 Oct 2006
Posts: 234

PostPosted: 03 Sep 2011 14:42    Post subject: Re: Форматы файлов для Специалиста (МХ)
 
Ошибся, редактировал формат odi. Уточнил опытным путём раскладку байтов в заголовке файла/каталога.

Last edited by fifan on 04 Sep 2011 00:31; edited 1 time in total
Back to top
View user's profile Send private message

Shaos Reply with quote
Admin


Joined: 09 Jan 2003
Posts: 12577
Location: New York

PostPosted: 03 Sep 2011 23:13    Post subject:
 
не проник в смысл последнего поста...
_________________
XMPP:shaos@jabber.org
Back to top
View user's profile Send private message Send e-mail Visit poster's website

fifan Reply with quote
Retired


Joined: 06 Oct 2006
Posts: 234

PostPosted: 04 Sep 2011 00:41    Post subject: Re: Форматы файлов для Специалиста (МХ)
 
Всё исправил. Множественное редактирование поста приводит к его копированию в конце темы.
Back to top
View user's profile Send private message

Shaos Reply with quote
Admin


Joined: 09 Jan 2003
Posts: 12577
Location: New York

PostPosted: 04 Sep 2011 00:52    Post subject: Re: Форматы файлов для Специалиста (МХ)
 
fifan wrote:
Всё исправил. Множественное редактирование поста приводит к его копированию в конце темы.


Это ежели не на ту кнопку с просонья нажать, то да
_________________
XMPP:shaos@jabber.org
Back to top
View user's profile Send private message Send e-mail Visit poster's website

fifan Reply with quote
Retired


Joined: 06 Oct 2006
Posts: 234

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

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

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

Интересно какое максимальное количество файлов/каталогов может быть в текущем каталоге?
Back to top
View user's profile Send private message

fifan Reply with quote
Retired


Joined: 06 Oct 2006
Posts: 234

PostPosted: 15 Jan 2012 02:23    Post subject:
 
Т.к. мы хотим использовать 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 13:01; edited 2 times in total
Back to top
View user's profile Send private message

fifan Reply with quote
Retired


Joined: 06 Oct 2006
Posts: 234

PostPosted: 15 Jan 2012 08:56    Post subject:
 
HardWareMan wrote:
Тогда уж FAT сразу сюда кидай.

Не юзал. У тебя есть? Дай на английском, переведу и выложу.
Back to top
View user's profile Send private message

fifan Reply with quote
Retired


Joined: 06 Oct 2006
Posts: 234

PostPosted: 15 Jan 2012 12:19    Post subject:
 
HardWareMan wrote:
У меня есть даже лучше.
Сложнее. Да и для первого знакомства с считыванием с SD карты дескриптора вполне хватает.
Back to top
View user's profile Send private message

fifan Reply with quote
Retired


Joined: 06 Oct 2006
Posts: 234

PostPosted: 15 Jan 2012 13:02    Post subject:
 
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.
Back to top
View user's profile Send private message

Lavr Reply with quote
Super God


Joined: 21 Oct 2009
Posts: 7781
Location: Россия

PostPosted: 15 Jan 2012 13:58    Post subject:
 
HardWareMan wrote:
Давай называть вещи называть своими именами: если говорим о vFAT, то говорить надо все согласно докам.

Ты же сам давал хорошую ссылку!
Back to top
View user's profile Send private message
Post new topic   Reply to topic    nedoPC.org Forum Index -> Spetsialist
Page 1 of 1

Choose Display Order
Display posts from previous:   
User Permissions
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 vote in polls in this forum

 
Jump to:  


Skin Created by Sigma12 and modified by Shaos
Powered by phpBB © 2001-2005 phpBB Group