ZX Pilot #31
20 февраля 1999
  Железо  

Видеопорт - Рекомендации по сборке, наладке и программирование Видеопорта (дигитайзера).

<b>Видеопорт</b> - Рекомендации по сборке, наладке и программирование Видеопорта (дигитайзера).
         В И Д Е О П О Р Т (ч. I)

──────────────────────────────────────────

(C) AlphA Studio


   Данная статья набрана по многочисленным
просьбам   главного  редактора  ZX-PILOT'а
VEL'а.  Стучал  по  клавишам в IS-EDITOR'е
Igor of AlphA Studio.
   В этой статье пойдет речь об устройстве
именуемом "ВИДЕОПОРТ", разработанном Мани-
ловым  А.П.  и опубликованном в ZX-FORUM'е
#2.  Вполне возможно, что не у всех желаю-
щих собрать "Видеопорт" есть в наличии эта
книга,  поэтому  и набрана нижеприведенная
статья.  В ней так же будут даны некоторые
рекомендации по сборке и наладке не только
от автора, но и от меня.


(C) Манилов А.П.         г.Москва, 1994 г.

   Устройство для ввода изображений, зако-
дированных  в видеосигнале, в ZX-совмести-
мые  компьютеры, с программным обеспечени-
ем.

                ВВЕДЕНИЕ.

   Вы  пробовали нарисовать картинку с по-
мощью  графического  редактора ART STUDIO?
Если у большинства ничего путного не полу-
чилось,  то  это  не потому, что ZX плохая
машина или ART STUDIO сделали тупицы. Этот
результат  закономерен,  поскольку способ-
ностью  к  рисованию обладают не все люди.
Но  ведь  иногда хочется в своей программе
поместить  хорошую картинку. Такую возмож-
ность  Вы  можете  получить  оснастив свой
ZX-Spectrum устройством "ВИДЕОПОРТ".
   (За  примерами  далеко ходить не надо -
игра THE PUZZLE и другие использующие ска-
нированные  картинки, которые нисколько не
портят эти игры <I/ASt>).
   Идея разработки была почерпнута автором
из публикации ZX-РЕВЮ-1991 г. (стр.121), в
которой  сообщалось  о  существовании уст-
ройства  "Videoface" фирмы "DATA-SCIP". Не
имея понятия о принципах построения "Vide-
oface",  автор назвал свое устройство "ВИ-
ДЕОПОРТ". Название связано с тем, что дан-
ное устройство играет роль порта ввода, но
не  для цифровых сигналов, а для видеосиг-
нала.  "ВИДЕОПОРТ" подключается к видеовы-
ходу  телевизора, видеокамеры, видеомагни-
тофона. Место устройства в системе показа-
но на рис. 1.

             ┌───────────┐
             │    TV     │
             └─────┬─────┘
                   │
             ┌─────┴─────┐ ┌────────────┐
             │ VIDEOPORT ├─┤БЛОК ПИТАНИЯ│
             └──┬─────┬──┘ └────────────┘
                │     │
┌─────────┐  ┌──┴─────┴──┐
│ДИСКОВОД ├──┤ZX-SPECTRUM│
└─────────┘  └─────┬─────┘
                   │
             ┌─────┴─────┐
             │  ДИСПЛЕЙ  │
             └───────────┘
                 Рис. 1.

   К  компьютеру  "ВИДЕОПОРТ" подключается
через  буферизированную шину  внешних уст-
ройств. Питание устройства может быть осу-
ществлено   от  блока  питания  дисководов
(+12v, +5v).
   Под  управлением программы, загруженной
в  ZX,  кадр  изображения копируется в ОЗУ
устройства,  затем читается в ZX-Spectrum,
перекодируется в формат экрана и отобража-
ется на дисплее. Полный цикл смены изобра-
жений  на  экране  дисплея - примерно одна
секунда. Полученное изображение может быть
сброшено на диск.

  ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ УСТРОЙСТВА.

- входное сопротивление
  по видевходу . . . . . . . . . . 100 Ом
- амплитуда входного сигнала . . . 0.5-1 В
- частота дискретизации  . . . . . 7 МГц
- число строк запоминаемое в ОЗУ . 312
- напряжение питания . . . . . . . +12,+5В
- потребляемый ток по цепи +12В. . 40 мА
                   по цепи +5В . . 320 мА
- имеется   возможность  ручной  установки
  контрасности и баланса белого;
- подключается к ZX-Spectrum через буфери-
  зированную шину внешних устройств.

   Программное  обеспечение, сделанное ав-
тором, имеет три варианта: для системы IS-
DOS, для системы TR-DOS и для магнитофона.
(Ниже приводится программа только для сис-
темы TR-DOS <I/ASt>).


     ФУНКЦИОНАЛЬНАЯ СХЕМА УСТРОЙСТВА.

   Принцип  работы  устройства "ВИДЕОПОРТ"
поясняется  функциональной  схемой, приве-
денной на рис. 2.
   Перечислим  функциональные устройства с
указанием их назначения:
   СОГЛАСУЮЩЕЕ  УСТРОЙСТВО - предназначено
для согласования внешней цепи.
   УСТРОЙСТВО   ВЫДЕЛЕНИЯ СИНХРОСИГНАЛОВ -
обеспечивает   выделение  из  видеосигнала
строчных  синхроимпульсов  (СИ) и кадровых
синхроимпульсов  (КИ). Обеспечивает подав-
ление помех и выдает СИ и КИ со стабильной
длительностью и амплитудой.
   КОМПАРАТОР - обеспечивает  формирование
уровня видеосигнала и сравнение с заданным
уровнем.  Имеет  ручное управление уровнем
видеосигнала и уровнем срабатывания компо-
ратора.
   ФОРМИРОВАТЕЛЬ ТАКТОВЫХ СИГНАЛОВ - опре-
деляет  частоту дискретизации видеосигнала
и  обеспечивает синхронизацию работы сдви-
гового регистра и схемы управления ОЗУ.
   СХЕМА  УПРАВЛЕНИЯ ОЗУ - формирует адрес
ОЗУ,  сигналы  чтения и записи в соответс-
твии с режимом работы.
   РЕГИСТР  ДАННЫХ - служит  для  передачи
данных из ОЗУ в шину данных ZX-Spectrum.
   РЕГИСТР  УПРАВЛЕНИЯ - предназначен  для
передачи управляющих сигналов от компьюте-
ра к схеме управления ОЗУ.
   РЕГИСТР СОСТОЯНИЯ - служит для передачи
состояния устройства в компьютер.
   ДЕШИФРАТОР - обеспечивает    дешифрацию
сигналов  системной  шины  ZX-Spectrum при
обращении к регистрам данных, управления и
 состояния.
   Устройство работает в двух основных ре-
жимах:
   - режим записи в ОЗУ, инициируется ком-
пьютером;
   - режим чтения ОЗУ, идет под управление
компьютера.
   Режим  ожидания  возникает по окончанию
любого  основного  режима.  Признак режима
ожидания - высокий  уровень сигнала ГОТОВ,
при  высоком  уровне сигнала РЕЖИМ от ком-
пьютера.

           ┌───────────┐
Видеовход  │Согласующее│
 ──────────┤устройство │ ┌──────────────┐
           └──────┬────┘ │  Устройство  │
      ┌───────────┴──────┤  выделения   ├┐
┌─────┴────┐ Видеосигнал │синхросигналов││
│Компаратор│             └─────┬────────┘│
└─────┬────┘                   ├──────┐  │
      │                ┌───────┴─────┐│  │
