Из газеты AlCo News #32, Рязань, 11.07.2004



KSA-7G  разработал до дикости простой вариант схемы 384x304 (см.
ZX-Guide #2 ) с программным переключением.

                         Contact v2.06
 (.04 у KSA-7G на компе, а в .05 был лишний транзистор, который
KSA-7G выкинул, когда схема уже была оформлена в виде экрана :):

                          Первая цепь
                 (как и в схеме с рубильником):

сигнал стандарных строк экрана           14-й(с нуля) видеоадрес
D8(555ЛЕ1):13 ----+------------------------+---> D17(555КП11):14
или D9(1533ЛИ1):5 |    отрезать +5v <--x---+
                  |
                  +------------------------+---> D14(555КП11):14
                       отрезать +5v <--x---+    (для атрибутов)

                          Вторая цепь
                      (вместо рубильника):
                 Расположение полей 2-го экрана
             (для 1-го вместо pg6,7 читайте pg4,5),
             адреса атрибутов - в фигурных скобках:

{#d0xx} #c01f?#e000     ^   {#f0xx}          #e01f?#c008 {#d0xx}
     pg6 ... | ...    8chr    pg6             ... | ... pg6
        #c7ff|#e7e0     v                    #e7ff|#c7e8
-------------+------------------------------------+-------------
{#d8xx} #c01f|#e000     ^   {#f8xx}          #e01f|#c008 {#d8xx}
  ...    ... | ...      |     ...             ... | ...    ...
     pg7     |        24chr   pg7                 |     pg7
  ...    ... | ...      |     ...             ... | ...    ...
{#daxx} #d7ff|#f7e0     v   {#faxx}          #f7ff|#d7e8 {#daxx}
-------------+------------------------------------+-------------
{#d3xx} #d81f|#f800     ^   {#f3xx}          #f81f|#d808 {#d3xx}
     pg6 ... | ...    6chr    pg6             ... | ... pg6
<---8chr---> |#ffa0     v                    #ffbf| <---8chr--->

   Поскольку  логика  схемы  проста  и понятна, то рекомендуется
включать  её в состав вновь разрабатываемых плат ZX Spectrum, да
и эмуляторов тоже (пока есть только в Unreal ).
   Софт за мной.

     Процедура переброски строки пикселов на экран 384x304:

;HL указывает на адрес строки в памяти (384 точки = 48 байтам)
;BC указывает порядковый номер строки (от 0 до 303)
LDIR384 LD A,C
        AND 7
        LD D,A
        XOR C
        ADD A,A,A,A
        LD E,A
        DJNZ L384NLO
        LD A,D
        ADD A,#18
        LD D,A
L384HI  LD A,D
        ADD A,#C0
        LD D,A
        LD A,22
        JR L384OK
L384NLO LD A,C
        AND #C0
        JR Z,L384HI
        RRCA
        RRCA
        RRCA
        ADD A,#B8,A,D
        LD D,A
        LD A,23
L384OK  CALL OUTME
        PUSH DE,DE
        SET 3,E,4,E
        LD BC,8
        LDIR
        POP DE
        SET 5,D
        LD C,32
        LDIR
        POP DE
        SET 3,E
        LD C,8
        LDIR
        RET

В Unreal Speccy  режим 384x304 сейчас подержан не в лучшем виде:
при разрешении 320x240 (оно же 640x480 ) на пцшном экране не по-
местилась  основная  часть экрана. Почему? Потому что SMT решил,
что верхние 8 знакомест важнее... Возможно, в этом был виноват и
я,так и не переместивший в ANSI viewer'е начало печати для 80x38
на 5-ю (видимую  на  всех  дисплеях) строку вместо 0-й. А больше
240 строк Unreal не обсчитывает ни в каком режиме...

Во избежание подобных недоразумений впредь НАСТОЯТЕЛЬНО рекомен-
дую считать видимыми везде только следующие поля экрана 384x304:
  1) основной экран;
  2) по 4 знакоместа с боков;
  3) по 3 знакоместа сверху и снизу;
  4) соответствующие уголки между 2) и 3).
Последнее, впрочем, не  всегда достижимо на телевизорах; верхняя
часть  экрана тоже не видна при некоторых подключениях из-за то-
го, что в развертке Pentagon по ошибке разработчиков отсутствует
один строчный синхроимпульс (точнее, он слит с кадровым и не мо-
жет быть опознан схемой телеприёмника). Это реально исправить,мы
с KSA-7G  работаем над этим вопросом. Поэтому РАЗРЕШАЕТСЯ приме-
нять рекомендованную область сверху.

Как может быть использована оставшаяся часть экрана?
  1) для показа картинок с не очень важной периферией (например,
фото- и кинокадры);
  2) для рамочек,ограничивающих экран на реальном ZX (для эмуля-
тора это не столь важно: геометрия пцшных мониторов,как правило,
идеальна);
  3) для вторых половин каких-либо элементов управления,назначе-
ние которых можно понять и по одной поместившейся на экран поло-
вине. Например, если  ваша  программа  будет иметь ряд иконок по
верхнему  краю экрана, смело выводите их на знакоместо выше, чем
видно согласно рекомендации.