КС400

Семейство 4-битных микроконтроллеров
Национальный полупроводниковый COP400
National Semiconductor COP420 в 28-контактном пластиковом DIP-корпусе. Код даты — конец 1982 года.
Общая информация
Запущен1977 ; 48 лет назад ( 1977 )
Обычный производитель
Производительность
Макс. тактовая частота ЦП до 250 кГц
Ширина данных4 (ОЗУ), 8 (ПЗУ)
Ширина адреса7 (ОЗУ), 11 (ПЗУ)
Архитектура и классификация
ПриложениеВстроенный
Набор инструкцийКС400
Количество инструкций40
Физические характеристики
Упаковка
История
ПредшественникMM5799 (PMOS COP)
ПреемникКС8

COP400 или COP II — это семейство 4-битных микроконтроллеров, представленное в 1977 году компанией National Semiconductor в качестве последующего продукта для их оригинального микроконтроллера PMOS COP. [1] Члены семейства COP400 — это полноценные микрокомпьютеры, содержащие внутреннюю синхронизацию, логику, ПЗУ, ОЗУ и ввод-вывод, необходимые для реализации специализированных контроллеров. [2] Некоторые устройства COP400 были вторично получены компанией Western Digital как семейство WD4200. [3] [4] В Советском Союзе несколько микроконтроллеров COP400 выпускались как серия 1820 (например, COP402 с обозначением КР1820ВЕ1 ). [5]

COP400 реализован в технологии CMOS или N-канального кремниевого затвора MOS. Обычно он был упакован в 24- или 28-контактные DIP- корпуса. Время цикла инструкции более быстрых членов семейства составляет 4 микросекунды. Семейство COP400 предлагало несколько конфигураций памяти и выводов.

Известные продукты, в которых использовались чипы семейства COP400, включают Apple Lisa , электронные игры Milton Bradley и Mattel , баскетбольную приставку Coleco Head to Head, Grundy Newbrain и другие.

Память

COP400 использует отдельные области памяти для ПЗУ и ОЗУ . Адреса ПЗУ имеют максимальную длину 11 бит, а адреса данных — максимальную длину 7 бит.

Изображение кристалла National Semiconductor COP410L

ПЗУ

Память программ состоит из 512, 1024 или 2048 × 8-битного ПЗУ. Байты ПЗУ могут быть инструкциями программы, данными программы или указателями адреса перехода. Из-за особых характеристик, связанных с инструкциями JP и JSRP, ПЗУ часто следует рассматривать как организованную в страницы по 64 байта каждая. Кроме того, из-за уникальных операций, выполняемых инструкциями LQID и JID, страницы ПЗУ иногда следует рассматривать как организованные в блоки по 256 байт.

БАРАН

Память данных состоит из 32, 64 или 128 × 4-битной RAM, организованной как несколько регистров данных из 16 4-битных цифр. Адресация RAM реализуется 6- или 7-битным регистром B, используемым в качестве указателя. Верхние 2 или 3 бита регистра B (Br) выбирают один из 4 или 8 регистров данных, а нижние 4 бита (Bd) выбирают одну из 16 4-битных цифр в выбранном регистре данных. 4-битное содержимое цифры RAM, на которую указывает регистр B, обычно загружается в регистр A, обменивается с ним или работает с ним.

Регистры ЦП

Регистры COP400
1 00 90 80 70 60 50 40 30 20 10 0(позиция бита)
ААккумулятор
БрБдБ (указатель)
ПК (высокий)ПК (страница)Счетчик программ
САСтековые регистры
СБ
СК
Флаг статуса
СНести флаг

Конфигурация регистров, показанная на схеме, предназначена для членов семейства COP400 с максимальным объемом ПЗУ (2048 × 8 бит) и ОЗУ (128 × 4 бит). Члены семейства, имеющие только 512 или 1024 байт ПЗУ, будут иметь только 9- или 10-битный ПК. Те, у кого 64 или 32 ячейки ОЗУ, будут иметь только 2-битный регистр Br. Некоторые младшие члены семейства не имеют регистра стека SC. [6]

4-битный регистр A (аккумулятор) является исходным и целевым регистром для большинства арифметических, логических операций и операций доступа к памяти данных. Его также можно использовать для загрузки частей Br и Bd регистра B, для загрузки и ввода 4 бит 8-битных данных защелки Q, для ввода 4 бит 8-битного порта L и для выполнения обмена данными с регистром SIO.

4-битный АЛУ выполняет арифметические и логические функции, сохраняя результаты в A. Операции ASC и CASC выводят перенос в 1-битный регистр C, который чаще всего используется для индикации арифметического переполнения.

Вся адресация ПЗУ выполняется через 9-, 10- или 11-битный регистр PC. Его двоичное значение выбирает один из байтов, содержащихся в ПЗУ, обычно следующую инструкцию программы. Значение PC автоматически увеличивается на 1 перед выполнением текущей инструкции, чтобы указать на следующую последовательную ячейку ПЗУ, если только текущая инструкция не является инструкцией передачи управления. В последнем случае PC загружается соответствующим непоследовательным значением для реализации операции передачи управления. PC автоматически переходит к указанию на следующую 64-байтную страницу или 256-байтный блок памяти программы. Верхние 1, 2 или 3 бита PC также используются в инструкциях JID и LQID.

Три уровня подпрограммы реализуются регистрами сохранения подпрограммы SA, SB и SC, обеспечивая стек аппаратных подпрограмм «последним пришел, первым вышел» (LIFO). Некоторые реализации не имеют SC.

Регистры и порты ввода-вывода

Нет номеров портов или адресов памяти, связанных с устройствами ввода-вывода COP400. Все физические регистры ввода-вывода и порты напрямую ссылаются на язык ассемблера COP400 по имени.

Базовый уровень

Почти все устройства семейства COP400 реализуют следующее: [6]

  • Предусмотрено четыре входа общего назначения IN 0 -IN 3. Корпуса с 24 выводами не имеют входов IN 0 -IN 3 .
  • Регистр D обеспечивает четыре выхода общего назначения и является регистром назначения для 4-битного содержимого Bd. Регистр D полезен для синхронизации до 16 внешних устройств, связанных с ОЗУ, на которое указывает регистр B.
  • Регистр G содержит 4 двунаправленных порта ввода-вывода общего назначения.
  • Регистр Q — это внутренний, защелкивающийся, 8-битный регистр, используемый для хранения данных, загруженных в или из RAM(B) и A, а также 8-битных данных программы из ROM. Его содержимое выводится на порты L, когда драйверы L включены под управлением программы. Кроме того, содержимое L может быть считано напрямую в A и RAM(B).
  • Регистр SIO функционирует как 4-битный последовательный регистр сдвига ввода/вывода или как двоичный счетчик в зависимости от содержимого регистра EN. Его содержимое можно обменивать с A, что позволяет ему вводить или выводить непрерывный последовательный поток данных.
  • Регистр EN — это внутренний 4-битный регистр, загружаемый под управлением программы инструкцией LEI. Состояние каждого бита этого регистра выбирает или отменяет выбор конкретной функции, связанной с каждым битом регистра EN.
  • Хотя напрямую с помощью программного обеспечения он недоступен, 10-битный счетчик времени делит частоту цикла инструкций на 1024, выдавая импульс при переполнении. Инструкция SKT проверяет возникновение этого импульса, позволяя программисту реализовывать процедуры таймера. Некоторые младшие члены семейства COP400 не имеют ни этого счетчика времени, ни инструкции SKT. Некоторые высокопроизводительные устройства COP400 могут считывать и записывать верхние восемь бит таймера.

Высокий класс