┌─────┴────┐ Сдвиг     │Формирователь││  │
│Сдвиговый ├───────────┤  тактовых   ││  │
│          ├──────────┬┤  сигналов   ││  │
│ регистр  ├─┐Фиксация│└──────┬──────┘│  │
└─────┬────┘ │Чтение  │       │Строб┌─┘КИ│
      │      └───────┐│       │     │СИ┌─┘
┌─────┴────┐ Адрес ┌─┴┴───────┴─────┴──┴─┐
│          ├───────┤                     │
│          │ Запись│       Схема         │
│   ОЗУ    ├───────┤     управления      │
│          │ Чтение│        ОЗУ          │
│          ├───────┤                     │
└────┬─────┘       └──┬┬──────┬┬──────┬┬─┘
     │Данные     Счет ┤│Чтение┤│Сброс ┤│
     │           строк│├Счет  ││адреса│└─┐
     │                ││байтов│├Режим │  │
┌────┴────┐  ┌────────┴┴──────┴┴──────┴┐ │
│ Регистр │  │         Регистр         │ │
│  данных │  │       управления        │ │
└┬──────┬─┘  └─────┬───────────────────┘ │
 ├DATA  │CSD       │CSC         Готов┌───┘
 │┌─────┴──────────┴────┐CSS ┌───────┴───┐
 ││      Дешифратор     ├────┤  Регистр  │
 ││                     ├───┐│ состояния │
 │└┬─────┬───┬───┬──┬──┬┘   │└─────┬─────┘
 │ ├/IORQ├/RD├/WR├A0├A1├A4  │DATA  │DATA
┌┴─┴─────┴───┴───┴──┴──┴────┴──────┴─────┐
│     Системная схема ZX-Spectrum        │
└────────────────────────────────────────┘
                  Рис.2.


   Рассмотрим режим записи в ОЗУ. Для наг-
лядности  объяснения работы устройства, на
рис.  3  приведена  циклограмма  сигналов,
обазначенных на функциональной схеме.
   До  момента t0 уровни сигналов, указан-
ные  на  циклограмме,  блокируют  запись в
ОЗУ.  Устройство находится в режиме ожида-
ния.  В момент t0, по команде ZX-Spectrum,
переданной  через регистр управления, сиг-
нал "РЕЖИМ" устанавливается в "0". По это-
му  сигналу схема управления ОЗУ переходит
в  состояние  ожидания  кадрового импульса
(КИ).
   При  получении КИ в момент t1 схема уп-
равления ОЗУ обнуляет сигнал "ГОТОВ". Этот
момент соответствует началу записи картин-
ки  в ОЗУ. Компьютер получив через регистр
состояния  сигнал "ГОТОВ", соответствующий
логическуому  нулю,  устанавливает уровень
сигнала  "РЕЖИМ"  в  единицу и переходит в
состояние ожидания конца записи в ОЗУ. Это
событие  происходит  через 20 мсек от t1 в
момент tк. Начиная с момента t1 всеми про-
цессами  в  устройстве управляет схема уп-
равления ОЗУ.


│Режим
│ t0 t1
├─┐  ┌────────────────────────────────────
│ │  │
├─┴──┴────────────────────────────────────
│Готов
├──┐ ─ ─ ─ ─ ─ ─ 20 мсек ─ ─ ─ ─ ─ ─ ─ ┌──
│  │                                   │
├──┴───────────────────────────────────┴──
│КИ                                    tк
│  ┌┐                                  ┌┐
│  ││                                  ││
├──┴┴──────────────────────────────────┴┴─
│   СИ
│     ┌┐
│     ││
├─────┴┴──────────────────────────────────
│Строб       1 2 3 4 5 6 7 8 1 2 3 Частота
│            ┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐┌┐ 7 МГц
│ . . . . . .││││││││││││││││││││││. . .
├────────────┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴┴───────
│Сдвиг
│             ┌┐┌┐┌┐┌┐┌┐┌┐┌┐  ┌┐┌┐┌┐
│ . . . . . . ││││││││││││││  ││││││ . .
├─────────────┴┴┴┴┴┴┴┴┴┴┴┴┴┴──┴┴┴┴┴┴──────
│Фиксация
│                           ┌┐
│ . . . . . . . . . . . . . ││ . . . . .
├───────────────────────────┴┴────────────
│ Каждый СИ увеличивает адрес ОЗУ до зна-
│ чения, кратного 64.
│ Каждый импульс ФИКСАЦИЯ увеличивает ад-
│ рес ОЗУ на 1.
                 Рис. 3.


   В момент t1 адрес ОЗУ сбрасывается в 0.
Начинается  преобразование  видеосигнала в
последовательность   байт.   Формирователь
тактовых  сигналов синхронизируется строч-
ными  синхроимпульсами.  Выходные  сигналы
формирователя,  сигналы  "СТРОБ" и "СДВИГ"
сдвинуты   относительно  друг  друга,  что
обеспечивает согласованость работы сдвиго-
вого регистра и схемы управления ОЗУ.
  Сигнал  "СДВИГ" поступающий на сдвиговый
регистр,  обеспечивает  запоминание уровня
на  выходе компаратора в сдвиговом регист-
ре.  По  каждому  восьмому сигналу "СТРОБ"
схема  управления  ОЗУ  формирует  сигналы
"ЧТЕНИЕ", "ФИКСАЦИЯ" сдвигового регистра и
"ЗАПИСЬ"  ОЗУ. Кроме этого, схема управле-
ния  ОЗУ увеличивает адрес ОЗУ на единицу.
Таким  образом  происходит  запись  в  ОЗУ
строки изображения.
   При  поступлении  очередного  строчного
синхроимпульса  на  схему  управления ОЗУ,
происходит  установка адреса ОЗУ соответс-
твующего первому байту новой строки. Далее
все  происходит так же, как для предыдущей
строки.  Таким образом, строка за строкой,
в  ОЗУ возникает копия изображения, в этой
копии бит имеющий значение 1 соответствует
темному  участку  изображения,  а значение
0 - светлому участку.
   При  поступлении  очередного  кадрового
импульса  на  схему управления ОЗУ процесс
записи  ОЗУ  прекращается,  сигнал "ГОТОВ"
устанавливается в единицу. Устройство "ВИ-
ДЕОПОРТ" переходит в режим ожидания команд
от  компьютера.  В  этом режиме устройство
может  находиться  до  снятия питания, при
этом копия картинки в ОЗУ будет сохранять-
ся.
   Рассмотрим режим чтения ОЗУ. Для нагля-
дности,  на  рис. 4 приводится циклограмма
сигналов в режиме чтения ОЗУ.

│Режим
├─────────────────────────────────────────
│
├─────────────────────────────────────────
│Готов
├─────────────────────────────────────────
│
├─────────────────────────────────────────
│Сброс адреса
├┐
││
├┴────────────────────────────────────────
│Счет строк          Установка адреса на
│   ┌┐1 ┌┐2    ┌┐k     "k" строку
│   ││  ││ . . ││
├───┴┴──┴┴─────┴┴─────────────────────────
│Счет байтов          Установка адреса на
│                   ┌┐1 ┌┐2    ┌┐m  "m"
│                   ││  ││ . . ││   байт
├───────────────────┴┴──┴┴─────┴┴─────────
│CSD (Выбор регистра данных)
│                                   ┌┐
│                                   ││
├───────────────────────────────────┴┴────
│Чтение ОЗУ из регистра
│     управления                  ┌─────┐
│                                 │     │
├─────────────────────────────────┴─────┴─
│                                    │
│Начало режима чтения ОЗУ
│                                    │  │
│                                       │
│Передача байта данных в ZX ────────────┘
│(байт соотвтствует "k" строке
│ и "m" столбцу экрана).
                 Рис. 4.


   Этот  режим идет полностью под управле-
