ACNews #32
10 июля 2004
  Железо  

Железо - до дикости простой вариант схемы 384x304 с программным переключением.


Аппаратное обеспечениеЭксплуатация и доработкиВидеоГрафические режимы

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---┘    (для атрибутов)

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

то, что было на 13-м видеоадресе раньше ─┬-┐ (у многих это GND)
                               ╔════════ │ x ═╗
сигнал стандартных столбцов экрана       │ | отрезать старое
D4(555ИЕ7):7 или D9:4 ──────┐  ║   диод / |  ║
                1533ЛИ1     █  ║        ─┬ |  ║
сигнал включения       1.5k █  ║         │ |  ║  13-й видеоадрес
(eff7 bit 6) ───┬─────┤<────┴─────>├─────┴─┼───> D17(555КП11):11
                │    диод      ║ диод      │  ║
+5v ───█████────┤              ║      1.5k █  ║
         1k     │              ║           █  ║
старый         / диод         ║           │  ║
сигнал бордюра ─┬   новый сигнал бордюра   │  ║
D9:6 ───┬█████──┼────> D10(1533ТМ2):12    ─┴─ ║
1533ЛИ1 | 3.3k  |              ╚══════════════╝
        └---x---┘     эта часть схемы нужна, если на 13-м
        отрезать       видеоадресе был не GND (т.е. нету
                       512x192, атрибута на байт или SB)

                 Расположение полей 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) для вторых половин каких-либо элементов управления,назначе-
ние которых можно понять и по одной поместившейся на экран поло-
вине. Например, если  ваша  программа  будет иметь ряд иконок по
верхнему  краю экрана, смело выводите их на знакоместо выше, чем
видно согласно рекомендации.

SMT! Ну исправь же эмулятор, что же это такое!? 8 младших значе-
ний  тональника  AY свистеть не должны, а должны уменьшать гром-
кость огибающей - мы это знаем? Знаем! Почему не видим? В ACEdit
специально для  Anti-Text64  исправлен шрифт - нам это известно?
Известно! Почему  тогда  я не могу подать редактор в комплекте с
эмулятором  пцшнику под соусом заменителя "Блокнота" ? Положение
экрана 384x304 надо исправить? Надо! BV должен работать? Должен!
Добрые Саратовские друзья, поймайте же в конце концов этого неу-
ловимого и гениального лентяя!



Другие статьи номера:

News - John сейчас находится в Казани. Firestarter прислал чудовищную гору софта на CD. Alco прошёл новые 10 уровней к Чёрному Ворону.

Железо - до дикости простой вариант схемы 384x304 с программным переключением.

Contacts - А вы знаете,что дискета 5,25" весит 1.5 - 2 грамма?


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Железо - Дополнительный графический режим 512x192. (Дополнение).
Hardware - наработки наших железячников: Soundrive, графический режим 512х384.
Очумелые_ручки - схема 512 точек на экране.

В этот день...   18 июля