Дачный воздух пошел мне явно на пользу - я разобрался с BDOS ERROR в игрушке.

Опишу последовательность поиска, если кому интересно. Как мы тут уже заметили, BDOS error вылезает на ровном месте - к контроллеру обращений никаких нет. Я взял в зубы отладчик, поставил в биосе бряк и стал смотреть. Вижу - пришло обращение на чтение сектора. Форимруется запрос, пакет отсылается в порт. В логе эмулятора - тишина. Блин. Прикручиваю к эмулятору лог обращений к каналу А. Все 5 байт команды в порт уходят - и тишина. Уже думал, баг в эмуляторе. Но оказалось все проще. Опустился сигнал control. Это ППИ2 С7. Мы его используем для синхронизации начальной загрузки и отлова перезагрузки. Когда сигнал опущен - контроллер на команды не реагирует. Данные, идущие в порт А, просто тихо игнорируются, и все.
Приделал в лог трассировку этого сигнала. Оказалось, что через 5 примерно секунд после запуска игры он начинает делгаться туда-сюда с интервалом примерно полсекунды.
Теперь осталось найти, кто его дергает. Эмулятор с исходниками - великая вещь. Дописываю в лог вывод текущего PC в момент обращения к порту. Выявилось 2 точки - по адресу 2d1 и 33с. Обе точки, естественно, входят в адресное пространство программы. Смотрю туда в отладчике - точно. mov m,a. В HL - адрес ППИ2С.

Вот так. Придурок, писавший эту игрушку, решил, что срать от балды в произвольный порт - это прикольно.Я понимаю, когда лезут, например, к таймеру, или контроллеру прерываний. Но сюда-то зачем? Единственная функция этого сигнала - управление внешним ПЗУ.
И это только первая ласточка. Как я вижу, в мире корвета разгильляйство - норма жизни. Во всем - от ОПТС и журнальных статей до игрушек.
Самое поганое, что это не лечится. В эмуляторе можно, конечно, после загрузки системы игнорировать этот сигнал. А в железке - нельзя. По этому сигналу отслеживается момент перезагрузки системы. Еще одно, кстати, разгильдяйство - не вывести на боковой разъем сигнал RESET.

Исправить ситуацию можно, только пропатчив игрушку, забив 00 на место этих 2 команд. Но это тоже непросто - на диске runner.com выглядит совсем не так, как после загрузки в память. Упакован он там, что ли?