нием  компьютера.  Все  сигналы передаются
через  регистр управления. Для начала про-
цесса  чтения  ОЗУ  выдается сигнал "СБРОС
АДРЕСА". В результате схема управления ОЗУ
установит адрес в ноль. Перед чтением, ес-
ли  нужно, можно установить номер строки и
номер байта в строке. Для этого достаточно
подать  на  схему управления ОЗУ соответс-
твующее  число  сигналов  "СЧЕТ  СТРОК"  и
"СЧЕТ  БАЙТ".  После этого можно прочитать
содержимое  байта  ОЗУ, для чего нужно вы-
дать  сигнал "ЧТЕНИЕ" через регистр управ-
ления и принять данные от регистра данных.
Таким образом, можно считать данные из ОЗУ
начиная  с любой строки и с любого байта в
строке. Это позволяет выбрать нужную часть
из  всего  видеокадра для преобразования в
размер стандартной картинки ZX-Spectrum.
   Весь  обмен  командами  и данными между
устройством  и  ZX-Spectrum осуществляется
через регистры. Активизация регистров про-
исходит  дешифратором, который анализирует
сигналы системной шины ZX-Spectrum и выда-
ет соответствующие сигналы выборки регист-
ров по командам IN, OUT с соответствующими
адресами портов.
   На  этом  описание функциональной схемы
заканчивается.


        В И Д Е О П О Р Т  (ч. II)

──────────────────────────────────────────

(C) AlphA Studio


           Принципиальная схема
         устройства  "ВИДЕОПОРТ".

                    D1
              ┌───┬───┬───┐
        ╟─1─10┤A0 │RAM│D0 │11─17╢
        ╟─2──9┤A1 │   │D1 │12─18╢
        ╟─3──8┤A2 │   │D2 │13─19╢
        ╟─4──7┤A3 │   │D3 │15─20╢
        ╟─5──6┤A4 │   │D4 │16─21╢
        ╟─6──5┤A5 │   │D5 │17─22╢
        ╟─7──4┤A6 │   │D6 │18─23╢
        ╟─8──3┤A7 │   │D7 │19─24╢
        ╟─9─25┤A8 │   │   │     ║
        ╟10─24┤A9 │   │   │     ║
        ╟11─21┤A10│   │   │     ║
        ╟12─23┤A11│   │   │     ║
        ╟13──2┤A12│   │   │     ║
        ╟14─20/CS1│   │   │     ║
        ╟─C─26┤CS2│   │   │     ║
        ╟15─27/WR │   │5B ├14──A╢
        ╟16─22/CEO│   │0B ├28──D╢
        ║     └───┴───┴───┘     ║
        ║           D2          ║
        ║     ┌───┬───┬───┐     ║
        ╠═════╡   │RAM│   ╞═════╣
        ║25─20/CS1│   │   │     ║
        ║     └───┴───┴───┘     ║
        ║           D3          ║
        ║     ┌───┬───┬───┐     ║
        ╠═════╡   │RAM│   ╞═════╣
        ║26─20/CS1│   │   │     ║
        ║     └───┴───┴───┘     ║
