Skip to content

УКНЦ, отключение RОM ПП и эмуляция #3

Description

@nzeemin

https://zx-pk.ru/threads/31349-uknts-otklyuchenie-rom-pp-i-emulyatsiya.html

BlaireCas:

Как-известно там можно в периферийном процессоре отключить банки ПЗУ с адресов 100000-160000 и поставить туда ОЗУ которое обычно используется под план 0 видеопамяти (чтобы не использовать регистры, а так мол в план 0 записывать).
С настоящей УКНЦ началась какая-то проблема. Она упорно не хочет считывать переключенное ОЗУ, а считывает из ПЗУ ПП. Но записать туда можно.
Делается командой в ПП
mov #161, @#177054 ; 001 110 001 (all RAM banks of plane 0)
Переключаем ПЗУ и дальше работаем вроде как с ОЗУ. И тут-то вылезла проблема у моего возможно УКНЦ. Он пишет в видеопамять по этим адресам. Команды типа MOV нормально работают. Но вот если команда использует считывание оттуда - она читает с другого места. С ПЗУ отключенного. Например BIC у меня на реальной машине показывает совсем не то что ожидалось.
Можно попросить владельцев УКНС запустить диск? Набрать там RU TEST2. Программа делает следующее: устанавливает таблицу строк 0..287 на адреса 100000...155000 линейно и в четырех частях делает операции: 1 часть - просто MOV, вторая BIS #1, (R5)+, третья COM (R5)+, четвертая MOV (R5), (R5)+.

Alex_K:

BlaireCas, как выше написал MM, отключать можно только ПЗУ в диапазоне 0100000-0117777. Но подключать ОЗУ можно в диапазоне 0100000-0176777. Так как ПЗУ не реагирует на запись, то в подключенное ОЗУ можно спокойно писать командами CLR и MOV, но не CLRB и не MOVB. У процессора 1801ВМ2 есть одна особенность - для полнословных команд MOV и CLR в dst делается только цикл записи, а для байтовых цикл чтение-модификация-запись. При чтении читаться будут одновременно ПЗУ и ОЗУ, но ПЗУ значительно быстрее, и вероятнее всего что вы получите её содержимое, возможно также с наложением по ИЛИ содержимого буферного регистра контроллера ОЗУ в текущий момент. С окном 0100000-0117777 могут быть проблемы, если в разъёмы ВУ воткнуты контроллер винчестера или электронный диск, т.к. эти контроллеры активизируются при снятии сигнала CE0 и выборе нужного уровня сигнала CE3 (в зависимости от слота). Ну и в диапазоне 0177000-0177777 всегда страница ввода-вывода.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions