Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Для начинающих (http://zx-pk.ru/forumdisplay.php?f=43)
-   -   Переключение банок в ZS Scorpion (http://zx-pk.ru/showthread.php?t=16406)

ARTi 20th July 2011 16:24

Переключение банок в 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++ (люблю и уважаю), так что увольте )))
Надеюсь на подробные и развернутые ответы, так сказать, для идиотов. Спасибо.

null_device 20th July 2011 17:06

Во-первых, о каком скорпионе идет речь (зеленый\желтый) и в какой комплектации?
Один из источников "про скорпион" - тут.
----
По поводу распределения памяти в скорпионе (портам управления), инфа лежит тут и тут.

ARTi 20th July 2011 17:54

Спасибо за интересные ссылки! Однако, по большей части, там все по поводу RAM-ов, а у меня вопрос про ROM-ы (и порты, какие и когда включаются в пространство в/в).
По первой ссылке для меня полезна полная инструкция по эксплуатации, но там вообще инфа противоречивая - на рисунке ROM0 это 48к ПЗУ и ROM1 - 128к, а далее написано наоборот ))) И кому верить? Вообще я у себя сделал по варианту: ROM0 - 128, ROM1 - 48, ROM2 - Monitor, ROM3 - TR-DOS. Но я так до сих пор и не знаю, как правильно? Ясным подтверждением моего незнания - не желающий нормально проходить сброс эмулируемый комп...

Black_Cat 20th July 2011 19:24

Quote:

Originally Posted by ARTi (Post 400776)
1. В CPU0 может быть отображена только RAM0 или и RAM8 тоже?

Только RAM0

Quote:

Originally Posted by ARTi (Post 400776)
2. Экранная область может быть только в RAM5/7 или и в RAM13/15?

только в RAM5/7, расширенных видеорежимов на Скорпе не было

Quote:

Originally Posted by ARTi (Post 400776)
3. Какие есть еще подводные камни при подключении доп. бит в порту 0x1FFD для получения 1024k?

Есть любительский самопальный вариант (D6, D7 #1FFD), и есть КАЕвский вариант (D6 #7FFD, D7 #1FFD), рекомендую для программ использовать последний, но в эмуле сделай оба.

Quote:

Originally Posted by ARTi (Post 400776)
4. Порты TR-DOS могут быть включены только при отображенном ПЗУ TR-DOS или также при отображенном мониторе Скорпиона?

только при входе через TR-DOS, т.е. когда сначала входят в TR-DOS. На Скорпе можно включить сервис-ПЗУ и без входа в TR-DOS, через D1 #1FFD.

Quote:

Originally Posted by ARTi (Post 400792)
у меня вопрос про ROM-ы (и порты

порядок:
0 - 128
1 - 48
2 - сервис
3 - трдос

Коммутация страниц ПЗУ по D4 #7FFD и входу в TR-DOS, а через D1 #1FFD попадаешь сразу в сервис из любой ПЗУ.
Рекомендую в эмуле ещё сделать выбор коммутации по КАЮ и Фениксу

ARTi 20th July 2011 20:03

Black_Cat, спасибо, я конечно же сделаю как угодно, лишь бы все было разложено по полочкам, сейчас все пока в куче лежит и тухнет... А за развернутый ответ спасибо, кое-что прояснилось, наконец. Но если будет не лень, опишите, пожалуйста, упомянутые другие варианты.
И еще вопрос - в каких разновидностях Скорпиона и других моделях (КАЙ, Профи, АТМ) можно прочитать текущий конфиг памяти, и как? Например, я читал про запоминание некоторых бит в канальных рег-рах AY, но несколько разных вариантов (какой правильный?), а также кто-то писал, что нек-рые биты конфига можно прочитать с 0x1FFD/0x7FFD, но ведь это может изменить скорость, разве такое правильно?
Спасибо.

Black_Cat 20th July 2011 20:57

Quote:

Originally Posted by ARTi (Post 400808)
в каких разновидностях Скорпиона и других моделях (КАЙ, Профи, АТМ) можно прочитать текущий конфиг памяти, и как?

токо в Скорпе турбо из порта А АY:

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:

Originally Posted by ARTi (Post 400808)
если будет не лень, опишите, пожалуйста, упомянутые другие варианты

кинь мне своё мыло

lisica 20th July 2011 20:58

Quote:

Originally Posted by ARTi (Post 400776)
Итак, у меня встал большущий

Quote:

Originally Posted by ARTi (Post 400776)
Вот, вроде кончил.

C таким подходом не к спектруму...:v2_wink2::v2_dizzy_biggrin2::v2_dizzy _biggrin2::v2_dizzy_biggrin2:

ARTi 20th July 2011 22:55

lisica, может, Вы и правы, а то сколько лет я др*чу на свой эмулятор, а толку мало, хотя, с другой стороны, именно когда встает вопрос, дело продвигается быстро (ой, только не надо мне про то, что НГ чаще - вопросы ведь разные бывают).

Black_Cat 21st July 2011 01:48

ARTi, здесь есть описание работы всех стандартных системных портов и большей части портов объединительной концепции Хiмеra: Стандартизация и развитие портов ZX Spectrum. . В объединительной концепции Хiмеra есть возможность читать значение портов управления памятью, при том без конфликтов, если тебе нужен именно такой функционал.

ARTi 21st July 2011 02:39

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.