╔═══════╩═══════════╦═══════════╩════════╗
║        D4         ║        D6          ║
║     ┌──┬─┬──┐     ║     ┌──┬─┬──┐      ║
║37──1/R │C│ 0├14──1╢35──1/R │C│ 0├14───7╢
║38──2/C │T│ 1├13──2╢36──2/C │T│ 1├13───8╢
║─C┬─9┤L0│ │ 2├12──3╫─C┬─9┤L0│ │ 2├12───9╢
║  ├─7┤CT│ │ 3├11──4╢  ├─7┤CT│ │ 3├11──10╢
║  └10┤CR│ │P2├10─27╢  └10┤CR│ │P2├10──29╢
║     └──┴─┴──┘     ║     └──┴─┴──┘      ║
║      D10.1        ║       D10.2        ║
║      ┌───┐        ║       ┌───┐        ║
╟27───1┤ 1 /2─────28╫29────3┤ 1 /4─────30╢
║      └───┘        ║       └───┘        ║
║        D5         ║        D7          ║
║     ┌──┬─┬──┐     ║     ┌──┬─┬──┐      ║
║37──1/R │C│ 0├14──5╢35──1/R │C│ 0├14──11╢
║28──2/C │T│ 1├13──6╢30──2/C │T│ 1├13──12╢
╟─C┬─9/L0│ │  │     ╟─C┬─9/L0│ │ 2├12──13╢
║  ├─7┤CT│ │  │     ║  ├─7┤CT│ │ 3├11──33╢
║  └10┤CR│ │  │     ║  └10┤CR│ │P2├15──31╢
║     └──┴─┴──┘     ║     └──┴─┴──┘      ║
║        D8.1       ║        D9          ║
║     ┌──┬─┬──┐     ║     ┌──┬─┬──┐      ║
║    ─/S │T│ Q├5──34╫33──1┤A0│D│ 0/15──14╢
╟32──3/C │ │  │     ╟34──2┤A1│C│ 1/14──25╢
╟─C──2┤D │ │  │     ╟─D──3┤A2│ │ 2/13──26╢
╟35──1┤R │ │  │     ╟─C──6┤E1│ │  │      ║
║     └──┴─┴──┘     ╟─D┬─4/E2│ │  │      ║
║       D10.5       ║  └─5/E3│ │  │      ║
║       ┌───┐       ║     └──┴─┴──┘      ║
╟31───11┤ 1 /10───32╢                    ║
║       └───┘                            ║
║        D18                 D19         ║
║     ┌──┬─┬──┐           ┌──┬─┬──┐      ║
╟48─11/C │R│Q0├4─────────3┤D0│R│ 0├2───17╢
╟─D─23┤S1│G│Q1├6─────────4┤D1│G│ 1├5───18╢
╟─C──1┤S0│ │Q2├8─────────7┤D2│ │ 2├6───19╢
╟58──2┤DR│ │Q3├10────────8┤D3│ │ 3├9───20╢
║     │  │ │Q4├14───────13┤D4│ │ 4├12──21╢
║     │  │ │Q5├16───────14┤D5│ │ 6├15──22╢
║     │  │ │Q6├18───────17┤D6│ │ 7├16──23╢
╟─C─13/R │ │Q7├20───────18┤D7│ │ 8├19──24╢
║     └──┴─┴──┘  ┌───────1/E0│ │  │      ║
║50──────────────┘ ┌────11┤LD│ │  │      ║
║44────────────────┘      └──┴─┴──┘      ║
║       D11.1               D10.3        ║
║       ┌───┐               ┌───┐        ║
║39─*──1┤ & ├3─────────────5┤ 1 /6─────35╢
║41─┼──2┤   │               └───┘        ║
║   │   └───┘                            ║
║   │   D11.2                            ║
║   │   ┌───┐     VD1                    ║
║40─┼──4┤ & ├6─────┼──*───────────────36╢
║45─┼──5┤   │          │      R1         ║
║   │   └───┘          *─────███────────D╢
║   │   D11.3          │    D10.4        ║
║   │   ┌───┐     VD2  │    ┌───┐        ║
║   └──9┤ & ├8─────┼──*───9┤ 1 /8─────37╢
║42───10┤   │               └───┘        ║
║       └───┘             D11.4          ║
║       D17.1             ┌───┐  VD3     ║
║     ┌──┬─┬──┐     ║40─13┤ & ├11─┼──*38╢
║54───/S │T│ Q├5──39╫44─12┤   │       │  ║
║55───┤D │ │  │     ║     └───┘       │  ║
║56───/C │ │ Q/6──40╢     D12.1       │  ║
║     └──┴─┴──┘     ║     ┌───┐  VD4  │  ║
╠═══════════════════╣39──1┤ & ├3──┼──*  ║
║       D17.2       ╟43──2┤   │       │  ║
║     ┌──┬─┬──┐     ║     └───┘  R2   │  ║
║   ──/S │T│ Q├9──┐ ╟───────────███───┘  ║
║40─12┤D │ │  │   │  D15.3     D14.4     ║
║44─11/C │ │ Q/── │  ┌───┐     ┌───┐     ║
║     └──┴─┴──┘   └─9┤ & ├8─*─9┤ 1 /8──50╢
║        D16      ┌10┤   │  │  └───┘     ║
║     ┌──┬─┬──┐   │  └───┘  │  D14.5     ║
║47──1/R │C│ 0├── │       ┌─┘  ┌───┐     ║
║46──2/C │T│ 1├13─┼─┐     │┌─11┤ 1 /10─15╢
║─C┬─9/L0│ │ 2├12─┘ │     ││   └───┘     ║
║  ├─7┤CT│ │ 3├11─┐ │     │└──────────┐  ║
║  └10┤CR│ │P2├── │ │     │    D15.4  │  ║
╟     └──┴─┴──┘   │ │     │    ┌───┐  │  ║
║49───────────────┘ │     └──13┤ & ├11┘  ║
║        Q1         └────────12┤   │     ║
║┌───────┤█├──────────────┐    └───┘     ║
║│  R3             R4     │              ║
║*──███────┐   ┌───███────*              ║
║│ D13.1   │   │  D13.2   │   D13.3      ║
║│ ┌───┐   │C1 │  ┌───┐   │   ┌───┐      ║
║└1┤ 1 /2──*┤├─*─3┤ 1 /4──*──5┤ 1 /6──┐  ║
║  └───┘       │  └───┘       └───┘   │  ║
║              │VD5┌──────────────────┘  ║
║     D13.4    └┼┐│ ┌───────────────┐   ║
║     ┌───┐       ││ │     D8.2      │   ║
║45──9┤ 1 /8──────*│ │   ┌──┬─┬──┐   │   ║
║     └───┘       ││ └─12┤D │T│ Q├─  │   ║
║     D14.1       │└───11/C │ │  │   │   ║
║     ┌───┐       └──*─10/S │ │ Q/8──*─46╢
║46──1┤ 1 /2──┐      │   └──┴─┴──┘       ║
║     └───┘   │      │        vD6  R5    ║
║    ┌────────*──┐   └────────┼─*─███──A╢
║    │   D15.1   │     D14.2     │       ║
║    │   ┌───┐   │     ┌───┐  VD7│       ║
║    └──1┤ & ├3──┼─*──3┤ 1 /4─┼─*─────47╢
║    ┌──2┤   │   │ │   └───┘             ║
║    │   └───┘   │ └───────────────────44╢
║    │   D14.3   │     D15.2             ║
║    │   ┌───┐   │     ┌───┐             ║
║49──*──5┤ 1 /6──┼────4┤ & ├6──────────48╢
║        └───┘   └────5┤   │
║                      └───┘
╟─B────────────────────────────────*───┐
╟58─────────────────────────┐      │R28█
╟─A──────*────*────────┐    │      │   █
║        │    │        █R33 │      █R26│
║        █R23 │        █ C17│      █   *─┐
║    C15 █ VT1│        │+   │ R34  │VT2│ │
║       +│ │/─┘     VT3*─┤├─*─███┐ │ │/  │
║59─*─┤├─*─┤     R35 │/          │┌*─┤   │
║   │    │ │──*─███─┤  R30      │││ │  │
║   █R37 █     │     │─███──┐R32│││   │ │
║   █    █R24  █R25        ┌─█ ┌─█│█R  █ │
║   │    │     █        R31│ █ │ █│█27 █ │
║   │    │     │           │ │ │ │││   │ │
╟─D─*────*─────*───────────*─*─*─*┼*───┘ │
║  C15* +                         │  R29 │
║59───┤├──────────────────────────┘      │
║                                        │
║57──────────────────────────────────────┘
║45──────────────────┐      ┌───────────┐
║─B───────────────┐  │      │C13     C14│
║     C11     R16 │  │      │   +      ═╪═
║   ┌──┤├───*─███─*  │      *─┤├─────┐  │
║   │       │2    │4 │6     │12      │  └┐
║   │ C2 14┌┴─────┴──┴──────┴─────┐13│C12│
║─D─*──┤├──┤                      ├──*┤├┐│
║   │    16│          D24         │  █R ││
║   *──────┤                      │15█20││
║   │      │                      ├──*─┐││
║   █ R8   └┬─┬──┬───┬────┬─┬────┬┘ R22││█
║   █       │8│3 │5  │11 1│9*─┐C7│10   ││█
║   │       │ █ ═╪═ ═╪═   │ │═╪═ └──┐  │││
║56─*───────┘ █C4│ C5│C6 +│ █ │R15  │  │├*
║          R10│  *───*─┤├─* █ │┌███─* R│││
║45───────────*  │     R12│┌*─*│    │19│█│
║             │  │    ┌───*┼──┼┘ C10│  │█│
║   R9   VD10 │  │    │   ││ ═╪═R14═╪═ *┘│
║─D─███──┼───┘  │    │   ││C8*─███─*──┼┐│
║                │    │   ││  │ R13 R18█││
║                │    █R11│└──┼─███─┐  █││
║                │    █   └───┼─────*  │││
║                │    │      ═╪═    │  │││
║                │    │     C9│  R17█──┘││
║                │    │       │     █  ┌┘│
║               D│   B│      D│    D│57│D│
╠════════════════╧══╦═╧═══════╧═════╧══╧═╣
║        D21        ║        D22         ║
║     ┌──┬─┬──┐     ║     ┌──┬─┬──┐      ║
║39──3┤D0│R│ 0├2───1╫1───3┤D0│R│ 0├2───41╢
║     │  │G│ 1├5───2╫2───4┤D1│G│ 1├5───42╢
║     │  │ │ 2├6───3╫3───7┤D2│ │ 2├6───43╢
║     │  │ │ 3├9───4╫4───8┤D3│ │ 3├9───54╢
║     │  │ │ 4├12──5╫5──13┤D4│ │ 4├12──16╢
║     │  │ │ 5├15──6╫6──14┤D5│ │ 5├15──55╢
║     │  │ │ 6├16──7╫7──17┤D6│ │  │      ║
║     │  │ │ 7├19──8╫8──18┤D7│ │  │   ┌─A╢
║52──1/E0│ │  │     ║ ┌──1/E0│ │  │ R7█  ║
║─C─11┤LD│ │  │     ║ │┌11┤LD│ │  │   █  ║
║     └──┴─┴──┘     ║ ││  └──┴─┴──┘   └─C╢
║        D20        ║ │└───────────────53╢
║     ┌──┬─┬──┐     ║ └─────────────────D╢
║17──3┤D0│R│ 0├2───1╢  ┌────────────────C╢
║18──4┤D1│G│ 1├5───2╢  │     D23         ║
║19──7┤D2│ │ 2├6───3╢  │  ┌──┬─┬──┐      ║
║20──8┤D3│ │ 3├9───4╫9─┼─1┤A0│D│ 0/15──51╢
║21─13┤D4│ │ 4├12──5╫10┼─2┤A1│C│ 1/14──52╢
║22─14┤D5│ │ 5├15──6╫11┼─3┤A2│ │ 2/─     ║
║23─17┤D6│ │ 6├16──7╢  └─6┤E1│ │ 3/12─┐  ║
║24─18┤D7│ │ 7├19──8╫12──4/E2│ │  │   │  ║
║51──1/E0│ │  │   13╟┼─*5/E3│ │  │   │  ║
║─C─11┤LD│ │  │     ╟VD8│ └──┴─┴──┘   │  ║
║     └──┴─┴──┘     ║   │             │  ║
║                   ║   │┌────────────┘  ║
║─D───────────────15╢   ││  ┌───┐ D13.6  ║
║                   ║   │└13┤ 1 /12────53╢
╟1────D0            ║VD9│   └───┘  R6    ║
╟2────D1          14╟┼─*─────────███───A╢
╟3────D2      A0───9╢                    ║
╟4────D3      A1──10╢  VIDEO ──────────59╢
╟5────D4      A4──11╢            Rдоп    ║
╟6────D5   /IORQ──12╢    +12V─────███───8╢
╟7────D6     /WR──13╟B─┐+ +5V─*───*───*─A╢
╟8────D7     /RD──14║ ═╪═     │+  │   │  ║
╟15───Общий         ║  │Cдоп ═╪═ ═╪═ ═╪═ ║
                    ║D─┘   0V─*───*───*─D╢
                            C18  C19-C41
                 Рис. 5.


     Перечень используемых элементов.

