Забавное представление о совместимости было у инженеров, которые проектировали ПК8002. Очень многие игры на ассемблере для ПК8000 использовали подпрограммы ПЗУ для своих целей. В итоге совместимость сохранилась, полагаю, только у тех, которые были написаны с использованием обращений к портам ввода-вывода самостоятельно, без обращения ПЗУ. В частности, программа ASSM на ПК8002 не завелась, увы.
Когда-то давно написал программу COPY09, чтобы копировать программы ПК8000, оснащённые автозапуском. Сегодня встал вопрос с созданием WAV из CAS. Так вот, чтобы создать WAV-версию программы ERIC для ПК8002, запустил эмулятор ПК8000, запустил в нём COPY09, дал ей сожрать ERIC.CAS из комплекта программ ПК8002, включил режим записи в эмуляторе, создал файл ERIC.WAV, скопировал этот файл в телефон, подключил телефон к реальному ПК8002, ввёл RERIC, включил воспроизведение в телефоне и, вуаля, появилась через 5 сек надпись "Найден файл: ERIC B", а через 2 минуты игра "автостартанула" из монитора. Вывод - параметры протокола сохранения данных на магнитной ленте - одинаковые.
Я так понимаю, чтобы запустить тот же самый ASSM, потребуется все процедуры из ПЗУ ПК8000, которые используются, перенести в адреса ОЗУ выше &H4000 и исправить все ссылки на эти подпрограммы на новые значения адресов, где будут эти подпрограммы сложены. Масштабы работы видятся нереальными просто. Закат солнца в ручную.
Кстати, время загрузки BASIC составляет почти 6 минут. Сам факт того, чтобы пользоваться бейсиком, нужно его грузить 6 минут, как любую из игрушек, для меня выглядит дикостью несусветной. Под программу пользователю оставили всего 16 КБайт, что после 47 Кбайт ПК8000 тоже, мягко говоря, выглядит странно.
UPD: Не подозревая про наличие аппаратной закладки, удалось обойти с помощью COPY09 защиту от копирования. Дело в том, что в этой программе тип файла определяется по принципу, что не BAS, то HEX. Содержимое заголовка сохраняется целиком в ОЗУ, оттуда берётся только имя файла (6 байт) для отображения на экране, а при записи выгружается на ленту ровно в том виде, как загружено. Со значением маркера 0a0h.




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