| |
| fifan |
|
Retired
Joined: 06 Oct 2006 Posts: 234
|
Posted: 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 |
|
| b2m |
|
Doomed
Joined: 26 May 2003 Posts: 627
|
Posted: 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 |
|
| fifan |
|
Retired
Joined: 06 Oct 2006 Posts: 234
|
Posted: 04 Feb 2011 23:56 Post subject: |
| |
| Спасибо, добавляю. |
|
| Back to top |
|
| fifan |
|
Retired
Joined: 06 Oct 2006 Posts: 234
|
Posted: 18 Apr 2011 03:12 Post subject: |
| |
| Добавил в первый топик информацию о odi формате от Леонида Афанасьева. |
|
| Back to top |
|
| fifan |
|
Retired
Joined: 06 Oct 2006 Posts: 234
|
Posted: 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 |
|
| Shaos |
|
Admin

Joined: 09 Jan 2003 Posts: 12577 Location: New York
|
Posted: 03 Sep 2011 23:13 Post subject: |
| |
не проник в смысл последнего поста... _________________ XMPP:shaos@jabber.org |
|
| Back to top |
|
| fifan |
|
Retired
Joined: 06 Oct 2006 Posts: 234
|
Posted: 04 Sep 2011 00:41 Post subject: Re: Форматы файлов для Специалиста (МХ) |
| |
| Всё исправил. Множественное редактирование поста приводит к его копированию в конце темы. |
|
| Back to top |
|
| Shaos |
|
Admin

Joined: 09 Jan 2003 Posts: 12577 Location: New York
|
Posted: 04 Sep 2011 00:52 Post subject: Re: Форматы файлов для Специалиста (МХ) |
| |
| fifan wrote: | | Всё исправил. Множественное редактирование поста приводит к его копированию в конце темы. |
Это ежели не на ту кнопку с просонья нажать, то да  _________________ XMPP:shaos@jabber.org |
|
| Back to top |
|
| fifan |
|
Retired
Joined: 06 Oct 2006 Posts: 234
|
Posted: 04 Sep 2011 01:04 Post subject: |
| |
Чтение дескриптора файла/каталога odi формата в эмуляторе привело меня к уточнённой формуле нахождения файла/дескриптора подкаталога:
Адрес в файле odi = [(номер 1-ой дорожки*10) + номер 1-го сектора-1]*1024,
где 1024 - шаг сектора.
Интересно какое максимальное количество файлов/каталогов может быть в текущем каталоге? |
|
| Back to top |
|
| fifan |
|
Retired
Joined: 06 Oct 2006 Posts: 234
|
Posted: 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 |
|
| fifan |
|
Retired
Joined: 06 Oct 2006 Posts: 234
|
Posted: 15 Jan 2012 08:56 Post subject: |
| |
| HardWareMan wrote: | | Тогда уж FAT сразу сюда кидай. |
Не юзал. У тебя есть? Дай на английском, переведу и выложу. |
|
| Back to top |
|
| fifan |
|
Retired
Joined: 06 Oct 2006 Posts: 234
|
Posted: 15 Jan 2012 12:19 Post subject: |
| |
| HardWareMan wrote: | | У меня есть даже лучше. | Сложнее. Да и для первого знакомства с считыванием с SD карты дескриптора вполне хватает. |
|
| Back to top |
|
| Lavr |
|
Super God

Joined: 21 Oct 2009 Posts: 7781 Location: Россия
|
Posted: 15 Jan 2012 13:58 Post subject: |
| |
| HardWareMan wrote: | | Давай называть вещи называть своими именами: если говорим о vFAT, то говорить надо все согласно докам. |
Ты же сам давал хорошую ссылку! |
|
| Back to top |
|
| Choose Display Order |
|
| 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
|
Skin Created by Sigma12 and modified by Shaos Powered by phpBB © 2001-2005 phpBB Group
|
 |