D1,D2,D3    - К537РУ17  R18,R20  -  82 кОм
D4,D5,D6                R19      -  12 кОм
D7,D16      - К555ИЕ10  R23      -  22 кОм
D8,D17      - К555ТМ2   R24,R27  -  10 кОм
D9,D23      - К555ИД7   R26      -  47 кОм
D10,D13,D14 - К555ЛН1   R28      - 820  Ом
D11,D12,D15 - К555ЛИ1   R29      - 270  Ом
D18         - К155ИР13  R30,R37  - 120  Ом
D19,D20,D21             R31 пер. - 3.3 кОм
D22         - К555ИР22  R32 пер. - 1.5 кОм
D24         - К174ХА11  R33      - 2.2 кОм
                        R34,R36  -   3 кОм
VT1,VT2,VT3 - КТ315     Rдоп     - 220  Ом
VD1-VD9     - КД522
VD10        - АЛ307     C1,C5    - 0.1 мкФ
                        C2       - 4.7  нФ
R1,R2,R5,R6,            C4,C8,
R7,R21,R25,             C10,C14  - 0.22мкФ
R35         - 5.1 кОм   C6,C18   - 100 мкФ
R3,R4       - 680  Ом   C7       - 6.8  нФ
R8          - 1.6 кОм   C9       - 100  пФ
R9          - 200  Ом   C11      -  47  нФ
R10         - 510  Ом   C12      -  10  нФ
R11,R16     -  27  Ом   C13,C15,
R12         -  33 кОм   C15*,
R13         - 2.2 МОм   C16,C17  - 4.7 мкФ
R14         - 1.5 кОм   C19-C41  - 150  нФ
R15         - 1.8 МОм   Cдоп     -  20 мкФ
R17 подстр. - 4.7 кОм
R22         - 6.8 кОм   Q1       -  14 МГц


   Примечание: C19-C41 - керамические кон-
денсаторы установленные по цепи +5В по од-
ному на корпус каждой микросхемы.

   Сразу  хочу сделать некоторые пояснения
по  принципиальной  схеме.  Так  как схема
изображена  при  помощи  псевдографики, то
приняты следующие обозначения:
   / - инверсия;
   * - соединение проводников;
   ║ - шина.
   У  транзисторов: коллектор - верхний по
схеме вывод; эмиттер - нижний.
   В  целях  экономии места микросхемы D2,
D3 (К573РУ17) показаны условно. Все выводы
этих  ИМС подсоединены к аналогичным выво-
дам  микросхемы D1, за исключением сигнала
/CS1 (выв. 20). (Прим. I/ASt).

   Описание  принципиальной  схемы, приве-
денной  на  рис. 5, построено на раскрытии
устройств,  изображенных на функциональной
схеме. Согласующее устройство выполнено на
транзисторах  VT1,  VT2.  Каскад  на VT1 -
эмиттерный   повторитель,   обеспечивающий
согласование линии передачи видеосигнала с
внутренними устройствами ВИДЕОПОРТ'а. Кас-
кад  на  VT2  инвертирует видеосигнал, что
необходимо  для  правильной работы устрой-
ства  выделения  синхроимпульсов,  которое
построено на микросхеме D24. Для установки
частоты  строчной  развертки  предусмотрен
подстроечный потенциометр R17. Для ограни-
чения  амплитуды строчных импульсов служит
цепочка  R9, VD10, R10. Светодиод VD10 ин-
дицирует наличие строчных синхроимпульсов.
Микросхема D24 чувствительна к отклонениям
значений  сопротивлений и емкостей от ука-
занных  в приложении к принципиальной схе-
ме.
   Компаратор построен на транзисторе VT3.
Предусмотрен регулятор контрастности R31 и
регулятор  баланса  черного/белого  - R32.
Формирователь  тактовых  сигналов построен
на логических микросхемах. Основа формиро-
вателя - стабилизированный кварцевый гене-
ратор  на  D13.1  и  D13.2. Частота кварца
14  МГц. Синхронизация формирователя от СИ
осуществляется  через элемент D13.4. Триг-
гер D8.2 обеспечивает формирование сигнала
СТРОБ.  Сигнал СДВИГ формируется на D14.1,
D14.3,  D15.2.  ОЗУ построено на трех мик-
росхемах  D1, D2 и D3. Примененные микрос-
хемы - это  статическое  ОЗУ по 8К каждая.
Схема управления ОЗУ состоит как бы из не-
скольких узлов.
   Узел  формирования адреса ОЗУ и сигнала
выборки микросхемы включает в себя счетчи-
ки  D4,  D5,  D6,  D7, логические элементы
D10.1, D10.2, D10.5, триггер D8.1 и дешиф-
ратор D9. Узел управления счетчиками обес-
печивает  управление  ими в зависимости от
режима  работы  устройства.  Построен этот
узел на логических элементах D10.3, D10.4,
D11.1-D11.4,  D12.1,  триггере D17.1. Узел
формирования сигнала ЧТЕНИЕ сдвигового ре-
гистра  и сигнала запись в ОЗУ построен на
логических  элементах D15.1, D14.2, D15.3,
D15.4,  D14.4, D14.5, счетчике D16 и триг-
гере  D17.2. Сдвиговый регистр построен на
микросхемах:  D18 - сдвиговый регистр, D19
- буферный регистр. Регистр состояния пос-
троен  на микросхеме D21. Регистр управле-
ния  построен  на D22. Регистр данных - на
D20.  Дешифратор  построен  на микросхемах
D23, D13.6.
   К  ZX-Spectrum "ВИДЕОПОРТ" подключается
через  буферизированную  шину внешних уст-
ройств.


        В И Д Е О П О Р Т (ч. III)

──────────────────────────────────────────

(C) AlphA Studio


             КОМПАНОВКА ПЛАТЫ
         УСТРОЙСТВА  "ВИДЕОПОРТ".

   Рекомендации  по  размещению  элементов