Есть несколько высококлассных членов семейства COP400, таких как COP440 и COP2440, которые имеют 40 контактов. Они имеют дополнительные регистры и порты: [7]

  • Порт R — это дополнительный восьмибитный двунаправленный порт ввода-вывода, аналогичный порту Q. Порт R содержит защелки и драйверы. Данные для вывода фиксируются в регистре R. Входной путь — от контактов к аккумулятору и ОЗУ. Входные данные на контактах R не фиксируются в регистре R никаким внешним сигналом. Это должно быть сделано косвенно программой. Драйверы R, как и драйверы L, могут быть переведены в состояние высокого импеданса.
  • Эти устройства имеют дополнительный двунаправленный четырехбитный порт — порт H. Порт H по сути является дубликатом порта G, за исключением того, что H нельзя протестировать напрямую.
  • Регистр EN расширен до 8 бит. EN 4 -EN 5 выбирают источники прерываний. EN 6 выбирает источник счетчика T. EN 7 управляет выходными драйверами порта R. 8-битный EN записывается с помощью инструкции CAME и считывается с помощью CEMA. Младшие 4 бита могут быть записаны с помощью LEI.

Набор инструкций

Семейство COP400 разработано для очень компактного кода. Все инструкции имеют длину один или два байта. Наиболее часто используемые инструкции имеют длину один байт. В некоторых случаях существуют специальные однобайтовые формы двухбайтовых инструкций. Некоторые функции, которые можно использовать для того, чтобы сделать объектный код более компактным, следующие:

  • Инструкция LBI загружает семибитный регистр B непосредственным значением. Инструкция общей формы занимает два байта. Существует однобайтовая форма LBI, которая может устанавливать Br только в 0, 1, 2 и 3 и может устанавливать Bd только в 9, 10, 11, 12, 13, 14, 15 и 0 (десятичное число). Однобайтовая LBI может получить доступ только к 32 ячейкам ОЗУ.
  • Несколько инструкций LBI могут быть сложены последовательно. Будет выполнена только первая инструкция LBI. Последующие инструкции LBI будут выполнены как NOP. Это позволяет использовать несколько точек входа с разными начальными адресами для общей процедуры.
  • JSR в общей форме ветви подпрограммы — это два байта, которые могут напрямую обращаться к любой ячейке памяти. JSRP — это однобайтовая форма ветви подпрограммы, которая может обращаться только к ячейкам на третьей 64-байтовой странице. Эта страница называется страницей подпрограммы или страницей 2, нумеруется с нуля. JSRP не может быть закодирован изнутри страницы 2 или 3.
  • JMP в общей форме ветвления — это два байта, которые могут напрямую обращаться к любой ячейке памяти. JP — это однобайтовая форма ветвления, которая может обращаться к любой ячейке на текущей 64-байтовой странице. Старшие биты PC остаются неизменными. Если инструкция JP выполняется внутри страницы 2 или 3, то она может обращаться к любому из 128 адресов на страницах 2 и 3. Это полезно для создания однобайтовой точки входа JSRP на странице 2, которая затем может перейти к подпрограмме на странице 3 с помощью однобайтового JP.
  • Регистр B может использоваться для указания до четырех строк RAM с небольшими накладными расходами. Инструкции доступа к памяти LD, X, XIS и XDS могут выполнять исключительное ИЛИ с двумя младшими битами Br с двухбитным немедленным. Это позволяет перевернуть регистровую часть B (Br) в одну из других строк цифр, которые совместно используют тот же адрес цифры (Bd).
  • Часть регистра Bd может использоваться как указатель памяти и счетчик цикла одновременно. Инструкция XIS будет пропущена, если Bd после инкремента переполнится до нуля, провалив цикл. Аналогично, инструкция XDS будет пропущена, если Bd после декремента опустится до 15 (десятичное).
Набор инструкций для семейства COP400
Код операцииОперандМнемоническийОписаниеПропускать
76543210
00000000КЛРАА ← 0
000б 000б 11СКМБЗ бОЗУ(Б) б = 0
00000010XORA ← A ОЗУ(Б)
00г0100XIS гА ↔ РАМ(Б), Бр ← Бр р, Бд ← Бд + 1Бд = 0
00г0101ЛД рA ← RAM(B), Br ← Br r
00г0110Х рА ↔ РАМ(Б), Бр ← Бр р
00г0111XDS-рА ↔ РАМ(Б), Бр ← Бр р, Бд ← Бд - 1Бд = 15
00г1гLBI р,дБр ← г, Бд ← (д + 9) ^ 15 (Бр = 0-3, Бд = 9-15, 0)следующий LBI
00010000КАСКA ← ~A + RAM(B) + C, C ← ПереносС = 1
00010010XABRА ↔ Бр, А 3 ← 0
00100000СКЦС = 1
00100001СКЕА = ОЗУ(Б)
00100010СКС ← 1
001000110rrrddddЛДД р,дA ← ОЗУ(р,д)
001000111рррдддXAD г,дА ↔ RAM(р,д)
00110000АСКA ← A + RAM(B) + C, C ← ПереносС = 1
00110001ДОБАВЛЯТЬA ← A +ОЗУ(Б)
00110010РКС ← 0
00110011код операцииПрефикс 33HИнструкции с этим префиксом см. в таблице ниже.
01000000КОМПА ← ~А
01000001СКТПропустить при переполнении таймератаймер
010000102 юаняОЗУ(Б) 2 ← 0
010000113 юаняОЗУ(Б) 3 ← 0
01000100НОПНет операции
010001011 юаньОЗУ(Б) 1 ← 0
01000110МСБ 2ОЗУ(Б) 2 ← 1
01000111МСБ 1ОЗУ(Б) 1 ← 1
01001000РЕТПоп ПК (ПК ← SA, SA ← SB, SB ← SC)
01001001РЕТСКПоп-ПКвсегда
01001010АДТА ← А + 10
01001011МСБ 3ОЗУ(Б) 3 ← 1
010011000 юанейОЗУ(Б) 0 ← 0
01001101МСБ 0ОЗУ(Б) 0 ← 1
01001110ЦБА ← Бд
01001111XASА ↔ СИО, СК ← С
01010000ТАКСИБд ← А
0101уAISC гA ← A + y (1 ≤ y ≤ 15, C неизменен)нести
01100аддхидобавитьСПМ аПК[10:8] ← addhi, ПК[7:0] ← addlo
01101аддхидобавитьJSR аНажмите ПК, ПК[10:8] ← addhi, ПК[7:0] ← addlo
0111уСТИИ уRAM(B) ← y, Bd ← Bd + 1
10адресJSRP аЕсли PC[10:6] ≠ 00010: Нажмите PC, PC[10:6] ← 00010, PC[5:0] ← адрес
10111111LQIDQ ← ПЗУ(ПК[10:8], А, ОЗУ(Б)), SC ← СБ
11адресJP аЕсли PC[10:6] ≠ 00010: PC[5:0] ← адрес
1адресJP аЕсли PC[10:7] = 0001: PC[6:0] ← адрес
11111111JIDПК[7:0] ← ПЗУ(ПК[10:8], А, ОЗУ(Б))
76543210ОперандМнемоническийОписаниеПропускать
коды операций с префиксом 33H
Код операцииМнемоническийОписаниеПропускатьТипы

поддерживается

