RCA 1802

редактировать
COSMAC
KL RCA 1802.jpg RCA CDP 1802
Общая информация
Запущен1974
Физический Технические характеристики
Корпус (-ы)
  • 40-контактный DIP
RCA CDP1802 die shot

COSMAC - это 8-битный микропроцессор семейство, представленное RCA. Он исторически известен как первый микропроцессор CMOS. Первой серийной моделью были двухчиповые CDP1801R и CDP1801U, которые позже были объединены в однокристальные CDP1802 . Модель 1802 года представляла собой большую часть продукции COSMAC, и сегодня вся линейка известна просто как RCA 1802 .

. Процессор ведет свою историю от экспериментального домашнего компьютера, разработанного Джозефом. Вайсбекер в начале 1970-х построил у себя дома с использованием компонентов TTL. Компания RCA начала разработку КМОП-версии процессора в 1973 году, опробовав ее в 1974 году и планируя сразу перейти на однокристальную реализацию. Джерри Херцог руководил разработкой однокристальной версии, образец которой был взят в 1975 году и запущен в производство в 1976 году.

В отличие от большинства разработок того времени, которые были изготовлены с использованием процесса NMOS, COSMAC был реализован в форме CMOS и использовал статическую логику. Это позволяло ему работать при более низких настройках мощности и даже полностью останавливаться. RCA назвала свой процесс КМОП «дополнительным полупроводником на основе кремния / оксида металла», в результате чего возникла аббревиатура COS / MAC, которая затем была переименована в как «компьютер с монолитной матрицей с дополнительной симметрией» при упоминании процессор. RCA также произвела радиационно-стойкие версии с использованием процесса кремний на сапфире, который нашел применение в аэрокосмической области. Они используются по сей день и продолжают производиться Renesas (ранее Intersil ).

Преемниками 1802 являются CDP1804, CDP1805 и CDP1806, которые имеют расширенный набор команд, другие расширенные функции (например, ОЗУ и ПЗУ на кристалле, а также встроенный таймер), при этом некоторые версии работают на более высоких тактовых частотах, хотя и не имеют существенной разницы в скорости.Некоторые функции также теряются, например, функция автозагрузки DMA. Были также внесены некоторые незначительные изменения в функции выводов, но линия по-прежнему производится в оригинальном 40-выводном корпусе с двойным расположением выводов (DIP).

Содержание

  • 1 История
    • 1.1 FRED
    • 1.2 Версия
    • 1.3 Устройства COSMAC
    • 1.4 Встроенное использование
  • 2 Введение
  • 3 Приложения
    • 3.1 Микрокомпьютерные системы
    • 3.2 Интеграция продукта
    • 3.3 Радиационная стойкость
    • 3.4 Космические технологии и наука
  • 4 Языки программирования
    • 4.1 Эмуляторы и симуляторы
  • 5 Описание
    • 5.1 Суффиксные обозначения номеров деталей
    • 5.2 Регистрация s и ввод / вывод
    • 5.3 Ветвление
    • 5.4 Вызов подпрограмм
    • 5.5 Режимы адресации
    • 5.6 DMA и режим загрузки
    • 5.7 Время выполнения команд
  • 6 Поддерживаемые микросхемы
    • 6.1 Графика
  • 7 Примеры кода
  • 8 Примечания
  • 9 Ссылки
    • 9.1 Цитаты
    • 9.2 Библиография
  • 10 Внешние ссылки

История

FRED

Джозеф Вайсбекер давно был очарован возможностями компьютеров в доме, заявив еще в 1955 году, что он ожидал, что однажды они будут встроены практически в каждое устройство. Технологии той эпохи сделали небольшие встроенные компьютеры невозможными, но появление интегральной схемы (IC) в 1960-х годах кардинально изменило ситуацию. В 1974 году он описал возможности в статье IEEE Computer:

За 20 лет компьютерное оборудование стало все более сложным, языки - более хитрыми, а операционные системы - менее эффективными. Теперь микрокомпьютеры дают некоторым из нас возможность вернуться к более простым системам. Недорогие… микрокомпьютеры могут открыть новые огромные рынки.

