samstyle / Xpeccy

Multiplatform emulator of retro computers
MIT License
73 stars 13 forks source link

Запись в ПЗУ при включенном отображении памяти альтеры в окно 0 (TS-Config) #6

Closed alexanderk23 closed 7 years ago

alexanderk23 commented 7 years ago

При установке палитры методом, описанным в посте http://forum.tslabs.info/viewtopic.php?p=1001#p1001 происходит запись не только в отображённую на #0000 память альтеры, но и в страницу памяти в окне 0. Билд Xpeccy 0.6.20160730.

samstyle commented 7 years ago

Уточни, пожалуйста, какая страница стоит в окне 0 в момент выполнения кода. Узнать это можно в отладчике, правый столбец, раздел MEM, первая строка. Потому как в любой ROM сейчас запись запрещена - см.функцию memWr (memory.c, строка 35) и memSetPage (там же, строка 76)

alexanderk23 commented 7 years ago

Да, у меня в окно 0 подставляются страницы RAM, конкретнее сказать не могу - они быстро меняются, у меня оттуда аудио в ковокс играет ;) Однако при включенном маппинге (и сброшенном флаге MEM_W0WE в порту MEMCONFIG конфы) туда по идее писаться не должно, правильно же? Вот, на снапшоте видно, что таки пишется - страница экрана замаплена в окно 0, записываю палитру - экран портится. https://gist.github.com/73bd35c88f5bc1f00d83dd4bf9ae32ee

samstyle commented 7 years ago

Теперь ясно, MEM_W0WE не был реализован. Как должно быть, я так и не догнал, когда делал TSConf. До автора конфы не достучался, оставил до лучших времён и забыл :)

alexanderk23 commented 7 years ago

Понял :) Но даже без него при включенном маппинге на CRAM альтеры ничего не должно писаться в память, только в альтеровскую - она ж перекрывает.

samstyle commented 7 years ago

А вот про это я у самого автора таки спрашивал. получил ответ - и в озу тоже пишется...

alexanderk23 commented 7 years ago

Ох, вот это поворот :) Сейчас проверил в анриле со включенным MEM_W0WE — действительно, так и есть, пишется. Виноват, был неправ.