76543210
000б 000б 11СКГБЗ бГ б = 0Все
00001011КСАНА[1:0] ↔ Н, А[2:3] ← 03
00001111CEMARAM(B) ← EN[7:4], A ← EN[3:0]3
00011001КРЫШКАОЗУ(Б), А ← ПЗУ(ПК[10:8], А, ОЗУ(Б))3
00011010ИЛИА ← А ∨ ОЗУ(Б)3
00011100СКСЗСИО = 03
00011111ПРИШЕЛEN[7:4] ← A, EN[3:0] ← RAM(B)3
00100001СКГЗГ = 0Все
00101000ИНИНА ← В2, 3
00101001ИНИЛA ← IL 3 , 1, 0, IL 0 или A ← IL 3 , CKO, 0, IL 02, 3
00101010ИНГА ← ГВсе
00101011ИНГА ← Н3
00101100CQMARAM(B) ← Q[7:4], A ← Q[3:0]2, 3
00101101индийская рупияRAM(B) ← R[7:4], A ← R[3:0]3
00101110ИНЛRAM(B) ← L[7:4], A ← L[3:0]Все
00101111CTMARAM(B) ← T[7:4], A ← T[3:0]3
00111000ОСТАНОВИТЬОстановить операциюКМОП
00111001ЭТООстановитесь, пока таймер не переполнитсяКМОП
00111010МОЙ БОГG ← ОЗУ(Б)Все
00111011ОМХH ← ОЗУ(Б)3
00111100CAMQQ[7:4] ← A, Q[3:0] ← ОЗУ(Б)Все
00111101КАМРR[7:4] ← A, R[3:0] ← ОЗУ(Б)3
00111110БДД ← БдВсе
00111111КАМТT[7:4] ← A, T[3:0] ← RAM(B)3
0101уОГИ уГ ← у2, 3
0110уЛЕЙ уRU ← yВсе
1ггLBI р,дБр ← р, Бд ← гследующий LBI2, 3
76543210МнемоническийОписаниеПропускатьТипы

поддерживается

Поддерживаемые типы: Тип 1 — очень бюджетный, например COP410. Тип 2, например COP420, является наиболее распространенным. Тип 3 обычно имеет ресурсы для поддержки 40 контактов, даже если корпус не имеет 40 контактов. Тип 4 не показан, поскольку нет никаких доказательств того, что тип 4 производился. CMOS включает COP424C, COP425C, COP426C, COP444C, COP445C, COP404C.

Пример кода

В этом примере кода демонстрируется несколько функций экономии места в наборе инструкций:

  • однобайтовые инструкции LBI
  • несколько инструкций LBI последовательно создают несколько точек входа
  • LD XORing Br, так что B переворачивается в место назначения, и XIS переворачивает B обратно в источник
  • Bd разделяет указатель и счетчик цикла с помощью функции пропуска в XIS
  • однобайтовый переход, JP
      040 09 041 19 042 2Ф 043 15  044 14 045 С3 046 48
; Копирование блока памяти из одного места в другое. ; ; Существует три точки входа: copyA, copyB и copyC. ; Значения инструкций LBI выражаются как ; LBI Br, Bd. ; copyA: LBI 0 , 10 ;Копирование 6 полубайтов, начиная с 0,10 по 1,10 copyB: LBI 1 , 10 ;Копирование 6 полубайтов, начиная с 1,10 по 0,10 copyC: LBI 2 , 0 ;Копирование 16 полубайтов, начиная с 2,0 по 3,0         loop: LD 1 ;Загрузить src в A. XOR Br с 1, чтобы получить dest    XIS 1 ;Сохранение A в dest. Inc Bd. XOR Br с 1, чтобы получить src JP loop ;цикл, пока Bd не пройдет последнюю цифру RET       

Прерывать

Ранние устройства COP400, имеющие 28 контактов или более, поддерживают одно прерывание . Линия IN 1 используется в качестве входа прерывания. Прерывание включается установкой бита 1 регистра EN в 1 с помощью инструкции LEI. В ответ на низкоуровневый импульс длиной не менее двух циклов инструкций на IN 1 завершаются все передачи инструкций управления, таких как JP, и выполняются все последовательные инструкции LBI. Затем PC помещается в стек подпрограмм, и управление передается обработчику прерываний по адресу 0xFF. В подпрограмме обслуживания прерываний на устройствах с аппаратным стеком нельзя вызывать подпрограммы. [6] Любопытно, что более поздние устройства, такие как COP440, поддерживают четыре источника прерываний и две подпрограммы обслуживания, но одновременно можно выбрать только один источник прерывания. Подпрограммы поддерживаются внутри подпрограмм обслуживания прерываний на устройствах с указателем стека.

Архитектурные расширения

Хотя большинство устройств COP400 были нацелены на низкоуровневые приложения, было создано несколько расширений архитектуры для решения более требовательных приложений. К 1985 году к некоторым устройствам были добавлены двойной ЦП, более глубокий стек в ОЗУ и большие адресные пространства. [7]

Двойной ЦП

COP400 с указателем стека
1 00 90 80 70 60 50 40 30 20 10 0(позиция бита)
ААккумулятор
БрБдБ (указатель)
1 0 0 0Н0 0Указатель стека
ПК (высокий)ПК (страница)Счетчик программ
Флаг статуса
СНести флаг
(показан COP440)

Версии COP400 с «Dual CPU» были анонсированы National Semiconductor в 1981 году. Эти однокристальные процессоры-баррели содержат два якобы независимых CPU, которые совместно используют инструкции, память и большинство устройств ввода-вывода. На самом деле CPU не являются полностью независимыми и совместно используют аппаратные ресурсы, аналогичные процессорам Intel с технологией Hyper-Threading (HTT). Как и HTT, версия с двумя CPU работает путем дублирования определенных разделов процессора — тех, которые хранят архитектурное состояние , — но не дублирования основных ресурсов выполнения, таких как ALU , шины и память. Отдельные архитектурные состояния для каждого из двух виртуальных процессоров устанавливаются с дублированными A (аккумуляторами), B (регистрами указателей), C (флагами переноса), N (указатели стека) и PC (счетчиками программ). [6]

Когда сброс отменяется, оба процессора начинают работу с ячейки 0, содержащей инструкцию CLRA, затем один процессор переходит к ячейке 401 (шестнадцатеричная), после чего второй процессор на один цикл инструкций выполняет ячейку 1. Затем процессоры поочередно выполняют по одному байту кода каждый.

При максимальной тактовой частоте время выполнения инструкции (однобайтовой инструкции) для каждого процессора составляет 4 микросекунды, следовательно, время цикла инструкции для любого процессора в два раза больше и составляет 8 микросекунд.

Некоторые версии с двумя ЦП включают 40-контактный COP2440N, 28-контактный COP2441N и 24-контактный COP2442N.

Возврат стека в ОЗУ

Ранние устройства COP400 включали двух- или трехуровневый выделенный аппаратный стек возврата. Более поздние устройства, такие как COP440, имеют 4-уровневый стек возврата, реализованный с 2-битным указателем стека и ОЗУ. Версии с двумя ЦП имеют два отдельных 4-уровневых стека возврата, реализованных с двумя 2-битными указателями стека и двумя различными областями ОЗУ.

Больше адресного пространства

Базовый набор инструкций COP400 поддерживает адреса ПЗУ до 11 бит (2048 байт), в то время как адреса данных составляют максимум 7 бит (128 ячеек). Так называемые устройства группы 4 расширили предел памяти, добавив трехбайтовые инструкции JMP, JSR и LBI с большим количеством адресных бит. Они поддерживают адреса ПЗУ максимум 15 бит (32 768 байт), в то время как адреса данных составляют максимум 9 бит (512 ячеек). Устройства, которые поддерживают эти инструкции, включают COP408, COP484, COP485, C0P409. Неясно, были ли произведены какие-либо из этих устройств группы 4.