Начиная с 1970 года, Вайсбекер начал проектирование небольшой машины, использующей RCA транзисторно-транзисторные логические (TTL) ИС для создания процессора. Другие детали, выключатели, лампы и прочее ему пришлось покупать в Radio Shack, намеренно распределяя свои покупки по четырем магазинам, чтобы никто не спрашивал его, почему он покупает так много деталей. Проект был запущен в октябре 1971 года и содержал 100 микросхем, размещенных на нескольких платах .

. Результат, который он назвал FRED, якобы для гибкого развлекательного образовательного устройства, был упакован в коробку, мало чем отличавшуюся от Altair 8800, появившийся несколько лет спустя, с переключателями на передней панели для ввода, лампами для вывода, а позднее с добавлением клавиатуры с шестигранной клавиатурой. Weisbecker постоянно добавлял новые функции, и к 1972 году он получил генератор символов , а также возможность загружать и сохранять программы на кассетных лентах.

Дочь Вайсбекера, Джойс Вайсбекер, была сразу обратился к системе и начал писать программы для нее. Это включало несколько игр, которые были перенесены на более поздние машины, основанные на COSMAC. Когда в конце 1970-х RCA вошла в бизнес игровых консолей, эти игры были сожжены до формы ПЗУ, и Джойс стала первой известной женщиной-разработчиком коммерческих видеоигр.

Выпуск

Вайсбекер демонстрировал машину руководству RCA на протяжении всего этого периода, но поначалу это не вызвало особого интереса. Это было вскоре после того, как Дэвид Сарнофф ушел в отставку и передал роль генерального директора своему сыну. Роберт больше интересовался созданием медиа-стороны компании, встречаясь со звездами звукозаписи, игнорируя RCA Laboratories, несмотря на ряд ведущих в отрасли разработок, происходящих там. Часть скептицизма, проявленного руководством, могла быть связана с недавней продажей компанией своего мэйнфреймов компьютерного бизнеса Sperry Rand с огромной письменной заявкой.

. Компания заинтересовалась системой и начала адаптировать ее к своей недавно представленной системе производства COS / MOS. В лабораторном отчете 1973 года упоминается «прототип», поставленный в 1972 году, но, вероятно, это относится к исходной реализации TTL. Далее следует отметить попытку свести процессор к реализации с двумя микросхемами с поставками в COS / MOS в 1974 году. Именно здесь процессор впервые упоминается как COSMAC, от COmplementary-Symmetry-Monolithic-Array Computer. Далее говорится, что другая лаборатория будет производить систему в формате 8-чипов кремний-на-сапфире, хотя дата просто «вскоре после» версий CMOS, и что планирует выпустить одну -чиповая версия уже планировалась.

Устройства COSMAC

Хотя RCA начала разработку COSMAC в начале 1970-х годов, прошло некоторое время, прежде чем они представили свои собственные продукты на основе in. В 1975 году прототип машины для аркадных игр с заменяемыми ПЗУ был опробован для бизнеса по продаже монет, но в конечном итоге от него отказались.

Между тем, Вайсбекер адаптировал оригинальный FRED, известный в К этому времени RCA как Система 00, использующая новый набор микросхем для создания значительно упрощенной одноплатной системы, известной тогда как COSMAC ELF. Инструкции по сборке были описаны в статье в журнале Popular Electronics в 1976 году, а расширенная версия с различными обновлениями - во второй статье в 1977 году. Уникальной особенностью ELF является то, что для нее не требовалось никакого постоянное запоминающее устройство (ПЗУ) для запуска, вместо этого использовалась система прямого доступа к памяти (DMA) процессора для чтения переключателей передней панели непосредственно в память.

RCA обсуждал вопрос о том, вывести на рынок предварительно упакованные версии ELF. В то время как они обсуждали, дальнейшее развитие привело к упрощенной машине, объединяющей ELF с новым чипом драйвера дисплея, CDP1861, для производства игровой консоли. За это время RCA наняла Джойса для написания нескольких видеоигр для платформы, включая образовательный продукт в стиле викторины в партнерстве с Random House, одной из многих компаний, которые были подхваченные покупками RCA.