устройства  на  плате  можно свести к нес-
кольким:
   - функциональные  узлы должны быть раз-
мещены компактно;
   - узлы непосредственно связаные с виде-
осигналом  нужно разместить по возможности
подальше от генератора;
   - элементы регулировки должны иметь как
можно более короткие провода подключения;
   - цепи  связи с компьютером должны быть
подальше от цепей видеосигнала.
   В  качестве  примера  на рис.6 приведен
возможный  вариант размещения элементов на
плате.  Кабель  связи  платы с ZX-Spectrum
должен быть не более 30 см.

┌──────────────────────────────────────┐
│              VT2┌┐      VT1┌┐     ┌──┤
│  ┌─────────┐    ││         ││  R31│  ├─┐
│  │   D24   │    └┘         └┘     │  ├─┘
│  └─────────┘                      └──┤
│                         VT3┌┐     ┌──┤
│                            ││  R32│  ├─┐
│                            └┘     │  ├─┘
│ ┌────────┐                        └──┤
│ │  D14   │                           │
│ └────────┘                           │
│ ┌───────┐   ┌───────┐                │
│ │  D15  │   │  D17  │  ┌────────────┐│
│ └───────┘   └───────┘  │            ││
│ ┌───────┐   ┌───────┐  │    D18     ││
│ │  D16  │   │  D19  │  │            ││
│ └───────┘   └───────┘  └────────────┘│
│                                      │
│ ┌────────┐   ┌────────┐   ┌────────┐ │
│ │        │   │        │   │        │ │
│ │        │   │        │   │        │ │
│ │        │   │        │   │        │ │
│ │   D1   │   │   D2   │   │   D3   │ │
│ │        │   │        │   │        │ │
│ │        │   │        │   │        │ │
│ │        │   │        │   │        │ │
│ │        │   │        │   │        │ │
│ └────────┘   └────────┘   └────────┘ │
│                                      │
│           ┌───────┐┌───────┐┌───────┐│
│           │  D12  ││  D11  ││  D9   ││
│           └───────┘└───────┘└───────┘│
│  ┌───────┐┌───────┐┌───────┐┌───────┐│
│  │  D6   ││  D4   ││  D8   ││  D13  ││
│  └───────┘└───────┘└───────┘└───────┘│
│  ┌───────┐┌───────┐┌───────┐ ╔════╗  │
│  │  D7   ││  D5   ││  D10  │ ║ Q1 ║  │
│  └───────┘└───────┘└───────┘ ╚════╝  │
│  ┌───────┐┌───────┐┌───────┐┌───────┐│
│  │  D23  ││  D22  ││  D21  ││  D20  ││
│  └───────┘└───────┘└───────┘└───────┘│
│                                      │
└┬──────────────────────────┬─┬───────┬┘
 │   Интерфейс ZX-Spectrum  │ │Питание│
 └──────────────────────────┘ └───────┘

                  Рис.6.


    НАСТРОЙКА  УСТРОЙСТВА "ВИДЕОПОРТ".

   Если применены исправные элементы, уст-
ройство  требует  только установки частоты
строчной  развертки  резистором  R17.  При
этом  устройство  полностью  подключено  к
компьютеру и работает под управлением про-
граммы.  Если частота не соответствует не-
обходимой,  то изображение будет разорвано
по строкам. Регулируя R17 следует добиться
нормального  изображения на мониторе. Если
это  не получается, то следует искать при-
чину неисправности.
   Описать все возможные неисправности или
ошибки  в  монтаже,  а также последствия -
достаточно  сложно. Поэтому автор приводит
только  одну  рекомендацию. При поиске не-
исправности в устройстве следует проверить
его работу в режимах чтения и записи.
   Для проверки в режиме чтения нужно про-
верить  циклограмму  формирования  адреса,
сигналы  чтения  ОЗУ  и выборки микросхем.
Режим чтения осуществляется под управлени-
ем  компьютера. При этом программа обеспе-
чивает  чтение одного экрана и переходит в
режим  ожидания  нажатия клавиши. Если на-
жать клавиши управления курсором, то прог-
рамма  повторно осуществит чтение ОЗУ уст-
ройства.
   Для проверки режима записи можно отклю-
чить компьютер, а вместо сигнала, поступа-
ющего  на  вывод 2 микросхемы D17.1, нужно
подать  сигнал  нулевого  уровня. При этом
будет идти режим записи в ОЗУ. Такой режим
работы позволяет проверить циклограмму ра-
боты  устройства в режиме записи ОЗУ. Про-
верку работы интерфейса устройства со сто-
роны ZX-Spectrum нужно производить в по-
рядке, обычном для внешних устройств.

         ПРОГРАММНОЕ  ОБЕСПЕЧЕНИЕ
         УСТРОЙСТВА  "ВИДЕОПОРТ".

   Программа состоит из основной программы
на  Бейсике  и загружаемого блока машинных
кодов.  Текст программы приведен в листин-
ге 1.

                ЛИСТИНГ 1.

    5 CLEAR 29999: CLS: LET TT=0: LET NN=0
   10 CLS: BORDER 7: INK 0: PAPER 7
   20 RANDOMIZE USR 15619: REM:
LOAD "CODVID1" CODE
   41 CLS: BORDER 7: INK 0: PAPER 7:
PRINT AT 10,2;"1-INPUT SCREEN"
   42 PRINT AT 11,2;"2-READ SCREEN OF
DISK"
   43 PRINT AT 12,2;"3-CATALOG"
   44 PRINT AT 13,2;"4-EXIT TR-DOS"
   45 LET K$=INKEY$
   46 IF K$="1" THEN GO TO 159
   47 IF K$="3" THEN GO TO 60
   48 IF K$="4" THEN GO TO 65
   49 IF K$="2" THEN GO TO 5000
   50 GO TO 45
   60 RANDOMIZE USR 15619: REM: CAT
   61 LET K$=INKEY$
   62 IF K$="" THEN GO TO 61
   63 GO TO 41
   65 CLEAR 65000: RANDOMIZE USR 15619:
REM: RUN "boot"
  159 IF TT=0 THEN INPUT "INPUT NUMBER
FILE - ";TT: BORDER 7: PAPER 7: INK 0
  160 CLS: POKE 23659,0: PRINT AT 14,2;
"FOR NEW SCREEN - ENTER"
  170 PRINT AT 11,2;"SCANING - CURSOR"
  180 PRINT AT 12,2;"EXIT IN MENU - e"
  190 PRINT AT 17,2;"FOR START - ENTER"
  195 PRINT AT 13,2;"FOR SAVE SCREEN - s"
  200 IF INKEY$="" THEN GO TO 200
  220 BORDER 0: RANDOMIZE USR 32768
  280 GO SUB 2000
  290 IF A=101 THEN GO TO 4000
  310 GO TO 220
 2000 LET A=PEEK 32772
 2010 IF A=115 THEN GO TO 3000
 2030 RETURN
 3000 LET TT=TT
 3006 LET F$=STR$(TT)
 3007 RANDOMIZE USR 15619: REM: SAVE F$
CODE 16384,6912
 3010 LET TT=TT+1: RETURN
 4000 POKE 23659,2
 4010 GO TO 41
 5000 IF NN=0 THEN INPUT "INPUT NUMBER
FILE - ";NN: GO TO 5130
 5010 BORDER 0: LET N$=STR$(NN): LET P=
USR 15619: REM: LOAD N$ CODE
 5020 IF P=0 THEN PRINT AT 1,1;NN:
GO TO 5030
 5025 CLS: PRINT AT 10,10;"FILE ";NN
 5030 LET K$=INKEY$
 5035 IF K$="n" THEN LET NN=0: GO TO 5000
 5040 IF K$="e" THEN GO TO 4000
 5050 IF K$="z" THEN GO TO 5100
 5060 IF K$="" THEN GO TO 5030
 5070 IF K$="p" THEN LET NN=NN+1:
GO TO 5010
 5080 IF K$="o" THEN LET NN=NN-1:
GO TO 5010
 5090 GO TO 5030
 5100 RANDOMIZE USR 15619: REM: ERASE N$
CODE
 5120 LET NN=NN+1: GO TO 5010
 5130 CLS: PRINT AT 10,2;"NEXT FILE - P"
 5140 PRINT AT 11,2;"PRED. FILE - O"
 5150 PRINT AT 12,2;"DELETE FILE - Z"
 5160 PRINT AT 13,2;"NEW NUMBER FILE - N"
 5170 PRINT AT 14,2;EXIT IN MENU - E"
 5175 IF INKEY$="" THEN GO TO 5175
 5180 GO TO 5010

   Рассмотрим работу программы. После заг-
рузки  машинных кодов, программа предоста-
вит меню:

   1 - ВВОД КАРТИНКИ
   2 - ЧТЕНИЕ КАРТИНКИ С ДИСКА
   3 - ПРОСМОТР КАТАЛОГА ДИСКА
   4 - ВЫХОД В НАЧАЛЬНЫЙ ЗАГРУЗЧИК TR-DOS

   При  выборе режима ввода картинки прог-
рамма  запрашивает  номер файла и печатает
на  экране  памятку  о клавишах управления
при приеме картинок:

   СКАНИРОВАНИЕ ПО КОПИИ КАДРА -
                      КУРСОРНЫЕ КЛАВИШИ
   СОХРАНИТЬ КАРТИНКУ - "S"
   ВЫЙТИ В ГЛАВНОЕ МЕНЮ - "E"
   СМЕНА КАРТИНКИ - "ENTER"

   После нажатия "ENTER" происходит запуск
машинных  кодов с адреса 32768. На дисплее
появляется  картинка.  Если  будет  нажата
клавиша "S" или "E", то произойдет переход
в основную программу. Далее, в зависимости
от  нажатой  клавиши, при "S" - произойдет
сохранениe  файла  с  текущим номером, при
"E" - произойдет  переход в основное меню,
строка  41.  Код нажатой клавиши программа
получает из программы в машинных кодах че-
рез ячейку 32772. Это ячейка PRIZN в текс-
те на ассемблере.
   При выборе режима чтения картинки с ди-
ска  осуществляется переход на строку 5000
программы.   Программа  запрашивает  номер
файла  для чтения с диска и выдает памятку
по управлению этим режимом.

   ПРОСМОТР СЛЕДУЮЩЕГО ФАЙЛА  - "P"
   ПРОСМОТР ПРЕДЫДУЩЕГО ФАЙЛА - "O"
   УНИЧТОЖИТЬ ТЕКУЩИЙ ФАЙЛ - "Z"
   ВВЕСТИ НОВЫЙ НОМЕР ФАЙЛА - "N"
   ВЫЙТИ В ГЛАВНОЕ МЕНЮ ПРОГРАММЫ - "E"

   Далее  программа читает соответствующий
файл  и выводит его на экран. Если файла с
нужным номером нет на диске, выводится со-
общение об этом. Анализ наличия файла про-
исходит в строке 5020. Далее программа пе-
реходит к анализу нажатой клавиши. Продол-
жение  "прозрачно"  и не требует коммента-
рия.
   Текст  машинокодового  блока  набран на
ассемблере и приведен в листинге 2.


                ЛИСТИНГ 2.

        ORG 32768
        JP BEGIN
UPR     DEFB 0       ;байт управления
PRIZN   DEFB 0       ;байт признаков
STR0    DEFB 0       ;нач. строка экрана
                     ;в кадре
BAIT0   DEFB 0       ;нач. байт экрана в
                     ;строке
BUF1    EQU 41550    ;начало буфера
PDAT    EQU 0        ;адреса порта данных,
PUPR    EQU 3        ;порта управления и
PSOST   EQU 1        ;порта состояния
ADR     DEFW #0000   ;текущий адрес
BEGIN   PUSH HL      ;начало программы
        PUSH BC
        PUSH DE
        LD A,#30     ;установка регистра
        LD (UPR),A   ;управления в исход-
        OUT (PUPR),A ;ное положение
B00     IN A,(PSOST) ;ожидание перехода
        BIT 0,A      ;устройства в исход-
        JR Z,B00     ;ное положение
B1      DI
        LD HL,BUF1   ;установка адреса
        LD (ADR),HL  ;буфера картинки
        CALL INIC    ;кадр в "ВИДЕОПОРТ"
B0      CALL SCAN    ;часть ОЗУ устройства
                     ;в буфер ZX
        CALL SREN    ;преобразование буфе-
                     ;ра в SCREEN
        EI
        CALL KEY     ;опрос клавиатуры
        CP #09       ;сдвиг картинки в
        JR Z,B3      ;зависимости от на-
        CP #08       ;жатой клавиши
        JR Z,B4
        CP #0A
        JR Z,B6
        CP "s"       ;возврат в Бейсик
        JR Z,B9
        CP "e"
        JR NZ,B1
B9      LD (PRIZN),A
        POP DE
        POP BC
        POP HL
        RET
B3      LD A,(BAIT0) ;вычисление и уста-
        ADD A,1      ;новка начального
        CP 32        ;байта
        JP Z,B0
        LD (BAIT0),A
        JP B0
B4      LD A,(BAIT0)
        SUB 1
        CP 255
        JP Z,B0
        LD (BAIT0),A
        JP B0
B5      LD  A,(STR0) ;вычисление  и уста-
        SUB 8        ;новка номера на-
        CP 248       ;чальной строки
        JP Z,B0
        LD (STR0),A
        JP B0
B6      LD A,(STR0)
        ADD A,8
        CP 100
        JP NC,B0
        LD (STR0),A
        JP B0
INIC    PUSH HL      ;начало записи в ОЗУ
        PUSH BC      ;устройства
        PUSH DE
        PUSH AF
IC1     IN A,(PSOST) ;проверка бита го-
        BIT 0,A      ;товности
        JR Z,IC1
        LD A,#18     ;установка режима
        LD (UPR),A   ;записи
        OUT (PUPR),A
        CALL SBA     ;сброс адреса
IC2     IN A,(PSOST) ;проверка бита го-
        BIT 0,A      ;товности
        JR NZ,IC2
        LD A,(UPR)   ;снятие признака ре-
        OR #20       ;жима записи
        LD (UPR),A
        OUT (PUPR),A
        POP AF
        POP BC
        POP DE
        POP HL
        RET
SCAN    PUSH HL      ;начало режима чте-
        PUSH BC      ;ния ОЗУ ВИДЕОПОРТа
        PUSH DE
        PUSH AF
SC5     IN A,(PSOST) ;ожидание конца за-
        BIT 0,A      ;писи в ОЗУ ВИДЕО-
        JR Z,SC5     ;ПОРТа
        CALL SBA     ;сброс адреса
        LD A,(STR0)
        LD B,A
SC6     LD A,0       ;цикл установки ад-
        ADD A,B      ;реса на начальную
        JR Z,SC7     ;строку
        CALL SA
        DEC B
        JR SC6
SC7     LD B,192     ;макс. число строк
        LD C,32      ;макс. число байт
        LD HL,(ADR)  ;адрес буфера