Приложения

  • Apple Lisa использовала COP421 для управления клавиатурой, мышью, RTC и мягким выключателем питания. Второй COP421 управляет двигателем шпинделя жесткого диска Widget. [8]
  • Несколько производителей использовали COP400 в своих ранних электронных играх: [9]
    • COP410 и COP411, 512 байт ПЗУ, 32 x 4 ОЗУ: разъемы Mattel Funtronics, красный/зеленый свет, тег и плюс один.
    • COP420 и COP421, 1024 байт ROM, 64 x 4 RAM: Milton Bradley Lightfight и Electronic Battleship 1982. Castle Toy Company Einstein. Coleco Head Basketball. National Semiconductor Quiz Kid Racer. LJN Toys Ltd Я облизнулся от цыпленка.
    • COP444, 2048 байт ROM, 128 x 4 RAM: Entex Space Invader. Mattel Dalla$, Texas Instruments Мой маленький компьютер. [10]
  • Компания Western Digital использовала WD4200 (COP420) в качестве основы для своих часов реального времени WD2412. [11]
  • Компьютер Grundy Newbrain использует COP420 для управления клавиатурой, ленточным вводом-выводом и встроенным 16-символьным буквенно-цифровым дисплеем VF . [12]

Интеллектуальная собственность

T400 μController — это реализация микроконтроллера COP400 с открытым исходным кодом, написанная на VHDL . Поддерживаются устройства COP420/421 и COP410L/411L. T400 предназначен для замены оригинального чипа в SOC, воссоздающих устаревшие системы. T400 был реализован в нескольких семействах FPGA . T400 доступен по лицензии GNU General Public License . [13]

Эмулятор

Существует эмулятор MAME с открытым исходным кодом для семейства COP400, а также несколько портативных игр и специализированных калькуляторов. [14] [15]

Смотрите также

  • Национальный полупроводниковый COP8

Ссылки

  1. ^ "National Semiconductor: The COP до COPS". Музей CPUSHACK . 27 сентября 2014 г. Получено 23 декабря 2021 г.
  2. ^ "COP400 Microcontroller Family COPS Family User's Guide". National Semiconductor . Получено 3 августа 2023 г. .
  3. ^ "Western Digital и COP". Музей CPUSHACK . 2 октября 2015 г. Получено 22 декабря 2021 г.
  4. ^ "WD4200/WD4210 Однокристальные N-канальные микроконтроллеры" . Получено 23 декабря 2021 г.
  5. ^ "Советские микропроцессоры, микроконтроллеры, микросхемы FPU и их западные аналоги". www.cpu-world.com . Получено 15 ноября 2022 г. .
  6. ^ abcd "COPS Microcontrollers Data Book". National Semiconductor . Получено 19 января 2022 г.
  7. ^ ab "The COPS Programming Manual (1985)" (PDF) . Vintage Technology Digital Archive . National Semiconductor . Получено 23 декабря 2021 г. .
  8. ^ "Apple Lisa 341-0064A (COP421)". Visual6502 . Получено 24 декабря 2021 г. .
  9. ^ "National Semiconductor COP400". Шон Риддл . Получено 24 декабря 2021 г.
  10. ^ Woerner, Joerg. "Texas Instruments My Little Computer". Музей калькуляторов Datamath . Получено 19 июня 2024 г.
  11. ^ "Каталог компонентов 1983 года" (PDF) . Western Digital. стр. 621 . Получено 24 декабря 2021 г. .
  12. ^ "COP420 4-Bit Processor - Newbrain" . Получено 30 декабря 2021 г. .
  13. ^ "T400 μController - реализация 4-битного микроконтроллера COP400 от National". All About Circuits . Получено 21 июня 2024 г. .
  14. ^ "COP400 libmame repository". Github . Получено 23 апреля 2022 г.
  15. ^ "Funjacks (пример эмулируемой игры)". База данных Arcade . Получено 23 апреля 2022 г.
Взято с "https://en.wikipedia.org/w/index.php?title=COP400&oldid=1265242938"