Как известно, если задать этот бит=1, то будет отображаться экран 1, банка памяти 7 (а не стандартный 0, банка памяти 5).
Но в какую банку я попаду, если я начну писать в адреса с #4000 ?
И куда, если писать в #С000 ?
Вид для печати
Как известно, если задать этот бит=1, то будет отображаться экран 1, банка памяти 7 (а не стандартный 0, банка памяти 5).
Но в какую банку я попаду, если я начну писать в адреса с #4000 ?
И куда, если писать в #С000 ?
Если будешь писать с #4000 то попадёшь в 5ю банку
Если в #С000 то это зависит какая банка включена - туда и попадёшь
Но прикольно - если включена банка 5, и бит 3 в 0 - то и в #С000 и с #4000 будит экран малеваться.
---------- Post added at 22:11 ---------- Previous post was at 22:08 ----------
Вернее данные будут записываться туда не зависимо включена она или нет. Но включиться сама не сможет.
IanPo, все твои непонятки в том, что ты путаешь всё на свете :) .
Адресное пространство процессора делится на 4 ОКНА: CPU0-CPU3.Запомни - не банки, не тазики и не горшки, а именно - ОКНА! Знание терминологии - важно для понимания!
В эти окна на разных клонах можно подставлять разные СТРАНИЦЫ. Опять же - не банки, не тазики и не горшки, а именно - СТРАНИЦЫ!
Дык вот, в нормальном ZX128 в окно CPU1 по умолчанию подставляется 5 страница , и она же отображается на экране (D3=0 #7FFD). А при D3=1, на экране отображается 7 страница.
Ввиду ограниченности адресного пространства Z80, он может обращаться только к своим окнам. Поэтому, если ты пишешь в какое-то окно, то насамделе ты пишешь в ту страницу, которая сейчас подставлена в это окно. При том на некоторых компах страницы можно менять в боее чем одном окне. Управление тем, что подставляется в окна осуществляет менеджер памяти. Для ZX128 - это порт #7FFD.
Да, и последее - БАНКОМ правильно называть блок памяти размером во всё адресное пространство процессора, т.е. для Z80 - это 64k, а например для eZ80 - 16Мб. :) Так что говоря о банках, надо конкретизировать, т.к. это неоднозначное понятие, а вот окна и страницы - для Спектрума вполне однозначные.
В ZX-Spectrum-128 в окно 1 (4000-7FFF) _всегда_ подключена страница 5. В независимости ни от чего. Окно проецирования страниц у спектрума 128 - окно3 (C000-FFFF). Опять же. D3 7FFD только указывает видеоконтроллеру какую страницу отображать в данный момент. Номер страницы для подключения в окно в битах 0-2.
В подавляющем большинстве клонов страницы можно менять только в одном окне. Исключение это: Спринтер, АТМ, (может и ещё какой, но сейчас не припомню). Даже у профика окно проецирования страниц одно, но имеет 2 положения. В режиме маппинга ZX-Spectrum это окно 3, в расширенном режиме - окно 1.
А по поводу терминов скажу. Окна называют ещё сегментами. И страницами тоже. В разных системах и литературе по разному. На самом деле это не имеет решающего значения.
---------- Post added at 08:29 ---------- Previous post was at 08:22 ----------
Это кто так сказал? В компьютерных системах с расширенным ОЗУ (более 64К) под управлением CP/M Plus (ver 3) банком ОЗУ называлась область менее 64К, как правило размером 32-48К. Подключался банк с адреса 0. Banked CP/M (или MP/M) использовала ОЗУ именно так. Термин встречается в литературе с 1981г. Хотя стандартом это не является, как и приведенное тобой значение. Более того скажу, в CP/M страницей называется область памяти размером 256 байт. Первые 256 байт ОЗУ так и называются - системная страница. Объем TPA измеряется в страницах. Команда save file N - сохраняет указанное кол-во страниц с адреса 100H.
Простой вопрос, а вызвал столько флейма :)
Я уже практически проверил, lisica все точно ответил.
Доп.вопрос из области атрибутов (оффтоп, но раз уж начали):
атрибут повышенной яркости (бит 6) действует сразу и на INK, и на PAPER ?
Спасибо. Прошивка готова.
http://zx.pk.ru/showpost.php?p=371668&postcount=38