Я не разбирался (т.к CP/M бейсик-компилятор работает, а бейсики-интерпретаторы производные от Эр-Ка-шного МИКРОНА меня никогда не волновали), но в этом форуме в нескольких местах написано, что бейсики ОРИОНА не работают из-за DAA. Надо верить людям, но сам я, например, не видел такого кода и потому не понимаю зачем делать условный переход после DAA. Вроде бы, Z80 в DAA ставит Parity, а КР580 его не меняет. Но зачем анализировать Parity после DAA?
Причиной может быть и флаг Parity/oVerflow, если его анализировать как Parity после арифметических команд, что явное извращение, хотя и встречалось, например, в ПЗУ РК86 и с'экономило там один байт.
Кстати, кроме бейсика, есть и некоторые игры, которые почему-то не работают на Z80. Их немного, 4 или 5. Но кому охота с этими играми разбираться? Кстати, встречал "вредительство", когда с временной рабочей ячейкой программа работает не с помощью STA/LDA, а по IN/OUT, что чуть экономит место и ускоряет, но работает только при КР580 или с Z80 установленном хитроумным способом.
Бейсик ОРИОНА под Z80 исправил в 1993 В.Пушков (была статья в ж.Радио) и потому с процессором Z80 не работают только ранние бейсики ОРИОНА выпущенные до 1993. А бейсики Специалиста под Z80 исправил уже совсем недавно ivagor, есть соответствующая тема.
Кстати, как раз для Специалиста есть программы в которых применены недокумментированные коды КР580. Эти программы никак не могут работать на Z80.
Такие команды для защиты от копирования впервые применил КООП SP580 в 1988. Те, кто кракал МГ-защиты эти команды узнали. И сами стали использовать для защиты от копирования и от модификации своего кода. А вот пользователи ОРИОНА этого уже не узнали, т.к игры от Специалиста достались им уже в адаптированном виде, кракать МГ-защиты не пришлось.





Ответить с цитированием