RUЭВМ
Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.
Март 2024
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
25262728293031

Календарь Календарь

Последние темы
» Вити больше нет!
автор bug19 Пн Фев 20 2023, 19:54

» Собираем оригинальный Орион 128
автор bug19 Пн Фев 20 2023, 19:47

» Проблема плющеного экрана ОРИОНА
автор kanzler Пн Ноя 28 2022, 12:05

» Орион 128 и его клоны возрождение 2019-2022 год
автор kanzler Пн Ноя 28 2022, 12:03

» Электроника КР-04. Информация, документы, фото.
автор kanzler Пн Ноя 28 2022, 12:02

» Новости форума
автор kanzler Пн Ноя 28 2022, 11:52

» Орион-128 НГМД запуск 2021 года
автор matrixplus Сб Сен 10 2022, 17:36

» ПЗУ F800 для РК86
автор ведущий_специалист Сб Сен 10 2022, 10:37

» Микропроцессорная лаборатория "Микролаб К580ИК80", УМК-80, УМПК-80 и др.
автор Электротехник Вт Июл 26 2022, 19:33

» Орион-128 SD карта в Орионе
автор matrixplus Чт Июн 02 2022, 09:00

» 7 Мая. День Радио!
автор Viktor2312 Чт Май 12 2022, 10:58

» Серия: Массовая радио библиотека. МРБ
автор Viktor2312 Ср Май 11 2022, 12:17

» Полезные книги
автор Viktor2312 Пн Май 09 2022, 15:07

» Орион 128 Стандарты портов и системной шины Х2
автор matrixplus Вс Май 08 2022, 23:08

» Орион-128 и Орион ПРО еще раз про блоки питания
автор matrixplus Вс Май 08 2022, 19:09

» Орион-128 Программаторы
автор matrixplus Вс Май 08 2022, 19:02

» Орион ПРО история сборки 2021 до 2022
автор matrixplus Вс Май 08 2022, 18:47

» Анонсы монет (New coin).
автор Viktor2312 Сб Май 07 2022, 23:11

» Хочу свой усилок для квартиры собрать не спеша
автор Viktor2312 Сб Май 07 2022, 19:33

» Амфитон 25у-002С
автор Viktor2312 Сб Май 07 2022, 09:38

» Майнер: T-Rex
автор Viktor2312 Вс Май 01 2022, 09:12

» GoWin. Изучение документации. SUG100-2.6E_Gowin Software User Guide. Среда разработки EDA.
автор Viktor2312 Пн Апр 25 2022, 01:01

» GoWin. Изучение документации. UG286-1.9.1E Gowin Clock User Guide.
автор Viktor2312 Сб Апр 23 2022, 18:22

» GoWin. Documentation Database. Device. GW2A.
автор Viktor2312 Ср Апр 20 2022, 14:08

» GOWIN AEC IP
автор Viktor2312 Ср Апр 20 2022, 12:08

Самые активные пользователи за месяц
Нет пользователей

Поиск
 
 

Результаты :
 


Rechercher Расширенный поиск


ПЭВМ Специалист МХ: Операционная система MX OS (файловая система, карта памяти, точки входа)

Перейти вниз

ПЭВМ Специалист МХ: Операционная система MX OS (файловая система, карта памяти, точки входа) Empty ПЭВМ Специалист МХ: Операционная система MX OS (файловая система, карта памяти, точки входа)

Сообщение  alemorf Ср Янв 23 2019, 11:53

1
MXOS - такое название операционной системе дал я, потому что оригинального названия я не нашел. В дизассемблированной мной системе содержались лишь строки: "BIOS 4.40", "COMMANDER VERSION 1.4", "(C) OMSK 1992". Пользователи называли её просто "коммандер".

MXOS это альтернативная операционная система для компьютера Специалист МХ, которая используется вместо RAMFOS. MXOS не совместима с RAMFOS и с Монитором стандартного Специалиста.

Внешний вид
ПЭВМ Специалист МХ: Операционная система MX OS (файловая система, карта памяти, точки входа) Mxos110

В отличии от RAMFOS эта операционная система написана более грамотно. Основные отличия это:

• MXOS более быстрая.
• Обладает более приятным интерфейсом напоминающим Norton Commander.
• Имя файла 6+3 символа. Папки так же не поддерживаются.
• Максимальный размер накопителя 64 Кб.
• Поддерживается 8 накопителей (A:-H:).
• Максимальное кол-во файлов на накопителе - 48 шт, но список на экране
отображает лишь 36 файлов. Вы не можете выбрать 37-ой по счету и больше файл курсором,
удалить или скопировать его, но можете запустить его, введя его имя с клавиатуры.
• Максимальный размер файла 64 Кб, но оболочка может работать лишь с ~36 Кб файлами. При попытке скопировать (и т.п.) файл большего размера происходит зависание или перезагрузка компьютера.
• Поддерживаются BAT-файлы
• Поддерживается передача аргументов запускаемым программам.
• Поддерживается файл автозапуска AUTOEX.BAT. Вы можете разместить в нем загрузку драйверов. Если при запуске компьютера зажать клавишу ?, то MXOS пропустит запуск файла AUTOEX.BAT.
• Любое расширение файла можно привязать к любой программе. Список соответствий хранится в файле NC.EXT.
• Для работы с накопителями используются драйверы. Чтение и запись данных происходит 256 байтными блоками. В RAMFOS доступ побайтный, хаотичный и частый, что не позволяет подключить дисковод или SD карту. Драйвера дисковода для MXOS я не видел. Есть драйвер для ПЗУ подключаемого к параллельному порту.
• Файлы могут фрагментироваться. Формат файловой системы напоминает FAT.
• Используется раскладка клавиатуры стандартного Специалиста, а не Специалиста MX.
• Нет поддержки звука на основе КР580ВИ53.
• Нет поддержки цвета. Исправлено мной. Условная компиляция DISABLE_COLOR_BUG.
• Нет системного (общего для всех программ) диалога выбора файла.
• Поддерживается значительно меньше ESC-кодов вывода на экран.
• Поддерживаются две кодировки KOI-7 и KOI-8, переключаемые как с клавиатуры, так и ESC-последовательностями: ESC+( и ESC+).

Оригинальная MXOS поддерживает лишь 64 Кб дополнительного ОЗУ, которые используется как накопитель B:. Запуск с большим объемом дополнительной памяти приводит к зависанию, так как в порт выбора страницы ОЗУ записывается случайное число. Исправленная мной версия (условная компиляция BIG_MEM) поддерживает 448 Кб дополнительной памяти, которая отображается как 7 накопителей от B: до H:.

ПЗУ отображается как накопитель A:. У Специалиста МХ максимальный объем ПЗУ 48 кБ. Для компьютера Специалист МХ2 я добавил поддержку ПЗУ объемом 64 Кб. Включается условной компиляцией ROM_64K.

Функциональные клавиши выполняют следующие команды:

• ESC - Очистка командной строки.
• TAB - Переход между панелями.
• F1, F2 - Выбор накопителя для левой и правой панели.
• F3 - Отображение на неактивной панели информации о накопителе активной панели (как на фото выше).
• F4 - Запуск внешнего редактора E.COM для выбранного файла.
• F5 - Копирование файла.
• F6 - Изменение имени файла / перемещение.
• F7 - Загрузка файлов с магнитной ленты на накопитель.
• F8 - Удаление файла.
• F9 - Сохранение файла с накопителя на магнитную ленту.

Формат файловой системы

Максимальный размер накопителя 64 кБ. Операционная система адресует накопитель 256 байтными блоками.

В блоке 0 находится таблица FAT, 256 чисел. Каждое число описывает блок на диске. Если число равно 0, значит блок свободен.

В блоках 1 - 3 находится список файлов. 48 записей по 16 байт на каждую. Если первый байт записи содержит FFh, значит запись пустая. Структура записи следующая:

• 6 байт - имя файла
• 3 байта - расширение файла
• 1 байт - атрибуты файла
• 2 байт - адрес загрузки файла
• 2 байт - длина файла - 1
• 1 байт - ?
• 1 байт - номер первого блока файла

Что бы узнать номер блока следующего за блоком N, надо прочитать в блоке 0 число по адресу N. Если прочитанное число равно N, значит блок N был последним в файле. Иначе это число номер следующего блока.

Если файловая система находится в ПЗУ, то первые 3 числа нулевого блока будут содержать код команды JMP. После включения или перезагрузки компьютера центральный процессор начинает выполнять программу с нулевого адреса этой ПЗУ. Эти 3 числа не используются для хранения файлов, так как соответствующие блоки используются таблицей FAT и списком файлов.

Если файловая система находится в дополнительном ОЗУ, то блок 255 имеет размер 192 байта, т.к. последние 64 байта ОЗУ аппаратно недоступны. Блок 255 не используется для хранения файлов. Оболочка NC.COM сохраняет своё состояние в этом блоке, по адресам FF00h - FF0Ah.

В оригинальной системе ПЗУ по адресам 800h-FFFh содержит знакогенератор. Работа со знакогенератором из ПЗУ медленна, а так же не удобно то, что операционная система не может работать без ПЗУ. Я добавил условную компиляцию LOAD_FONT, что бы шрифт вместе с ОС загружался в оперативную память.

Файл DOS.SYS. Ядро операционной системы.

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

Точки входа. Более подробную информацию смотри в исходных кодах по ссылке внизу страницы.

АдресИмяОписание
C800hrebootЗапуск файла A:NC.COM
C803hgetchВвод символа с клавиатуры; A-код
C806htapeReadВвод байта с ленты; A-код; если ошибка, то происходит переход на адрес по адресу 8FE1h
C809hprintCharВывод байта на экран; C-код
C80СhtapeWriteВывод байта на ленту; C-байт
C80FhinputВвод строки с клавиатуры
C812hkeyScanВвод кода нажатой клавиши; A-код; иначе-0FFh
C815hprintHexByteВывести 16-ричное число на экран; A-число
C818hprintStringВывод строки символов на экран, до нулевого байта; HL-начало строки
C81BhkeyScanВвод кода нажатой клавиши; A-код; иначе-0FFh
C81EhgetCursorPosПолучить координаты курсора в HL (координаты в пикселях)
C821hsetCursorPosУстановить координаты курсора из HL (координаты в пикселях)
0C824htapeLoadЗагрузить программу с ленты
0C827htapeSaveСохранить программу на ленту
0C82AhcalcCrcРасчет контрольной суммы
C82DhprintHexWordВывести 16-ричное число на экран; HL-число
C830hgetMemTopПолучить объем доступной памяти; HL-объем
C833hsetMemTopУстановить объем доступной памяти; HL-объем
C836hprinterВывод байта на принтер
C838h-Переход на 0C800h
C83Сhreboot2Запустить A:NC.COM (стандартную точку С800h можно изменить)
C83FhfileListПолучить список файлов
C842hfileGetSetDriveПолучить/установить активное устройство
C845hfileCreateСоздать файл
C848hfileLoadЗагрузить файл по адресу из заголовка этого файла
C84BhfileDeleteУдалить файл
C84EhfileRenameПереименовать файл
C851hfileLoadInfoЗагрузить информацию о файле
C854hfileGetSetAddrПолучить/установить адрес загрузки файла
C857hfileGetSetAttrПолучить/установить атрибуты файла
C85AhfileNamePrepareПреобразовать имя файла во внутренний формат
C85DhfileExecЗапустить файл
C860hinstallDriverУстановить драйвер накопителя
C863hdiskDriverДрайвер выбранного диска
C866hfileLoad2Загрузить файл по адресу

Системный переменные:

АдресРазмерИмяОписание
8FE1h2 байтаtapeErrorАдрес куда происходит переход при ошибке чтения с ленты
8FE3h2 байтаtapeAddrАдрес программы загруженной с ленты
8FE7h2 байтаcharGenАдрес альтернативного знакогенератора; адрес необходимо разделить на 8
8FE9h1 байтcursorCfgВнешний вид курсора (7 - бит видимость, 654 - положение, 3210 - высота)
8FEAh1 байтkoi80FFh=включен KOI-8, 0=включен KOI-7
8FEBh1 байтescModeОбработка ESC-последовательности
8FECh1 байтkeyLocksСостояние клавиш CAPS LOCK и РУС/LAT
8FEFh2 байтаlastKeyДве последние нажатые клавиши
8FF1h2 байтаbeepДлительность и частота звукового сигнала
8FF4h1 байтrepeatЗадержка повтора клавиш
8FFAh2 байтаinverse0=нормальный текст, 0FFFFh=инверсный текст
8FFCh1 байтcursorYПоложение курсора по вертикали в пикселях
8FFDh1 байтcursorXПоложение курсора по горизонтали в пикселях / 2
8FFEh1 байтwriteDelayСкорость при записи на ленту
8FFFh1 байтreadDelayСкорость при чтении с ленты

Карта памяти:

АдресРазмерОписание
0000h - 8FDEh36830 байтСвободная память
8FDFh - 8FFFh33 байтаСистемные переменные
9000h - BFFFh12 КбЭкран
C000h - СFFFh4 КбDOS.SYS (после ~CE94h свободно)
D000h - E1FFh4608 байтNC.COM (после ~E11Bh свободно) / FORMAT.COM
E200h - FAFFh6 КбРезерв под драйвера
FB00h - FDFFh768 байтДисковый буфер
FF00h - FF81h130 байтКоммандная строка. Заполняется fileExec
FF82h - FFC0h62 байтаСтек
FFC0h - FFEFh32 байтаDOS.SYS
FFD0h - FFFFh32 байтаПорты ввода-вывода

Посмотреть исходный код MXOS


Последний раз редактировалось: alemorf (Ср Янв 23 2019, 13:53), всего редактировалось 3 раз(а)

alemorf
Мастер

Сообщения : 232
Дата регистрации : 2018-12-17

http://alemorf.ru/

Вернуться к началу Перейти вниз

ПЭВМ Специалист МХ: Операционная система MX OS (файловая система, карта памяти, точки входа) Empty .

Сообщение  barsik Ср Янв 23 2019, 12:40

2
Т.е это намного более грамотная ORDOS. В ORDOS ограничение в 64К потому, что адресация файлов на диске производится 16-ти разрядным адресом. А здесь, полагаю, это ограничение из-за того, что при адресации файла блоками по 100H, т.е одиним байтом, забыли в каталоге резервировать ещё один байт, чтобы номер блока на диске задавался не одним байтом, а двумя. Что дало бы объём диска в 16 мб.

Видимо эта неприятность случилась, из-за экономии размера каталоговой записи, как и то, что имя файла ограничили в 6 букв (в RK-DOS аж 10 букв для имени и 3 для расширения и ещё есть атрибут).

Интересно, файл пишется только сплошным блоком (и диск схлопывается после удаления, как в ORDOS) или есть дефрагментация. Исходник посмотреть не могу, - сложно ли DOS чуть доработать до большего размера диска, чтобы можно было применить в компьютере с большим ОЗУ для RAM-диска, или даже (если нет сдвижки массивов при удалении) то в компьютере с нормальными приводами.

Github не пускает мой браузер, потому всё, что там выложено, я не смотрю. Да и с другим браузером, там просто неудобно что-то скачивать.


Последний раз редактировалось: barsik (Ср Янв 23 2019, 13:29), всего редактировалось 1 раз(а)
barsik
barsik
Ветеран

Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия

Вернуться к началу Перейти вниз

ПЭВМ Специалист МХ: Операционная система MX OS (файловая система, карта памяти, точки входа) Empty Re: ПЭВМ Специалист МХ: Операционная система MX OS (файловая система, карта памяти, точки входа)

Сообщение  alemorf Ср Янв 23 2019, 13:28

3
barsik пишет:А здесь, полагаю, это ограничение из-за того, что при адресации файла блоками по 100H.

Да, тут размер кластера 256 байт. Из чего следует полезный объем накопителя в 251 * 256 = 64256 байт. Если увеличить кластер до 1 Кб, то полезный объем составит 251 * 1024 = 257024 байт. Доработки минимальные.

barsik пишет:т.е одиним байтом, забыли в каталоге резервировать ещё один байт, чтобы номер блока на диске задавался не одним байтом, а двумя. Что дало бы объём диска в 16 мб.

Если увеличить номер кластера до 12 или 16 бит, то надо расширять и таблицу FAT. Сейчас таблица FAT занимает один кластер, после этой доработки она будет занимать несколько кластеров. Надо будет вносить значительные изменения в код ОС.

barsik пишет:Интересно, файл пишется только сплошным блоком или есть дефрагментация.

Файлы фрагментируются, как в обычной FAT12,16,32.

barsik пишет:Каков размер ДОС и сложно ли её чуть доработать до большего размера диска, чтобы можно было применить в ЭВМ с нормальными приводами или большим ОЗУ для RAM-диска?

Сама система 4 килобайта + оболочка 4 килобайта.

alemorf
Мастер

Сообщения : 232
Дата регистрации : 2018-12-17

http://alemorf.ru/

Вернуться к началу Перейти вниз

ПЭВМ Специалист МХ: Операционная система MX OS (файловая система, карта памяти, точки входа) Empty .

Сообщение  barsik Ср Янв 23 2019, 13:35

4
alemorf пишет:Сейчас таблица FAT занимает один кластер, после этой доработки она будет занимать несколько кластеров
Не понял там что нечто подобное MSDOS или Вы просто таким термином обозвали таблицу занятости блоков? Обычно если это битовая таблица занятости, то её называют AllocTable (CP/M) или VTOC - Volume Table Of Contents (Apple-DOS и PRODOS).

alemorf пишет:Если увеличить кластер до 1 Кб, то полезный объем составит 251 * 1024 = 257024 байт
Для RAM-диска лучше до 512 байт, более 128 кб в ИРИШЕ излишнего ОЗУ не будет. Это выгоднее потому, что меньше размер дискового буфера (отчего выше TPA).

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

alemorf пишет:Сама система 4 килобайта
Раз входы на C800, то вероятно ниже CCP, которое можно затирать. Про Specialist MX ничего не знаю. Думал, что там ROM-BIOS на C000.


Последний раз редактировалось: barsik (Ср Июн 05 2019, 14:54), всего редактировалось 4 раз(а)
barsik
barsik
Ветеран

Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия

Вернуться к началу Перейти вниз

ПЭВМ Специалист МХ: Операционная система MX OS (файловая система, карта памяти, точки входа) Empty Re: ПЭВМ Специалист МХ: Операционная система MX OS (файловая система, карта памяти, точки входа)

Сообщение  alemorf Ср Янв 23 2019, 13:46

5
barsik пишет:Не понял там что нечто подобное MSDOS или Вы просто таким термином обозвали таблицу занятости блоков? Обычно если это битовая таблица занятости, то её называют AllocTable (CP/M) или VTOC - Volume Table Of Contents (Apple-DOS и PRODOS).

Это аналог MSDOS.
Это не битовая таблица занятости.
В этой таблице содержатся числа по которым можно узнать последовательность кластеров для каждого файла.

alemorf
Мастер

Сообщения : 232
Дата регистрации : 2018-12-17

http://alemorf.ru/

Вернуться к началу Перейти вниз

ПЭВМ Специалист МХ: Операционная система MX OS (файловая система, карта памяти, точки входа) Empty .

Сообщение  barsik Ср Янв 23 2019, 14:05

6
alemorf пишет:Это аналог MSDOS
Получается это уже четвёртый любительский 8-ми разрядный аналог MSDOS, что, если DOS сделана хорошо является повторением разработки MSX-DOS Тимом Паттерсоном.

Это сделал в 1992 С.Короткин в SP-DOS для Специалиста и ОРИОНА со своим контроллером, тогда же ещё одни авторы, что разработали контроллер дисковода для Специалиста, работающий без HOLD или WAIT и свою DOS, и С.Коровкин для ОРИОНА в 1997 для ОРИОНА с КНГМД на ВГ93. И ещё возможно ORDOS-6 и ORDOS-7 В.Михайловского в 2000, т.к эта DOS не CP/M, и изначально рассчитана на работу с винчестером.

barsik
barsik
Ветеран

Сообщения : 1032
Дата регистрации : 2016-11-10
Откуда : Россия

Вернуться к началу Перейти вниз

Вернуться к началу

- Похожие темы

 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения