Работа над ошибками продолжается. Совершенно неожиданным "сюрпризом" всплыл издавна притаившийся баг в драйвере IDE, причём для обеих платформ.
До некоторого момента баг себя никак не проявляет, я например три года работал на Орионе и напоролся только сейчас!
Суть ошибки в следующем, при вычислении старшего байта LBA, в причинном месте кода пропущена команда сдвига регистра, в результате ненулевые значения этого байта оказываются как бы умноженные на два, а данные некорректно "разбросаны" по жёсткому диску.
На практике это выливается в следующее. Файлы в корневом каталоге, а также подкаталоги первого уровня работают без ошибок, данные локализуются в правильных местах на диске, ошибка никак не проявляется.
Подкаталоги второго уровня вложенности локализуются в некорректных областях, и до некоторого их количества делают вид что работают корректно. Начиная с некоторого "магического" номера (по счёту), попытка зайти в подкаталог приводит к фатальной ошибке диска, приходится перезагружаться. А начиная с некоторого другого "магического" номера, данные записанные в один подкаталог, всплывают (дублируются) в другом... это происходит из-за того, что драйвер пытается выставить винчестеру несуществующий сектор, что приводит к отбрасыванию лишних бит и формированию некорректного LBA.
Ошибка очень печальная, т.к. её устранение приводит к недоступности ранее записанных файлов в подкаталогах второго уровня.
В связи с чем решил пока не убирать предыдущие версии сборок ОС от 04.01.2021, а исправленные выложить отдельными архивами.
Кто не пользуется НЖМД и не предполагает это делать в дальнейшем, те могут игнорировать данный пост и пользоваться ранее прошитой сборкой ОС DSDOS.
Кто не пользовался НЖМД, но планирует, а также тем, кто пользуется, но пока не глубже подкаталогов первого уровня, настоятельно рекомендую обновиться на исправленную версию для соответствующей платформы (см. ниже).
И самый тяжёлый вариант для тех, кто пользуется подкаталогами второго уровня вложенности - придётся переносить данные из старой разметки на новую, например через другие диски. Либо не обновлять ОС, но при этом не пытаться создавать новые подкаталоги!
Также в новых версиях по просьбам трудящихся сделана небольшая доработка команды ОС сохранения дампа ОЗУ в файл - можно указать номер страницы ОЗУ сохраняемого дампа:
S [d:]Filename Addr,Long [/n]
где
d - диск (A..H)
Filename - имя файла
Addr - физический адрес начала дампа (адрес посадки файла)
Long - длина дампа
n - 0..7 номер страницы ОЗУ (по-умолчанию 0) или как ранее: P - защита от удаления.
Номера исправленных версий для обеих платформ увеличены: 3.94 для Орион-128 и 3.95 для Орион-ПРО, соответственно. Сборки от 14.01.2021.
▼▼▼ Ссылки для скачивания сборок исправленных версий ▼▼▼
Для ПРК ОРИОН-128/512:
ПЗУ ROM-диска объёмом 64 Кб
ПЗУ ROM-диска объёмом 128 Кб
ПЗУ ROM-диска объёмом 256 Кб
ПЗУ ROM-диска объёмом 512 Кб
ПЗУ ROM-диска объёмом 1024 Кб
специализированная "программист", ПЗУ ROM-диска объёмом 512 Кб
специализированная "программист", ПЗУ ROM-диска объёмом 1024 Кб
Для ПК ОРИОН-ПРО:
"Стандарт-64", ПЗУ ROM-диска объёмом 64 Кб
"Стандарт-256", ПЗУ ROM-диска объёмом 256 Кб
"Игровая-64", ПЗУ ROM-диска объёмом 64 Кб
"Игровая-256", ПЗУ ROM-диска объёмом 256 Кб
"Программист-64", ПЗУ ROM-диска объёмом 64 Кб
"Программист-256", ПЗУ ROM-диска объёмом 256 Кб
Внутри архивов под объёмы 256 Кб находится два варианта: одним полным образом (файл romdisk.bin) для новой версии ROM-диска, и четырьмя файлами по 64 Кб (файлы romdiskN.bin) для старого варианта диска (в составе мультикарты).
П.С. Файлы, записанные на НЖМД прошлыми версиями ОС могут быть недоступны!!!