После года обсуждений компания в конце концов решила выпустить два продукта на основе этой платформы: компьютер в комплекте, известный как COSMAC VIP, и игру консоль, известная как RCA Studio II. Машины были доступны с 1975 года, но Studio II была анонсирована только в январе 1977 года, через пару месяцев после того, как Fairchild Channel F стала первой машиной на основе картриджей на рынке. И то, и другое вскоре затмили и в значительной степени забыли из-за выпуска Atari 2600 позже в том же году. RCA отменила Studio II в феврале 1978 года.

Использование встраиваемых систем

COSMAC был уникальным среди ранних 8-битных процессоров тем, что был специально разработан для использования в микрокомпьютерах; другие разработки той эпохи неизменно были нацелены на пространство встроенного процессора, а те, которые были разработаны для использования на компьютерах, как правило, были более сложными системами, часто 16-разрядными. Хотя COSMAC был разработан для использования в компьютерах, медленный выход RCA на рынок и недостаточно поддерживаемые попытки на этом рынке в конечном итоге потерпели неудачу, и другие процессоры, такие как MOS 6502 и Zilog Z80, в конечном итоге будут доминировать на этом рынке. По иронии судьбы, COSMAC в конечном итоге добился большого успеха на рынке встраиваемых систем, потому что его конструкция CMOS позволяла работать с меньшим энергопотреблением. К концу 1970-х годов он широко использовался во многих промышленных предприятиях, особенно в аэрокосмической. Зонд 1802 провел зонд Galileo к Юпитеру в 1989 году, и он продолжает использоваться в аналогичных ролях и по сей день.

Введение

Распиновка CDP1802 40-контактный микропроцессор с обозначениями контактов. Желтый = мощность; Зеленый = выход; Синий = ввод; Красный = вход / выход с тремя состояниями.

RCA 1802 имеет конструкцию статического ядра CMOS без минимальной тактовой частоты, так что его можно работают на очень низких скоростях и малой мощности, включая нулевую тактовую частоту, чтобы приостановить микропроцессор, не влияя на его работу.

Он имеет две отдельные 8-контактные шины: 8-битную двунаправленную шину данных и адресную шину с временным уплотнением, с высокой и низкой- порядок доступа к 8 битам 16-битного адреса в альтернативных тактовых циклах. Это контрастирует с большинством разработок того времени, таких как MOS 6502 и Intel 8080, в которых использовалась 16-битная адресная шина.

1802 имеет один бит, программируемый и тестируемый выходной порт (Q) и четыре входных контакта, которые непосредственно тестируются инструкциями ветви (EF1-EF4). Эти контакты позволяют выполнять простые задачи ввода / вывода (I / O) напрямую и легко программировать.

Другой уникальной особенностью конструкции COSMAC является набор регистров . Это включало традиционный 8-битный аккумулятор и различные флаги состояния, но также включал другой набор из шестнадцати 16-битных регистров общего назначения. Помимо предоставления временного хранилища, пользователь мог выбрать любой из них в качестве программного счетчика (ПК) с помощью инструкции SEP Rn, где n было 4-битным значением, выбирающим один из регистров. Его можно использовать как небольшой стек вызовов , сохраняя несколько ПК для адресов возврата (см. вызовы подпрограмм ниже). Точно так же указатели и косвенная адресация используют регистр X (инструкция SEX Rn).

COSMAC также имеет встроенную систему простого прямого доступа к памяти (DMA). Это работало, сохраняя адрес в регистре 0, а затем вызывая вход или выход DMA, подтягивая соответствующий вывод на ЦП на низкий уровень. ЦП обращается к памяти только во время определенных циклов многоступенчатого машинного цикла, который требует от 8 до 16 тактовых циклов. Внешнее оборудование могло читать или записывать данные в течение этих периодов, не прерывая работу процессора, общая концепция, известная как «кража циклов». ЦП ответил на запрос DMA, увеличив значение в R0, так что следующий запрос автоматически сохраняется в следующей ячейке памяти. Таким образом, простым многократным запуском контактов DMA система будет проходить через всю память.

Поскольку выполнение инструкций занимало от 8 до 16 тактов, 1802 не был особенно быстрым. Для сравнения, 6502 выполняет большую часть инструкций за 2–4 тактовых цикла, а самый длинный цикл занимает 7 и только при определенных обстоятельствах.

Приложения