SC8     LD A,0
        ADD A,B
        JR Z,SC3
        LD A,(BAIT0)
        LD D,A
SC9     LD A,0       ;цикл установки на-
        ADD A,D      ;чального байта
        JR Z,SC10
        CALL SB      ;счет байт
        DEC D
        JR SC9
SC10    CALL READ    ;чтение байта из ОЗУ
        INC HL       ;следующий адрес
        DEC C        ;следующий байт
        CALL SB      ;счет байт
        LD A,0
        ADD A,C
        JR NZ,SC10   ;цикл чтения строк
        LD C,32      ;установка счет. байт
        DEC B        ;уменьш. счет. строк
        CALL SA      ;счет адреса ОЗУ
        JR SC8
SC2     POP AF
        POP BC
        POP DE
        POP HL
        RET
SC3     CALL SBA
        JR SC2
;подпрограммы  выдачи  сигналов через порт
;управления
SBA     PUSH BC
        LD A,(UPR)
        OR #01
        OUT (PUPR),A
        LD A,(UPR)
        OUT (PUPR),A
        POP BC
        RET
SA      PUSH BC
        LD A,(UPR)
        OR #02
        OUT (PUPR),A
        LD A,(UPR)
        OUT (PUPR),A
        POP BC
        RET
SB      PUSH BC
        LD A,(UPR)
        OR #04
        OUT (PUPR),A
        LD A,(UPR)
        OUT (PUPR),A
        POP BC
        RET
;подпрограмма чтения из регистра данных
READ    PUSH BC
        LD A,(UPR)
        AND #EF
        OUT (PUPR),A
        NOP
        IN A,(PDAT)
        LD (HL),A
        LD A,(UPR)
        OUT (PUPR),A
        POP BC
        RET
;подпрограмма перекодировки буфера экрана
;в экранную область ОЗУ ZX
SREN    PUSH HL
        PUSH BC
        PUSH DE
        PUSH AF
        LD HL,BUF1
        LD B,0
SR1     LD A,B
        CP 192
        JR Z,SR2
        CP 128
        JR NC,SR3
        CP 64
        JR NC,SR4
        LD DE,#4000
        LD C,B
        JR SR5
SR2     POP AF
        POP DE
        POP BC
        POP HL
        RET
SR3     LD DE,#5000
        LD A,B
        SUB 128
        LD C,A
        JR SR5
SR4     LD DE,#4800
        LD A,B
        SUB 64
        LD C,A
SR5     LD A,C
        AND #07
        ADD A,D
        LD D,A
        LD A,C
        AND #38
        RLCA
        RLCA
        ADD A,E
        LD E,A
        LD C,32
SR6     LD A,(HL)
        LD (DE),A
        INC HL
        INC DE
        DEC C
        LD A,0
        ADD A,C
        JR NZ,SR6
        INC B
        JR SR1
;подпрограмма опроса клавиатуры
KEY     PUSH HL
        LD HL,23611
        RES 5,(HL)
K1      BIT 5,(HL)
        JR Z,K1
        LD A,(23560)
        POP HL
        RET


        В И Д Е О П О Р Т  (ч. IV)

──────────────────────────────────────────

(C) AlphA Studio


   Перейдем к советам и рекомендациям обе-
щаным в начале статьи.
   Самая  обширная  рекомендация  касается
тех  пользователей SPECTRUM, которые имеют
в   своем   компе   параллельный  порт  на
КР580ВВ55А. Подключая ВИДЕОПОРТ через этот
порт можно выкинуть из схемы несколько ми-
кросхем  и  элементов,  а именно D20, D21,
D22,  D23,  D13.6,  R6, VD8 и VD9. Сигналы
идущие к микросхеме D20 (ИР22), являющейся
регистром  данных устройства, подключаем к
порту  A вэвэшки. Сигнал ГОТОВ, изначально
поступающий в компьютер через регистр D21,
подключаем  к  выводу C0 (выв.14) ВВ55А, а
сигналы управления устройством ВИДЕОПОРТ -
к  порту B микросхемы параллельного порта.
Для тех, кто хочет установить на свой комп
микросхему КР580ВВ55А, я советую обратить-
ся к статье в газете ECHO#5 (г.Брест). Ни-
же приводится схема подключения устройства
ВИДЕОПОРТ   к   компьютеру  через  микруху
КР580ВВ55А.


     ────────┬─────┐
             │ A0  ├──4──────────17   Ш
      КР580  │ A1  ├──3──────────18   и
      ВВ55А  │ A2  ├──2──────────19   н
             │ A3  ├──1──────────20   а
             │ A4  ├──40─────────21
             │ A5  ├──39─────────22   у
             │ A6  ├──38─────────23   с
             │ A7  ├──37─────────24   т
             ├─────┤                  р
             │ B0  ├──18─────────41   о
             │ B1  ├──19─────────42   с
             │ B2  ├──20─────────43   т
             │ B3  ├──21─────────54   в
             │ B4  ├──22─────────16   а
             │ B5  ├──23─────────55
             │ B6  ├──24              В
             │ B7  ├──25              И
             ├─────┤                  Д
             │ C0  ├──14─────────39   Е
             │ C1  ├──15              О
             │ C2  ├──16              П
             │ C3  ├──17              О
             │ C4  ├──13              Р
             │ C5  ├──12              Т
             │ C6  ├──11
             │ C7  ├──10
     ────────┴─────┘


   В листинге программы поддержки ВИДЕОПО-
РТ'а  необходимо внести следующие дополне-
ния и изменеия.
   Изменить значения портов в строках:

PDAT   EQU #1F ; порт A ВВ55А
PUPR   EQU #3F ; порт B ВВ55А
PSOST  EQU #5F ; порт C ВВ55А

   Дополнить  программу строками инициали-
зации ВВ55А:

BEGIN  LD A,#91
       OUT (#7F),A ; #7F - адрес регистра
       . . .       ; управляющего слова
                   ; КР580ВВ55А

   Адреса  портов вэвэшки даны для компью-
тера  Балтик, если в Вашем компе они отли-
чаются, то необходимо подставить свои зна-
чения.

   Для упрощения сборки печатной платы ко-
нструкции, можно посоветовать напаять мик-
росхемы памяти одну поверх другой, предва-
рительно  отогнув  20  ногу. Это сэкономит
место и упростит разводку печатки.

   На этом все. Можно начинать сборку. Ес-
ли  что  непонятно, пишите. Адрес в редак-
ции.



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

Вступление - пара слов от авторов.

NEWS - О создании ассоциации CONSTELLATION, о релизе Quadrax и т.п.

ART COMP - Правила фестиваля ART COMP.

Наш гость - Новый электронный журнал "Увлечение" из Барнаула.

HARD and SOFT - Scorpion, IS-Dos, винчестер...

Видеопорт - Рекомендации по сборке, наладке и программирование Видеопорта (дигитайзера).

GMX - Доработка плат "ScorpionZS-256 Turbo+" для установки GMX. Работа с GMX.

COMICS - коллекцию цитат из инструкций к различным товарам.

О разном - Снижение шума дисковода.

BIRTHDAY - С днем рождения: Vel, Alex Melted Show, Dr.Crash.

Реклама - Реклама и объявления...

Credits - создатели газеты.


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

Похожие статьи:
VIRTUAL TR-DOS - Новый сайт в Internet'е.
ZXNet - О связи с другими сетями.
Part 4 - Alchemist research.
Байки - В гости к котсофту.
Новости - новый журнал AMIGA RULES.

В этот день...   29 сентября