Skip to content

Technical_Description

svo edited this page Mar 14, 2015 · 5 revisions

TO.TXT Verbatim

(с)  Тимошенко Александр Валерьевич (aka TIMSoft)
URL:     http://vector06c.narod.ru/


ТЕХНИЧЕСКОЕ ОПИСАНИЕ ПК "ВЕКТОР-06Ц"
первая редакция от 17 ноября 1999 года

В статье использованы материалы:
- техническая документация на ПК "Вектор-06Ц"
- информационные выпуски Центра "Компьютер" г.Кишинев (1990-1992)
- информация, полученная от пользователей "Вектора" в ходе консультаций
- личный опыт и наблюдения

Аннотация

Настоящее техническое описание предназначено для изучения работы
машины вычислительной электронной цифровой персональной бытовой (БПЭВМ)
"Вектор-06Ц" и ее составных частей.
В настоящем техническом описании приводятся назначение и технические
характеристики, дается описание структуры и принципов функционирования
БПЭВМ и ее составных частей.

1. Назначение и технические данные

БПЭВМ "Вектор-06Ц" работает совместно с бытовым кассетным магнитофоном.
Объем информации, записываемой на стандартную кассету типа МК-60:
1) не менее 0.512 Мбайт при фазовой модуляции (скорость обмена 1500-
2400 бод);
2) не менее 0.36 Мбайт при частотной модуляции (скорость обмена
1200 бод).
Средства отображения информации на экране телевизора обеспечивают:
1) отображение алфавитно-цифровой информации с возможностью изменения
количества символов в строке до 80 и числа строк на экране до 25;
2) загружаемый знакогенератор с емкостью до 256 символов;
3) отображение символов в инверсном виде или в фоне цветного
прямоугольника, констрастирующего с цветом символа;
4) метод отображения знаков матричный (матрица произвольного размера);
5) количество одновременно отображаемых цветов - произвольные 16 из
256 цветовой палитры;
6) количество цветов фона - до 256;
7) возможность задания до 256 цветов границы экрана;
8) одновременное отображение алфавитно-цифровой и графической
информации;
9) возможность создания многопланового изображения (количество планов -
до 4);
10) аппаратная поддержка вертикального сдвига отображаемой информации;
11) количество отображаемых точек 256х256 при 16 цветах из 256 цветовой
палитры и 512х256 при четырех цветах или 256х256 и 512х256 в монохромном
режиме (1 цвет фона и 1 цвет изображения - любые из 256 цветовой палитры).
БПЭВМ "Вектор-06Ц" обеспечивает возможность подключения дополнительных
устройств:
1) накопитель на гибком магнитном диске (дисковод)
2) эмулятор дисковой памяти емкостью не менее 256Кбайт (квазидиск)
3) печатающее устройство
4) модуль внешнего ПЗУ
5) 4 джойстика
6) накопитель на жестком магнитном диске (винчестер)
7) программатор
8) COVOX
9) музыкальный сопроцессор
Существуют также разработки, позволяющие заменить процессор ВМ80А на Z80.

2. Устройство и работа

В БПЭВМ "Вектор-06Ц" используется общая оперативная память для
микропроцессора и контроллера графического дисплея объемом 64Кбайта. Объем
экранного ОЗУ, при числе адресуемых точек изображения 256х256 и 16-и цветах,
равен 32Кбайт. Согласно принятой в данной БПЭВМ архитектуре и принципу
функционирования экранного ОЗУ (байтовая организация и одновременное
считывание 4-х байтов), микропроцессор и контроллер дисплея обращаются к ОЗУ
по принципу "режима разделения времени" и высший приоритет - у контроллера
дисплея.
Блок системный конструктивно состоит из двух частей:
1) модуль электронный (МЭ) системный;
2) модуль клавиатуры.
Модуль электронный системный состоит из следующих функциональных узлов:
1) узел синхронизации;
2) дисплейный узел;
3) центральный процессор;
4) узел управления;
5) узел начальной загрузки и запуска;
6) параллельный программируемый интерфейс и таймер;
7) ОЗУ;
8) узел сопряжения с магнитофоном.


Область ОЗУ, соответствующая экрану расположена в адресах 8000Н-FFFFH
(4 х 8 кБ = 32 кБ).
Процессор к экранной области обращается также как и к остальной части
ОЗУ, не различая их по каким-либо признакам.
Для удобства описания экрана он делится на 4-е плоскости.

Таблица плоскостей экранного ОЗУ
┌────────────────┬─────────────┐
│    Адресное    │    Номер    │
│  пространство  │  плоскости  │
│    плоскости   │             │
├────────────────┼─────────────┤
│   E000-FFFF    │      0      │
│   C000-DFFF    │      1      │
│   A000-BFFF    │      2      │
│   8000-9FFF    │      3      │
└────────────────┴─────────────┘

Каждая плоскость соответствует 256*256 точкам. Каждый байт плоскости
соответствует сразу 8-и точкам, расположенным рядом на одной горизонтальной
линии. Причем старший бит соответствует самой левой точке. Вся плоскость
графического экрана состоит из 8-и точечных черточек. Самому младшему адресу
"черточки" соответствует левая нижняя черточка. Следующая черточка
расположена над ней и т.д. до самого верха (8000H-80FFH). Черточка с адресом
8100Н геометрически расположена правее черточки с адресом 8000Н. Адрес самой
верхней правой черточки в этой плоскости - 9FFFH. Остальные три плоскости
(в реж. 256*256) аналогичны и совпадают геометрически.
Таким образом, каждой геометрической точке экрана соответствует по одному
биту в каждой из 4-х плоскостей. Эти четыре бита и определяют номер цвета
0-15. Сам физический цвет определяется содержимым К155РУ2 по адресу,
сформированному из этих 4-х битов. Разряды байта, определяющего физический
цвет, включают или выключают соответсвующий разряд ЦАП и обеспечивают палитру
из 256 цветов. Соответствие разрядов и весов цветов следующие:
D0 - 1 красный    D1 - 2 красный    D2 - 4 красный
D3 - 1 заленый    D4 - 2 зеленый    D5 - 4 зеленый
D6 - 2 синий      D7 - 4 синий

В режиме 512*256 устройство экрана в чем-то похоже. Но здесь только две
расширенные плоскости. Одна из них состоит из 1-й и 4-й, другая из 2-й и 3-й.
Обе эти расширенные плоскости геометрически эквивалентны. Чтобы представить,
как получается геометрический образ расширенной плоскости из двух обычных,
рассмотрим две плоскости друг за дружкой. Мысленно точки растащим по
горизонтали так, чтобы между ними образовалось расстояние размером в одну
точку. А теперь одну из плоскостей сдвинем вправо так, чтобы в промежутках
одной плоскости стали бы видны точки другой. По вертикали точек становится
256, а по горизонтали удвоится и станет равно 512.
Дополнительно необходимо помнить, что верхняя строка графического экрана
только тогда совпадает с геометрически верхней линией дисплея, когда номер
верхней строки устанавливается равным - FFH.
Информация об одной точке на экране в режиме 256х256 хранится в
одноименных битах плоскостей экранного ОЗУ. Так, например, информация о
первых восьми точках растра хранится в байтах 80FF, A0FF, C0FF, E0FF, а о
последних восьми точках в байтах - 9F00, BF00, DF00, FF00.
В режиме 512х256 информация о четной точке растра хранится в плоскостях
три и два, а о нечетной - в плоскостях нуль, один.
Значение весовых коэффициентов в математическом цвете (коде, поступающем на
адресные входы таблицы цветов) у битов из плоскостей экрана следующее:
- в режиме 256х256 (16 цветов) у плоскостей 0, 1, 2 и 3 соответственно
1, 2, 4, 8;
- в режиме 512х256 (4 цвета) у плоскостей 0, 1, 2 и 3 соответственно
1, 2, 1, 2.
Управление режимами дисплея и управление заданием цвета фона рабочей
и нерабочей области экрана осуществляется через порт 02-РВ (0...3) и
переключатель режимов, что позволяет:
- перевести дисплей из режима 256х256 в режим 512х256 путем разделения
плоскостей экрана на две пары;
- установить объем памяти дисплея (объем экранного ОЗУ) равным 8, 16, 24
и 32 Кбайт, изменяя содержимое таблицы цветов, т.е. отобразить информацию
соответственно из одной, двух, трех, четырех плоскостей экранного ОЗУ.
Таблица цветов преобразовывает математический цвет (информация, хранимая
в экранном ОЗУ) в физический цвет (сигнал, поступающий с выходов таблицы
цветов на цифро-аналоговые преобразователи (ЦАП). Обеспечивает задание
количества цветов до 16 из 256 возможных. Изменение содержимого таблицы
производится программно. Запись таблицы цветов осуществляется во время
обратного хода кадровой развертки. При этом в порт 02-РВ (0...3)
записывается код математического цвета.

Матрица клавиатуры

  │ 7   6   5   4   3   2   1   0
──┼───────────────────────────────
7 │SPC  ^   ]   \   [   Z   Y   X
6 │ W   V   U   T   S   R   Q   P
5 │ O   N   M   L   K   J   I   H
4 │ G   F   E   D   C   B   A   @
3 │ /   .   =   ,   ;   :   9   8
2 │ 7   6   5   4   3   2   1   0
1 │F5  F4  F3  F2  F1  AP2 CTP ^\
0 │DN  RT  UP  LT  ЗАБ ВК  ПС  TAB


Краткое описание аппаратных средств и способов программного обращения
к этим средствам.

Обращение производится при помощи команд микропроцессора IN PORT,
OUT PORT, где PORT - номера портов, описание которых приведено в таблице.

╔══════╤═════╤═══════════════════════════════════════════════════════════╗
║      │     │            назначение разрядов канала                     ║
║ порт │ бит ├──────────────────────────────┬────────────────────────────╢
║      │     │     режим "Клавиатура"       │      режим "Дисплей"       ║
║      │     │ при обр.ходе кадр. развертки │ при отображении информации ║
╠══════╪═════╪══════════════════════════════╧════════════════════════════╣
║  00  │  -  │ РУС                                                       ║
╟──────┼─────┼───────────────────────────────────────────────────────────╢
║  01  │  0  │ вых. сигнал на маг.                           \           ║
║ (PC) │  1  │ управление реле (автосброс из режима ВВОД)     \ вывод    ║
║      │  2  │ "СО" клавиатуры (не исп.)                      /          ║
║      │  3  │ управление светодиодом РУС   0(1)-выкл.(вкл.) /           ║
║      │  4  │ вх. сигнал с маг.                             \           ║
║      │  5  │ клавиша СС         0(1) - наж.(отжата)         \ ввод     ║
║      │  6  │ клавиша УС         0(1) - наж.(отжата)         /          ║
║      │  7  │ клавиша РУС/ЛАТ    0(1) - наж.(отжата)        /           ║
╟──────┼─────┼──────────────────────────────┬────────────────────────────╢
║  02  │  0  │ адрес (матем. │ считывание   │ \                          ║
║ (PB) │  1  │ цвет), посту-   кода         │  номер цвета (выв.)        ║
║      │  2  │ пающий на     │ сканирования │  бордюра                   ║
║      │  3  │ таблицу         клавиатуры   │ /                          ║
║      │  4  │ цветности при │ (ввод)       │ 0(1)-256(512) точек (выв.) ║
║      │  5  │ ее записи                    │                            ║
║      │  6  │               │              │                            ║
║      │  7  │                              │                            ║
╟──────┼─────┼──────────────────────────────┼────────────────────────────╢
║  03  │  0  │ код                          │ номер                      ║
║ (PA) │  1  │ сканирования                 │ верхней                    ║
║      │  2  │ клавиатуры                   │ строки                     ║
║      │  3  │ (вывод)                      │ регенерации                ║
║      │  4  │                              │ экрана                     ║
║      │  5  │                              │ (вывод)                    ║
║      │  6  │                              │                            ║
║      │  7  │                              │                            ║
╟──────┼─────┼──────────────────────────────┴────────────────────────────╢
║  04  │  -  │ РУС                                                       ║
║  05  │  -  │ порт С параллельного интерфейса                           ║
║  06  │  -  │ порт В -//-                                               ║
║  07  │  -  │ порт А -//-                                               ║
╟──────┼─────┼───────────────────────────────────────────────────────────╢
║  08  │  -  │ РУС                                                       ║
║  09  │  -  │ счетчик 2 интегрального таймера ВИ53                      ║
║  0А  │  -  │ счетчик 1 -//-                                            ║
║  0В  │  -  │ счетчик 0 -//-                                            ║
╟──────┼─────┼───────────────────────────────────────────────────────────╢
║  0C  │  -  │ запись байта данных в таблицу цветности                   ║
║  0D  │  -  │                                                           ║
║  0E  │  -  │ чтение байта 1-го джойстика                               ║
║  0F  │  -  │ чтение байта 2-го джойстика                               ║
║  10  │  -  │ управление переключением ОЗУ электронного диска           ║
║  18  │  -  │ регистр данных контроллера НГМД                           ║
║  19  │  -  │ регистр сектора дорожки контролллера НГМД                 ║
║  1A  │  -  │ регистр дорожки контроллера НГМД                          ║
║  1B  │  -  │ регистр команд и статуса контроллера НГМД                 ║
║  1C  │  -  │ регистр выбора и управления контроллера НГМД              ║
╚══════╧═════╧═══════════════════════════════════════════════════════════╝

Трехканальный порт ВВ55 (порты 01, 02, 03) предназначен для
осуществления программного доступа к узлу сопряжения с магнитофоном, к
клавиатуре, к сдвигающим регистрам, счетчику адреса текущей строки
отображения, к динамической головке.
Необходимый режим работ задается посредством записи в порт с адресом 00
кода управляющего слова.
Примерно каждые 20 мс на процессор приходит аппаратное прерывание. Если
прерывания разрешены, то происходит вызов подпрограммы по адресу 38Н или
другими словами выполняется команда RST7. Момент времени прерывания совпадает
с моментом окончания сканирования луча монитора в видимой части дисплея.
Программа, работающая по прерыванию, производит программирование ВВ55
на режим, позволяющий опросить клавиатуру. Поэтому перед возвратом из
подпрограммы необходимо обратно восстановить дисплейный режим и значения
портов, определяющих номер верхней строки, цвет рамки, режим 256*256 или
512*256 и т.п. Также необходимо разрешить прерывание, т.к. аппаратное
прерывание сбрасывает программный триггер.

Трехканальный порт ВВ55 (порты 05, 06, 07) предназначен для
осуществления программного доступа к периферийным устройствам (печать,
локальная сеть, внеш. ПЗУ и др.). Все порты подключены к 30-контактному
внешнему разъему.
Необходимый режим работы задается посредством записи в порт 04 кода
управляющего слова.

Таймер представляет собой три программируемых шестнадцатеричных
счетчика 0, 1, 2, которые вырабатывают на своих выходах импульсные сигналы.
Таймер реализован на микросхеме КР580ВИ53. Выходы всех счетчиков
подключены к динамической головке через транзисторный усилитель.




ОПИСАНИЕ ПОРТОВ

00H  РУС (регистр управляющего слова трехканального порта ВВ55)
01H  Порт PC
╓7┬6┬5┬4┬3┬2┬1┬0╖
║ │ │ │ │ │ │ │ ║
╙╥┴╥┴╥┴╥┴╥┴╥┴╥┴╥╜ бит
 ║ ║ ║ ║ ║ ║ ║ ╚═  0: выходной сигнал на магнитофон
 ║ ║ ║ ║ ║ ║ ╚═══  1: управление реле (автосброс из режима ВВОД)
 ║ ║ ║ ║ ║ ╚═════  2: "СО" клавиатуры (не используется)
 ║ ║ ║ ║ ╚═══════  3: управление светодиодом РУС/LAT 0(1)-выкл(вкл)
 ║ ║ ║ ╚═════════  4: входной сигнал с магнитофона
 ║ ║ ╚═══════════  5: клавиша СС         0(1) - нажата(отжата)
 ║ ╚═════════════  6: клавиша УС         0(1) - нажата(отжата)
 ╚═══════════════  7: клавиша РУС/LAT    0(1) - нажата(отжата)
02H  Порт PB
03H  Порт PC
04H  РУС (регистр управляющего слова трехканального порта ВВ55)
05H  порт PС параллельного интерфейса (разъем "ПУ")
06H  порт PB параллельного интерфейса (разъем "ПУ")
07H  порт PA параллельного интерфейса (разъем "ПУ")
08H  РУС (регистр управляющего слова интегрального таймера ВИ53)
09H  Счетчик 2 таймера
0АH  Счетчик 1 таймера
0ВH  Счетчик 0 таймера
0CH  Регистр записи байта данных в таблицу цветности
0DH  нет информации
0EH  Чтение байта 1-го джойстика
0FH  Чтение байта 2-го джойстика
10H  Управление переключением ОЗУ электронного диска
18H  Регистр данных контроллера НГМД
19H  Регистр сектора дорожки контролллера НГМД
1AH  Регистр дорожки контроллера НГМД
1BH  Регистр команд и статуса контроллера НГМД
1CH  Регистр выбора и управления контроллера НГМД




Описание портов контроллера жесткого диска

50,58 Регистр данных. Чтение(запись) данных в(из) буфер сектора контроллера
51H  Запись: Write Precompensation register.  Turn on write precompensation.
Чтение: Регистр ошибок. Содержит признаки последней ошибки.
╓7┬6┬5┬4┬3┬2┬1┬0╖
║ │ │0│ │0│ │ │ ║
╙╥┴╥┴─┴╥┴─┴╥┴╥┴╥╜ бит
 ║ ║   ║   ║ ║ ╚═  0: адресный маркер данных не найден
 ║ ║   ║   ║ ╚═══  1: ошибка на дорожке 0
 ║ ║   ║   ╚═════  2: команда отвергнута
 ║ ║   ╚═════════  4: ID сектора не найден
 ║ ╚═════════════  6: ошибка ECC: некорректируемая ошибка данных
 ╚═══════════════  7: плохой блок

52H  Счетчик числа секторов для операции чтения/записи

53H  Текущий/начальный номер логического сектора для чтения/записи
54H  Цилиндр, старшие (биты 0-1 - это биты 8-9 10-битового номера цилиндра)
55H  Цилиндр, младшие (биты 0-7 10-битового номера цилиндра)
56H  Биты определяют устройство и головку для операции чтения/записи

57H  Запись: регистр команды (См. Tech Ref о подробностях)
1xH = сброс на цилиндр 0 (x = step rate)
7xH = искать до цилиндра (x = step rate)
2xH = сектор чтения (x = retry and ECC-read)
3xH = сектор записи (x = retry and ECC-read)
50H = форматировать дорожку
4xH = чтение для верификации (x = retry)
90H = диагностика
91H = уст.параметры (число головок, секторов) для выбр.устр.
57H  Чтение: регистр статуса
╓7┬6┬5┬4┬3┬2┬1┬0╖
║ │ │ │ │ │ │ │ ║
╙╥┴╥┴╥┴╥┴╥┴╥┴╥┴╥╜ бит
 ║ ║ ║ ║ ║ ║ ║ ╚═  0: 1=предыдущая команда закончилась с ошибкой
 ║ ║ ║ ║ ║ ║ ╚═══  1: уст. в 1 при обнаружении индексного отверстия
 ║ ║ ║ ║ ║ ╚═════  2: данные исправлены. Была ошибка, но ECC исправил.
 ║ ║ ║ ║ ╚═══════  3: запрос данных. Буфер ждет данных (занято)
 ║ ║ ║ ╚═════════  4: поиск завершен
 ║ ║ ╚═══════════  5: сбой записи
 ║ ╚═════════════  6: устройство готово к операции (если бит 4=1)
 ╚═══════════════  7: занято. 1=работает команда (другие биты неверны)
5fH  Системный сброс (лучше не пользоваться, сходство с 57Н без обнуления
микросхем жесткого диска).


ФОРМАТЫ ЗАПИСИ НА МАГНИТНУЮ ЛЕНТУ

-- ФОРМАТ MON ---------------------------------------------------------------
Формат записи на магнитную ленту директивой Монитора W следующий:
1. Вначале записывается заголовок MON и имя файла:
- header 256*0h байт;
- синхробайт 0E6h;
- 4*0D2h байт;
- имя (до 11 байт);
- 3*0h байт.
2. Далее пишется сам файл:
- header 256*0h байт;
- синхробайт 0E6h;
- ст., мл. байт адреса начала;
- ст., мл. байт адреса конца;
- байты файла;
- 1 байт контр. суммы всех байтов без переноса.
При записи директивой W без имени файла пишется только вторая часть файла.

-- ФОРМАТ ROM ---------------------------------------------------------------
Формат записи на магнитную ленту директивой Монитора O следующий:
Вначале передается преамбула: 4 серии блоков (25 нулей и 25 код 55Н).
Затем передаются информационные блоки. Каждый блок начинается с серии:
16 нулей, 4 байта - 55Н, 1 байт - Е6Н, 4 байта - 0, 30 байт - заголовок блока
(включает идентификатор "NODISC00", имя файла и расширение - 11 байт, дата -
6 байт, начальный адрес загрузки программы, количество блоков, остаток блоков
для передачи), 1 байт - контрольная сумма.
Пример записи на ленту (программа COPY V 1.1):

Преамбула:
00, 00, ... 00, 55, 55, ... 55,
00, 00, ... 00, 55, 55, ... 55,
00, 00, ... 00, 55, 55, ... 55,
00, 00, ... 00, 55, 55, ... 55,

1 блок:
(1-я      00, 00, 00, 00, 00, 00, 00, 00, 00, 00,
копия     00, 00, 00, 00, 00, 00, 55, 55, 55, 55,
блока)    E6, 00, 00, 00, 00,
NODISC00260987COPY_V11COM, 00,
00, 00, 09, 09, D0
подблоки  00, 00, 00, 00, E6, 80, D0, [32 байта инф.], 0A,
00, 00, 00, 00, E6, 81, D0, [32 байта инф.], 30,
00, 00, 00, 00, E6, 82, D0, [32 байта инф.], B2,
00, 00, 00, 00, E6, 83, D0, [32 байта инф.], B2,
00, 00, 00, 00, E6, 84, D0, [32 байта инф.], 65,
00, 00, 00, 00, E6, 85, D0, [32 байта инф.], 94,
00, 00, 00, 00, E6, 86, D0, [32 байта инф.], 38,
00, 00, 00, 00, E6, 87, D0, [32 байта инф.], C2

(2-я      00, 00, 00, 00, 00, 00, 00, 00, 00, 00,
копия     00, 00, 00, 00, 00, 00, 55, 55, 55, 55,
блока)    E6, 00, 00, 00, 00,
NODISC00260987COPY_V11COM, 00,
00, 00, 09, 09, D0
подблоки  00, 00, 00, 00, E6, 88, D0, [32 байта инф.], 12,
.........
00, 00, 00, 00, E6, 8F, D0, [32 байта инф.], CA

2 блок:
(1-я      00, 00, 00, 00, 00, 00, 00, 00, 00, 00,
копия     00, 00, 00, 00, 00, 00, 55, 55, 55, 55,
блока)    E6, 00, 00, 00, 00,
NODISC00260987COPY_V11COM, 00,
00, 00, 09, 09, D0
подблоки  00, 00, 00, 00, E6, 80, D0, [32 байта инф.], 52,
.........
00, 00, 00, 00, E6, 87, D0, [32 байта инф.], 4D

и так далее...

-- ФОРМАТ BAS ---------------------------------------------------------------
Информации нет



СЛУЖЕБНЫЕ КОНСТАНТЫ, ПОДПРОГРАММЫ МОНИТОРА

Служебные ячейки начального загрузчика:

0DEEFH - начальный блок
0DEF0H - число блоков
0DEF1H - адрес текущего блока
0DEF7H - код нажатой клавиши:
биты:    ст                      мл
клавиша: F5 F4 F3 F2 F1 AP2 CTP HOME

=============================================================================
Служебные ячеки Бейсика v2.5:

ROM-файл:
3C60H - начало встроенной бейсик-программы
RAM (в загруженном Бейсике):
4300H - начало загруженной бейсик-программы

=============================================================================
Служебные ячейки Бейсика v2.5 (обращение через PEEK и POKE):

0...639   - знакогенератор (128 символов по 5 байт на каждый символ)
768...770 - состояние внутреннего таймера
771       - сдвиг экрана (вертикальный скроллинг)
772...775 - счетчики нот при исполнении музыки
17152     - начало бейсик-программы, мл.разряд адреса начала след. строки
17153     - ст.разряд адреса начала следующей строки программы
17154     - мл.разряд номера строки программы  \
17155     - ст.разряд номера строки программы   \  строка
...      - коды символов программы             / программы
...      - маркер конца строки (00)           /
...      - мл.разряд адреса начала следующей строки
...      - ст.разряд адреса начала следующей строки
...      - строка программы
...      - ...
...      - маркер конца программы (00,00)

=============================================================================
Адреса подпрограмм Монитора-отладчика (для двух вариантов загрузки).

При работе Монитор поддерживает сохранение системных переходов:
-00 JMP 'монитор' (адрес соответствует началу таблицы переходов на
стандартные подпрограммы)
-05 JMP 'эмулятор' в ДОС (адрес соответствует начальному адресу в ОЗУ
монитора-отладчика)
-28 JMP RST5 (программа обработки прерываний по команде RST5)
-38 JMP PRER (программа обработки прерываний по команде RST7.
Данное прерывание инициализируется системой каждые 20 мсек)

7803H(F803H) - ввод символа с клавиатуры
Вх: нет
Вых: А - введенный код

7806H(F806H) - ввод байта с магнитофона
Вх: А=FF - с поиском синхробайта
А=08 - без поиска синхробайта
Вых: А - введенный байт

7809H(F809H) - вывод символа на экран
Вх: С - выводимый код
Вых: нет

780CH(F80CH) - запись байта на магнитофон
Вх: С - выводимый код
Вых: нет

780FH(F80FH) - вывод символа на принтер
Вх: С -выводимый код
Вых: нет

7812H(F812H) - опрос статуса клавиатуры
Вх: нет
Вых: А=00 - не нажата
А=FF - нажата

7815H(F815H) - распечатка байта в HEX-виде
Вх: A - выводимый код
Вых: нет

7818H(F818H) - вывод сообщения на экран
Вх: HL - адрес начала (сообщение заканчивается нулевым байтом)
Вых: нет



781BH(F81BH) - ввод кода нажатой клавиши
Вх: нет
Вых: A=FF - не нажата
A='код клавиши'

ОПИСАНИЕ ПОРТОВ ПК "ВЕКТОР-06Ц"

по материалам из разных источников
составил Тимошенко А.В. timsoft@mail.ru


00H  РУС (регистр управляющего слова трехканального порта ВВ55)
01H  Чтение: порт РС
╓7┬6┬5┬4┬3┬2┬1┬0╖
║ │ │ │ │x│x│x│x║
╙╥┴╥┴╥┴╥┴─┴─┴─┴─╜ бит
 ║ ║ ║ ╚═════════  4: входной сигнал с магнитофона
 ║ ║ ╚═══════════  5: клавиша СС         0(1) - нажата(отжата)
 ║ ╚═════════════  6: клавиша УС         0(1) - нажата(отжата)
 ╚═══════════════  7: клавиша РУС/LAT    0(1) - нажата(отжата)
Запись: порт РС
╓7┬6┬5┬4┬3┬2┬1┬0╖
║x│x│x│x│ │ │ │ ║
╙─┴─┴─┴─┴╥┴╥┴╥┴╥╜ бит
         ║ ║ ║ ╚═  0: выходной сигнал на магнитофон
         ║ ║ ╚═══  1: управление реле (автосброс из режима ВВОД)
         ║ ╚═════  2: "СО" клавиатуры (не используется)
         ╚═══════  3: управление светодиодом РУС/LAT 0(1)-выкл(вкл)
02H  Чтение: Режим "Клавиатура" при обратном ходе кадровой развертки
╓7┬6┬5┬4┬3┬2┬1┬0╖
║ │ │ │ │ │ │ │ ║
╙╥┴╥┴╥┴╥┴╥┴╥┴╥┴╥╜ бит
 ║ ║ ║ ║ ║ ║ ║ ╚═  0: \
 ║ ║ ║ ║ ║ ║ ╚═══  1:  \
 ║ ║ ║ ║ ║ ╚═════  2:   \
 ║ ║ ║ ║ ╚═══════  3:    \ состояние рядов
 ║ ║ ║ ╚═════════  4:    / матрицы клавиатуры
 ║ ║ ╚═══════════  5:   /
 ║ ╚═════════════  6:  /
 ╚═══════════════  7: /
Запись: Режим "Клавиатура" при обратном ходе кадровой развертки
╓7┬6┬5┬4┬3┬2┬1┬0╖
║х│х│х│х│ │ │ │ ║
╙─┴─┴─┴─┴╥┴╥┴╥┴╥╜ бит
         ║ ║ ║ ╚═  0: \
         ║ ║ ╚═══  1:  \ номер регистра палитры
         ║ ╚═════  2:  / при программировании
         ╚═══════  3: /
Запись: Режим "Дисплей" при отображении информации
╓7┬6┬5┬4┬3┬2┬1┬0╖
║х│х│х│ │ │ │ │ ║
╙─┴─┴─┴╥┴╥┴╥┴╥┴╥╜ бит
       ║ ║ ║ ║ ╚═  0: \
       ║ ║ ║ ╚═══  1:  \ "математический" код
       ║ ║ ╚═════  2:  / текущего цвета бордюра
       ║ ╚═══════  3: /
       ╚═════════  4: текущий режим экрана (1=512 точек, 0=256 точек)
03H  Запись: Режим "Клавиатура" при обратном ходе кадровой развертки
╓7┬6┬5┬4┬3┬2┬1┬0╖
║ │ │ │ │ │ │ │ ║
╙╥┴╥┴╥┴╥┴╥┴╥┴╥┴╥╜ бит
 ║ ║ ║ ║ ║ ║ ║ ╚═  0: \
 ║ ║ ║ ║ ║ ║ ╚═══  1:  \
 ║ ║ ║ ║ ║ ╚═════  2:   \
 ║ ║ ║ ║ ╚═══════  3:    \ опрос рядов матрицы клавиатуры
 ║ ║ ║ ╚═════════  4:    / 0=опрос ряда разрешен
 ║ ║ ╚═══════════  5:   /
 ║ ╚═════════════  6:  /
 ╚═══════════════  7: /
Запись: Режим "Дисплей" при отображении информации
╓7┬6┬5┬4┬3┬2┬1┬0╖
║ │ │ │ │ │ │ │ ║
╙╥┴╥┴╥┴╥┴╥┴╥┴╥┴╥╜ бит
 ║ ║ ║ ║ ║ ║ ║ ╚═  0: \
 ║ ║ ║ ║ ║ ║ ╚═══  1:  \
 ║ ║ ║ ║ ║ ╚═════  2:   \
 ║ ║ ║ ║ ╚═══════  3:    \ позиция вертикального скроллинга экрана,
 ║ ║ ║ ╚═════════  4:    / младший байт адреса начала растра
 ║ ║ ╚═══════════  5:   /
 ║ ╚═════════════  6:  /
 ╚═══════════════  7: /
04H  РУС (регистр управляющего слова трехканального порта ВВ55)
05H  порт PС параллельного интерфейса (разъем "ПУ")
Запись: Манипулятор типа "Мышь"
╓7┬6┬5┬4┬3┬2┬1┬0╖
║x│x│ │x│x│x│x│x║
╙─┴─┴╥┴─┴─┴─┴─┴─╜ бит
     ╚═══════════  5: 1=сброс
Запись: Опрос джойстиков П1, П2
╓7┬6┬5┬4┬3┬2┬1┬0╖
║х│ │ │x│х│х│х│х║
╙─┴╥┴╥┴─┴─┴─┴─┴─╜ бит
   ║ ╚═══════════  5: 0=джойстик П1, 1=джойстик П2
   ╚═════════════  6: 1=джойстик П1, 0=джойстик П2
06H  порт PB параллельного интерфейса (разъем "ПУ")
Чтение: Манипулятор типа "Мышь" (аналогично джойстикам П1, П2)
Чтение: Джойстики П1, П2 (0 - клавиша нажата, 1 - отжата)
╓7┬6┬5┬4┬3┬2┬1┬0╖
║ │ │x│x│ │ │ │ ║
╙╥┴╥┴─┴─┴╥┴╥┴╥┴╥╜ бит
 ║ ║     ║ ║ ║ ╚═  0: "вправо"
 ║ ║     ║ ║ ╚═══  1: "влево"
 ║ ║     ║ ╚═════  2: "вверх"
 ║ ║     ╚═══════  3: "вниз"
 ║ ╚═════════════  6: кнопка 2
 ╚═══════════════  7: кнопка 1
07H  порт PA параллельного интерфейса (разъем "ПУ")
Чтение: Джойстик УСПИД (1 - клавиша нажата, 0 - отжата)
╓7┬6┬5┬4┬3┬2┬1┬0╖
║ │ │ │ │ │x│x│x║
╙╥┴╥┴╥┴╥┴╥┴─┴─┴─╜ бит
 ║ ║ ║ ║ ╚═══════  3: "кнопка"
 ║ ║ ║ ╚═════════  4: "влево"
 ║ ║ ╚═══════════  5: "вниз"
 ║ ╚═════════════  6: "вправо"
 ╚═══════════════  7: "вверх"
08H  РУС (регистр управляющего слова интегрального таймера ВИ53)
09H  Счетчик №2 таймера
0АH  Счетчик №1 таймера
0ВH  Счетчик №0 таймера
0CH  Регистр записи байта данных в таблицу цветности
0DH  Запись: таблица цветности
0EH  Запись: таблица цветности
Чтение: Регистр 1-го джойстика (0 - клавиша нажата, 1 - отжата)
╓7┬6┬5┬4┬3┬2┬1┬0╖
║ │ │1│1│ │ │ │ ║
╙╥┴╥┴─┴─┴╥┴╥┴╥┴╥╜ бит
 ║ ║     ║ ║ ║ ╚═  0: "вправо"
 ║ ║     ║ ║ ╚═══  1: "влево"
 ║ ║     ║ ╚═════  2: "вверх"
 ║ ║     ╚═══════  3: "вниз"
 ║ ╚═════════════  6: кнопка 1
 ╚═══════════════  7: кнопка 2
0FH  Запись: таблица цветности
Чтение: Регистр 2-го джойстика (0 - клавиша нажата, 1 - отжата)
╓7┬6┬5┬4┬3┬2┬1┬0╖
║ │ │1│1│ │ │ │ ║
╙╥┴╥┴─┴─┴╥┴╥┴╥┴╥╜ бит
 ║ ║     ║ ║ ║ ╚═  0: "вправо"
 ║ ║     ║ ║ ╚═══  1: "влево"
 ║ ║     ║ ╚═════  2: "вверх"
 ║ ║     ╚═══════  3: "вниз"
 ║ ╚═════════════  6: кнопка 1
 ╚═══════════════  7: кнопка 2
10H  Управление переключением ОЗУ электронного диска
Запись
╓7┬6┬5┬4┬3┬2┬1┬0╖
║ │ │ │ │ │ │ │ ║
╙╥┴╥┴╥┴╥┴╥┴╥┴╥┴╥╜ бит
 ║ ║ ║ ║ ║ ║ ║ ╚═  0: \ номер блока при обращении к электронному диску
 ║ ║ ║ ║ ║ ║ ╚═══  1: / "как ОЗУ"
 ║ ║ ║ ║ ║ ╚═════  2: \ номер блока при обращении к электронному диску
 ║ ║ ║ ║ ╚═══════  3: / "как стек"
 ║ ║ ║ ╚═════════  4: 0-выкл/1-вкл режима обращения "как стек"
 ║ ║ ╚═══════════  5: 0-выкл/1-вкл режима обращения "как ОЗУ"
 ║ ╚═════════════  6: \ только для кировского диска! (автор Саттаров)
 ╚═══════════════  7: / выбор области для обращения "как ОЗУ"
00 - 0A000h-0DFFFh (как в кишиневском)
01 - 0A000h-0FFFFh
10 -  8000h-0DFFFh
11 -  8000h-0FFFFh

14H  Регистр данных Sound Tracker
15H  Номер регистра Sound Tracker

18H  Регистр данных контроллера НГМД
19H  Регистр сектора дорожки контролллера НГМД
1AH  Регистр дорожки контроллера НГМД
1BH  Регистр команд и статуса контроллера НГМД
1CH  Регистр выбора и управления контроллера НГМД

20H  Часы реального времени
22H  Часы реального времени

28H  Порт модема
30H  Порт модема
38H  Порт модема

Описание портов контроллера жесткого диска

50H  Регистр данных. Чтение(запись) данных в(из) буфер сектора контроллера
51H  Запись: Write Precompensation register.  Turn on write precompensation.
Чтение: Регистр ошибок. Содержит признаки последней ошибки.
╓7┬6┬5┬4┬3┬2┬1┬0╖
║ │ │0│ │0│ │ │ ║
╙╥┴╥┴─┴╥┴─┴╥┴╥┴╥╜ бит
 ║ ║   ║   ║ ║ ╚═  0: адресный маркер данных не найден
 ║ ║   ║   ║ ╚═══  1: ошибка на дорожке 0
 ║ ║   ║   ╚═════  2: команда отвергнута
 ║ ║   ╚═════════  4: ID сектора не найден
 ║ ╚═════════════  6: ошибка ECC: некорректируемая ошибка данных
 ╚═══════════════  7: плохой блок
52H  Счетчик числа секторов для операции чтения/записи
53H  Текущий/начальный номер логического сектора для чтения/записи
54H  Цилиндр, старшие (биты 0-1 - это биты 8-9 10-битового номера цилиндра)
55H  Цилиндр, младшие (биты 0-7 10-битового номера цилиндра)
56H  Биты определяют устройство и головку для операции чтения/записи
57H  Запись: регистр команды (См. Tech Ref о подробностях)
1xH = сброс на цилиндр 0 (x = step rate)
7xH = искать до цилиндра (x = step rate)
2xH = сектор чтения (x = retry and ECC-read)
3xH = сектор записи (x = retry and ECC-read)
50H = форматировать дорожку
4xH = чтение для верификации (x = retry)
90H = диагностика
91H = уст.параметры (число головок, секторов) для выбр.устр.
Чтение: регистр статуса
╓7┬6┬5┬4┬3┬2┬1┬0╖
║ │ │ │ │ │ │ │ ║
╙╥┴╥┴╥┴╥┴╥┴╥┴╥┴╥╜ бит
 ║ ║ ║ ║ ║ ║ ║ ╚═  0: 1=предыдущая команда закончилась с ошибкой
 ║ ║ ║ ║ ║ ║ ╚═══  1: уст. в 1 при обнаружении индексного отверстия
 ║ ║ ║ ║ ║ ╚═════  2: данные исправлены. Была ошибка, но ECC исправил.
 ║ ║ ║ ║ ╚═══════  3: запрос данных. Буфер ждет данных (занято)
 ║ ║ ║ ╚═════════  4: поиск завершен
 ║ ║ ╚═══════════  5: сбой записи
 ║ ╚═════════════  6: устройство готово к операции (если бит 4=1)
 ╚═══════════════  7: занято. 1=работает команда (другие биты неверны)
58H  Регистр данных. Чтение(запись) данных в(из) буфер сектора контроллера
5fH  Системный сброс (лучше не пользоваться, сходство с 57Н без обнуления
микросхем жесткого диска).
80H-8FH, 0A0H-0AFH Управляющий порт адаптера Z80
80H  Управляющий порт адаптера Z80 (вариант "Кишинев" автор Фролов)
Запись
╓7┬6┬5┬4┬3┬2┬1┬0╖
║ │ │ │ │ │ │ │ ║
╙╥┴╥┴╥┴╥┴╥┴╥┴╥┴╥╜ бит
 ║ ║ ║ ║ ║ ║ ║ ╚═  0: включение синклеровского экрана
 ║ ║ ║ ║ ║ ║ ╚═══  1: инверсия старшего бита адреса ОЗУ
 ║ ║ ║ ║ ║ ╚═════  2: взаимная замена ОЗУ ПК  <->  ОЗУ Эл.диска -
 ║ ║ ║ ║ ║            инверсия сигнала STEC
 ║ ║ ║ ║ ╚═══════  3: обращение к квазидиску в операциях с (HL).
 ║ ║ ║ ║              формирование STEC при обращении к адресу (HL)
 ║ ║ ║ ╚═════════  4: немаскируемое прерывание по незнакомым портам
 ║ ║ ╚═══════════  5: блокировка STEC при обращении к адресам ОЗУ
 ║ ║		    4000-5FFFH (блокировка эл.диска), блокировка записи
 ║ ║                  при обращении к адресам 0-3FFFH (имитация ПЗУ)
 ║ ╚═════════════  6: увеличение быстродействия некоторых операций
 ╚═══════════════  7: блокировка обращения к квазидиску в
стековых операциях - выключение сигнала STEC при
обращении к адресу (STEC)
EDH  Шлюз с IBM PC


# Author info #
http://vector06c.narod.ru/

# Из выпуска Вектор-Юзер №3 стр.3 #
СВП (_счетчик вертикальных позиций_) экрана производит счет в три этапа:
  1. от 0 до 280 _(или 288?)_. При высоком уровне сигнала на 3,4,8 разрядах СВП, D6 устанавливается в исходное (нулевое) состояние;
  1. от 289 до 312. При высоком уровне сигнала на тех же разрядах D6 устанавливается в нулевое состояние;
  1. от 312 до 328. При коде 328 (высокий уровень сигнала на 3, 6, 8) СВП устанавливается в исходное (нулевое) состояние. Суммарный коэффициент пересчета СВП составляет 312. При этом длительность кадра составляет 312x64мкс = 19.968мс. Из них 256x64=18.4мс - отображение информационных строк растра; по 16x64мкс = 1.02мс - верхний и нижний бордюры; 24x64мкс = 1.5мс - кадровый синхроимпульс.
Clone this wiki locally