Микрокомпьютерные системы

Ряд ранние микрокомпьютеры были основаны на 1802, включая COSMAC ELF (1976), Netronics ELF II, Quest, COSMAC VIP, Comx-35, финский Telmac 1800 и югославский Pecom 32 и 64, а также системы, продаваемые через Montgomery Ward в конце 70-х, а также игровая консоль RCA Studio II (одна из первых консолей, использующих растровую графику). Система обучения одноплатного компьютера (SBC) Edukit, аналогичная расширенному COSMAC Elf, была предложена Modus Systems Ltd. в Великобритании в начале 1980-х годов. В конце 1970-х годов Infinite Incorporated произвела расширяемую консольную компьютерную систему S-100 на основе 1802 года под названием UC1800, доступную в собранном виде или в виде набора.

В рамках 1802 года Retrocomputing работа любителей, другие компьютеры были построены совсем недавно (после 2000 г.), в том числе комплект микрокомпьютеров, который умещается в банке Altoids, и Spare Time Gizmos Elf 2000 (Elf 2K), среди прочего. См. Эмуляторы и симуляторы для других систем.

Интеграция продуктов

1802 также использовался в научных приборах и коммерческих продуктах.

Chrysler и связанные с ним модели автомобилей после 1980 года используют 1802 в своей электронной системе сжигания обедненной смеси второго поколения с электронным искровым контролем, одной из первых бортовых автоматических компьютерных систем управления.

1802-й использовался в производстве многих автоматов для игры в пинбол и аркадных видеоигр в Испании.

Радиационная стойкость

В дополнение к технологии C2L CMOS «объемного кремния», 1802-й также был Доступен изготовлен из полупроводниковой технологии кремний на сапфире (SOS), что придает ему степень устойчивости к излучению и электростатическому разряду (ESD). Наряду с чрезвычайно низким энергопотреблением, это делает микросхему хорошо подходящей для использования в космосе и в военной сфере (к тому же, на момент появления 1802 года на рынке было очень мало других радиационно-стойких микропроцессоров, если таковые вообще были). радиационно-стойкая версия 1802 была произведена в Sandia National Laboratories по согласованию с RCA.

Космические технологии и наука

1802 использовалась во многих космические аппараты и космические научные программы, эксперименты, проекты и модули, такие как космический корабль Galileo, Magellan, различные спутники на околоземной орбите и спутники с радиолюбительскими функциями.

1802 г. также было подтверждено из исходной документации НАСА, что он использовался в космическом телескопе Хаббл.

языки программирования

Первым языком высокого уровня, доступным для 1802 года, был Forth, предоставлен Forth, Inc. в 1976 году. Другими доступными языками программирования, как интерпретаторами, так и компиляторами, являются CHIP-8 (и варианты), 8th (версия Forth, созданная Ли Хартом), Tom Pittman's Tiny BASIC, C, различные ассемблеры и кросс-ассемблеры и другие. Другие специальные языки использовались федеральными агентствами, такими как НАСА и его объектами, включая Космический центр Джонсона, AMES, Годдард, Лэнгли, Маршалл и Лабораторию реактивного движения (JPL), которая включала кросс-компилятор HAL / S, STOIC, форт-подобный язык и другие.

Интерпретатор для структур процессов (IPS), язык программирования и среда разработки, был специально написан и использовался для управления в реальном времени спутниками AMSAT.

Эмуляторы и симуляторы

Чип 1802 и компьютеры, использующие микропроцессор, были эмулированы и смоделированы в аппаратном и / или программном обеспечении любителями. В VHDL есть три дизайна для FPGA. Точный по шине полноскоростной клон COSMAC Elf был создан без микропроцессорного чипа CDP1802 или видеочипа CDP1861 с использованием микроконтроллеров PIC . Онлайн-симулятор COSMAC Elf (расширенный), написанный на JavaScript, запускается в браузере пользователя без необходимости загрузки.

Описание

Обозначения суффиксов номера деталей

