Версия Altair DOS v3.4t .Скачена по одной из ваших ссылок.
Версия Altair DOS v3.4t .Скачена по одной из ваших ссылок.
Последний раз редактировалось SYR-ALEX; 23.07.2015 в 23:17.
Есть предложение по ускорению загрузки AltairDOS.
1. Убрать установку часов при загрузке ДОС. Кому надо пусть настраивает часы через консольную команду.
2. Упростить тестирование памяти при загрузке. Полностью тестировать опять через консольную команду, кому надо.
Не понятен физический смысл счетчика sector при загрузке. Если возможно тоже ускорить.
Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...
Этот кусок в DRIVER.SYS, который загружается еще до выполнения CONFIG.SYS, соответственно, вынести в настройки это не получится, а проверять корректность часов вроде бы надо. Как вариант, можно часть инициализации часов оставить, а интерактивный кусок (который просит ввода с клавиатуры при некорректном времени) вынести в отдельный CLOCK.SYS, который уже запускать из CONFIG.SYS (или не запускать, кому что интереснее)
Тестирование памяти в любом случае проводится: системе при старте надо понимать чем она располагает чтобы потом корректно выделять память приложениям. В настоящее время тест имеет два режима: по-умолчанию проверяет каждый байт памяти (двумя константами 55 и AA, т.е. тест вполне достоверный), но если при тесте нажать любую клавишу, то переходит к проверке только одного байта из каждого 4к блока (чтобы пометить блоки на доступность), что ускоряет в разы. Как вариант, могу сделать условную компиляцию при которой выполняется либо управляемо полный/быстрый (что описал выше), либо только быстро. Исключать вывод на экран можно, но это ускорит несущественно (там выводится по 9 символов на каждые 4к), а информативность "на чем увисло" упадет.
Чтобы когда оно вдруг не грузится (а такое бывает, например при отладке ПРО) понимать на каком этапе все встряло.
Предлагаю сделать аналогично: будет управляться от ключа компиляции (например, "VERBOSE"), и можно будет собрать версию для себя.
Самая большая задержка при загрузке не в выводе на экран, а в инициализации модуля SD-карты при отсутствии SD-карты - именно он дает задержку между завершением "SECTOR N" и началом счетчика памяти. Его тоже так просто "на настройках" не обойти, т.к. он тоже выполняется до CONFIG.SYS, подумать надо куда и как его перенести.
Последний раз редактировалось Error404; 22.09.2016 в 13:42.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
То то я думаю, у меня база данных форума заглючила. А оказывается сообщение в другую ветку перенесли
Часы конечно инициализировать, если они есть. А если нет, я так понимаю, они эмулируются. Просто при старте пусть запускаются по дефолту, допустим 00:00 01/01/80. А текущее время, дату вводить с консоли командой, уже после загрузки ОС (по желанию). А если реальные часы есть и идут, то и корректировать там нечего при старте.
Если ОС необходимо построить некую таблицу доступности блоков размером в 4 КБайта. Пусть тогда быстренько прощелкает по 1 байту (типа есть/нет) и все. Зачем же каждый байт проверять для этого существуют заточенные программы для теста памяти.
Тут сложнее как я понял. Все это касается ядра ОС. Тогда собирать 2 сборки. Одна для повседневного использования, другая для отладки (в конце имени букву d поставить).
Ну а SD-пусть остается как есть, раз так реализовано. Не выкидывать же поддержку SD карты. Это как при загрузке с FDD, надо его подергать есть там дискета или нет
Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...
Обновил на гите АльтаирДОС
Сделал такое, это в Driver.sys. При старте драйвера если аппаратных часов нет, то можно удержать клавишу (выводится информация об этом) и ввести время для часов на прерываниях 50Гц. Иначе (если клавиш не нажат) "эмулируемое" время не вводится (стартует с 00:00) и загрузка продолжается без дополнительных запросов
Сделал условную компиляцию (ключ VERBOSE) если он 0 (это по умолчанию), то память тестируется по 1 байту из каждого 4к блока и счетчик пролетает моментально, кнопку для этого нажимать не надо (как было ранее).
Также, при VERBOSE=0 не выводится счетчик секторов при загрузка кода ОС в память.
Также поправил idebdos.com - сделал чтобы в коде было обе ветки (для схем IDE на 8255 и IDE-RTC) и тип выбирался ключем условной компиляции:
IDEPRO equ 1 ; 1=OrionPRO IDE/RTC ide ports, 0=8255 PPA ports
, а также режим когда одно из устройств драйвера является IDE-устройством, а второе - SD-картой (раньше было либо 2 IDE, либо только одно SD-устройство вместо МастерIDE). Сейчас такие варианты:
IDEBDOS -> 2 IDE-устройства (IDE_master,IDE_slave), автодетект
IDEBDOS SD -> 1 SD-устройство (мастер), автодетект
IDEBDOS 0:SD -> Мастер=SD, Slave=IDE_slave, автодетект
IDEBDOS 1:SD -> Мастер=IDE_master, Slave=SD, автодетект
При автодетекте если устройство отсутствует, то во-первых вдвое уменьшил интервал опроса (на котором оно висит и нервирует), а во вторых добавил параметр NONE, который можно указать для отсутствующих устройств. Т.е. если у вас подключен только IDE_master, то можно пропустить автодетект IDE_slave (и соответствующую паузу в загрузке) указав 1:none. Параметры можно комбинировать, например так:
IDEBDOS 0:SD 1:none
(получится как если запустить IDEBDOS SD)
Прочие параметры остались как и ранее.
Еще один ключ компиляции:
DRIVER equ 0 ; compile as AltairDos driver (with leading 128bytes signature block), COM-file otherwise
определяет компилировать COM-файл или драйвер (его переименовать в *.SYS). Драйвер можно прописать в config.sys в команде DEVICE - чтобы он грузился при загрузке. Пример для "только Мастер":
DEVICE = idebdos.sys 1:none
Также заметил, что может глюкануть NC, если запускать idebdos из него (тот самый глюк "второго запуска", т.к. первым запускали idebdos - без него нормально). Там что-то связано с тем, что для того чтобы после запуска COM-файла автоматически вернуться в NC, он присаживает себя в память в виде драйвера перехватывая вектора BDOS, и idebdos тоже инсталлирует из своего тела драйвер, и в этот момент они там что-то не поделили - еще не разбирался что именно. Если запустить idebdos.com из промпта CPM (или idebdos.sys из config.sys), то после этого NC нормально работает. Ну, с NC еще отдельно буду разбираться - переделывать опрос каталога (большие файлы, ограничение на количество файлов и т.п.), уже нашел и поправил (пока в исходнике только) где оно "No files" запускало.
Последний раз редактировалось Error404; 04.10.2016 в 10:20.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Да уж. Не такая уже тривиальная задача вышла собрать имидж ром-диска с исходников АльтаирДОС. Особенно если учесть что с АльтаирДОС я особо и не разбирался. Мое ознакомление с АльтаирДОС, остановилось на уровне запуска программ.
Сборка в процессе…
Последний раз редактировалось OrionExt; 05.10.2016 в 15:32.
Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...
Запрограммировал ПЗУ M27C801 в Орионе, вроде работает последняя сборка Альтаир-ДОС с поста.
Грузится быстрее, курсор работает в ОС, пусть живет в ПЗУ
Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...
Спрошу здесь. Не знаю в какую тему писать.
При копировании файлов в образ жесткого диска с помощью плагина OhiWcx, на диске создаются файлы одинакового размера, но с разными именами. Что я делаю не так? или нашел баг в работе плагина?
Возможно образ (основа) повреждена, по этому софт OhiWcx не может адекватно интерпретировать это. Нужен дамп!
- - - Добавлено - - -
Это очень сложная штука! Для Ориона тем более. Тут сам драйвер не написал, не вздохнул.
Последний раз редактировалось OrionExt; 02.05.2017 в 21:23.
Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...
Ты нашел одновременно особенности файловой системы CP/M и файловой системы MS-DOS. Файлы в CP/M по размеру всегда округляются в размер записи (128 байт). Поэтому при копировании в образ файлов размером 7808 и 7698 в образе оба раза получатся файлы размером 7808. А имена в приведенном скриншоте в правой панели (на файловой системе Винды)- видно что первый раз в формате 8.3, а вот второй - в формате LFN. Плагин при упаковке заменяет в имени нештатные для режима 8.3 символы но нормальные для LFN (например, пробелы) знаком подчеркивания. И если приглядеться то и имена не одинаковые, а на одну буковку различаются (на неудачную буковку - совпадающую с соседней, и зрительно теряющейся).
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)