В F51 выполнение команды B начинается с адреса BBDE. Он там забил нулями CALL (кроме одного байта, который трактуется как команда ORA A) перед последним JMP.
Список букв команд (BA65-BA6B) в F51 тоже без нуля.
- - - Добавлено - - -
В F14.3 все аналогично и по тем же адресам.
Я смотрел файл рядом с докой от Ускова md311f11.com, там проблемный участок выглядит так:
0BB3Bh имеется в таблице для переходов команд, соответствует команде Е.Код:CALL 0D3AAh; L_DAAA JMP 0BB3Bh
Это и есть правка Ускова.
Получается mdos311 с BIOS 3.11.F.11 - это (старая, раньше F14.3 и F51) версия Филиппова. Команда B там работает примерно как в других досах, без аргументов печатает пургу, с правильным аргментом грузит .SPR
А MD311F11 - это версия Филиппова доработанная Усковым. Но она работает не совсем так как я ожидал. Команда B и без аргументов и с правильным аргументом при наличии соответствующего файла на диске печатает "B?".
- - - Добавлено - - -
Увидел, Усков сменил букву команды B на S и эта команда работает правильно.
- - - Добавлено - - -
Если сравнивать патчи этой команды Филиппова и Ускова, то вариант Ускова чуть лучше, т.к. при запуске без аргумента печатает NO FILES. Но теперь, когда жажда знаний более-менее утолена и с командой почти разобрались (кроме формата SPR, хотя думаю при желании тут изучение SIDа поможет), может пора выпилить B/S?
Я тоже там немного поигрался с ДОСами, вариант Ускова как-то информативнее получается... По этому методу можно заменить в тексте "CALL L_CB01" на "JMP L_C24C" и убрать следующий "JMP L_DAAA", но это решает только половину проблемы. Надо восстанавливать работу команды "В", полезная, по сути, штука.
В картотеке есть исходники Филлипова, и там есть его дизассемблированный вариант микродоса (в файле bdos.zip). Причём там метки имеют смысл, и это даёт ответы практически на все вопросы.
Ещё заметил, что собственно микродос при загрузке перемещается (т.е. корректируются старшие байты адресов, там есть битовая карта), а драйвер диска и биос пересылаются как есть. У тебя-же всё пересылается как есть. Хорошо это или плохо - не знаю. А в оригинале микродоса никакой проблемы с командой "В" нет.
Improver(10.04.2020)
Отказ от коррекции адресов на этапе инициализации - одно из отличий T34 (и T72, как наследника)
"ОС хранится в неперемещаемом, неупакованном формате, в область рабочих адресов она пересылается без дополнительных преобразований, чем достигается сокращение времени инициализации при холодном старте."
Посмотрел дизассемблированный вариант, метка THISADRESSISERROR наводит на мысли. В оригинале тоже ошибка. Возможно там должен быть адрес начала процедуры, куда эта метка попадает, но тогда перед вызовом нехватает задания номера ошибки в регистре А (там оказывается 20h и адрес текстовой строки читается чёрте-какой). Я пробовал в отладчике число 9, выдаётся более-менее осмысленный текст.
А чем T34 и T72 различаются?
Из отличий T34 и T72 точно знаю только одно - в T72 немного оптимизирован вывод символов и по этому критерию T72 уступает только РДСу (по крайней мере по моим замерам).
Еще в стартовом сообщении T72 появилось упоминание альтернативной кодировки ГОСТа наряду с КОИ8, но как они переключаются - я не знаю.
- - - Добавлено - - -
Ну и еще пропала совместимость с CO.COM
Там тоже есть ньюанс: вывод только латиницы Т-72 быстрее, чем вывод кирилицы...
Ещё отличия Т-72 от Т-34:
- все сообщения выводятся на русском
- имеется возможность настраивать какой-то параметр драйвера флоповода через команду "0 <число> W", но из-за совпадения с командой настройки скорости записи на магнитную ленту, это не работало.
- ну и ещё куча мелких патчей системы.
Про ГОСТ упоминаний не нашёл, а вот это упоминание в доках на Т-34, не оно?Код:1В, 5В Ё Установить набор КОИ-8 (основной) 0F или 1В, 5А Ё Установить латинский набор 0Е Ё Установить русский набор 1В, 5С Ё Установить русско-латинский набор Ё (КОИ-7)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)