Различные суффиксы для Номер детали CDP1802 обозначает технические характеристики, включая (A, B и C) рабочую скорость (от 3,2 МГц до 6,4 МГц), температуру (от -40 ° C до +85 ° C, от -55 ° C до +125 ° C), диапазоны напряжения (от 4 В до 10,5 В), тип корпуса (D, E, Q) и приработка (X). Они были несколько стандартизированы между различными поставщиками источников, включая RCA, Intersil, Harris, Hughes Aircraft и Solid State Scientific (SSS). Hughes использовал префикс HCMP, а SSS использовал префикс SCP (и, возможно, BCP) вместо CDP и имел дополнительные суффиксы, которые еще не были задокументированы. (примеры: CDP1802A, CDP1802ACE, CDP1802BCD, HCMP1802AP, SCP1802D)

СуффиксТип корпуса
EPDIP = Пластик Двухрядный корпус
DSBDIP = Пайка сбоку Керамический Двухрядный корпус
QPLCC = Пластиковый носитель микросхемы с выводами
XВыгорание

Регистры и ввод / вывод

Модель регистров

1802 - это 8-битная байтовая машина с минимальной поддержкой 16-битных операций, кроме 2-байтовых манипуляций. Первичный аккумулятор - это 8-битный регистр «D» (регистр данных). Однобитовый флаг переноса - это DF (флаг данных). В большинстве операций используется регистр D, включая арифметические и логические функции, а также инструкции загрузки и сохранения, связанные с памятью. Большинство 16-битных операций должны работать с младшим байтом, а затем со старшим байтом через D, используя DF как перенос и заимствование по мере необходимости. Инструкции позволяют получать и помещать верхние и нижние байты шестнадцати 16-битных регистров через D. Однако 16-битные регистры могут увеличиваться и уменьшаться с помощью отдельных инструкций, а несколько инструкций выполняют автоматическое увеличение и уменьшение, как LDA. (загрузка вперед) и STXD (сохранение через X и уменьшение). Для сравнения 16-битных регистров и значений также потребуется использовать регистр D в качестве посредника, используя несколько инструкций для выполнения операций.

Важной особенностью 1802 является структура шестнадцати регистров по 16 бит каждый. Используя инструкцию SEP, вы можете выбрать любой из 16 регистров в качестве программного счетчика ; используя команду SEX, вы можете выбрать любой из 16-битных регистров в качестве индексного регистра . Регистр R0 предназначен для хранения адреса памяти встроенного контроллера DMA. Регистр R1 используется в качестве счетчика программ для обработчика прерываний.

Процессор имеет пять специальных линий ввода / вывода. Есть единственный выход Q, который можно установить с помощью инструкции SEQ и сбросить с помощью инструкции REQ. Есть четыре внешних входа однобитовых флагов, EF1, EF2, EF3 и EF4, и есть восемь специальных инструкций ветвления для условного ветвления в зависимости от состояния этих входных линий. Есть семь команд входного и семь выходных портов, которые используют регистр RX и D-аккумулятор.

Линии EF и Q обычно использовались для нескольких интерфейсов на любительских компьютерах на базе 1802 года из-за удобного и простого обращения с линиями. Линия Q обычно управляла индикатором состояния , интерфейсом кассеты, интерфейсом RS-232 и динамиком. Это означало, что пользователь действительно мог слышать передаваемые данные RS-232 и кассеты (если не был реализован регулятор громкости). Обычно линия EF4 присоединяется к кнопке мгновенного действия INPUT на COSMAC Elf. Другие системы могут использовать одну из других линий.

Есть еще несколько регистров и флагов специального использования, некоторые внутренние, а некоторые используемые программно: 4-битные N, P, X и I; 8-битный T; и 1-битный IE.

Ветвление

В 1802 году существует три типа безусловного и условного ветвления: короткие и длинные и пропуски.

Короткие переходы - это 2-байтовые инструкции, использующие 256-байтовый диапазон, однобайтовый адрес, абсолютную адресацию страницы в диапазоне от 0 до 255 (шестнадцатеричный FF). Относительного ветвления нет. Короткая ветвь всегда перескакивает по странице, содержащей байт адреса.

Длинные ветки используют полную 16-битную адресацию для поддержки адресного пространства памяти 64 КБ и являются единственными 3-байтовыми инструкциями.

Инструкции пропуска увеличивают ПК на единицу для безусловного короткого пропуска или на два для длинных пропусков. Только длинный пропуск имеет условное ветвление.

