Текст
                    «Хорошо бы собрать компьютер» — об этом наверняка мечтают многие из наших чи-
тателей. Но мечты оставались мечтами — повторить конструкции, которые предлага-
ли журналы «Радио» или «Моделист-конструктор», начинающим радиолюбителям не
-по плечу — сложные схемы, детали, которых не достать, трудности с налаживанием...
Редакция и решила прийти мечтателям, конечно, деятельным, на помощь. По ее за-
казу в кружке радиоэлектроники при Раменском Доме пионеров под руководством
кандидата технических наук, автора ряда изобретений В.БАРТЕНЕВА, был разрабо-
тан персональный компьютер, который вы при желании сможете повторить. Дефи-
цитных деталей в нем — минимум. Для удобства вся электронная схема разбита на мо-
дули, каждый из которых может работать «сам по себе» в качестве устройств про-
граммного управления, мощного программируемого микрокалькулятора или банка
данных. В полном варианте микроЭВМ «ЮТ-88» по своим возможностям превосходит
большинство популярных среди радиолюбигелей компьютеров. А то, что собирать его
вы будете постепенно, модуль за модулем, не только упростит сборку, но и позволит
освоить программирование, познакомигься с устройством и принципами работы вы-
числительной техники. Словом, собрав «ЮТ-88», вы научитесь не только им полно-
ценно пользоваться, но и самостоятельно разрабатывать любые собственные кон-
струкции на микропроцессорах. Работа послужит вам хорошей школой в электронике
и информатике.
Идеи, которые нашли отражение в нашей публикации, формировались у автора в
ДЕТАЛИ О ДЕТАЛЯХ
Персональный компьютер — самоделка се-
рьезная, и не только из-за сложное к схемы.
Собрать ее как раз не так уу> \оудно. Но
главная проблема — это где купит'"!, детали.
Действительно, до сих нор, несмотря на мно-
гочисленные выступления журнала «Радио>к
купить многие микросхемы, особенно .сег'
КР580 и КР541 сегодня проблема. В обыч!1 ь с
магазинах радиотоваров они бывают ре,-аза”
Поэтому тем из вас. кто живет в крупны'
родах, советуем в первую очередь обрат. МОТ-
в фирменные магазины «Электроника ителя
нистерства электронной промышленности.
Многие детали можно найти в магазинах
«Юный техник» и «Сделай сам», которые
торт уют «неликвидами».
А как быть сельским радиолюбителям? В
настоящее время в редакцию обратились не-
сколько кооперативов с предложением орга-
низовать посылочную торговлю наборами де-
талей для сборки «ЮТ-88». Так что запаси-
1 - процессорный модуль; 2 — дисплейный модуль; 3 - дисплей; 4,5 - блоки питания процес-
сорного и дисплейного модулей;6 — клавиатура.
©«ЮТ» для умелых рук», 1989 г.’
тесь терпением и следите за номерами — скоро
мы обязательно опубликуем их адреса. Кроме
того, некоторые детали вы можете приобрес-
ти через Роспосылторг и Главкооппосылторг.
Каталоги радиодеталей вы можете взять на
почте. Желаем успеха!
ВНИМАНИЕ!
Архитектура, основные схемные
решения модулей персонального
компьютера «ЮТ-88», программное
обеспечение, товарный знак, его
текст и шрифтовое оформление яв-
ляются исключительной собствен-
ностью редакции журнала «Юный
техник», представляющей интересы
автора. Промышленное и мелкосе-
рийное производство компьютера
и его полуфабрикатов, тиражирова-
ние программного обеспечения в
любой форме без согласия редак-
ции запрещено как государствен-
ным, так и кооперативным пред-
приятиям. Но это не исключает со-
трудничества.
Приглашаем государственные и
кооперативные организации, заин-
тересовавшиеся персональным
компьютером «ЮТ-88», направлять
свои предложения на адрес редак-
ции.
1

процессе обсуждений со специалистами А. Блохиным, С. Ак- сеновым, И. Грищенко, А. Мышко, за что им благодарны и автор и редакция. Огромное спасибо и кружковцам Г. Бар- теневу, А. Егорову, Р. Тайцлину, И. Басову, А. Чемелю, А. Дорошкевичу за помощь в макетировании компьютера и отладке программ. ПЕРВЫЙ ШАГ - МИКРОЭВМ МИНИМАЛЬНОЙ КОНФИГУРАЦИИ мальный объем ОЗУ и ПЗУ, простейшие клавиатуру и дисплей, наш первый модуль поможет вам не только разобраться в рабо- те микроЭВМ, но и научиться писать программы. Заметим, что это лишь наш первый этап в освоении компьютерной техники. Изготовив модуль и освоив его прот раммирование, мы будем готовы сделать следующий шаг — расширить конфигурацию на- шей микроЭВМ, добавив дисплейный модуль с полной клавиа- турой и квазидиск произвольного объема. Так, шаг за шагом, от простого к сложному, мы с вами прой- дем путь от простейшей микроЭВМ к настоящему персонально- му компьютеру с мощным программным обеспечением на осно- ве операционной системы СР/М. БЛОК-СХЕМА МИКРОЭВМ чае, ПОЛЬ ПО 1Ь. г- По самом общем виде компьютер, который мы предлагаем вам п^пиЛроить, можно представить в виде структурной схемы, изоб- раженной на рисунке 1. В ней приведены три основных элемен- та—центральный процессор, память и устройство ввода/выво- да. Эти три блока входят в состав любого компьютера. Центральный процессор —самый сложный элемент. Он пред- ставляет собой программно-управляемое устройство, обрабаты- вающее информацию и осуществляющее обмен ею между ос- новными компонентами ЭВМ. В качестве центрального процес- сора в нашем компьютере используем большую интегральную схему (БИС) микропроцессора КР580ВМ80А. Выбор наш не слу- чаен. Этот микропроцессор, думаем, еще долгое время будет популярным среди радиолюбителей из-за большого объема программного обеспечения, разработанного под его систему ко- манд. А наличие у него фиксированной и простой системы ко- манд облегчает составление программ лаже в машинных кодах. И, наконец, что очень важно, этот микропроцессор уже появился в продаже. Память микроЭВМ состоит из постоянного запоминающего устройства (ПЗУ), допускающего только считывание хранимой информации, и оперативного запоминающего устройства (ОЗУ), работающего как в режиме чтения информации из ОЗУ, гак и записи в него новых данных. Фактически память — это со- вокупность однотипных ячеек, в каждой из которых хранится за- кодированная информация. Единицей измерения ее объема яв- ляется бит. Для хранения 1 бита достаточно иметь одноразряд- ную ячейку, в которую может быть записан 0 или 1. Разрядность ячейки памяти микроЭВМ определяется разрядностью шины данных микропроцессора (для микропроцессора КР580ВМ80А составляет 8 бит, или 1 байт). Каждая ячейка памяти имеет свой номер —адрес. Число не- посредственно адресуемых ячеек определяется разрядностью адреса, формируемого микропроцессором. В нашем случае это 16 разрядов, что позволяет иметь максимальный объем адресуе- мой памяти чуть больше 65 тысяч ячеек. Устройства ввода/вывода включают в себя клавиатуру, дис- плей и другие устройства, например, принтер. Информация между ними и микропроцессором передается через так называе- мые порты ввода/вывода. К микропроцессору КР580ВМ80А можно подключить в общей сложности 256 таких устройств. Объем используемой памяти, число устройств ввода/вывода определяют конфигурацию компьютера, его возможности и стоимость. Так что мы вам предлагаем собрать компьютер, ко- торый имеет изменяемую конфигурацию. В своем минималь- ном исполнении, когда используется только процессорный мо- дуль—это простая в изготовлении, дешевая одноплатная ми- кроЭВМ на доступных микросхемах. Однако несмотря на мини- Давайте более подробно рассмотрим структурную схему на ри- сунке 1. Раскроем ее составные части. Шины —это совокупность проводов, объединенных между собой по функциональному признаку. Восемь проводов обра- зуют шину данных, шестнадцать — шину адреса, пять —шину управления. Такая архитектура позволяет легко наращивать раз- личные периферийные устройства, присоединяя их к персональ- ной ЭВМ. Блок-схема первого модуля условно разбита на три блока: блок центрального процессора, блок памяти и блок интер- фейса. Такая разбивка его схемы на блоки сделана, исходя из удоб- ства объяснения принципа работы отдельных узлов компьюте- ра. Но, учитывая функциональную законченность каждого бло- ка, вы можете использовать их по своему усмотрению в различ- ных радиолюбительских конструкциях. В состав блока центрального процессора на рисунке 1 входят микропроцессор и дополнительные элементы, обеспечиваю- щие его работу,—генератор тактовых импульсов, формирова- тель сигналов шины данных и шины управления (системный контроллер), буфер тины адреса. Блок памяти, как сказано, со- стоит из ПЗУ и ОЗУ. Блок интерфейса —простейшая клавиатура с семнадцатью кнопками, дисплей на семисегментных индика- торах и схема сопряжения с кассетным магнитофоном. В компьютере передаваемые сигналы представлены двумя уровнями напряжения— логическими «О» и «1». Сигнал, кото- рый вызывает выполнение некоторого действия, называют ак- тивным. Активное состояние может быть при логической еди- нице либо при логическом нуле. В частности, на шине управле- ния сигналы активны при уровне логического «О». Таких управ- ляющих сигналов пять: ЧТЗУ — чтение памяти; ЗПЗУ — запись в память; ЧТВВ —чтение порта ввода/вывода; ЗПВВ-запись в порт ввода/вывода; ППР — подтверждение прерывания. Шина Рисунок 1. г-----------------------------------------------------п I . БЛОК ЦЕНТРАЛЬНОГО | БЛОК интерфейса ПРОЦЕССОРД БЛОК ОЗУ-ПЗУ | Д И С ПЛЕЙ МИКРОПРО- ЦЕССОР СИНХРО-1 ГЕНЕРАТП1 БУФЕР шины адрес; {системный ;КОНТРОЛЛЕР 2
управления используется лишь для вывода сигналов управле- ния, то есть она однонаправленная. Основная причина введения активных сигналов низкого уровня (они помечены чертой свер- ху) состоит в простоте объединения их по ИЛИ. Кроме того, вы- ходной каскад с таким сигналом большую часть времени нахо- дится в выключенном состоянии и потребляет меньше энергии от источника питания. Как и шина управления, шина адреса лишь передает выход- ные сигналы микропроцессора. Отдельные линии шины адреса имеют обозначение от АО до А15. В отличие от шин управления и адреса, шина данных — двуна- правленная. Передача данных здесь может производиться как от процессора, так и к процессору. Однако в каждый данный мо- мент времени она осуществляется только в одном направлении. Отдельные линии шины данных обозначаются от DO до D7. По шинам компьютера информация передается в двоичном коде. Но его запись кодов требует много места и не всегда удоб- на. В дальнейшем мы будем пользоваться шестнадцатиричной формой представления кодированных сигналов, то есть систе- мой счисления с основанием 16. В ней используются символы: О, 1, 2, 3, 4, 5, 6, 7, 8, 9, А', В, С, D, Е и F. В таблице 1 приведены при- меры представления чисел в двоичной, шестнадцатиричной и десятичной системах счисления. Таблица 1. Шестнадцатиричное число Двоичное число Десятичное число 0 0 0 1 1 1 2 10 2 3 11 3 4 100 4 5 101 5 6 110 6 7 111 7 8 1000 8 9 1001 • 9 А 1010 10 В 1011 11 С 1100 12 д 1101 13 Е 1110 14 F 1111 15 10 10000 16 11 10001 17 Процедура преобразования двоичного числа в шестнадцати- ричное проста. Разряды, начиная с младшего, разбиваются на группы по четыре. Каждой группе подбирается соответствую- щий шестнадцатиричный символ. В частности, диапазон адре- сов компьютера составляет 000016 — FFFF16 (в дальнейшем осно- вание системы счисления мы указывать не будем, а в конце каж- дого кода будем добавлять букву И, например: адресное про- странство компьютера составляет 0000Н—FFFFH). Шестнадца- тиричная форма записи очень проста, да и воспринимать ее лег- че, чем двоичную. На дисплее, после соответствующего преоб- разования в дешифраторе двоичного кода в шестнадцатирич- ный, будут индицироваться шестнадцатиричные цифры. Ввод же с клавиатуры производится в шестнадцатиричных цифрах, хотя затем код каждой нажатой шестнадцатиричной клавиши будет преобразован дешифратором в двоичный код, подавае- мый на шину данных. На рисунке 2 отсутствует один блок, о котором нельзя не упо- мянуть,—это блок формирования выборки кодов адреса. Все внешние устройства микроЭВМ могут быть подключены к ми- кропроцессору только при выполнении двух условий: на них должен быть подан управляющий сигнал с шины управления и это устройство должно быть выбрано соответствующим адре- сом. Формирование сигналов выборки кода адреса (ВК) вне- шних устройств осуществляется дешифрацией сигналов шины адреса. В нашем первом модуле применяются два способа ввода/вы- вода информации. Изолированный— для портов клавиатуры (АОН) и схемы сопряжения с кассетным магнитофоном (А 1Н). Отображенный на память для портов дисплея с адресами: 9000Н (порт младшего байта дисплея), 9001Н, 9002Н (порты старших байтов дисплея). Как уже отмечалось, число изолированных портов ввода/вывода не превышает 256, и их адреса изолирова- ны от адресного пространства памяти. В микропроцессоре КР580 имеется две команды ввода: IN и вывода OUT, при вы- полнении которых данные из адресуемого порта загружаются в микропроцессор (ввод) или, наоборот, из микропроцессора пе- редаются в адресуемый порт (вывод). Ввод/вывод, отображен- ный на память, характеризуется тем, что процессор обращается к портам как к ячейкам адресного пространства памяти и все ко- манды, содержащие адреса портов, превращаются в команды ввода/вывода. В нашей микроЭВМ использованы оба эти спо- соба. Д1 КЦ410Б + 5В F1 0.5А VT7 КТ807Б 220В С1 500,0 +12В С8100.0 R6 1к VD5 VD4 R7620 -5В Рисунок 2. VB3- VD4 К ДЮЗ 5 С5 500,0 С7 100,0 1/01 VD2 = С9 100,0 3 VD5 КС156 IDA5K142EH2A Ш R5 470 I С4 500.0 ИСТОЧНИК ПИТАНИЯ На нашей блок-схеме для простоты картины отсутствует связь модуля с источниками питания, тем не менее нужно сказать и о них. Для питания нашей микроЭВМ необходимы три источника постоянного напряжения: +5В, +12В и -5В. Пятивольговый ис- точник, наиболее мощный, должен обеспечивать ток до 1 А. Ток потребления по цепям +12В нс превышает 50 мА, а по цепям -5В —5 мА. Напряжение +12В, -5В используется для питания микропроцессора. Сборку микроЭВМ необходимо начинать с изготовления модуля питания. Его электрическая схема показа- на на рис. 2. Переменное напряжение (порядка 8—10 В) вторичной обмот- ки поступает на мостовой выпрямитель А1 и на два удвоителя напряжения на диодах VD1 — VD4. Выпрямленное напряжение сглаживается емкостью С2 и стабилизируется с помощью ми- кросхемы DA2. Увеличение нагрузочной способности стабилизатора дости- гается подключением внешнего транзистора VT1, установлен- ного на радиаторе. С помощью потенциометра R2 устанавли- вается требуемое выходное напряжение. Выпрямленные и уд- военные напряжения положительной и отрицательной поляр- ности сглаживаются соответственно емкостями С5 и С9. Поло- жительное напряжение стабилизируется с помощью микросхе- мы DA3. Значение выходного напряжения +12В регулируется с помощью потенциометра R5. Отрицательное напряжение -5В снимается с параметрического стабилизатора на стабилитроне VD5. В качестве трансформатора Т1 может быть использован лю- бой понижающий трансформатор со вторичной обмоткой, обес- печивающей напряжение порядка 8—10 В и ток до 2А. Его можно изготовить и самостоятельно, намотав на сердечнике ШЛ 16x32. Сетевая обмотка содержит 1350 витков провода ПЭВ-2 диамет- ром 0,31 мм, вторичная обмотка содержит 50 витков того же про- вода диаметром 1,5 мм. ЭЛЕКТРИЧЕСКАЯ СХЕМА Для удобства мы решили поместить электрическую схему первого модуля компьютера «ЮТ-88» на вкладке. Блок центрального процессора выполнен на микросхемах DD1, DD2, DD5, DD6 и DD8. Микросхема DD1 — микропроцес- сор КР580ВМ80А. Микросхема DD2 КР580ГФ24 предназначена для формирования двух последовательностей тактовых им- пульсов с требуемыми временными и амплитудными парамет- рами. Она содержит задающий генератор, стабилизированный вне- шним кварцевым резонатором ZQ1 с частотой 16 МГц. Кроме формирователя синхроимпульсов Ф1 и Ф2, микросхема DD2 со- держит триггеры синхронизации сигналов начальной установки и готовности, а также схему формирования строба состояния STB, используемого для записи байта состояния при формиро- вании сигналов шины управления. Адресная шина (ША) подключается ко многим устройствам. 3
Выходы же микропроцессора КР580ВМ80А выдерживают лишь нагрузку одного входа ТТЛ микросхем. Поэтому для повыше- ния нагрузочной способности к шине адреса подключены бу- ферные регистры DD5 и DD6 КР580ИР82. Микросхема КР580ИР82 представляет собой 8-разрядный ре- гистр с управляемыми выходными формирователями. Запись информации происходит при наличии логической единицы на выводе 11 STB, а выдача информации — при подаче на вывод 9 ОЕ уровня логического нуля. Увеличение нагрузочной способности двунаправленной ши- ны данных выполнено с помощью микросхемы системного контроллера DD8 КР580ВК38. Она осуществляет формирование выходных сигналов не только шины данных, но и шины управ- ления. Микросхема содержит двунаправленный магистральный формирователь, регистр состояния и схему формирования управляющих сигналов. Следующий блок микроЭВМ предназ- начен для кратковременного и долговременного хранения дан- ных и программ. На схеме модуля «ЮТ-88» блок памяти пред- ставлен микросхемами ПЗУ КР556РТ5 (DD10, DD11) и микрос- хемами ОЗУ КР541РУ2 (DD13, DD14). Микросхемы DD10, DD11 предназначены для хранения управляющей программы МОНИТОР. Подробно о содержимом ПЗУ будет рассказано в разделе, посвященном программному обеспечению микроЭВМ. Сейчас же рассмотрим, как происхо- дит считывание информации с микросхем ПЗУ. После нажатия на кнопку «УСТ» на шине адреса устанавли- вается адрес 0000Н. а на шине управления — сигнал ЧТЗУ, кото- рый после инвертирования элементом DD21.5 подается на вход V3 микросхем ПЗУ. Дешифратор на микросхеме К155ИДЗ (DD7) вырабатывает сигналы выборки адреса, разбивая всю до- ступную область адресного пространства микроЭВМ на сегмен- ты по 4 Кбайта каждый. При этом сигнал выборки сегмента ад- ресного пространства 0000Н—0FFFI1 действует на выводе 1 ми- кросхемы DD7 и после инвертирования элементом DD9.1 по- дается на входы V4 микросхем ПЗУ DD10 и DD11. Учитывая, что на два других входа VI, V2 выборки микросхемы DD10 по- лаются сигналы с адресной шины Al 1 и А9, информация с ми- кросхемы DD10 будет считываться в области адресного про- странства 0000Н—01FFH. В отличие от DD10 на вход выборки V2 микросхемы DD11 сигнал с адресной шины А9 полается после инвертирования элементом DD9.2, поэтому в области адресно- го пространства 0200H-03FFH информация будет считываться с микросхемы DD11. / Сигналы выборки сегментов адресного пространства 0000Н— OFFFH, E000H—EFFFH и F000H—FFFFH вы используете при расширении конфигурации компьютера. Поэтому вместе с си- гналами управления они выведены на внешний разъем. Схема ОЗУ выполнена на микросхемах DD13, DD14 типа КР541РУ2, имеющих совмещенные вход и выход. Объем ОЗУ 1 Кбайт. При записи данных в ОЗУ общие выводы 11—14 микрос- хем действуют как входы. Чтобы избежать конфликта на внут- ренних выходных линиях памяти при вводе данных в ОЗУ, ког- да сигнал управления ЗПЗУ имеет уровень логического 0, внут- ренние выводы ОЗУ блокируются с помощью внутренних схем. Указанные внутренние выходы переводятся при этом в состоя- ние высокого сопротивления. Во время выполнения операции записи данных в ОЗУ в состоянии логического 0 должны нахо- диться как выводы WE разрешения записи, так и выводы 8 CS выбора микросхемы. При чтении данных из ОЗУ выводы 8 CS выбора микросхемы должны иметь состояние логического 0, а выводы 10 WE разрешения записи — состояние логической 1. Соответствующая схема, предназначенная для формирования требуемых управляющих сигналов, выполнена на DD9.4, DD12.1 и DD12.2. ОЗУ работает в адресном пространстве C000H-C3FFH. В состав нашего первого модуля, помимо процессорного бло- ка и блока памяти, входит блок интерфейса, с помощью которо- го осуществляется ввод и вывод данных. Ввод производится с клавиатуры или с кассетного магнитофона. Вывод —путем ин- дикации на дисплее или записью их на кассетный магнитофон для долговременного хранения. Содержимое ячеек памяти с адресами 9000Н, 9001Н и 9002Н отображается на индикаторах в виде шестнадцатиричных цифр. Программная реализация интерфейса с кассетным магнито- фоном предельно упростила его сопряжение с микроЭВМ и обеспечила программную совместимость по вводу данных с кас- сетного магнитофона с микроЭВМ «Микро-80» и «РК-86». Рассмотрим электрическую схему модуля в части блока ин- терфейса. В индикаторе ячейки памяти выполнены на регистрах DD18 и DD19 типа К155РП1. Каждая микросхема представляет собой восемь четырехразрядных ячеек, адресуемых независимо как при записи, так и при считывании из них данных. Входы де- шифрации регистров при записи WA, WB подключены к адре- сам АО и А1 шины адреса. Запись данных осуществляется пода- чей логического 0 на вход С1. Этот сигнал образуется с помо- щью элементов DD9.3, DD9.5 и DD12.3 объединением кода вы- борки адреса, соответствующего области адресов 9000Н— 9FFFH, дешифратора DD7 и управляющего сигнала ЗПЗУ. Вхо- ды дешифраторов чтения регистров DD18 и DD19 VA и VB под- ключены к старшим разрядам двоичного счетчика на микросхе- ме DD24 типа К155ИЕ5. Чтение данных производится при пода- че на вход С2 логического нуля. Выходы 4-х разрядных реги- стров DD18 и DD19 выполнены на транзисторах с открытым коллектором и объединяются между собой. В схему управления динамической индикацией входит гене- ратор синхроимпульсов на элементах DD21.3, DD21.4, двоич- ный счетчик DD24 и дешифратор управляющих импульсов на микросхеме К155ИД4 (DD20). Двоичный код преобразуется в дешифраторе на микросхеме DD23 (К155РЕЗ) в специальный код семисегментного индикатора, Выводы DD23, идущие к сег- ментам, подключены через резисторы сопротивлением 1 кОм к шине питания +5 В. При этом на соответствующем разряде ин- дикатора с общим катодом (например, АЛС324А или AJIC318) должен быть уровень логического нуля. Содержимое дешифра- тора (DD23) двоичного кода в семисегментный шестнадцати- ричный приведено в таблице 2. Таблица 2. СОДЕРЖИМОЕ ДЕШИФРАТОРА К155РЕЗ (DD23) Цифра индикатора Адрес К1 55РЕЗ код на входе Код ПЗУ 0 00 3F 1 01 06 2 02 5В 3 03 4F 4 04 66 5 05 61) 6 06 7D 7 07 07 8 08 7F 9 09 6F А 0А 77 В ОВ 7С С ОС 39 D 0D 5Е Е 0Е 79 F 0F 71 Клавиатура состоит из 17 кнопок, соединенных с дешифрато- ром, на выходе которого формируется двоичный код нажатой клавиши. Дешифратор кода нажатой клавиши выполнен на ми- кросхемах ПЗУ DD15 и DD16 типа КР556РТ4. Содержимое этих микросхем приведено в таблице 3. Когда не нажата ни одна из клавиш, при поступлении сигнала выборки клавиатуры в виде логического нуля, обе микросхемы ПЗУ открываются, и по- скольку по адресу FF в микросхемах ПЗУ записаны нули, то они и считаются на шину данных. Таблица 3. СОДЕРЖИМОЕ ПЗУ КЛАВИАТУРЫ Адрес на входе Содержимое ПЗУ (DD15) Содержимое ПЗУ (DD16) FF FE FD FB F7 EF DF BF 7F Все остальные адреса 0 0 1 2 3 4 5 6 7 0 7 8 9 А В С D Е F 0 Код нулевой клавиши ЮН формируется вспомогательным ло- гическим элементом 2И—НЕ с открытым коллектором микрос- хемы DD17. Аналогично формируется код клавиши «ШАГ НА- ЗАД». Колы остальных 15 клавиш формируются микросхемами DD15 или DD16. Причем при формировании кодов от «8» до «F» логическая единица в разряде D3 шины данных запрещает вы- борку микросхемы DD15. Две дополнительные клавиши могут быть задействованы при подключении их к выводам 4 микрос- хемы DD17 (код 20Н) или 10 микросхемы DD17 (код 4011). Для сопряжения с кассетным магнитофоном используется D- триггер DD4.2, информационный вход которого подключен к нулевому разряду шины данных, а выход через филыр соеди- няется со входом кассетного магнитофона в режиме записи. В режиме воспроизведения выход кассетного магнитофона под- ключается ко входу операционного усилителя DA1. Выход опе- рационного усилителя через схему формирования импульсов положительной полярности подключается к одному входу ло- гического элемента DD12.4 с открытым коллектором. Второй вход этого логического элемента подключен к схеме объедине- ния по ИЛИ на микросхеме DD22 управляющего сигнала ЧТВВ и сигналов выборки кода порта А1Н с помощью дешифратора DD7 и инверсного адреса АО. Выход элемента DD12.4 подклю- чен к нулевому разряду шины данных. 4
02=1 01=0 00=1 06=0 05=1 КОД Д5 04=0 03=0 Рисунок 3. Запись и чтение информации при работе с кассетным магни- тофоном производится последовательным кодом, бит забитом. В основу записи информации на магнитную ленту положен метод двухфазного кодирования. Формирование последова- тельности двухфазных кодов производится программно. На ри- сунке 3 показано, как выглядит последовательный двухфазный код после преобразования байта А5 (его двоичное представле- ние 10100101). Запись байта при последовательном двухфазном кодировании начинается со старшего разряда. В середине передаваемого бита происходит изменение его значения на противоположное, причем изменение с «1» на«0» означает, что передан би г, равный 0, а обратное изменение с «0» на «1» —бит, равный единице. На границе двух одинаковых по значению смежных битов всегда происходит изменение значения двухфазного кода. На границе разных по значению смежных битов изменение двух- фазного кода не происходит. Период следования информаций Т выбирается из соображений надежности считывания информа- ции. Если Т=0,66 мс, то скорость записи считывания равна 1500 бит/сек, что позволяет записать на одну сторону стандартной кассеты типа МК-60-2 до 256 Кбайт информации. Таким образом интерфейс с кассетным магнитофоном представляет собой од- норазрядный порт ввода-вывода. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ Ограниченный объем ПЗУ и ОЗУ в микроЭВМ минимальной конфигурации предъявляет особые требования к эффективнос- ти программного обеспечения, которое фактически ограничено программой МОНИТОР. Однако, даже несмотря на небольшой объем, МОНИТОР «ЮТ-88» даст вам возможность писать и от- лаживать программы в машинных кодах, модифицировать их за счет вставки или удаления отдельных команд, пересылать отла- женные программы в новые адреса и корректировать их. При программировании в машинных кодах удается максимально приблизиться к аппаратным средствам микроЭВМ, учесть осо- бенности микропроцессора и каждой отдельной команды и в ре- зультате получить предельно короткие и быстродействующие программы. Для программирования в машинных кодах тре- буются только карандаш и бумага. Составленную программу можно сразу с помощью МОНИТОРА загрузить в ОЗУ микро- ЭВМ и попробовать в работе. Используя при написании таких программ символическое обозначение команд в виде мнемоник языка Ассемблера с последующим ручным ассемблированием с помощью компактных табличных представлений команд/мне- моник-команд/кодов, удается по существу освоить программи- рование на языке Ассемблер. Прежде чем перейти к рассмотрению директив МОНИТОРА, целесообразно познакомиться с системой команд и устройством микропроцессора КР580ИК80А в справочном листке «ЮТ-88» Все команды микроЭВМ сведены в таблице (см. вкладку). Вы- делим наиболее общие закономерности их использования. 1. Арифметические и логические операции разрешены только между аккумулятором и байтом данных или между аккумулятором и любым ре- гистром. 2. Аккумулятор и регистровая пара HL являются единственными реги- страми, которые могут быть непосредственно загружены в память. 3. Аккумулятор является единственным регистром, который может быть инвертирован, сдвинут, косвенно загружен в память с использова- нием регистровых пар ВС и DE или использован в командах ввода/выво- да (IN, OUT). 4. Регистровая пара HL является единственной, содержимое которой может быть передано в счетчик команд (команда PCHL) или указатель стека (команда SPHL). 5. Регистровая пара Н может использоваться как аккумулятор двойной длины при сложении 16 разрядных чисел (команда DAD). 6. Содержимое регистровых пар HL и DE можно менять местами (команда HCHG). 7. Отдельные команды могут применяться для специальных функ- ций. Команды XR А А или SUB А обнуляют аккумулятор. Команды AN А А или OR А А очищают флаг переноса, а команда ADD А выполняет ло- гический сдвиг аккумулятора влево. 8. Команды увеличения (уменьшения) на 1 регистров INR (DCR) дей- ствуют на все флаги, за исключением флага переноса. Команды увеличе- ния (уменьшения) на 1 регистровых пар INX (DCX) не оказывают влия- ния на флаги. 9. В стек или из стека могут быть переданы только регистровые пары. Одной из таких регистровых пар является слово состояния микропро- цессора, которое содержит аккумулятор (старший байт) и флаги (млад- ший байт). Команды CALL и RET передают адрес в стек и обратно. 10. При записи 16-разрядных адресов младший байт записывается пер- вым. Целесообразно также отдельно рассмотреть основные спосо- бы адресации данных в микроЭВМ. Предусмотрено 3 способа адресации: прямая, непосредственная и косвенная. 1. Прямая адресация (из памяти или в память с конкретным адресом) может использоваться для работы с аккумулятором и регистрами H-L. Адрес данных записывается во втором и третьем байте команды. Напри- мер: LDA C000H Эта команда загружает А из ячейки памяти с адресом C000H; STA 9000Н Эта команда загружает ячейку памяти с адресом 9000Н содержимым аккумулятора. LHLD C000H Эта команда загружает регистр L из ячейки с адресом C000H, а регистр Н из ячейки с адресом С001Н. то есть сначала младший байт, а затем старший байт. SHLD 9001Н Эта команда загружает в ячейку памяти 9001Н содержимое регистра L, а в ячейку памяти 9002Н регистра Н. 2. Непосредственная адресация, то есть конкретное значение, записы- вается в байте, следующем за командой. Например, MVI А, ПН. Эта команда загружает в А значение ИН; LXI Н, 9001Н Эта команда загружает в регистры Н—L значение 9001Н соответствен- но. 3. Косвенная адресация (по адресу в регистровой паре HL, DE или ВС). Например, MOV А, М или MOV М, А. Команды загрузки регистра из ячейки памяти с адресом в регистровой паре HL или наоборот. LDAX D или LDAX В Команды загрузки аккумулятора из памяти по адресам в регистровых парах DE или ВС. STAX D или STAX В Команды загрузки памяти по адресу в регистровых парах DE или ВС содержимым аккумулятора. Используя команды с разными способами адресации, приве- дем программу вывода единиц на все индикаторы: 1. 2-байтная MVI А, НН Занесение константы в акку- команда 2. 3-байтная STA 9000Н мулятор Вывод «11» на правый индикатор команда 3. 3-байтная LXI Н,9001Н Занесение адреса среднего команда 4. Однобайтная MOV М, А индикатора в И Вывод на средний индикатор «11» команда 5. 3-байтная LXI D, 9002Н Занесение адреса левого команда 6. Однобайтная STAX D индикатора в DE Вывод «11» на левом индикаторе команда Программа содержит шесть команд, и, чтобы ее записать в па- мять, потребуется 13 ячеек памяти. Используя таблицу, находя в ней мнемоники каждой команды, определим соответствующие им коды. 1. MVI А, ИН ЗЕ 11 2. STA 9000Н 32 00 90 3. LXI Н, 9001Н 21 01 90 4. MOV М.А 77 5. LXI D, 9002 Н 11 02 90 6. STAX D 12 Если эти коды записать в ОЗУ микроЭВМ, то в результате ис- полнения этой программы на всех индикаторах микроЭВМ вы- светятся единички. МОНИТОР - УПРАВЛЯЮЩАЯ ПРОГРАММА МИКРОЭВМ Основой программного обеспечения микроЭВМ, как бы его ядром, является управляющая программа МОНИТОР объемом 1 Кбайт. Несмотря на столь малый объем, в ней имеются дирек- тивы записи, чтения ОЗУ, пуска программ с задаваемого адреса, тестирования ОЗУ и индикаторов, записи и чтения программ с кассетного магнитофона с их верификацией. Имеется возмож- ность пошаговой коррекции содержимого ОЗУ, осуществлять перемещение программ в новые адреса с коррекцией адресов программы, вычислять контрольную сумму, вставлять и уда- лять байты команд с коррекцией адресов остальной части про- граммы. Минимизация объема МОНИТОРА достигнута прежде 5
Таблица 5. всего за счет того, что к наиболее часто используемым подпро- граммам ввода/вывода в МОНИТОРе производится обращение не с помощью 3-байтной команды CALL ADR, а с помощью од- нобайтных команд RSTO —RST6. Встроенная в МОНИТОР программа часов, работающая в ре- жиме прерывания по RST7 от внешнего датчика секунд, позво- ляет осуществить привязку выполнения программ к реальному времени. Хранится МОНИТОР в ПЗУ в области памяти 0000H-03FFH. Чтобы его запустить, достаточно произвести начальную уста- новку микроЭВМ, нажав на кнопку «УСТ». При работе МОНИ- ТОРА в ОЗУ лишь несколько ячеек используется для стека и хра- нения промежуточных результатов и данных. Коды МОНИТОРА приведены в таблице 5. При запуске МОНИТОРА происходит настройка указателя стека и затем на крайних справа индикаторах появляются две единички. Это означает, что микроЭВМ находится в ожидании ввода директивы с клавиатуры. Клавиатура имеет двойное функциональное назначение. После начальной установки каж- дая клавиша служит для ввода директивы, а после ввода дирек- тивы эти же шестнадцатиричные клавиши используются'для ввода ее параметров. Директивы МОНИТОРА перечислены в таблице 4. Таблица 4. Директивы МОНИТОРА Клавиша директивы Параметры директивы Назначение 0 1 2 3 4 5 6 7 8 9 А В с АДР АДР АДР АДР1, АДР2 АДР1, АДР2 АДР АДР Запись данных в ОЗУ с адреса АДР Запись данных в ОЗУ с адреса C000H Чтение данных из ОЗУ с адреса СОООН Тест индикации Тест ОЗУ Чтение данных из ОЗУ с адреса АДР Пусн программы с адреса СОООН Пуск программы с адреса АДР Контрольная сумма данных с АДР1 по АДР2 Запись данных на ленту с АДР1 по АДР2 Чтение данных с ленты со смещением, равным АДР Индикация времени Установка времени с АДР C3FDH секунды, C3FEH минуты, C3FFH часы Все директивы МОНИТОРА задаются шестнадцатиричными цифрами и могут содержать дополнительно до трех парамет- ров. Параметры также вводятся в виде шестнадцатиричных чи- сел. Их набирают после ввода директивы и контролируют по ин- дикации на дисплее. Поскольку в МОНИТОРЕ на крайний спра- ва индикатор выводится информация аккумулятора (адрес ин- дикатора 9000Н), а на два других индикатора выводится инфор- мация из регистровой пары HL (адреса 9001Н, 9002Н), то в даль- нейшем мы эти индикаторы так и будем называть: индикатор А, индикаторы HL. Структурно МОНИТОР состоит из двух частей по 512 байт каждая. Перечисленные в таблице директивы относятся к пер- вой основной части МОНИТОРА 0000—01FFH. Вторая, вспомо- гательная часть МОНИТОРА содержит набор программ, обра- щение к которым производится с помощью директивы «7». В минимальном объеме МОНИТОР может быть размещен в од- ной микросхеме КР556РТ5. Знакомство с директивами МОНИТОРА начнем с директив работы с памятью. Директива «4» позволяет тестировать ОЗУ микроЭВМ. После нажатия клавиши «4» на индикаторах HL по- является код «С400Н», что означает: вся область ОЗУ от C000H до C3FFH исправна. Тестирование ОЗУ производится последо- вательной записью в каждую ячейку сначала нулей и их чтением с проверкой на ноль, а затем записью единиц с проверкой счи- танных единиц. Если какая-то ячейка памяти неисправна, то ад- рес неисправной ячейки выводится на индикатор HL. Пользо- ваться этой директивой нужно осторожно, так как после прохож- дения теста ОЗУ вся память заполняется единичками. Директива «1» позволяет осуществлять запись данных в ОЗУ с адреса C000H. После нажатия на кнопку «1» на индикаторах HL появляется код «С000», а на индикаторе А — «00». Последующее нажатие на кнопки приводит к занесению данных в ячейки ОЗУ. Вводимые данные отображаются на индикаторе А, а на индика- торах HL выводятся адреса загружаемых ячеек памяти. Переход от ячейки к ячейке происходит автоматически, с задержкой по- рядка 1 с. Так, если после ввода директивы «1» оставить нажатой эту кнопку, то начиная с ячейки памяти с адресом C000H и во все последующие ячейки будут записываться единицы. Директива «2» предназначена для просмотра содержимого ячеек памяти, начиная с адреса C000H. После ввода директивы на индикаторах HL появляется адрес «С000», а на индикаторе А содержимое ячейки памяти C000H. Нажатие на любую кнопку осуществляет автоматическое перелистывание ячеек памяти. .0 . 1 .2 . 3 .4 .5 .6 . 7 .8 .9 .A B • C D .E .F айве 31 ЕЕ СЗ 3E 11 C3 3B 00 C3 00 01 F7 EB C3 7D 00 0010 D5 AF 57 E7 07 C3 47 00 E5 F5 21 50 66 C3 56 00 0020 DF СЗ 5F 00 00 C3 00 C0 32 00 90 22 01 90 C9 00 0030 F5 D7 57 D7 5F Fl C9 00 C3 Cl 00 FB 32 00 90 E7 0040 С6 F3 26 00 6F 6E E9 07 07 07 B2 57 32 00 90 E7 0050 В2 32 00 90 DI C9 2B 7D B4 C2 56 00 Fl El C9 DB 0060 А0 С6 00 CA 5F 00 FE 80 CA 6E 00 E6 0F C9 2B 3B 0070 ЗВ AF EF D7 77 DF 23 C3 71 00 21 00 C0 E7 7E EF 0080 23 СЗ 7D 00 F7 EB AF EF DF E9 21 00 C0 C3 71 00 0090 F3 F7 ЕВ C3 71 00 AF 67 6F EF DF C6 11 FE 10 C2 00А0 97 00 С7 21 00 C0 AF 77 7E B7 C2 BB 00 3D 77 7E 00В0 ЗС С2 ВВ 00 23 7C E6 04 CA A6 00 7E EF E7 C3 A6 00С0 00 F3 F5 C5 D5 E5 21 E4 00 11 FD C3 06 03 1A 3C 00D0 27 12 BE C2 DE 00 AF 12 23 13 05 C2 CE 00 El Di 00Е0 С1 F1 FB C9 60 60 24 C3 9A 01 C3 C2 01 C3 75 01 00F0 сз F5 01 91 8A 7A 96 A3 0B 25 84 ED E7 EA F0 90 0100 С5 D5 F5 57 0E 08 7A 07 57 3E 01 AA D3 Al CD 21 0110 01 ЗЕ 00 AA D3 Al CD 21 01 0D C2 06 01 Fl DI Cl 0120 С9 06 IE 05 C2 23 01 C9 C5 DS 0E 00 57 DB Al 5F 0130 79 Е6 7F 07 4F DB Al BB CA 35 01 E6 01 Bl 4F CD 0140 6Е 01 DB Al 5F 7A B7 F2 63 01 79 FE E6 C2 57 01 0150 AF 32 FC C3 C3 64 01 FE 19 C2 30 01 3E FF 32 FC 0160 СЗ 16 09 15 C2 30 01 ЗА FC C3 A9 DI Cl C9 06 2D 0170 05 С2 70 01 C9 C5 D5 E5 F5 F7 42 4B F7 2E 00 65 0180 0А D5 5F 16 00 19 DI CD 94 01 03 C2 80 01 EF Fl 0190 Е1 D1 Cl C7 7A B8 C0 7B B9 C9 C5 D5 E5 F5 F7 42 01А0 4В F7 C5 AF 6F CF 2C C2 A5 01 3E E6 CF 78 CF 79 01В0 CF 7А CF 7B CF 0A CF CD 94 01 03 C2 B5 01 Cl C3 01С0 7D 01 C5 D5 E5 F5 F7 3E FF CD 28 01 67 CD EE 01 01D0 6F 19 44 4D C5 CD EE 01 67 CD EE 01 6F 19 EB CD 01Е0 ЕЕ 01 02 CD 94 01 03 C2 DF 01 Cl C3 7D 01 3E 08 01F0 CD 28 01 C9 00 2A FE C3 ЗА FD C3 EF DF C3 F5 01 0200 CD 24 02 DA 0A 02 CD 0E 02 C7 CD 19 02 C7 1A 77 0210 CD 94 01 IB 2B C2 0E 02 C9 0A 77 CD 94 01 03 23 0220 С2 19 02 C9 F7 D5 F7 EB 22 F2 C3 El 22 F0 C3 F7 0230 ЕВ 22 F4 C3 7D 93 6F 7C 9A 67 22 F8 C3 4D 44 2A 0240 F2 СЗ E5 09 22 F6 C3 2A F0 C3 4D 44 DI 2A F4 C3 0250 7D 91 7C 98 D8 2A F6 C3 C9 7C BA C0 7D BB C9 CD 0260 24 02 CD 66 02 C7 2A F4 C3 56 E5 CD B9 02 60 E3 0270 78 FE 03 C2 A5 02 23 4E 23 46 2B E5 2A F0 C3 79 0280 95 78 9C DA A3 02 2A F2 C3 7D 91 7C 98 DA A3 02 0290 2А F8 C3 7D 81 F~~ 7C 88 57 El 73 23 72 23 33 33 02А0 СЗ АВ 02 El 2B Cl 23 05 C2 A6 02 5D 54 2A F6 C3 02В0 23 CD 59 02 EB C2 69 02 C9 01 06 03 21 D3 02 7A 02С0 А6 23 BE C8 23 0D C2 BF 02 0E 03 05 78 FE 01 C2 02D0 BF 02 C9 FF CD C7 C4 FF C3 C7 C2 E7 22 CF 01 C7 02Е0 06 С7 C6 F7 D3 F7 EB 22 F0 C3 22 F4 C3 E5 F7 EB 02F0 22 F2 C3 22 F6 C3 F7 EB 22 FA C3 DI 7D 93 6F 7C 0300 9А 67 22 F8 C3 CD 66 02 C7 F7 D5 F7 EB 22 F2 C3 0310 F7 ЕВ 22 FA C3 F7 EB 22 EE C3 El 22 F0 C3 56 E5 0320 CD В9 02 60 E3 78 FE 03 C2 4A 03 23 5E 23 56 2B 0330 Е5 2А FA C3 CD 59 02 C2 48 03 2A EE C3 EB El 73 0340 23 72 23 33 33 C3 50 03 El 2B Cl 23 05 C2 4B 03 0350 5D 54 2A F2 C3 23 CD 59 02 EB C2 IE 03 C7 F7 EB 0360 22 F0 C3 4D 44 F7 6B 62 22 F2 C3 23 22 F6 C3 CD 0370 0Е 02 AF 77 E5 23 22 F4 C3 21 01 00 22 F8 C3 CD 0380 66 02 El 7E EF D7 77 C7 F7 EB 22 F0 C3 22 F4 C3 0390 4D 44 E5 F7 6B 62 22 F2 C3 El C5 03 CD 19 02 AF 03А0 77 2В 22 F6 C3 21 FF FF 22 F8 C3 CD 66 02 El C3 03В0 7D 00 F7 4B 42 F7 D5 F7 EB DI 0A BE C2 D4 03 79 03С0 ВВ С2 CF 03 78 BA C2 CF 03 3E 11 6F 67 EF C7 03 03D0 23 СЗ BA 03 F5 7E EF D7 77 Fl C3 BA 03 C5 D5 E5 03Е0 F5 7Е EF E7 E3 3E AF EF E7 E3 69 60 3E BC EF E7 03F0 ЕВ ЗЕ DE EF E7 Fl El DI Cl C9 FF FF FF FF FF FF Директива «0» аналогична директиве «1», однако отличается тем, что после нажатия кнопки «0» необходимо ввести параметр — адрес, начиная с которого будет осуществляться за- пись данных в ОЗУ. Нажав кнопку «0», вводится адрес ячейки па- мяти, который при вводе индицируется на индикаторе А, а за- тем, после ввода адреса, появляется уже на индикаторе HL. На индикаторе А высвечивается «00». После этого вводится новая информация в эти и последующие ячейки памяти. Директива «5» позволяет просматривать ячейки памяти ОЗУ с любого адреса. После нажатия кнопки «5» вводится адрес инте- ресующей ячейки, который при вводе индицируется побайтно на индикаторе А, а затем выводится на индикаторы HL. На ин- дикаторе А будет написано содержимое ячейки памяти. Сле- дующие ячейки просматриваются нажатием на любую кнопку. Особое положение среди директив работы с памятью зани- мает директива «ШАГ НАЗАД», которая отсутствует в табли- це 4. Дело в том, что все кнопки в микроЭВМ кроме кнопки «ШАГ НАЗАД» имеют двойное функциональное назначение. После сброса каждая кнопка служит для ввода директив МОНИ- ТОРА, а при исполнении директив это кнопки шестнадцатирич- ных цифр. Директива «ШАГ НАЗАД» имеет отдельную кнопку и может быть введена при исполнении перечисленных выше директив работы с памятью. Предположим, выполняется директива чтения памяти. На ин- дикаторах HL —адрес «С003», а на индикаторе А —содержимое этой ячейки — «22». После нажатия на кнопку «ШАГ НАЗАД» на индикаторе А появляются нули, и можно вводить новые данные в ячейку с адресом СООЗН и последующие адреса. Аналогично применяется директива «ШАГ НАЗАД» при выполнении дру- гих директив работы с памятью. При работе с памятью полезной может оказаться директива вычисления контрольной суммы. Чтобы получить ее, необходи- 6
В приводимой таблице команд микропроцессора КР58ОИК8О ис- пользуются С 3 СС 33 DATA С83 DATA С 163 ADDR С 163 следующие обозначения: регистр или регистровая пара ячейка памяти, адресуемая регистровой парой направления передачи данных байт данных два байта данных 16—ги разрядный адрес ячейки памяти О 2-й байт команды асэ 2-й и 3-й байты команды FLAG содержимое РП * влияние команды на установку отдельных признаков — отсутствие влияния команды на содержимое РП PCL. младший байт содержимого PC РСН старший байт содержимого PC ВУ внешнее устройство Код команды Мнемоника команды Действие команды Содержимое регистра признаков Число тактов S'ZАС Р'С 1 2 3 4 5 Команды перс •силки данных 7F MOV A.A САЭ-*-САЗ _ _ _ — — 5 78 MOV A,В САЗ —СВЗ — — — — — 5 79 MOV A.C САЗ"»- ССЗ — — — — — 5 7А MOV A,D САЗ *-CD3 — — — — — 5 7В MOV A.E САЗ —СЕЗ — — — — — 5 7С MOV A.H САЗ — СНЗ — — — — — 5 7D MOV A.L САЗ —CL3 — — — — — 5 47 MOV В .A СВЗ —САЗ — — — 5 40 MOV B,B СВЗ* СВЗ — — — — — F 41 MOV B.C СВЗ —ССЗ _ _ _ — — 5 42 MOV В .D СВЗ —CD3 — — — — — 5 43 MOV B.E LB3 —СЕЗ — — — — — 5 44 MOV B,H СВЗ —СНЗ — — — — — 5 45 MOV В ,L СВЗ —CL3 _ _ _ — — 5 4F MOV C.A ССЗ —САЗ — — — — — 5 48 MOV C,B ССЗ — СВЗ — — — — — 5 49 MOV C,C ССЗ—ССЗ — — — — — 5 4А MOV C,D ССЗ —CD3 — — — — — 5 4В MOV C.E ССЗ —СЕЗ — — — — — 5 4С MOV C.H ССЗ — СНЗ — — _ — — 5 4D MOV C.L ССЗ — CL3 — — — — — 5 57 MOV D,A CD] ♦САЗ _ _ _ 5 58 MOV D.B CD3 —СВЗ — — — — — 5 59 MOV D,C CD3— ССЗ — — — — — 5 5А MOV D,D CD3—CD3 — — — — — 5 5В MOV D.E CD3—СЕЗ _ _ _ 5С MOV D.H CD3 —СНЗ — — — — — 5 5D MOV D.L CD3 —CL3 — — — — — 5 5F MOV E.A СЕЗ—САЗ _ — _ — — 5 58 MOV E.B СЕЗ—СВЗ — — — — — 5 59 MOV E,C СЕЗ—ССЗ — — — — — 5 5А MOV E,D СЕЗ —CD3 — — — — — 5В MOV E,E СЕЗ —СЕЗ — — — — — 5 5С MOV E.H СЕЗ —СНЗ _ _ — — — 5 5D MOV E.L СЕЗ—CL3 — — — — — 5 67 MOV H.A СНЗ—-САЗ — — — — — 5 60 MOV H,B СНЗ—СВЗ _ — _ — — 5 61 MOV H,C СНЗ—-ССЗ — — — «=• 62 MOV H,D СНЗ —CD3 _ _ _ — — 5 63 MOV H,E СНЗ—СЕЗ — — _ — — 5 64 MOV H,H СНЗ —СНЗ 5 65 MOV H,L СНЗ —CL3 - - - 5 6F MOV L,A CL3 —САЗ — — — — — С 68 MOV L,B CL3 —СВЗ — — — — — 5 69 MOV L,C CL3 —ССЗ — — — — — 5 6А MOV L,D CL3—CD3 _ _ _ — — 5 6В MOV L,E CL3 —СЕЗ _ _ _ — — 6С MOV L,H CL3—СНЗ — — — 5 6D MOV L,L CL3 —CL3 — — — 7Е MOV A,M САЗ—CCHL33 _ _ _ 7 46 MOV B,M СВЗ—CCHL33 — — — 7 4Е MOV C,M ССЗ —CCHL33 — — — — — 7 56 MOV D,M CD3—CCHL33 _ _ _ — — 7 5Е MOV E,M СЕЗ —CCHL33 — — _ — — 7 66 MOV H,M СНЗ—CCHL33 — — — 7 6Е MOV L,M CL3 —CCHL33 — — - — — 7 77 MOV M,A CCHL33 —САЗ — — — 7 70 MOV M,B CCHL33—СВЗ — — — 7 71 MOV M,C CCHL33—ССЗ _ _ _ — — 7 72 MOV M,D CCHL33 —CD3 _ _ _ — — 7 73 MOV M,E CCHL33—СЕЗ — — — 7 74 MOV M,H CCHL33 —СНЗ — — — — — 7 75 MOV M,L CCHL33—CL3 — — — — — 7 ЗЕ а MVI A,DATAC83 САЗ—DATAC83 — — — 7 Об а MVI B,DATAC83 СВЗ—DATAC83 — — — — — 7 ОЕ а MVI C,DATAC83 ССЗ—DATAC83 — — — — — 7 16 а MVI D,DATAC83 CD3—DATACS3 — — — — — 7 1Е □ MVI E,DATAC83 СЕЗ—DATAC83 _ _ _ — — 7 26 СТ MVI H,DATAC83 СНЗ—DATACS3 — — — — — 7 2Е О MVI L.DATAC83 CL3—DATAC83 — ~ — 7 36 а MVI M,DATAC83 CCHL3 3—DATAC163 г— — — - - 10 ОЮСЗ LXI B,DATA!163 ССВСЗЗ—DATAC163 _ _ _ 1О иаа LXI D,DATAC163 CCDE3 3—DATAC163 — — — — — 10 210 О LXI H,DATA!163 CCHL33—DATAC163 _ _ _ 10 31ПО LXI SP,DATAC163 CCSP33—DATAC163 - - — — — 10 ЗАСЗСЗ LDA ADDRC163 САЗ—ADDRC163 _ _ _ — — 13 32ао STA ADDRC163 ADDRC163 —САЗ — — — — — 13 1 2 3 4 5 2АСЗСЗ LHLD ADDRC163 CL3—ADDRC 163 — — — _ — 16 CH3 —ADDRC 163 + 1 22ОСЗ SHLD ADDRC163 ADDRC 163—CL3 — — — — — 16 ADDRC163 + 1—CH3 ОА LDAX В САЗ—ССВСЗЗ _ _ _ _ _ 7 1А LDAX D CA3+-C CDE33 — — — — — 7 02 STAX В ССВСЗЗ—САЗ _ — — — — 7 12 STAX D CCDE33 —САЗ - — — — — 7 ЕВ XCHG CHL3—CDE3 — — — — — 4 F9 SPHL CSP3—CHL3 — — — — — 5 ЕЗ XTHL CL3—CCSP33 — — — — — 13 СНЗ—CCSP3 + 13 С5 PUSH В CCSP3-13—-СВЗ — — — — — 11 CCSP3-23—ССЗ CSP3 —CSP3-2 D5 PUSH D CCSP3-13—CD3 - — — — — 11 CCSP3-23—СЕЗ CSP3—CSP3-2 Е5 PUSH H CCSP3-1 3 —СНЗ — — — — — 11 CCSP3-23—CL3 CSP3—CSP3-2 F5 PUSH PSW CCSP3-1 3—САЗ — — — — — 11 CCSP3-23—CFLAG3 CSP3—CSP3-2 С1 POP В ССЗ—CCSP33 — — — — — 11 СВЗ—CCSP3 + 13 CSP3—CSP3+2 D1 POP D СЕЗ—CCSP3 3 — — — — — 11 CD3—CCSP3 + 13 CSP3—CSP3+2 Е1 POP H CL3—CCSP3 3 — — — — — 11 СНЗ —CCSP3 + 13 CSP3—CSP3+2 F1 POP PSW С FLAG 3—CCSP3] — — — — — 11 САЗ —CCSP3 + 13 CSP3—-CSP3+2 DB а IN адрес 8У САЗ—СВУЗ — — — — — 10 D3 О OUT адрес ВУ СВУЗ+-САЗ — — — — — 10 Арифметико-лаги1 ческие команды 87 ADD A САЗ —САЗ + САЗ » Я я » » 4 80 ADD В САЗ —САЗ + СВЗ • я я Я я 4 81 ADD C САЗ— САЗ + ССЗ Я я и я я 4 82 ADD D САЗ — CA3 + CD3 я * * и м 4 83 ADD E САЗ —САЗ + СЕЗ я я я я я 4 84 ADD H САЗ—САЗ + СНЗ ♦ я ♦ я я 4 85 ADD L САЗ—CA3 + CL3 ♦ я » я я 4 86 ADD M С А 3 — С А 3 + С С НЕЗ 3 я * * я и 7 С6 а ADI DATAC83 САЗ —САЗ+DATAC83 я » * я * 7 8F ADC A САЗ —САЗ + САЗ+С я я я я я 4 88 ADC В САЗ —CA3+LB3+C * * и я и 4 89 ADC C САЗ—САЗ + ССЗ+С я я я я я 4 8А ADC D САЗ —CA3 + CD3+C и я я «я 4 8В ADC E САЗ —САЗ + СЕЗ+С я я я я я 4 ЗС ADC H САЗ —САЗ + СНЗ+С я я я я я 4 8D ADC L САЗ—CA3 + CL3+C я я я я я 4 ЗЕ ADC M САЗ+САЗ+СCHL]3+С я я я я я 7 се а ACI DATACS3 CA3-CA3+DATAC83+C я я я я я 7 97 SUB A САЗ—САЗ-САЗ 0 10 10 4 90 SUB В САЗ— САЗ —СВЗ я я я я я 4 91 SUB C САЗ — САЗ —ССЗ я я я ян 4 92 SUB D САЗ—CA3-CD3 я я я я я 4 93 SUB E САЗ—САЗ-СЕЗ МИЯ N Я 4 94 SUB H САЗ— САЗ —СНЗ я я я я я 4 95 SUB L САЗ—CA3-CL3 я я я я я 4 96 SUB M САЗ — CA3-CCHL33 я я я я я 7 D6 а SUI DATAC81 САЗ —CA3-DATAC83 я я я я я 7 9Г SBB A САЗ—САЗ-САЗ-С я я я я я 4 98 SBB В САЗ—САЗ-СВЗ С Я Я Я ИЯ 4 99 SBB C САЗ—САЗ-ССЗ-С я я я я я 4 9А SBB D САЗ—CA3-CD3-C я я я я я 4 9В SBB E САЗ— САЗ—СЕЗ—С я я я я я 4 9С SBB H САЗ —САЗ-СНЗ-С Я Я Я ИЯ 4 9D SBB L САЗ—CA3-CL3-C я я я я я 4 9Е SBB M САЗ—САЗ—CCHL33—С я я я я я 7 DE а SBI DATAC83 САЗ—CA3-DATAC33-C я я я я я 7
IDA DD1 DD5 DD 10 DD1 КР53ОВМ8ОД DD2 КР580ГФ24 DD5 К176 ЙЕ 5 DD4K155 TM2 DD5,DD6 КР58ОИР82 DD7155 ИДЗ DD8 КР580ИК58 DD 9jDD21 К155ЛН1 DD1OfDD11 KP556 PT5 DD12,DD17KI55 ЛА8 DD13yDD14 KP541РУ 2 DD15,DD16 KP556 PT4 DD18,DD19 K155 РП1 DD20 K155 ИД4 DD22 К155ЛЕ4 DD23K155 PE3 DD 24 K155 ИЕ5 DA1 К140УД6 1 2_____15 3 19 5_____12 6 14 CPU Ao Ai A2 A4 Аб 25 26 27 29 30 1 1 2 3 5 2_ 3 4 5 Ф1 Ф2 SYN RDY RES 1NT A8 A<? Aio An A |2 Ai3 Ац As Oo Dr 02 Оз 04 05 31______6 32______7 33______8 34______9 35 10 1 11 6 7 5 6 7 8 11 9 2 3 P6 01 02 Оз 04 05 Об 07 STB iGE RG 0 1 2 3 4 5 6 7 19______£ 18______2 17______3 J6______4 15______5 И_______6 13______7 12 A £ 2 3 £ ]_ 6_ 5 Ao A| Аг ROM P7 DB HIM Milk 40_____12 37_____13 38_____14 39_____15 36_____16 10_____17 9______18 £______19 7______20 3______21 4______22 5______23 6______24 П 25 26 21 27 28 9 10 11 12 13 14 is 16 006 _5 6 7 _8 11 9, 1_ 2 3 Do 0 Di 1 d2 2 D3 3 T)a 4 05 5 Об 6 1h 7 STB ►ОЁ £ 18_____10 17_____11 16_____12 15_____13 14_____14 13_____15 12_____16 19 R81k + 56 007 13 23 1 2 DC о i 5 £ T £ £ W______20. 12 21 £ z 1 18 12 A4 As Аб Ав <wi 4v3 V4 DD11 C1 УСТ. DD2 I4 XI 15 X2 22 ШЧ C2 22H з R3 430» R439M RD 0D4.1 ШД R( 1k C3 6425 R2 10K + 5B PG VT1 KT315A ' Ф1 Ф2 SYW RUT RES 5TB> пл DDS 9 10 15 s C 11____1 10____2 5 3 1__5 Л—1 6 8 9 ДО 1 2 6 5 R5 10k s Q 6 19 15 2I 16 20 8 1У& 19 V DDS 4> 9f° А.Д Г .14 3 5 — еЛ c.J7 Oo 0, Oz Оз 04 Os 06 О? 9_____1 10____2 11____3 13____4 14 5 15____6 16____7 17 8 18 1 2 3 4_ 5 6 1. £_ £ 12 10 1 009.1 1 009.2 тз л 009.4 £ 7 £ 5 Afl A| A2 3 2 1 23 20 A4 As A? Ag 18 19 16 17 2£ ROM Oo Di d2 Пз D4 05 Об 07 9_____1 10____2 11____3 13____4 14 5 15____6 16____7 17 8 V4 15 10 ___________14 2BD12.1 \ PD12.2 6 & з з 0 П D9.5 .10 0012.3 <“Lio 9 <> 17 15 18 17 19 12 20 10 21 6 22 19 23 21 24 8 2Б 4 26 3 27 2 Oo Oi 02 Оз 04 05 Об От 5 MR HLBA 24 25 Qo Qi (h. Яз 04 Qs $6 Qi 18 3 MR^ 11 >: iw >: JHT> 13 Ifi. 11 9_ 5________5 18_______6 20_______7 _T_______8 .24______9 “Л______10 25_______Ц 21______12 25_______13 R171K + 126 1_ £ 3 5 6 7 8 9 HP1K Л+5В 00215 Tl
1_ 2 3 2 1 ВЛ 18 ЛЛ25 ^УВ -С2 11 13 14 12J 15 1 2 3 WR W0 01 02 05 04 RG Qi ю 9 7 10 11 J2 13 14) ДО Д1 Иг 0з КОМ Q1 ^2 U 05 >5- 15. Q?* КСЕГМЕН- имдикдторов Q4 6 П П19 11__5 12 6 15_L M g £ 6 8 3 6 3 9 11 12 S и 13 14 11 1 д 3 ил VB С2 1УД WB RG <?1 10 9 14 1 2 3 ВВ 24 С1 С2 СТ 2 R 8 12 9 8 11 0021.1 2 ВО17 2 112 11 ю 7 & к J3 8 >—— ШН." JB9.6 1зП~ .12 01 02 Оз В4 1 6 ОЛ21.3 з / ЛЛ20 ВО 21.4 1 DC 9 3 1 '0з >04 002 9 1 -2 14 > >12- >1- л. J4 5 9 10 11 RI210K Т R9 390 К КАТОДАМ ИНДИКАТОРОВ ВВ22 .12 13 1 3 ВЛ21.6 12 1 2 13 004.2 8 12 П D С Ш 1к. +Ы' R/31K МО 1к С8 °'15 ВЫХ. R16 1к Ы12 С722Н + 58 7 6 -------141 R151K 12 -5В RI4220K ВЛ 12.4 КД 503 ВХ.
Система команд микропроцессора 1 2 3 4 5 зс INR A CA3 —CA3 + 1 ♦ ♦ ♦ < — 5 04 INR В САЗ—CB3 + 1 # ♦ # # — 5 ОС INR C CA3—CC3+1 ♦ ♦ ♦ * — 5 14 INR D t A3—CD3 + 1 ♦ * ♦ # - 5 1С INR E САЗ—CE3*1 ♦ ♦ ♦ * — 5 24 INR H САЗ — CH3 + 1 ♦ ♦ * ♦ — 5 2С INR L CA3—CL3 + 1 ♦ ♦ ♦ ♦ — 5 34 INR M CCHL3 3—CCHL33+1 * * ♦ ♦ — 1О 3D DCR A САЗ—CA3-1 # * ♦ * — 5 05 DCR В CA3 — CB3-1 ♦ ♦ * ♦ - 5 OD DCR C САЗ—CC3-1 » * * ♦ — 5 15 DCR D CA3—CD3-1 ♦ * * * - 5 1D DCR E САЗ—CE3-1 # # « » — 5 25 DCR H САЗ-ч-СНЗ-1 ♦ » ♦ * - 5 2D DCR L CA3—CL3-1 * * * ♦ — 5 35 DCR M C CHL3 3—CCHL33—1 * ♦ ♦ ♦ - 1О 03 INX В CBC3—CBC3+1 5 13 INX D CDE3—CDE3 + 1 — _ _ _ _ 5 23 INX H CHL3-S- CHL3+1 _ _ _ — — 5 33 INX SP CSP3—CSP3 + t — — — — _ 5 ОВ DCX В CBC3—CBC3-1 — _ _ — — 5 1В DCX D CDE3—CDE3-1 — — — — — 5 2В DCX H CHL J—CHL3-1 — — — — — 5 ЗВ DCX SP CSP3—CSP3-1 — — — — — 5 09 DAD В CHL 3—CHL3 + CBC3 — — — — * 1О 19 DAD D CHL3—CHL3+CDE3 - — — — ♦ 10 29 DAD H CHL3—CHL3 + CHL3 — — — — ♦ 1О 39 ‘27 DAD SP DAA CHL3—CHL3 + CSP3 -* < ♦ * # 10 4 А7 ANA A САЗ—САЗЛСАЗ » ♦ * * 0 4 АО ANA В САЗ—САЗлСВЗ * * * * 0 4 А1 ANA C C A3<w-С АЗл CC3 ♦ ♦ ♦ * о 4 А2 ANA D САЗ—CA34CD3 * * * * О 4 АЗ ANA E САЗ —САЗЛСЕЗ * * * ♦ 0 4 А4 ANA H САЗ — САЗЛСНЗ * * * * о 4 А5 ANA L САЗ—CA3ACL3 * * * * о 4 А6 ANA M САЗ —САЗЛС CHL33 ♦ * * «0 7 ЕбСЗ ANI DATAC83 САЗ—СA3ADATAC83 * * * * о 7 AF XRA A САЗ* -САЗФСАЗ * 1 0 10 4 А8 XRA В САЗ—САЗВСВЗ * * 0 * о 4 А9 XRA C САЗ—САЗФССЗ * * 0 * 0 4 АА XRA D САЗ—CA3®CD3 * * 0 * 0 4 АВ XRA E САЗ—САЗФСЕЗ * * о * 0 4 АС XRA H САЗ—САЗФСНЗ * * 0 * о 4 AD XRA L САЗ— САЭФСЬЗ * * 0 * о 4 А6 ANA M С АЗ—С АЗфС CHL3 3 * * 0 * 0 7 ЕЕ а XRI DATAC83 САЗ —CA3SDATAC83 * * о * 0 7 В7 ORA A САЗ— САЗ/САЗ * * о * 0 4 ВО ORA В САЗ—САЗ/СВЗ * * 0 * о 4 В1 ORA C САЗ— САЗ/ССЗ * * 0 * о 4 В2 ORA D САЗ—CA3/CD3 * * 0 * 0 4 ВЗ ORA E САЗ—CA37CE3 * * 0 * о 4 В4 ORA H САЗ—САЗ/СНЗ * * 0 ♦ о 4 В5 ORA L САЗ—CA3/CL3 * * О * 0 4 В6 ORA M CCHL33—CA3VCCHL33 * * О * 0 7 F6 ез ORI DATA[83 САЗ— CA3/DATAC33 * * 0 * 0 7 BF CMP A САЗ - САЗ 0 1 О 10 4 В8 CMP В САЗ - СВЗ ♦ * ♦ * * 4 В9 CMP C САЗ - ССЗ < -» < # # 4 ВА CMP D САЗ - CD3 * ♦ ♦ * * 4 ВВ CMP E САЗ - СЕЗ # » * # < 4 ВС CMP H САЗ - СНЗ ♦ ♦ ♦ ♦ ♦ 4 BD CMP L САЗ - CL3 * * * * ♦ 4 BE CMP M САЗ- CCHL33 « « « ♦ ♦ 7 FE О CPI DATAC83 САЗ- DATAC83 * * ♦ * * 7 2F CMA САЗ —САЗ 4 07 RLC 0 - - - - « 4 OF 17 RRC RAL Ц А )—м Н С 1 Чз—-и-1 - - - - * 4 4 IF RAR [д' "чп1 — — — — * 4 с за а Команды ветвления - - - - - ю JMP ADDRC163 CPC3 —ADDRC 163 C2QQ JNZ ADDRC163 2=0 JMP ADDRC163 _ _ _ — — 10 САЕЗСЗ JZ ADDRC163 Z=O JMP ADDRC163 _ _ — — — 1О D2CQ JNC ADDRC163 C=O JMP ADDRC163 — — — 10 ОАПп JC ADDRC163 C=1 JMP ADDRC163 - - - — — 1О E2OGJ JPO ADDRC163 P=0 JMP ADDRC163 — — — — — 1О ЕАОП JPE ADDRC163 P=1 JMP ADDRC163 — — _ — — 1О р?аа JP ADDRC163 S=0 JMP ADDRC163 — — — 1О РАсэа JM ADDRC163 S=1 JMP ADDRC163 — — — 1О CDDQ CALL ADDRC163 CCSP3-1 3—CPCH3 CCSP3-23—CPCL3 CSP3—CSP3-2 CPC3—ADDRC163 w г* — — 17 С4аа CNZ ADDRC163 Z=O CALL ADDRC163 — — — — — 11/17 ссая CZ ADDRC163 2 = 1 CALL ADDRC163 — — — — — 11/17 D4C3C3 CNC ADDRC163 C=0 CALL ADDRC163 — — — — _ 11/17 DC Я О СС ADDRC163 C=1 CALL ADDRC163 — — — — — 11/17 E4DQ СРО ADDRC163 P=O CALL ADDRC163 _ _ _ — — 11/17 Есаа СРЕ ADDRC163 P=1 CALL ADDRC163 — — — — — 11/17 F4OEJ СР ADDRC163 3=0 CALL ADDRC163 ~ — — — — 11/17 Fcjaa СМ ADDRC 16 3' S=1 CALL ADDRC163 — — — 11/17 С9 RE.I CPCL3—CCSP3 3 CPCH3—C CSP3 + 1 3 CSP3—CSP3+2 - — — - - 1О СО RNZ 2=0 RET — — — — — 5/11 С8 RZ Z=1 RET _ — — — — 5/11 DO RNC C»0 RET — — — - — 5/ 1 1 D8 RC C=1 RET — — — — — 5/1 1 ЕО RPO P=O RET _ _ _ — — 5/1 1 ЕЗ RPE P=1 RET - - — — — 5/1 1 F0 RP S=0 RET — — — — — 5/11 F8 RM S=1 RET — — — — — 5/1 1 Е9 PCHL СРСЗ—L HL 3 - - - 5 С7 RST О C CSP3-1 3—CPCH3 CCSP3-23—CPCL3 CSP3—CSP3-2 CPC3—OOOOH 11 CF RST 1 CCSP3-13-—CPCH3 CCSP3-23—CPCL3 CSP3—CSP3-2 CPC3—0008H — — — 11 D7 RST 2 CCSP3-13—CPCH3 CCSP3-23—CPCL3 CSP3—CSP3-2 СРСЗ—OO1OH — — — — — 11 DF RST 3 CCSP3-13—CPCH3 CCSP3-23—CPCL3 CSP3—CSP3-2 СРСЗ—0018H — — 11 Е7 RST 4 CCSP3-13—CPCH3 CCSP3-23—CPCL3 CSP3—CSP3-2 СРСЗ—OO2OH — — — — 11 EF RST 5 CCSP3-13—CPCH3 CCSP3-23—CPCL3 CSP3—CSP3-2 СРСЗ—0028H — _ — — — И F7 RST 6 CCSP3-13—CPCH3 CCSP3-23—CPCL3 CSP3—CSP3-2 СРСЗ—оозон — — — — — 11 FF RST 7 Специальные CCSP3-13—СРСНЗ CCSP3-23—CPCL3 CSP3—CSP3-2 СРСЗ—0038H «оманды 11 FB EI разрешить преры- вание - - - 4 F3 DI запретить преры- вание - - - 4 76 HLT остановить работу - - - - - 4 00 N0P пустая команда - - - - - 4 37 STC С—1 - - - - 1 4 3F СМС о — — — — ♦ 4
мо нажать на кнопку «8», а затем ввести два параметра — началь- ный и конечный адрес области памяти, в которой находится контрольная сумма. Так, можно проверить ПЗУ, если задать на- чальный и конечный адрес МОНИТОРА. Контрольная сумма выводится на индикаторы HL и для МОНИТОРА составляет 0181HC0000H—01FFH) и 18CCH(0200H-03FFH). Теперь рассмотрим директивы ввода-вывода информации при работе с кассетным магнитофоном. Желательно, чтобы ма- гнитофон имел счетчик ленты, по которому можно было бы найти начало записи. Идентифицировать же запись можно по выводимой при записи и чтении на индикатор HL контрольной суммы информации. Это как бы паспорт записи. При записи данных на ленту нажимают кнопку «9», а затем вводят два параметра —начальный и конечный адреса данных. После набора директивы перед вводом младшего байта конеч- ного адреса включают на запись магнитофон и лишь затем вво- дят последний байт адреса. После этого начнется запись инфор- мации на ленту. Скорость записи фиксированная — 1500 бит/се\. При выполнении этой директивы на ленту последовательно за- писываются 256 байт 00, Е6 (байт синхронизации), младший байт начального адреса, старший байт начального адреса, млад- ший байт конечного адреса и старший байт конечного адреса. Завершение выполнения директивы индицируется появлением на индикаторе HL контрольной суммы. Чтение данных с магнитной ленты в ОЗУ производится по ди- рективе «А». Директива имеет один параметр — смещение. Если смещение равно 0000, то программа считается в адреса, из кото- рых она была записана. Если запись считана верно, то на индика- торах HL выводится контрольная сумма, которая индицирова- лась при записи. Итак, чтение записи с магнитофона начинают нажатием кнопки «А» и вводом смещения. Перед вводом по- следнего полубайта смещения магнитофон включается на во- спроизведение, и с началом записи (однотонное звучание) вво- дится последний полубайт смещения. Считывание записи за- вершается индикацией контрольной суммы данных, введенных в ОЗУ. Директив запуска программ две. С помощью директивы «6» осуществляется запуск программы с адреса C000H, а с помощью директивы «7» программа может быть запущена с адреса, кото- рый вводится как параметр директивы. Нажав кнопку «7», наби- рают адрес пуска программы, контролируя ввод побайтно на ин- дикаторе А. При правильном вводе адрес пуска выводится на индикатор HL. Затем можно вводить параметры запущенной программы. Пользуясь директивой «7» можно применять вспо- могательные подпрограммы, входящие во вторую половину МОНИТОРА от 0200Н до 03FFH. С адреса 0200Н запускается программа копирования данных. Ее параметрами являются начальный и конечный адрес исход- ной программы, а также начальный адрес копии. Копирование с помощью этой программы производится как вверх, так и вниз относительно исходной программы и даже на перекрывающие- ся области программ с затиранием исходной программы в пере- крывающихся областях. Предположим, вам необходимо скопи- ровать МОНИТОР с адреса 0100Н до 0120Н в новые адреса ОЗУ с С100Н до С120Н. В этом случае должна соблюдаться следующая последовательность нажатия клавиш: 7 0200 0100 0120 С100 Копирование завершается с появлением двух единичек на ин- дикаторе А. Это значит, что МОНИТОР ожидает ввода следую- щей директивы. Проверить копирование данных можно с помощью другой вспомогательной программы сравнения данных двух областей. Ее пусковой адрес 03В2Н. У этой программы три параметра: на- чальный и конечный адреса исходной программы и начальный адрес копии. В продолжение примера с копированием МОНИ- ТОРА приведем последовательность нажатий на клавиши. 7 03В2 0100 0120 С100 При совпадении исходной программы и копии на всех инди- каторах появляются единички. При несовпадении эталона и ко- пии высвечивается адрес с ошибкой копии. При этом возможно исправление ошибки и последующее сравнение данных. Чтобы скопированная программа могла быть запущена в но- вых адресах, ее нужно скорректировать с помощью вспомога- тельной программы-корректора. Ее пусковой адрес 025FH. У программы три параметра: начальный и конечный адреса исход- ной рабочей программы и начальный адрес корректируемой с программы. Для нашего примера с МОНИТОРОМ это будет вы- глядеть так: 7 025F 0100 0120 ООО Завершается работа программы появлением единичек на ин- дикаторе А. Если скорректированная программа будет исполь- зоваться на другом компьютере, например, «МИКРО-80» в ад- ресном пространстве, которое отсутствует в микроЭВМ мини- мальной конфигурации, для подготовки такой программы ис- пользуется суперкорректор, запускаемый с адреса 02Е5Н. Пара- метры суперкорректора: начальный, конечный адрес рабочей программы и начальный адрес подготавливаемой программы. Пример с МОНИТОРОМ — рабочая программа подготавливает- ся для работы в FJOO—F120H 7 02Е5 ООО С120 F100 Завершается работа программы появлением единичек на ин- дикаторе А. При отладке программ может возникать необходи- мость вставки или удаления отдельных байтов. Для этого мож- но использовать несколько программ. Программа вставки байта — пусковой адрес 035ЕН. Парамет- ры программы: адрес того места программы, где необходимо вставить байт, и адрес конца программы. Программа удаления байта —пусковой адрес 0388Н. Параметры программы: адрес удаляемого байта и адрес конца программы. Программа завер- шается просмотром оставшейся части программы после адреса удаленного байта. Программа замены адресов — пусковой адрес 0309Н. После пуска программы вводятся начальный и конечный адреса рабо- чей программы, а затем старый и новый адреса. Завершается ис- полнение программы выходом в МОНИТОР и появлением еди- ничек на индикаторе А. Завершим описание вспомогательных программ МОНИТО- РА программой индикации регистров микропроцессора. Эта программа может использоваться при отладке, для чего в отла- живаемую программу с помощью программы вставки байта производится вставка трех байт CD DD03. После пуска отлажи- ваемой программы в требуемом месте программы происходит останов, а на индикаторах отображается содержимое регистров HL и ячейки памяти с адресом HL. При нажатии на любую кла- вишу происходит индикация остальных регистров, обозначение которых выводится на индикатор А в следующей последова- тельности: AF, ВС, DE. Затем происходит исполнение отлажи- ваемой программы. При нажатии кнопки «3» запускается директива тестирования дисплея микроЭВМ. После пуска директивы на всех индикато- рах дисплея выводятся последовательно все шестнадцатирич- ные цифры от 0 до F. Как уже отмечалось, в МОНИТОР встроена программа часов, работающая в режиме прерывания, что позволяет привязывать программы к реальному времени. Сначала расскажем, что такое прерывание в микроЭВМ. Рассмотрен- ные нами директивы МОНИТОРА исполняются в том порядке, в кото- ром они расположены в памяти. Это значит, что никакое вмешательство пользователя не может воздействовать на ход выполнения программы, по которой уже начал работать процессор, кроме, конечно, сброса ми- кроЭВМ в начальное положение. Система прерываний позволяет изме- нять ход выполнения программы на основании сигналов, поступающих в микропроцессор. После поступления прерывания выполнение основ- ной программы прекращается и управление передается другой програм- ме. Как только работа по другой программе завершится, будет осущест- влен переход к прерванной программе и продолжится ее нормальное выполнение. Сигнал прерывания, поступающий в микропроцессор, асинхронный. В нашей микроЭВМ такими сигналами являются импуль- сы, поступающие каждую секунду отдатчика времени, который выпол- нен на микросхеме К176ИЕ5, которая состоит из генератора импульсов частотой 32768 Гц и делителя с коэффициентом деления 2,э. В процессе обработки прерывания, запрос на которое уже, предполо- жим, поступил от датчика секунд, можно выделить следующие этапы отработки прерывания. 1. Вывод 14 микропроцессора КР580ВМ80А перешел в состояние логи- ческой 1, что означает наличие запроса на прерывание. 2. Микропроцессор принял запрос на прерывание, и на его выводе 16 установился уровень логического нуля. Эти два события являются основными в рассматриваемой микро- ЭВМ. Когда на выводе 16 устанавливается логический ноль, микропроцес- сор игнорирует все запросы на прерывания, поступающие на его вход. В системе команд микропроцессора есть две специальные команды: за- прета прерываний DI и команда разрешения прерываний El. С помощью этих команд можно менять состояние вывода 16 микропроцессора. Пос- ле сброса микропроцессора в начальное состояние вывод 16 переводится в состояние логического 0. Это означает, что после начальной установки микропроцессор игнорирует все запросы на прерывания. Единственный способ разрешить прерывание —это заставить микропроцессор выпол- нить команду EI. После выполнения этой команды на выводе 16 появится логическая 1. Именно поэтому после начальной остановки одной из первых в МОНИ- ТОРЕ выполняется команда EI, разрешающая прерывание. После этого первый же секундный импульс установит уровень логического 0 на вы- воде 16 и микропроцессор не будет воспринимать запросы на прерыва- ние. В этот же момент формируется из слова состояния управляющий сигнал «Подтверждение прерывания»—ППР. Однако поскольку не од- но устройство ввода-вывода и памяти не активизировано этим сигна- лом, то на шине данных будет действовать код команды FFH (команда RST7) и определит адрес перехода 0038Н (подпрограмма прерывания) - программу часов. В нашей микроЭВМ организовано лишь одноуровне- вое прерывание по команде RST7. Итак, по адресу 0038Н осуществляется переход на подпрограмму ча- сов, в которой программно организованы счетчики секунд, минут и ча- сов. Ячейки памяти, в которых организованы эти счетчики, имеют адре- са C3FDH, C3FEH и C3FFH. Завершается программа часов командой EI, и на выводе 16 микропроцессора снова устанавливается логическая 1. Прерванная программа продолжает работу. В МОНИТОРЕ имеется директива начальной установки вре- мени. После нажатия кнопки «С» прерывания запрещаются. За- тем следует набрать адрес ячейки памяти C3FDH и последова- 11
тельно ввести значение секунд, минут и часов. После этого по сигналам точного времени нажать кнопку «УСТ», пустив тем са- мым часы, разрешив прерывания. Имеется в МОНИТОРЕ и директива индикации времени, для чего достаточно нажать кнопку «В». При этом на индикаторе HL выводятся часы и минуты, а на индикаторе А —секунды. Точ- ность хода часов определяется стабильностью кварцевого гене- ратора. В состав МОНИТОРА входит ряд подпрограмм ввода- вывода, которые могут быть использованы при составлении программ. Перечислим эти программы и правила обращения к ним. 1. Подпрограмма записи байта на магнитофон, обращение с помощью команды RST1 (код CF). Код выводимого символа должен храниться в регистре «А». 2. Подпрограмма ввода байта с клавиатуры — обращение с помощью команды RST2 (код D7). После возврата из подпрограммы код клавиату- ры находится в регистре «А» микропроцессора. 3. Подпрограмма задержки на секунду —обращение с помощью ко- манды RST3 (код DF). 4. Подпрограмма чтения клавиатуры (проверка активности клавиату- ры) — обращение через RST4 (код Е7). 5. Подпрограмма индикации содержимого регистров HL и А на инди- каторах дисплея микроЭВМ — обращение через команду RST5 (код EF). 6. Подпрограмма ввода двух байтов с клавиатуры в регистр DE — обра- щение через команду RST6 (код F7). 7. Подпрограммы сравнения адресов, хранимых в регистровых парах DE и ВС пусковой адрес 0194Н и в регистровых парах HL и DE, пусковой адрес 0259Н. 8. Подпрограмма чтения байта с магнитофона — пусковой адрес 0128Н. После возврата из подпрограммы код считанного символа нахо- дится в регистре «А» микропроцессора. Эти подпрограммы помогут вам упростить разработку новых программ. Заметим, что для унификации обмена программ с «МИКРО-80» подпрограммы обслуживания кассетного магни- тофона (записи и чтения байта) идентичны тем, что использова- ны в МОНИТОРЕ «МИКРО-80». Рассмотрим теперь пример, поясняющий применение приве- денных подпрограмм. Предположим, что необходимо написать программу занесения констант в заданную область памяти. Входным параметром этой программы являются начальный и конечный адреса области памяти, в которую заносится констан- та. Алгоритм этой программы представлен в виде структурной схемы на рисунке 4. При написании программы удобно составить бланк (листинг), позволяющий представить программу в трех ракурсах: колонка адресов, колонка объектных кодов, колонка меток и мнемони- ческих (ассемблерных) кодов, однозначно определяющих рабо- ту программы на уровне команд, и колонка комментариев. По- добная форма записи программ позволяет не только понять ра- боту программы (колонка комментариев), но и разобраться в структуре программы (колонка меток и операций). Колонка ко- дов непосредственно может быть введена в ОЗУ микроЭВМ. Та- кой бланк изображен ниже: Адреса Коды Метни Мнемоника Комментарий СОООН F7 RST6 ввод начального адреса в регистр DE С001Н ЕВ XCHG пересылка DE в HL С002Н F7 RST6 ввод конечного адреса в регистр DE СООЗН D7 RST2 ввод константы в ре- гистр А С004Н 47 MOV В.А пересылка константы из А в В С005Н 70 М: MOV М,В пересылка константы из В в ОЗУ С006Н CD CALL 0259 обращение н п/программе сравнения адресов в HL и DE МОНИТОРА СОО7Н 59 С008Н 02 С009Н 23 INX Н увеличение адреса на единицу HL = HL+1 СООАН С2 JNZM проверка условия, если условие не выполняется, то переход на метку М СООВН 05 СООСН СО C00DH С7 RST0 выход в МОНИТОР по адресу 0000Н Для ввода кодов программы следует воспользоваться дирек- тивой «1». Затем проверить ввод директивой «2» и наконец осу- ществить пуск программы директивой «6». После нажатия кноп- ки «6» необходимо ввести начальный и конечный адрес ОЗУ, за- тем ввести константу. Окончание работы программы индици- руется появлением единичек на правом индикаторе. Проверить результат работы программы можно с помощью директивы «5», посмотрев ту область памяти, куда была занесе- на константа. Затем эту программу можно для дальнейшего ис- пользования сохранить, записав на ленту. Контрольная сумма этой программы 0800Н. В качестве еще одного примера приведем игровую программу «Лабиринт». Распечатка этой программы приведена ниже. Да- дим некоторые пояснения. «Лабиринт» —это поле 16x16 клеток, заполненное препятствиями. Координаты препятствий вводят- ся в виде отдельного набора данных с адреса С200Н. Вариант расположения препятствий приведен в виде распечатки игрово- го поля. Смысл игры заключается в следующем. Необходимо, мыс- ленно представив поле размерами 16x16, пройти кратчайшим путем от нижнего правого угла (координаты FFH) к верхнему левому углу (ООН). Управление движением осуществляется с по- мошью четырех кнопок «1» —движение на одну клетку влево; «2» —движение на одну клетку вправо; «3» —движение на одну клетку вверх; «4» —движение на одну клетку вниз. Каждый ход сопровождается коротким звуковым сигналом. Если на пути встречается препятствие, то сигнала не будет, но шаг засчитывается. Число шагов выводится на индикаторы HL, а координаты движения выводятся на индикатор А. Сигнализа- ция о правильности хода в лабиринте производится с помощью магнитофона, включенного на запись (с остановленной лентой). Пуск программы осуществляется директивой «6» с последую- щим нажатием на любую клавишу. СБОРКА И НАЛАЖИВАНИЕ МИКРОЭВМ МикроЭВМ собрана на плате из фольгированного стеклотек- столита. Расположение микросхем показано на рисунке 5. Об- щий провод и цепь питания +5В выполнены печатным спосо- бом проводниками максимальной ширины, а остальные мон- тажные соединения — тонким изолированным проводом. В мес- тах подключения печатных проводников к выводам питания микросхем подключаются блокировочные конденсаторы ем- костью 0,22—0,68 МкФ. Для уменьшения паразитных связей и на- водок монтажные провода надо прокладывать по кратчайшим путям между соседними соединяемыми выводами микросхем и не связывать в жгут. Удобно использовать обмоточный провод марки ПЭПЛОТ или ПЭВТЛК. Для соединения микроЭВМ с пе- риферийными устройствами установите на плате разъем типа СНПэ4 или контактные штыри. Контактные штыри, подклю- ченные к печатным проводникам платы общего провода, и +5В соединяются с клеммами источника питания проводами боль- шого сечения. В микроЭВМ можно применить любую клавиатуру, в которой каждая клавиша связана с контактами, работающими на замыка- ние. Можно, например, воспользоваться клавиатурой от микро- калькулятора. Возможно размещение клавиатуры на плате ми- кроЭВМ. Для уменьшения количества соединительных прово- дов индикаторы дисплея постарайтесь разместить на монтаж- ной плате. Возможны и другие варианты конструкции. Указан- ные на принципиальной схеме интегральные микросхемы се- рии К155 можно заменить их функциональными аналогами се- 12
A h I 8 I 9 10 11 12 13 11 115 16 17 18 19 20 рий К133. K555, K531. Микросхемы буфера шины адреса КР580ИР82 можно заменить микросхемами К589ИР12 или дву- мя микросхемами К589АП16. ОЗУ можно собрать практически на любых статических микросхемах памяти. Если применяемые микросхемы ОЗУ имеют раздельные вход и выход, то эти выво- ды соединяют вместе. Хотя наш первый модуль и отличается предельной просто- той, однако наличие в нем тесной взаимосвязи между аппарат- ными средствами и программным обеспечением приводит к то- му, что даже незначительная неисправность в аппаратуре или в программном обеспечении приводит к неработоспособности микроЭВМ. Начать отладку микроЭВМ целесообразно с проверки оммет- ром всех связей на монтажной плате и устранения выявленных дефектов монтажа. С особой тщательностью следует проверить наличие электрических связей между выводами питания ми- кросхем и контактами источника питания. Щупами омметра ка- сайтесь непосредственно выводов микросхем — это поможез вам обнаружить дефекты пайки. Затем проверяют наличие пи- тающих напряжений на выводах микропроцессора и на других микросхемах модуля. Следующий этап — проверка схемы формирования синхроим- пульсов. Для этого вам потребуется осциллограф. Убедившись в наличии синхроимпульсов Ф1 и Ф2 на выводах микропроцес- сора. переходят к проверке функционирования блока централь- ного процессора при постоянно действующей на шине данных команде NOP (ООН). Код команды 00 принудительно подают на шину данных с помощью перемычек. При этом на адресной шине должен происходить последова- тельный перебор всех адресов, который можно проконтролиро- вать с помощью осциллографа. Сигналы на адресной шине в этом случае имеюз форму симметричных прямоугольных им- пульсов, причем частота импульсов уменьшается вдвое при уве- личении номера разряда на единицу. При правильной работе ко- манды NOP переходят к проверке остальных блоков микро- ЭВМ. Для этого вывод 3 микросхемы DD2 соединяют с общим проводом и убеждаются в наличии высокого уровня на выводе 24 микропроцессора, что свидетельствует о нахождении его в со- стоянии ожидания. Нажав на кнопку «УСТ» проверяют на всех линиях шины адреса нулевого уровня, а на линиях шины дан- ных двоичного кода ООН 0001, записанного в нулевой ячейке МОНИТОРА (микросхема ПЗУ DD10). Имитировать сигнал выборки индикатора можно, отключив провод от вывода 10 микросхемы DD12.3 и соединив его с об- щим проводом. На правом крайнем индикаторе появится код 31. Затем отключите провод от вывода 13 микросхем DD18 и DD19 — код 31 появится уже на среднем индикаторе. Припаяйте на место провод к выводу 13 и,отключив провод от вывода 14 микросхем DD18 и DD19, проследите за индикацией кода 31 на левом индикаторе. Затем припаяйте на место все отключенные от микросхем DD18 и DD19 провода, а микросхему DD10 вынь- те из панельки или отключите провод от ее 20-го вывода. Отключив провод От вывода 8 микросхемы DD22, имитирую! подачу сигнала выборки клавиатуры. Нажимая на различные клавиши, убеждаются в индикации на правом индикаторе кодов нажатых клавиш. Восстанавливают провод, подключенный к выводу 8 микросхемы DD22. Снимают перемычку, подключен- ную к выводу 3 микросхемы DD1. Вставляют в панельку микрос- хему ПЗУ DD10. Собирают на отдельной плате узел (рис. 6.), с помощью которого проверяют поцикловое исполнение про- граммы МОНИТОР микропроцессором. При однократном на- жатии на кнопку «ШАГ» микропроцессор переходит в состояние ожидания, что позволяет на индикаторах дисплея контролиро- вать считываемые из ПЗУ коды и их исполнение. Для исключения влияния сигнала прерЯВНания провод от вы- вода 14 микропроцессора (DD1) отключают. Нажав кнопку «УСТ» и последовательно нажимая кнопку «ШАГ», контролируют выполнение первых команд МОНИТО- РА. В частности, после девяти нажатий на правом индикаторе должны появиться две единички, при этом на адресной шине должен быть код адреса 9000Н, а на шине управления активен сигнал ЗПЗУ. При обнаружении несоответствий следует прове- рить, нет ли замыканий между линиями шины адреса, или ши- ны данных, или другими сигнальными линиями. После устранения обнаруженных неисправностей, добив- шись исполнения первых команд МОНИТОРА в шаговом режи- ме, отключают дополнительный узел. Подключают вывод 10 микросхемы DD12.3 к соответствующему проводу, отключив его от общего. Переходят к проверке микроЭВМ в динамике. Нажав на кноп- ку «УСТ», убеждаются в появлении двух единичек на правом ин- дикаторе. Затем нажимают клавишу «3» и проверяют прохожде- ние теста индикации. Нажав на клавишу «4», проверяют ОЗУ, затем проверяют ра- боту директив с памятью, последовательно проверяя запись данных в ОЗУ с адреса C000H (директива «1»), чтение данных из ОЗУ (директива «2»), запись данных в ОЗУ с любого адреса (ди- ректива «0») и чтение данных из ОЗУ с любого адреса (директи- ва «5»). Если все эти директивы не выполняются, то набирают программу заполнения константой ( она вводится с клавиатуры) адресного пространства, задаваемого также с клавиатуры. Проверяют с помощью этой программы исполнение директи- вы пуска программы с любого адреса. КР 580 ВМ 80 А Рисунон 6. Восстановив провод, идущий к выводу 14 микропроцессора и нажав клавишу «В», проверяют индикацию времени, смену по- казаний на правом индикаторе каждую секунду. Проверяют ди- рективу установки времени «С». Пуск часов производят по си- гналам точного времени нажашем кнопки «УСТ». Затем пере- ходят к проверке директив работы с кассетным магнитофоном. Нажав на клавишу «9», а затем набрав адреса D000H-DFFFH, наблюдают с помощью осциллографа непрерывную последова- тельность импульсов на выводе 9 микросхемы DO4.2. При этом тон фонограммы, которая записана на магнитофон, должен быть все время одним и тем же. Записанную на магнитофон ин- формацию используют для проверки работы формирователя импульсов на микросхеме DA1. Включив магнитофон на воспроизведение, проверяют с помо- щью осциллографа на выводе 6 микросхемы DA1 прямоуголь- ную последовательность импульсов. Затем проверяют запись и чтение программы занесения кон- станты в задаваемое адресное пространство. Конечно, не всегда проверка микроЭВМ требует таких больших усилий. Как пока- зывает опыт, если все детали исправны и при монтаже не было допущено ошибок, то микроЭВМ начинает работать сразу после сборки. Для того чтобы вы могли убедиться в том, что собранный ва- ми компьютер работает, мы предлагаем вам на выбор несколь- ко простых, но увлекательных игровых программ: 13
1. Программа «Реакция» загружается директивой «1» с C000H по C05DH. После пуска программы директивой «6» нажимают клавишу «О», затем испытуемый нажимает любую клавишу, при этом на всех индикаторах дисплея появляются «FF». Сразу по- сле того, как цифры на индикаторе начинают бежать, испытуе- мый должен нажать на кнопку «УСТ». Индицируемый код на индикаторах и характеризует вашу реакцию. Чем он меньше, тем реакция быстрее. .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .А .В .С .D ,Е .F С000 D7 ЕЕ 00 СА 27 С0 ЕЕ 01 СА 22 С0 ЕЕ 02 СА 21 С0 С010 FE 03 СА 31 С0 ЕЕ 04 СА 36 С0 ЕЕ 05 СА ЗВ С0 СЗ С020 40 С0 06 0В СЗ 41 С0 06 0Е СЗ 41 С0 06 07 СЗ 41 С030 С0, 06 08 СЗ 41 С0 06 10 СЗ 41 С0 06 0D СЗ 41 С0 С040 06 0F ЗЕ ЕЕ 21 ЕЕ ЕЕ ЕЕ DF 05 С2 47 С0 ЗЕ 00 21 С050 00 00 EF 23 00 00 СЗ 51 С0 00 С0 СЗ 10 С0 FF FF 2. Программа «Гамма» загружается директивой «1» с C000H по С082Н. Пуск программы осуществляют директивой «7» с адреса СОЗЕН. После ввода пускового адреса необходимо ввести дли- тельность звучания нот и интервал пауз между нотами в виде двухразрядных шестнадцатиричных цифр в диапазоне от 01 — FFH. Прослушивают гамму, подключив вход магнитофона, приюченного на запись к оазъему интерфейса. .0 . 1 Q .3 . 4 .5 .6 .7 .8 . 9 .A . В .C • D -E .F С000 00 00 00 D5 IE 01 21 C9 0C 7B D3 Al CD ID C0 2F С010 5F 00 7C B4 C2 09 C0 15 C2 06 C0 DI C9 41 2B 05 С020 С2 1Е C0 C9 21 CA 0C 2B 7D B4 C2 27 C0 C9 D5 21 С030 СА 0С 2B 7D B4 C2 32 C0 ID C2 2F C0 DI C9 F7 0E С040 ЗВ CD 03 C0 CD 2E C0 0E 7A CD 03 C0 CD 2E C0 0E С050 6С CD 03 C0 CD 2E C0 0E 65 CD 03 C0 CD 2E C0 0E С060 5А CD 03 C0 CD 2E C0 0E 4F 03 CD 03 C0 CD 2E C0 С070 0Е 47 CD 03 C0 CD 2E C0 0E 44 CD 03 C0 CD 2E C0 С080 СЗ 3F C0 00 00 00 00 00 FF FF FF FF FF FF FF FF 3. Программа «Крестики-нолики» загружается директивой «1» с C000H по С065Н. Поле игры в виде 9 клеток пронумеровано так, как показано на схемке. После пуска программы директивой «6» на крайнем справа индикаторе появляется цифра «09» —это первый ход микроЭВМ, которая всегда ходит первая с центра. Место вашего нолика вы вводите с клавиатуры, указав номер клетки поля. Вы можете проиграть микроЭВМ, в этом случае на дисплее появляется код 73. В случае ничьей индицируется код «11». .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .А .В .С .D .Е .F С000 ЗЕ 09 32 00 90 D7 CD 1А С0 СЗ 47 С0 00 00 00 00 С010 7А CD 1А С0 7А CD 1А С0 С7 00 06 01 90 С2 22 С0 С020 ЗЕ 08 4F 32 00 90 D7 57 1Е 04 79 93 СА 32 С0 F2 С030 35 С0 2Е 08 85 6F 7А 95 СА 45 С0 00 00 26 73 7С С040 32 00 90 EF 76 79 С9 FE 01 СА 5Е С0 ЕЕ 03 СА 5Е С050 С0 ЕЕ 05 СА 5Е С0 FE 07 СА 5Е С0 СЗ 10 С0 79 CD С060 1А С0 90 СЗ 3D С0 ЕЕ FF FF FF FF FF FF FF FF ЕЕ Нумерация клетон поля игры «Крестики-нолики». 01 02 03 08 09 04 07 06 05 Игровая программа «Лабиринт» -O . 1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B • C -D .E .F COOO OO OO OO Е7 С6 ОО С2 ОЕ CO 26 C2 C3 10 CO 26 Cl CO1O 2E FF 7D 32 F5 СО 32 F6 CO 32 OO 90 11 OO OO EF C020 E7 3D CA 33 СО FE 01 СА 42 CO FE 02 CA 64 CO C3 C030 52 CO OO ЗА F6 СО D6 10 32 F6 CO DA 8E CO C3 76 CO4O CO OO ЗА F6 СО С6 10 32 F6 CO DA 8E CO OO C3 76 CO5O CO OO ЗА F6 СО С6 01 32 F6 CO CD C6 CO DA 8E CO C060 C3 76 CO OO ЗА F6 СО D6 01 32 F6 CO CD C6 CO DA C070 8E CO СЗ 76 СО ОО 6F 7Е C6 OO C2 8E CO OO ЗА F6 COSO CO 32 F5 СО 32 00 90 CD D5 CO C3 9C CO OO ЗА F5 C090 CO 32 F6 СО 32 ОО 90 F5 C3 A5 CO OO ЗА F5 CO C6 COAO OO CA B7 СО F5 7В зс 27 5F D2 AF CO 7A 3C 57 Fl COBO EB EF ЕВ СЗ 20 СО ОО CD D5 CO DF OO DB AO C6 OO COCO CA B7 СО СЗ 03 СО С9 Cl 79 E6 10 CA DI CO 37 78 CODO C9 37 3F 78 С9 D5 Е5 IE 01 16 50 21 FF OO 7B D3 COEO Al CD EF СО 2F 5F 2В 7C B5 C2 DE CO El DI C9 42 COFO 05 C2 FO СО С9 D2 D2 21 CO C2 3E FF EF E7 EF DF Пример поля игры «Лабиринт» .0 . 1 .2 .3 .4 .6 .7 .8 .9 .A • B • C .D .E ,F C2OO OO oo Ol 01 01 01 Ol 01 Ol 01 01 01 Ol 01 01 01 C210 00 00 oo oo oo 01 00 00 00 01 00 00 00 00 00 01 C220 01 00 00 oo 01 00 oo 01 00 oo oo 01 oo 00 oo Ol C230 01 00 01 00 00 00 00 00 00 00 01 00 00 01 00 01 C240 01 00 oo oo 00 01 oo 00 oo 00 01 00 00 00 00 Ol C250 01 oo 01 oo 00 00 00 00 01 00 00 00 01 oo 00 01 C260 01 oo oo oo oo 01 00 00 oo 00 oo oo 00 00 oo Ol C270 01 00 00 00 00 oo oo 00 00 oo 01 00 oo 01 00 01 C280 01 00 01 oo 00 01 oo 01 00 01 oo oo Ol 00 00 Ol C290 01 00 00 oo 00 00 00 00 01 00 00 00 OO 00 00 01 C2A0 Ol 00 00 01 oo 00 00 01 00 00 00 01 00 Ol 00 01 C2B0 01 01 oo oo oo oo 00 01 00 oo 00 00 00 00 00 01 C2C0 01 oo 00 00 oo 00 00 00 oo 01 oo oo oo Ol 00 01 C2D0 01 00 01 00 00 01 00 00 00 00 oo 01 00 Ol 00 01 C2E0 01 oo oo 01 oo oo oo 01 00 00 00 00 00 OO 00 00 C2F0 01 01 01 01 01 01 01 01 Ol 01 01 01 01 01 oo 00 СПРАВОЧНЫЙ ЛИСТОК «ЮТ-88» Микросхема КР580ВМ80А — функционально законченный одно- нристалльный микропроцессор с фиксированной системой команд. Применяется в устройствах обработки данных и управления. Микропроцессор имеет раздельные 16-разрядный канал адреса и 8-разрядный канал данных. Нанал адреса обеспечивает прямую ад- ресацию к внешней памяти объемом до 65 536 байт и 256 устрой- ствам ввода и вывода. Условное графическое обозначение микросхемы показано на ри- сунке 1, назначение выводов указано в таблице 1. Структурная схе- ма микропроцессора изображена на рисунке 2. Рисунок 1. Восьмиразрядное арифметико-логическое устройство микропро- цессора выполняет арифметические и логические операции над двоичными числами, представленными в дополнительном коде, а также обработку двоично-десятичных упакованных чисел. В состав блока регистров входят: 16-разрядный регистр адреса команды (IP), 16-разрядный регистр указателя стека (SP), 16-раз- рядный регистр временного хранения (WZ), 16-разрядная схема ин- нремента-денремента и шесть 8-разрядных регистров общего на- значения (В, С, D, Е, Н, L), которые могут использоваться и нан три 16-разрядных регистра (ВС, DE, HL). Микропроцессор выполняет команды по машинным циклам. Чис- ло циклов, необходимое для выполнения команды, зависит от ее ти- па и может быть от одного до пяти. Машинные циклы выполняются по машинным тактам. Число тактов в цикле определяется кодом вы- полняемой команды и может быть от трех до пяти. Длительность такта равна периоду тактовой частоты и при частоте 2,0 МГц состав- ляет 500 наносекунд. В начале каждого машинного цикла микропроцессор вырабаты- вает сигнал синхронизации SYN, который в сочетании с другими си- гналами может быть использован для организации различных ре- жимов работы процессора. На рисунке 3 показана диаграмма состояний типичного машинно- го цикла, показывающая последовательность перехода от таита н такту в машинном цикле и влияние внешних сигналов RDY, HLD и INT на его выполнение. После подачи на вывод SR сигнала высокого уровня микропроцессор устанавливается в исходное состояние. В таите Т1 микропроцессор выдает на адресный канал адрес ячейки, в которой хранится команда программы, а через нанал дан- ных — информацию состояния. В таите Т2 анализируются состояния сигналов на входе RDY, «Подтверждение останова», и в зависи- Таблица 1 Вывод Обозначение Тип вывода Функциональное назначение выводов 1, 25-27 29-40 A10, A0-A2 A3-A9, A15, A12-A14, A11 Выходы Канал адреса 2 GND — Общий 3-10 D4-D7, D3-D0 Входы/выходы Канал данных 11 U,o Вход Напряжение источ- ника смещения —5В 12 SR Вход Установка в исходное состояние 13 HLD Вход Захват 14 INT Вход Запрос прерывания 15, 22 CI, C2 Входы Тактовые сигналы 16 INTE Выход Разрешение прерывания 17 RC Выход Прием информации 18 TR Выход Выдача информации 19 SYN Выход Сигнал синхронизации 20 Uccl — Напряжение питания +5В 21 HLDA Выход Подтверждение захвата 23 RDY Вход Сигнал «Готовность» 24 W1 Выход Сигнал «Ожидание» 28 Ucc2 — Напряжение питания +12В 14
I мости от состояния этих сигналов микропроцессор переходит в со- стояние ожидания, останова или приступает к выполнению такта ТЗ. В такте ТЗ при наличии сигнала высокого уровня на входе RDV ми- кропроцессор принимает информацию по каналу данных, анализи- рует состояние сигнала на входе HLD, и если этот сигнал высокого уровня, то после окончания танта ТЗ переходит в состояние захвата. В зависимости от кода выполняемой команды машинный цикл за- вершается после выполнения тактов ТЗ, Т4 или Т5. В конце машинного цикла снова анализируется состояние сигна- ла на входе HLD. При низком уровне сигнала проверяется, окончено ли выполнение команды. Если команда не закончена, то микропро- цессор выполняет следующий машинный цикл команды, начиная с танта Т1. В конце каждой команды микропроцессор анализирует со- стояние сигнала на входе INT. Если сигнал высокого уровня и пре- рывание ранее было разрешено командой EI, то микропроцессор переходит к выполнению машинного цикла «Прерывание», начиная с танта Т1. В противном случае первый машинный цикл новой ко- манды начинается с танта Т1. Действия, выполняемые микропроцессором в конкретном ма- шинном цикле, определяются 8-разрядной информацией состоя- ния, которая выдается через нанал данных в такте Т1 каждого ма- шинного цикла. Эта информация может использоваться для выра- ботки сигналов обращения н микросхемам памяти, устройствам вво- да/вывода и для организации различных режимов работы микро- процессора. Таблица 2 Разряд канала данных Сигнал состоя- ния Цикл М1 Цикл чте- ния ЗУ Цикл за- писи в ЗУ Цикл чте- ния сте- ка Цикл за- писи в стек Цикл вво- да Цикл выво- да Цикл пре- рыва- ния Цикл оста- нова Цикл пре- рыва- ния при оста- нове D0 Подт- верж- дение преры- вания 0 0 0 0 0 0 0 1 0 1 D1 За- пись/ вывод 1 1 0 1 0 1 1 1 1 1 D2 Стек 0 0 0 1 1 0 0 0 0 0 D3 Подт- верж- дение оста- нова 0 0 0 0 0 0 0 0 1 1 D4 Вывод 0 0 0 0 0 0 1 0 0 0 D5 М1 1 0 0 0 0 0 0 0 0 1 D6 Ввод 0 0 0 0 0 1 0 0 0 0 D7 Чтение 1 1 0 1 0 0 0 0 1 0 В зависимости от сочетания сигналов состояния, выдаваемых в конкретном цикле, машинные циклы можно разделить на 10 типов: 1. Цикл М1 — прием первого байта команды в регистр команд. 2. Цикл чтения ЗУ (запоминающего устройства) по содержимому программного счетчика или содержимому одного из регистров ВС, DE, HL. 3. Цикл записи в ЗУ — запись в ЗУ по содержимому одного из реги- стров ВС, DE, HL. 4. Цикл чтения стека - чтение ЗУ по содержимому указателя сте- ка. 5. Цикл записи в стек — запись в ЗУ по содержимому указателя сте- ка. 6. Цикл ввода —ввод информации в регистр результата (аккуму- лятор) из внешнего устройства. 7. Цикл вывода —вывод информации из регистра результата во внешнее устройство. 8. Цикл прерывания — прием нода команды RST или CALL из кон- троллера прерываний. 9. Цикл останова. Сброс Готовность i прнрыВония Рисунок 3. Готовность / Подтверждение останова 'С 10. Цикл прерывания при останове - прием кода команды RST или CALL при выводе микропроцессора из режима «Останов» по преры- ванию. Наименования сигналов состояния, соответствие их разрядам ка- нала данных и тактам машинных циклов приведены в таблице 2. При выполнении команд микропроцессор может переходить в од- но из трех состояний: «ожидание», «захват» или «останов», длитель- ность которых определяется внешними управляющими сигналами. 15
Сигнал высокого уровня на входе RDY обеспечивает автомати- ческое выполнение команд программы микропроцессором с часто- той тактовых сигналов. Если на выводе RDY установлен сигнал низ- кого уровня, то микропроцессор переходит в режим «Ожидание» и формирует выходной сигнал WI высокого уровня. Сигнал RDY может быть использован для согласования работы микропроцессора с работой медленно действующих устройств, ес- ли длительность их цикла обращения составляет более одного пе- риода тактовой частоты, а также для организации пошагового (по циклам) выполнения команды или пономандного выполнения про- граммы. При подаче на вход HLD сигнала высокого уровня микропроцес- сор переходит в состояние «захват» и подтверждает переход в это состояние формированием сигнала высокого уровня на выходе HLDA. Буферные схемы канала адреса и данных микропроцессора пере- ключаются в высокоомное (высоноимпедансное) состояние, а вы- ходные управляющие сигналы - в состояние низкого уровня (за ис- ключением сигналов TR и HLDA). Микропроцессор переходит в со- стояние «захват» в таите ТЗ, если выполняется цикл чтения и на вхо- де RDY сигнал высокого уровня, и в такте, следующем за ТЗ, если выполняется цикл записи. Сигналы HLD и HLDA позволяют органи- зовать режим прямого доступа н памяти для любого внешнего устройства, формирующего сигнал HLD. При выполнении команды HLT микропроцессор переходит в со- стояние «останов» и переводит буферные схемы канала адреса и данных в высокоомное состояние. Из состояния «останов» микро- процессор выходит при наличии сигнала высокого уровня на одном из его входов: на входе SR — микропроцессор начинает работать с танта Т1 ци- кла М1; на входе HLD — микропроцессор переходит в состояние: «захват», а после перехода сигнала HLD на низкий уровень возвращается в состояние «останов»; на входе INT — микропроцессор переходит к выполнению цикла прерывания при останове с такта Т1, если команде HLT предшество- вала команда EI «разрешение прерывания», иначе он остается в со- стоянии «останов». Сигнал высокого уровня на выводе INT позволяет прерывать вы- полнение текущей программы и переводить микропроцессор на вы- полнение подпрограммы обслуживания устройства, выдавшего за- прос прерывания (например, часов). При поступлении сигнала INT микропроцессор (после окончания текущей команды) переходит с танта Т1 к выполнению машинного цикла «Прерывание» в том слу- чае, если прерывание было разрешено ранее командой EI. При вы- полнении цикла «Прерывание» в таите Т1 микропроцессор выдает по шине данных сигнал состояния «Подтверждение прерывания». По окончании подпрограммы прерывания происходит возврат н прерванной программе. Сигнал высокого уровня на входе SR (длительность которого должна быть не менее трех периодов тактовой частоты) устанавли- вает микропроцессор в исходное состояние: триггеры разрешения прерывания и захвата, регистры команд, признаков и адреса коман- ды устанавливаются в нулевое состояние. После окончания дей- ствия сигнала SR микропроцессор производит первое обращение за чтением команды н ячейке памяти по адресу 0000Н. Система команд микропроцессора состоит из 78 базовых команд, которые можно разделить на пять групп: команды передачи данных - используются для передачи данных из регистра в регистр, из регистра в память; арифметические команды — используются для сложения, вычита- ния, инкремента или декремента содержимого регистров или ячей- ки памяти; логические команды — И, ИЛИ, сравнение, сдвиги; команды переходов — используются для условных или безуслов- ных переходов, вызова подпрограмм и возврата из них; команды управления, ввода/вывода и работы со стеком — исполь- зуются для управления регистром признаков, ввода и вывода ин- формации. В микропроцессоре КР580ВМ80А принят формат информацион- ного слова, представляющего собой 8-разрядное двоичное слово (байт). Формат информационного слова (данных): D7 D6 D5 D4 D3 D2 DI DO, где D7 — старший разряд слова, a DO — младший. Отрицательные числа хранятся в памяти в дополнительном иоде. Формат команды зависит от типа операции — может быть одно-, двух- и трехбайтовым. Байты двух- и трехбайтовых команд должны храниться в ячейках памяти, следующих одна за другой. Адрес пер- вого байта всегда является адресом кода операции. Формат команд микропроцессора показан ниже: Однобайтовая команда Адрес Код ячейки D7 D6 D5 D4 D3 D2 DI DO операции памяти Двухбайтовая команда Байт В1 D7 D6 D5 1)4 D3 D2 DI D0 Код операции Байт В2 D7 D6 D5 D4 D3 D2 Di DO Данные или адрес порта Трехбайтовая команда Байт В1 D7 D6 D5 D4 D3 D2 DI D0 Код операции Байт В2 D7 D6 D5 D4 D3 D2 DI DO Данные или адрес Байт ВЗ D7 D6 D5 D4 D3 D2 DI DO Все команды минроЭВМ сведены в таблице (см. внладну). Выде- лим наиболее общие закономерности их использования. 1. Арифметические и логические операции разрешены только между аккумулятором и байтом данных или между аккумулятором и любым регистром. 2. Аккумулятор и регистровая пара HL являются единственными регистрами, которые могут быть непосредственно загружены в па- мять. 3. Аккумулятор является единственным регистром, который мо- жет быть инвертирован, сдвинут, косвенно загружен в память с ис- пользованием регистровых пар ВС и DE или использован в коман- дах ввода/вывода (IN, OUT). 4. Регистровая пара HL является единственной,содержимое кото- ройможет быть передано в счетчин команд (команда PCHL) или ука- затель стека (команда SPHL). 5. Регистровая пара Н может использоваться нак аккумулятор двойной длины при сложении 16-разрядных чисел (команда DAD). 6. Содержимое регистровых пар HL и DE можно менять местами (команда HCHG). 7. Отдельные команды могут применяться для специальных функ- ций. Команды XRAA или SUBA обнуляют аккумулятор. Команды ANA или ORA А очищают флаг переноса, а команда ADDA выполняет ло- гический сдвиг аккумулятора влево. 8. Команды увеличения (уменьшения) на 1 регистров (INR, DCR) действуют на все флаги, за исключением флага переноса. Команды увеличения (уменьшения) на 1 регистровых пар (INX, DCX) не ока- зывают влияния на флаги. 9. В стен или из стена могут быть переданы только регистровые пары. Одной изтаних регистровых пар является слово состояния ми- кропроцессора, которое содержит аккумулятор (старший байт) и флаги (младший байт). Команды CALL и RET передают адрес в стен и обратно. 10. При записи 16-разрядных адресов младший байт записывает- ся первым. Операнды команд могут храниться в программно доступных реги- страх микропроцессора или памяти. Для указания операнда в реги- стре используются регистровая и регистровая неявная адресации, для указания операнда в памяти — непосредственная, прямая, кос- венная регистровая и стеновая адресации. Регистр признаков микропроцессора используется для хранения пяти битов признаков, которые вырабатываются в результате вы- полнения некоторых операций: S — бит знака; равен 1, если старший значащий разряд результата операции равен 1 (то есть результат операции — отрицательное чис- ло); Z —бит нуля; равен 1, если результат операции равен нулю; АС — бит вспомогательного переноса; равен 1, если при выполне- ни^перации был перенос из третьего разряда сумматора в четвер- тый? С — бит переноса; равен 1, если при выполнении операции был пе- ренос из седьмого разряда сумматора или заем в седьмой разряд сумматора; Р —бит четности; равен 1, если число единиц результата четное. Распределение разрядов в регистре признаков следующее: D7 D6 D5 D4 D3 D2 DI D0 S Z О АС О Р 1 С Главный редактор В. В. СУХОМЛИНОВ Редактор приложения В. А. ЗАВОРОТОВ Художественный редактор А. М. НАЗАРЕНКО Технический редактор Е. А. МАКСИМОВА Сдано в набор 26.12.88. Подп. в печ. 17.01.89. А04627. Формат 60x90'/8. Печать оф- сетная. Бумага офсетная № 1. Условн. печ. л. 2. Условн. кр.-отт. 4. Учетно-изд. л. 2,5. Тираж 1 200 000 экз. Заказ 317. Цена 20 коп. Типография ордена Трудового Красного Знамени ИПО ЦК ВЛКСМ «Молодая гвар- дия». Адрес ИПО: 103030, Москва, К-30, Сущевская, 21. Адрес редакции: 125015, Москва, Новодмитровская, 5а. Тел.: 285-80-94. Издательско-полиграфическое об ьединение ЦК ВЛКСМ «Молодая гвардия». 16