PDA

Просмотр полной версии : ZX 128 - второй экран



icebear
06.03.2006, 16:12
Вопрос такого плана: в #7FFD бит 3 отвечает за выбор активного экрана. Правильно ли я понимаю, что второй экран юзается при установленном 3-м бите #7FFD и седьмой впечатаной странице? Установить _только_ 3-й бит либо _только включить_ седьмую страницу недостаточно для смены экранов?

spensor
06.03.2006, 16:20
в #7FFD бит 3 отвечает за выбор активного экрана
Более корректно сказать "за отображение экрана". Значение бита определяет какой экран отображать.

Установить _только_ 3-й бит либо _только включить_ седьмую страницу недостаточно для смены экранов?
Страницу 7 необходимо включать в область оверлея (C000-FFFF) только в случае необходимости что-то там изменить. Условно говоря одновременно ты можешь использовать 64К+6912байт одновременно - экран будет отображаться не находясь в области непосредственной адресации CPU.

icebear
06.03.2006, 16:47
Страницу 7 необходимо включать в область оверлея (C000-FFFF) только в случае необходимости что-то там изменить. Условно говоря одновременно ты можешь использовать 64К+6912байт одновременно - экран будет отображаться не находясь в области непосредственной адресации CPU.

Т.е. проще говоря ULA во время вывода информации на экран сама подключает нужную банку в зависимости от значения 3-го бита? А если я хочу писать во второй экран, мне надо обязательно включать 7-ю банку, так?

Максагор
06.03.2006, 17:07
Т.е. проще говоря ULA во время вывода информации на экран сама подключает нужную банку в зависимости от значения 3-го бита? А если я хочу писать во второй экран, мне надо обязательно включать 7-ю банку, так?

Да, безусловно. Иначе куда ты будешь вносить байты командами LD, LDI(R) и прочими? Само собой, "впечатав" страницу 5 или 7 в адресное пространство. Но отображаться они могут и не будучи впечатанными.

P.S. Вопросик отсюда: вы же с командой в свое время AZX-Monstrum проектировали, дык почему пробелы в таких элементарных моментах попадаются?

Sinus
06.03.2006, 17:08
icebear

3й бит #7FFD отвечает только за адрес выборки при отображении.
это никак не связано с текущей страницей.

т.е. то что ты написал в своём последнем посте почти правильно.

icebear
06.03.2006, 17:37
P.S. Вопросик отсюда: вы же с командой в свое время AZX-Monstrum проектировали, дык почему пробелы в таких элементарных моментах попадаются?

Проектировали - громко сказано. Я уже писал, что тогда "напроектировали". А ответ на твой вопрос прост: последний Спектрум у меня имел 48К (это был конец 94-го и это был брестский Байт с дисководом), посему я практически со 128-м не сталкивался. Во времена AZX я набирал людей ещё и для того, что бы они делали узлы, о которых я либо ничего, либо очень мало знаю (что бы быстрее сделать, а не что бы они за меня сделали). Плюс сейчас перерыв почти в 6 лет. Так что элементарен этот момент тем, кто с этим уже хоть раз сталкивался. Тогда я раньше забил, чем начал изучать. Сейчас посмотрел на разные схемы и решил проверить сам себя.

icebear
06.03.2006, 17:39
icebear

3й бит #7FFD отвечает только за адрес выборки при отображении.
это никак не связано с текущей страницей.

О какой текущей странице идёт речь? Я говорил о текущем (активном) экране, информация которого отображается.


т.е. то что ты написал в своём последнем посте почти правильно.

Что значит "почти правильно"?

Sinus
06.03.2006, 18:08
О какой текущей странице идёт речь? Я говорил о текущем (активном) экране, информация которого отображается.

а я о другом наверное. :mad:
о какой странице? о той которая в данный момент "впечатана" в адресное пространство процессора от #C000 до #FFFF.


Что значит "почти правильно"?


ULA во время вывода информации на экран сама подключает нужную банку в зависимости от значения 3-го бита

ULA не подключает никаких банок.
ULA просто берёт инфу из нужного местя памяти (3й бит мапится на шину адреса)

это не придирательство к словам, просто если бы ULA действительно "подключала" нужную банку, а потом возвращала как было, сильно усложнилась бы схема контроллера.

icebear
06.03.2006, 18:21
а я о другом наверное. :mad:

Называй тогда вещи своими именами :)


ULA не подключает никаких банок.
ULA просто берёт инфу из нужного местя памяти (3й бит мапится на шину адреса)

это не придирательство к словам, просто если бы ULA действительно "подключала" нужную банку, а потом возвращала как было, сильно усложнилась бы схема контроллера.

Это именно придирательство к словам :) Ладно, в следующий раз буду обрамлять в кавычки, что бы непоняток не было. Спасибо за инфу.