Skip to content

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

Open
@nzeemin

Description

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 всегда страница ввода-вывода.

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions