©2015 emulator2015@ya.ru
Описание
ОЭВМ КБ1013ВК1-2
Основные сведения о микросхеме приведены в журнале
«Микропроцессорные средства и системы» 1987г. №5 стр. 5-18. К сожалению, данная
статья не описывает многие особенности и функции ОЭВМ, и содержит ошибки - как
банальные опечатки, так и логические. Данная публикация призвана дополнить
информацию и исправить недочёты.
В справочном формате будут изложены сведения об
основных блоках ОЭВМ, системе команд и о внешнем интерфейсе для чтения ПЗУ и
тестирования узлов процессора.
Часть 1.
БЛОКИ ОЭВМ КБ1013ВК1-2.
1. ПЗУ
ПЗУ имеет объём 1856 байт (организация 29 страниц по
64 байта). Однако в ОЭВМ использован 6-битный полиномиальный счётчик команд, а
он имеет 63 состояния, и одно «запрещённое», в котором он не работает. Поэтому
для программы используется 63 байта на каждой странице, а 64й байт содержит
команду загрузки исходного (нулевого) состояния счётчика. Итого доступно
29х63=1827 байт.
Полиномиальный 6-битный счётчик – единственный «автоматический»
счётчик адреса команд. Для адресации всего ПЗУ используется 4-разрядный регистр
страниц, и бит выбора банка. Они изменяются только по командам программы.
При выборе банка 0 доступны первые 16 страниц ПЗУ. В
банке 1 – 13 страниц. Выбирая страницы 14,15,16, получаем доступ всё равно к
13й странице. Так устроен дешифратор страниц ОЭВМ.
2. ОЗУ
ОЗУ имеет объём 65 полубайт. Организация – 5 страниц
по 13 полубайт. Также как и ПЗУ для выбора ячейки использует регистр страниц
ОЗУ (2 бита) , и бит выбора банка. В нулевом банке 4
страницы, в 1-м – одна.
Особенность: если выбрать полубайт 14,15,16 – то при
чтении получим значение полубайта 13 текущей страницы. А запись в старшие 3
полубайта не имеет действия – ОЗУ не изменяется. Эта особенность используется в
программе «Ну,погоди!»
Если в банке 1 выбрать страницы 1,2,3 – получим
доступ к нулевой странице 1-го банка.
3. Контроллер ЖКИ
Организован в виде двух регистров: О и О' по 9 полубайт (9х4х2 = 72 сегмента). Однако запись данных
возможна только в ТРИ младших бита старшего полубайта регистра О. Старший бит
этого полубайта устанавливается или сбрасывается соответствующими командами
записи. При записи в старший полубайт регистра О он
сдвигается на 4 бита вправо. Таким образом для вывода половины изображения на
ЖКИ надо сделать 9 команд записи, а для вывода полного ЖКИ – 18 команд + 1
команда копирования регистра О в регистр О'.
В момент обновления информации на ЖКИ выводится
«мусор», который из-за инерционности дисплея не виден.
В контроллере имеется дешифратор кода для
7-мисегментного индикатора. Работает следующим образом.
Командами выбора банка дешифратора задаётся, данные
для какого регистра ( О или О' ) будут занесены в регистр
отображения. Специальный флаг задаёт младший сегмент (точка в 7-мисегментном индикаторе,
но в игре это другие сегменты). По команде записи содержимое Acc дешифруется и передаётся в регистр О,
предыдущая информация также сдвигается на 4 бита вправо.
Чтение регистров отображения не предусмотрено.
(продолжение следует)