vinxru теперь называется alemorf, и на гитхабе тоже: Ramfos
vinxru теперь называется alemorf, и на гитхабе тоже: Ramfos
Последний раз редактировалось b2m; 13.03.2017 в 10:04.
Т.к. контроллеры дискет ушли с прошлым веком то я подумал о том не написать ли драйвер для работы с SD картой для Коммандера? Т.к. работа с SD картой под контроллером от Vinxru мною не много освоена, то начать нужно с него. В МХ режиме SD карта читается. Перечислю недостатки работы с SD картой под Коммандером:
1. пресловутые всего 6 символов в имени файла;
2. вывод только имён файлов без директориев (работа с директориями мною не освоена);
3. механизм запуска файлов вообще пока не ясен.
В окне Коммандера имя файла будет одно на реальную пару на SD карте, например так: DESTRO EXE - destroy.cpu/destroy.i80.
Где теперь брать исходники? Я бы тоже поработал над коммандером. Давайте общий опенсорс проект запилим, а?
Что хочется сделать:
- больший размер кластера (4-8 секторов по 256 байт), или переход на fat12
- более длинные имена файлов. Совместимость ни с чем не теряем, ведь под коммандер нет софта, он только как оболочка используется?
- унификация RAM/ROM/FLASH дисков, любой размер и количество
- FLASH диск вместо ППЗУ, включенный в адресное пространство процессора наподобие страниц RAM диска (доработка архитектуры минимальная)
- поддержка записи во FLASH диск (как включенный вместо ППЗУ, так и через ВВ55)
- добить драйвер SD карты
- встроенный редактор, HEX редактор, ассемблер, дизассемблер, отладчик, Бейсик - можно портировать из RAMFOS, освежив интерфейс
- поддержка формы (окошка) выбора файла для этих программ
- две таблицы с раскладкой клавиатуры, одна для английского, вторая для русского. Так можно сделать нормальный ЙЦУКЕН/QWERTY. Мониторы и RAMFOS тоже можно доработать.
- поддержка шрифтов 6*8, 8*8, 6*10, 8*10 и переключение между ними в настройках. 8*8 и 8*10 будут очень шустрые, 6*8 и 6*10 для совместимости, или если надо больше текста вместить (напр. в HEX редакторе).
- поддержка микросхемы часов с CMOS памятью, куда можно сохранять настройки.
- ПЗУ можно вообще полностью исключить, оставить в нем тест и загрузчик ОС с флеш диска или SD карты. При перезагрузке показывать простое меню типа 1 - загрузка ОС, 2 - запуск теста (который может работать при неисправной памяти).
Инициатива отличная! Но, к сожалению, не там много осталось поклонников Специалиста, кто мог бы поучаствовать. Даже локомотив этого раздела fifan захандрил, и настолько, что закрыл свой сайт (хорошо хоть архив его выложил и я сделал зеркало) и ушёл из модераторов Поэтому рекомендую брать всё в свои руки, а народ, видя результат, возможно, подтянется.
С уважением, Станислав.
Добрые люди форкнули в своё время: https://github.com/VWarlock/retro/tr...-sd_controller
- - - Добавлено - - -
Ой, наверное имелись ввиду вот эти исходники: https://github.com/VWarlock/retro/tr...pecialist-mxos
Но репозиторий тот-же.
О, спасибо. Сейчас пытаюсь в эмуляторе погонять те архивы, что были выложены тут. http://spetsialist-mx.zx-pk.ru/index19.html
Запускается, но не работает. Файл скопировать не может, запустить тоже (только некоторые). Что за текстовый редактор там? Никаких подсказок нет, как в нём работать, не понятно.
Чем отличается exe от com? Вроде и тот, и тот - просто бинарный дамп, а адрес загрузки хранится в дескрипторе файла в каталоге.
Кстати, хоть это немного оффтоп злесь. Я пробовал подредактировать таблицу кодов клавиш в рамфосе, чтобы вернуть стандартную раскладку. Рамфос работает, а вот софт... Некоторый работает, некоторый думает, что раскладка MX (свой драйвер у них что ли?), некоторые не распознают Esc (эта кнопка вроде отдельно обрабатывается даже в самом рамфосе).
Но я планирую добить эту переделку. У меня ведь железный Специалист с матричной клавиатурой, и иметь две разные раскладки клавиш функционального ряда, чтобы пользоваться и рамфосом, и коммандером, дико неудобно.
Не понимаю логику автозапуска команд при перезагрузке. Порылся в исходниках, там такой порядок:
Сначала dos.sys вызывает:
В:AUTOEX.BAT
A:NC.COM
В:AUTOEX.BAT вызывается однократно при холодной перезагрузке. Делается это путём модификации точки перехода. Но при первом включении диск В: пустой, поэтому выдаётся ошибка! Также, при сбросе компьютера, загрузчик заново копирует ОС из ПЗУ, затирая изменённую точку перехода.
Потом NC.COM зачем-то вызывает:
A:FORMAT.COM B
Это вызывается однократно при холодной перезагрузке. Для этого читается байт из рам-диска - это работает лучше, чем решение, применённое в dos.sys. Поэтому после сброса команда форматирования не вызывается.
Видимо, идея была в том, чтобы в B:AUTOEX.BAT разместить запуск драйверов и команды форматирования остальных рам-дисков, но как это будет работать, если при включении компьютера на диске B: ничего нет? Вручную копировать батник не комильфо. К тому же, придётся каждый раз отвечать N на запрос форматирования дисков. А запуск драйверов при теплой перезагрузке всё же нужен: они слетают если, например, запустить Бейсик.
Нужно придумать другой механизм. Самое простое будет иметь два батника на A:, один для холодной перезагрузки, другой для тёплой. Запускаться они должны dos-ом, а не нортоном. Причём FORMAT.COM должен иметь опцию тихой работы, чтобы не надо было нажимать Y.
- - - Updated - - -
Запуск батника с диска A: не работает. Дос загружает батник не по тому адресу, который указан в атрибутах файла в каталоге, а по адресу FC00h (видимо, чтобы выполняющиеся из батника программы не затёрли его). Для этого используется функция fileGetSetAddr, которая подменяет адрес загрузки файла и прописывает его в атрибуты на диск. Но с ром-диском же это не работает! В итоге при запуске с ром-диска, батник загружается по тому адресу, который указан в атрибутах (а обычно это ноль), но анализируется буфер по адресу FC00h, где может быть мусор.
Т.е. чтобы батник мог выполняться с ром-диска, адрес его загрузки в атрибутах должен быть FC00h. Если создаёте образ ром-диска с помощью js скрипта vinxru, файл должен называться AUTOEX.64512.BAT (64512 это адрес посадки в десятичном виде). Надо про это написать в первом посте темы!
Последний раз редактировалось SpaceEngineer; 15.01.2022 в 20:11.
Где можно найти описание точек входа коммандера и биоса, и директив мониторов? Есть конечно дизассемблер, но готовое описание от автора было бы лучше.
Edit: составил сам. Там же и Ramfos, для сравнения совместимости.
https://docs.google.com/spreadsheets...dqI/edit#gid=0
Последний раз редактировалось SpaceEngineer; 02.02.2022 в 00:55.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)