Вызов подпрограмм

У процессора нет стандартного адреса CALL подпрограммы и инструкций RET, хотя их можно моделировать. Дизайн с 16 регистрами делает возможными некоторые интересные механизмы вызова и возврата подпрограмм, хотя они лучше подходят для небольших программ, чем для программирования общего назначения.

Несколько часто используемых подпрограмм можно быстро вызвать, сохранив их адрес в одном из 16 регистров; однако вызываемая подпрограмма должна знать (жестко закодировать), какой регистр вызывающего ПК должен выполнять команду «возврата». Инструкция SEP используется для вызова подпрограммы, на которую указывает один из 16-битных регистров, и другой SEP для возврата к вызывающей стороне (SEP означает «Установить счетчик программы» и выбирает, какой из 16 регистров будет использоваться в качестве программы. счетчик с этого момента). Перед возвратом подпрограммы она переходит к месту, непосредственно предшествующему ее точке входа, так что после того, как инструкция SEP «return» вернет управление вызывающей стороне, регистр будет указывать на правильное значение для следующего использования. (процессор всегда увеличивает ПК после обращения и использования (получение следующей инструкции для выполнения), поэтому этот метод работает, как указано)

Интересным вариантом этой схемы является наличие двух или более подпрограмм в кольце, чтобы что они вызываются по круговой системе. На ранних компьютерах для любителей подобные приемы и методы обычно использовались в прерывании горизонтального обновления, чтобы перепрограммировать адрес строки развертки так, чтобы каждая строка развернулась четыре раза для видеоконтроллера.

Одна хорошо известная и часто используемая процедура известна как SCRT (стандартный метод вызова и возврата), которая позволяет выполнять вызов и возврат подпрограмм общего назначения, включая передачу параметров «в строке» и вложенные подпрограммы с использованием стек. Хотя для этого метода может использоваться любой из доступных регистров, по желанию программиста, многие используют процедуру, предоставленную RCA в Руководстве пользователя CDP1802, где рекомендуется использовать регистр R2 = указатель стека, R3 = общий счетчик программы (ПК), R4 = вызов, R5 = возврат, R6 = указатель пройденных аргументов (неразрушающий). Несмотря на то, что эти вспомогательные подпрограммы малы, их использование приводит к увеличению скорости выполнения. (в отличие от того, что произошло бы, если бы фактические инструкции CALL и RET были частью конструкции микропроцессора). Эта настройка позволяет использовать R0 для DMA, а R1 - для прерываний, при желании, позволяя R7 через RF (шестнадцатеричный) для общего использование программы.

Режимы адресации

Из-за 16-битной адресной шины и 8-битной шины данных шестнадцать регистров общего назначения имеют ширину 16 бит, а D-регистр аккумулятора - только 8. бит шириной. Таким образом, аккумулятор обычно является узким местом. Передача содержимого одного регистра в другой включает четыре инструкции (одна Get и одна Put для байта HI регистра и аналогичная пара для байта LO: GHI R1; PHI R2; GLO R1; PLO R2). Точно так же загрузка новой константы в регистр (например, нового адреса для перехода подпрограммы или адреса переменной данных) также включает четыре инструкции (две инструкции немедленной загрузки, LDI, инструкции, по одной для каждой половины константы, каждая один, за которым следует инструкция Put в регистр, PHI и PLO).

Тогда два режима адресации: регистр косвенной адресации и регистр косвенной адресации с автоматическим приращением достаточно эффективны для выполнения 8-битных операций с данными в аккумуляторе. Однако других режимов адресации нет. Таким образом, режим прямой адресации необходимо эмулировать с помощью четырех инструкций, упомянутых ранее, для загрузки адреса в резервный регистр; за которой следует инструкция выбрать этот регистр в качестве индексного регистра; за которым, наконец, следует предполагаемая операция с переменной данных, на которую указывает этот адрес.

DMA и режим загрузки

CDP1802 имеет встроенный контроллер DMA, имеющий две линии запроса DMA для операций ввода и вывода DMA. R0 используется как указатель адреса DMA.

