Автор данного коммандера умер уже давно. Единственный кто попытался разобраться в программе был Алексей Морозов (Vinxru/Alemorf). Исходники от него (вернее от MXOS) не помогут?
Автор данного коммандера умер уже давно. Единственный кто попытался разобраться в программе был Алексей Морозов (Vinxru/Alemorf). Исходники от него (вернее от MXOS) не помогут?
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Да, умер, к сожалению, и не оставил документации на софт. Я уже изучил исходники vinxru и начал делать модификации. Изменил логику autoex.bat, исправил несколько багов. Цель - сделать гибрид коммандера и рамфос, т.е. реализовать точки входа и подпрограммы рамфоса, чтобы его софт мог работать, а файловая система и красивый шустрый нортон чтобы были от коммандера. В перспективе перейти на fat12/fat16.
Много ли оригинального софта существует под коммандер? В архивах вашего сайта нашел только ром диск с бейсиком, ассемблером и еще чем-то не работающим. Ну и редактор, который выглядит беднее рамфосовского. Это я к тому, что если новая ОС потеряет совместимость с коммандером, много ли потеряем?
Последний раз редактировалось SpaceEngineer; 17.01.2022 в 13:31.
HardWareMan составлял один сборник из программ для командера, я тоже пару штук. Алексей Морозов жаловался что стандартные программы под RAMFOS частянько не запускались. Лучше сначала проверить работу из под эмулятора, а потом уже шить ROM-диск. В моих планах было сделать драйвер для запуска программ с SD карты, но так и руки и не дошли. А вот драйвер для запуска с дискет работает (на эмуляторе пробовал).
Где можно их скачать?
Потому что адреса некоторых функций C800 не совпадают или имеют другое назначение, а точек входа F800 вообще нет (а они используются софтом под рамфос).
Вот, составил таблицу подпрограмм коммандера (из его исходников, т.е. уже апгрейженного).
В комплекте с коммандером есть мониторы MON_88, MON2, и SP_580. Второй и третий грузятся на адреса, перекрывающие F800, и содержат там таблицу переходов, похожую на рамфос (или ордос от Ориона). Т.е. можно попробовать запустить MON2, сбросить, запустить прогу из рамфоса. Я не совсем понял, оригинальные ли они, или vinxru портировал их из рамфоса? Может быть, он хотел реализовать запуск классических программ (rks) в STD режиме, как в обновлённом рамфосе?
MON2 выглядит родным для коммандера, т.к. имеет такие директивы:
? - вывод каталога текущего диска
<буква диска>: - сменить диск
С другими ещё не разобрался, надо дизассемблировать и изучить, раз документации нет.
- - - Updated - - -
Публиковали его?
Последний раз редактировалось SpaceEngineer; 17.01.2022 в 19:17.
Прикрутил запуск RKS файлов, как в Рамфосе vinxru, Monitor2.sys взял оттуда же. Запуск сделал через механизм NC.EXT - назначение расширению RKS обработчика (отдельной программы-загружалки). Но всё равно пришлось лезть в код Коммандера, иначе он не хотел запускать RKS с любого диска (файл NC.EXT должен быть на том же диске, что и запускаемый RKS - думаю, это или баг, или недоработка; в исправленной версии достаточно одного A:NC.EXT).
Вопрос, как хранить RKS файлы на дисках Коммандера (рам/ром/флеш). Vinxru приложил к исходникам скрипт для создания образа ром-диска из отдельных файлов. Так вот, он отрезает от RKS первые 4 байта (начальный и конечный адреса загрузки) и последние 2 байта (контрольная сумма), и записывает их в структуру каталога, а на сам "диск" записывает только тело программы. Это, конечно, удобно и экономит дисковое пространство (многие программы Специалиста как будто специально имеют "круглый" размер, например 2048 байт, поэтому с лишними 6 байтами RKS файл занял бы на 1 кластер больше). Но правильно ли это? Когда (если) сделаю поддержку дискет и SD карт, то перекидывать RKS с ПК будет неудобно. Можно встроить автоматическое преобразование при копировании между "нормальным" RKS и "внутренним" для рам/ром/флеш диска, но это некрасиво как-то.
Скачать можно с гитхаба. Флеш-диск ещё не поддерживается эмулятором, но протестировать можно, прошив пару RKS игр на системный ром-диск, и запуская их оттуда и с рам-дисков.
https://github.com/UnivEngineer/Specialist-OS/
Последний раз редактировалось SpaceEngineer; 28.01.2022 в 16:53.
Наверное, продолжить про развитие MXOS нужно в этой теме. Сделал первый этап перехода на FAT12/16: увеличил размер дескриптора файла в каталоге с 16 до 32 байт, и привёл его в соответствие с форматом FAT. Имя файла теперь 8.3, и куча неиспользуемых полей (одно из них выделил для адреса загрузки). Следующий этап - саму таблицу FAT перевести на 16 бит.
Последний раз редактировалось SpaceEngineer; 01.02.2022 в 04:14.
Странная вещь в есть в коде MXOS. Как известно, драйвер обмена с доп страницами ОЗУ расположен в 32-байтном окошке непереключаемгого ОЗУ по адресу FFC0-FFDF. Потому что при переключении страницы, код ОС исчезает, и остаётся только в этом маленьком окошке.
Но зачем драйвер обмена с ПЗУ располагается там же? Ведь ПЗУ в MX подключается на адреса 0000-BFFF (48 кб), а в MX2 на 0000-7FFF (32 кб, две страницы). Поэтому драйвер обмена с ПЗУ можно сделать гораздо проще. У Юденцова что, была схема с единым ПЗУ на все 64 кб за вычетом окошка и портов?
А тут не понятно. Я когда первые опыты делал тоже делал ПЗУ до FFBF. А оказалось, RAMFOSу надо доступ в ОЗУ, куда он копирует систему. Т.е., диск ограничивается до BFFF. Я же ограничил до 7FFF по двум причинам:
1. При поддержке SD карты большой встроенный диск не требуется.
2. Постоянный доступ к экрану позволяет часть процедур, работающих с ним, расположить в ПЗУ. В том числе и код выбора режима на старте (вывод логотипа и т.д.).
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)