![]() |
Переключение банок в ZS Scorpion
Здравствуйте! Решил открыть тему в этом разделе, чтобы сильно не пинали по яйцам за изъезженные вопросы. На которые я, кстати, искал ответы по этим вашим Интернетам и по данному форуму, но не нашел...
Итак, у меня встал большущий вопрос: как именно переключаются банки ПЗУ у Скорпиона - когда TR-DOS может быть отображен, а когда блокирован даже при выполнении по адресам 15616...+256 (или где-то там). Дело в том, что я пробовал и так, и эдак, даже приделал программное управление турбированием (чтение портов 0x1FFD и 0x7FFD), однако ПЗУ Скорпиона не торопится интерактировать с пользователем, а только лишь кажет сначала черный экран, а затем заполняет его грязью. Например, у обычной модели 128k переключение в TR-DOS работает лишь из 48-го ПЗУ, а из 128-го уже нет. Какие исключения/перекрытия по этому поводу в Скорпионе? Разобью вопрос на мелкие и добавлю еще по теме: 1. В CPU0 может быть отображена только RAM0 или и RAM8 тоже? 2. Экранная область может быть только в RAM5/7 или и в RAM13/15? 3. Какие есть еще подводные камни при подключении доп. бит в порту 0x1FFD для получения 1024k? 4. Порты TR-DOS могут быть включены только при отображенном ПЗУ TR-DOS или также при отображенном мониторе Скорпиона? 5. Есть ли какие-либо изменения этих правил в зависимости от модели Скорпиона? 6. Какое ПЗУ Скорпиона лучше всего использовать для отладки? (если можно, ссылку на соответствующие образы банок 128, 48, монитор и ДОСа). Вот, вроде кончил. Да, я сейчас разглядываю какую-то схему Скорпиона, но мало что понимаю. Просьба не предлагать смотреть исходники других эмулей, ибо 1) как я понял инфа по некоторым вопросам противоречивая или зависит от конкретных моделей и 2) я по работе и так зырю и правлю чужие исходники, особенно это касается C/C++ (люблю и уважаю), так что увольте ))) Надеюсь на подробные и развернутые ответы, так сказать, для идиотов. Спасибо. |
|
Спасибо за интересные ссылки! Однако, по большей части, там все по поводу RAM-ов, а у меня вопрос про ROM-ы (и порты, какие и когда включаются в пространство в/в).
По первой ссылке для меня полезна полная инструкция по эксплуатации, но там вообще инфа противоречивая - на рисунке ROM0 это 48к ПЗУ и ROM1 - 128к, а далее написано наоборот ))) И кому верить? Вообще я у себя сделал по варианту: ROM0 - 128, ROM1 - 48, ROM2 - Monitor, ROM3 - TR-DOS. Но я так до сих пор и не знаю, как правильно? Ясным подтверждением моего незнания - не желающий нормально проходить сброс эмулируемый комп... |
Quote:
Quote:
Quote:
Quote:
Quote:
0 - 128 1 - 48 2 - сервис 3 - трдос Коммутация страниц ПЗУ по D4 #7FFD и входу в TR-DOS, а через D1 #1FFD попадаешь сразу в сервис из любой ПЗУ. Рекомендую в эмуле ещё сделать выбор коммутации по КАЮ и Фениксу |
Black_Cat, спасибо, я конечно же сделаю как угодно, лишь бы все было разложено по полочкам, сейчас все пока в куче лежит и тухнет... А за развернутый ответ спасибо, кое-что прояснилось, наконец. Но если будет не лень, опишите, пожалуйста, упомянутые другие варианты.
И еще вопрос - в каких разновидностях Скорпиона и других моделях (КАЙ, Профи, АТМ) можно прочитать текущий конфиг памяти, и как? Например, я читал про запоминание некоторых бит в канальных рег-рах AY, но несколько разных вариантов (какой правильный?), а также кто-то писал, что нек-рые биты конфига можно прочитать с 0x1FFD/0x7FFD, но ведь это может изменить скорость, разве такое правильно? Спасибо. |
Quote:
D0 - D0 #7FFD D1 - D1 #7FFD D2 - D2 #7FFD D3 - D3 #7FFD D4 - D4 #1FFD D5 - D4 #7FFD ---------- Post added at 19:57 ---------- Previous post was at 19:48 ---------- Quote:
|
Quote:
Quote:
|
lisica, может, Вы и правы, а то сколько лет я др*чу на свой эмулятор, а толку мало, хотя, с другой стороны, именно когда встает вопрос, дело продвигается быстро (ой, только не надо мне про то, что НГ чаще - вопросы ведь разные бывают).
|
ARTi, здесь есть описание работы всех стандартных системных портов и большей части портов объединительной концепции Хiмеra: Стандартизация и развитие портов ZX Spectrum. . В объединительной концепции Хiмеra есть возможность читать значение портов управления памятью, при том без конфликтов, если тебе нужен именно такой функционал.
|
Black_Cat, да, я видел и почитывал ту тему - все это можно сделать, по типу порт=функция, а потом навесить через конфиг на любые адреса с любыми масками в любые пространства в/в (пока что это только normal/dos) и с любым приоритетом (в случае если какой-то адрес выбирает больше одного порта из-за неполной дешифрации).
Но у меня пока не реализованы задержки по видеопамяти и эмуляция ВГ поверхностна, плюс мне хотелось бы позапускать "живые" системы - те, которые раньше были популярны и под которые писан софт - игры/демо. А у меня даже обычный Скорпион не запускается ;) Как только пойдут у меня популярные системы, портовых функций можно наплодить любых, красивых и разных, а прописать их в конфиге даже сейчас не составляет труда. |
| All times are GMT +4. The time now is 19:17. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.