Контроллер DMA также обеспечивает специальный «режим загрузки», который позволяет загружать память, пока активны входы CLEAR и WAIT процессора. Это позволяет загружать программу без использования загрузчика начальной загрузки на основе ПЗУ. Это использовалось микрокомпьютером COSMAC Elf и его преемниками для загрузки программы с тумблеров или шестнадцатеричной клавиатуры без необходимого программного обеспечения и минимального оборудования.

Синхронизация команд

Эффективность тактового цикла низкая по сравнению с большинством 8-битных микропроцессоров. Восемь тактовых циклов составляют один машинный цикл. Для выполнения большинства инструкций требуется два машинных цикла (16 тактовых циклов); остальные инструкции занимают три машинных цикла (24 такта). Для сравнения: MOS Technology 6502 требует от двух до семи тактовых циклов для выполнения инструкции, а Intel 8080 - от четырех до 18 тактовых циклов.

Поддержка микросхем

Графика

В микрокомпьютерах на основе ранних 1802 г. сопутствующий чип Графика Контроллер видеодисплея, RCA CDP1861 (для видеоформата NTSC, вариант CDP1864 для PAL ), использовал встроенный контроллер DMA для отображения черно-белого растрового изображения графика на стандартных экранах телевизоров. Модель 1861 года также была известна как графическая система Pixie.

Хотя более быстрые версии 1802 могли работать на частоте 4–5 МГц (при 5 В; это было быстрее (6,4 МГц) при 10 В), обычно они работали на частоте 3,58 МГц, разделенной на 2 (1,79 МГц) в соответствии с требованиями чипа 1861, который давал скорость немногим более 100000 инструкций в секунду, хотя некоторые работали с другими скоростями, такими как ~ 2,8 МГц для Comx или 5 МГц для Пеком. COSMAC VIP, в котором видеочип интегрирован с процессором в качестве отдельного специализированного компьютера (а не в качестве дополнения к набору для любителей), в частности, 1802 работал намного медленнее, синхронизируя его точно с 1861 - на нестандартной частоте 1,76064 МГц, как рекомендовано в эталонном дизайне Pixie.

Микросхема генератора цвета CDP1862, сопутствующая микросхема 1861, могла использоваться для генерации цветной графики. Некоторые компьютерные системы, такие как Pecom 64, использовали VIS (систему видеоинтерфейса), состоящую из сопутствующих микросхем CDP1869 и CDP1870, для получения цветной графики с явно более высоким разрешением, сопоставимым с другими 8-битными системами 1980-х годов..

Примеры кода

Этот пример фрагмента кода представляет собой диагностическую процедуру, которая проверяет операции ALU (арифметическое и логическое устройство).

.. TEST ALU OPS 0000 90 GHI 0.. НАСТРОЙКА R6 0001 B6 PHI 6 0002 F829 LDI DOIT.. ДЛЯ ВВОДА OPCODE 0004 A6 PLO 6 0005 E0 SEX 0.. (X = 0 УЖЕ) 0006 6400 OUT 4,00.. СООБЩИТЬ НАМ ГОТОВ 0008 E6 SEX 6.. ТЕПЕРЬ X = 6 0009 3F09 BN4 *.. ПОДОЖДИТЕ IT 000B 6C INP 4.. ОК, ПОЛУЧИТЬ 000C 64 OUT 4.. И ЭХО ДЛЯ ОТОБРАЖЕНИЯ 000D 370D B4 *.. ПОДОЖДИТЕ ВЫПУСКА 000F F860 LDI # 60.. СЕЙЧАС ПОДГОТОВЬТЕСЬ К 0011 A6 PLO 6.. ПЕРВАЯ ОПЕРАНДА 0012 E0 SEX 0.. СКАЗАТЬ ТАК 0013 6401 OUT 4,01 0015 3F15 BN4 * 0017 E6 SEX 6.. ПРИНИМАЙТЕ И ECHO 0018 6C INP 4.. (TO 0060) 0019 64 OUT 4.. (ТАКЖЕ ПРИЛОЖЕНИЕ R6) 001A 371A B4 * 001C E0 SEX 0.. DITTO SECOND OPERAND 001D 6402 OUT 4,02 001F E6 SEX 6 0020 3F20 LOOP: BN4 *.. WAIT FOR IT 0022 6C INP 4.. ПОЛУЧИТЬ (ПРИМЕЧАНИЕ: X = 6) 0023 64 OUT 4.. ECHO IT 0024 3724 B4 *.. ПОДОЖДИТЕ ВЫПУСКА 0026 26 ДЕКАБРЯ 6.. РЕЗЕРВНОЕ КОПИРОВАНИЕ R6 ДО 0060 0027 26 ДЕК 6 0028 46 L DA 6.. ПОЛУЧИТЬ ПЕРВУЮ ОПЕРАНДУ К D 0029 C4 DOIT: NOP.. DO OPERATION 002A C4 NOP.. (ЗАПАСНОЙ) 002B 26 декабря 6.. НАЗАД 0060 002C 56 STR 6.. ВЫХОДНОЙ РЕЗУЛЬТАТ 002D 64 OUT 4.. ( X = 6 STILL) 002E 7A REQ.. ВЫКЛЮЧИТЬ Q 002F CA0020 LBNZ LOOP.. THEN IF ZERO, 0032 7B SEQ.. ВКЛЮЧИТЕ ЕГО СНОВА 0033 3020 BR LOOP.. ПОВТОРИТЕ В ЛЮБОМ СЛУЧАЕ

Примечание: Вышеупомянутая процедура предполагает, что микропроцессор CDP1802 находится в состоянии начального сброса (или что он был установлен как таковой до выполнения этого кода). Следовательно, и программный счетчик (PC), и «указатель» косвенного регистра X установлены в 16-битный регистр R0. Вот почему вы можете вывести немедленное значение, как в примере «OUT 4,00», потому что PC и X указывают на R0. PC увеличивается после того, как байт инструкции кода операции извлекается из памяти, поэтому он указывает на следующий адрес при выполнении OUT 4. Следовательно, он выводит значение в памяти, на которое указывает RX = R0, который является следующим непосредственным байтом. Команда OUT также увеличивает регистр X, который является R0, который также является ПК, поэтому она выводит значение, которое следует сразу же после OUT, и продолжает выполнение программы по адресу следующей инструкции после непосредственного значения. Вот почему вы видите, что процедура устанавливает X (SEX) для регистрации R6 и R0 по мере необходимости. Также обратите внимание, что, хотя код операции OUT увеличивает регистр RX, для упрощения вывода раздела памяти («буфер») INP этого не делает. Он сохраняет значение по адресу, на который указывает RX, и в 8-битном байтовом накопителе данных D, но RX не изменяется.

Процедура также предполагает, что OUT 4 будет отображать значение на 8-битном светодиодном или 2-значном шестнадцатеричном дисплее системы ЦП, а IN 4 получает значение от восьми тумблеров (или, возможно, шестнадцатеричной клавиатуры). Код операции BN4 (цикл; * = 'этот адрес'), «переход, если однобитовая входная строка EF4 имеет значение lo», используется для проверки того, нажата ли мгновенная кнопка «Ввод». Цикл кода операции B4 ('if hi') ожидает отпускания кнопки. SEQ и REQ включают и выключают одиночную линию Q, которая обычно присоединяется к светодиоду.

1802 - это «байтовая машина», но имеет 16 16-битных регистров R0-RF (иногда обозначаемых как 0-F без префикса «R»). Чтобы иметь дело с 16-битными данными регистров, программист должен получать и помещать значения Hi или Lo регистров, используя D-аккумулятор в качестве посредника. Эти старший и младший байты регистров иногда обозначаются как Rn.0 (lo) и Rn.1 (hi). Короткие ветви - это двухбайтовые коды операций с абсолютной адресацией страницы и 256-байтовой границей адреса. Длинные ветки - это 3-байтовые коды операций с полным 16-разрядным адресным ветвлением.

Эта информация должна сделать процедуру более понятной для любого компьютерного программиста, который достаточно осведомлен, чтобы читать «псевдокод», и минимально знаком с программированием на ассемблере и машинном языке.

Примечания

Ссылки

Цитаты

Библиография

Внешние ссылки

Незначительные части этой статьи были первоначально основаны на материалах из Free On-line Dictionary of Computing, который лицензирован под GFDL.

Последняя правка сделана 2021-06-03 04:22:59
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте