COP400

ナショナルセミコンダクターCOP400
ナショナル セミコンダクター COP420、28ピン プラスチック DIP。日付コードは1982年後半。
一般情報
発売1977 (1977年
共通メーカー
パフォーマンス
最大CPUクロックレート250 KHzまで
データ幅4(RAM)、8(ROM)
アドレス幅7(RAM)、11(ROM)
物理的仕様
パッケージ
  • 24、28、40ピンDIP
アーキテクチャと分類
応用埋め込み
命令セットCOP400
命令の数40
歴史
前任者MM5799 (PMOS COP)
後継COP8

COP400またはCOP IIは、ナショナル セミコンダクター社が1977年に同社のオリジナルのPMOS COPマイクロコントローラの後継製品として発表した4ビットマイクロコントローラファミリです[ 1 ] COP400ファミリメンバー専用コントローラを実装するために必要な内部タイミング、ロジック、ROM、RAM、およびI/Oを備えた完全なマイクロコンピュータです。[ 2 ]一部のCOP400デバイスは、ウエスタンデジタル社によってWD4200ファミリとしてセカンドソースされました。 [ 3 ] [ 4 ]ソビエト連邦では、いくつかのCOP400マイクロコントローラが1820シリーズとして製造されました(例: КР1820ВЕ1の指定を持つCOP402 )。[ 5 ]

COP400はCMOSまたはNチャネル・シリコンゲートMOSテクノロジーで実装されています。通常は24ピンまたは28ピンのDIPパッケージで提供されます。より高速なファミリ製品の命令サイクル時間は4マイクロ秒です。COP400ファミリは、複数のメモリ構成とピン配置を提供していました。

COP400 ファミリ チップを使用した著名な製品としては、Apple LisaMilton BradleyおよびMattel の電子ゲーム、Coleco Head to Head Basketball、Grundy Newbrainなどがあります。

メモリ

COP400 は、ROMRAMに別々のメモリ空間を使用します。ROM アドレスは最大 11 ビット、データ アドレスは最大 7 ビットです。

National Semiconductor COP410Lのダイイメージ。左上隅に512バイトのROM、右上隅に128ビットのRAMが配置されています。クリックすると拡大します。

ロム

プログラムメモリは、512、1024、または2048×8ビットのROMで構成されます。ROMバイトは、プログラム命令、プログラムデータ、またはジャンプアドレスポインタとして使用できます。JP命令とJSRP命令の特殊な特性のため、ROMは64バイトのページで構成されると考える場合が多くあります。また、LQID命令とJID命令によって実行される独自の演算のため、ROMページは256バイトのブロックで構成されると考える場合もあります。

ラム

データメモリは、32、64、または128 × 4ビットのRAMで構成され、16個の4ビット桁からなる複数のデータレジスタとして構成されます。RAMのアドレス指定は、ポインタとして使用される6ビットまたは7ビットのBレジスタによって実装されます。Bレジスタの上位2ビットまたは3ビット(Br)は、4個または8個のデータレジスタのいずれかを選択し、下位4ビット(Bd)は、選択されたデータレジスタ内の16個の4ビット桁のいずれかを選択します。Bレジスタが指し示すRAM桁の4ビットの内容は、通常、Aレジスタにロード、交換、または操作されます。

CPUレジスタ

COP400登録簿
1 00 90 80 70 60 50 40 30 20 10 0(ビット位置)
アキュムレータ
Br Bd B(ポインタ)
PC(高) PC(ページ) プログラムカウンタ
南アフリカ スタックレジスタ
SB
SC
ステータスフラグ
Cキャリーフラッグ

図に示すレジスタ構成は、最大ROM(2048 × 8ビット)およびRAM(128 × 4ビット)を搭載したCOP400ファミリの製品です。ROMが512バイトまたは1024バイトのファミリ製品では、PCは9ビットまたは10ビットのみとなります。RAMが64バイトまたは32バイトのファミリ製品では、Brレジスタは2ビットのみとなります。[ 6 ]

4ビットのAレジスタ(アキュムレータ)は、ほとんどの算術演算、論理演算、およびデータメモリアクセス操作のソースレジスタおよびデスティネーションレジスタです。また、BレジスタのBrおよびBd部分のロード、8ビットのQラッチデータの4ビットのロードと入力、8ビットのLポートの4ビットの入力、およびSIOレジスタとのデータ交換にも使用できます。

8 ビット レジスタ (Q や 8 ビット I/O ポートなど)データを転送する場合、最下位 4 ビットは B レジスタが示す RAM の位置である RAM(B) から取得され、最上位 4 ビットは A から取得されます。8 ビット レジスタからデータを転送する場合は、半分が逆になり、最下位 4 ビットが A に書き込まれ、最上位 4 ビットが RAM(B) に書き込まれます。

4 ビットALU は算術演算と論理演算を実行し、結果を A に格納します。ASC および CASC 演算では、1 ビットの C レジスタにキャリーが出力され、これは算術オーバーフローを示すために最もよく使用されます。

すべてのROMアドレス指定は、9ビット、10ビット、または11ビットのPCレジスタを介して行われます。このレジスタのバイナリ値は、ROMに含まれるバイトの1つ(通常は次のプログラム命令)を選択します。PCの値は、現在の命令の実行前に自動的に1ずつ増加し、次のROMアドレスを指します。これにより、サブルーチン呼び出しを実行する際には、保存されたPCが次の命令のアドレスとなり、制御転送を実行する際には、PCに書き込まれたターゲットアドレスがそのまま使用されます。PCは自動的にロールオーバーし、プログラムメモリの次の64バイトページまたは256バイトブロックを指します。PCの上位ビットは、JID命令およびLQID命令によって指定される8ビットアドレスを完成させるためにも使用されます。

3階層のサブルーチンは、サブルーチン保存レジスタSA、SB、SCによって実装され、後入先出(LIFO)ハードウェアコールスタックを提供します。実装によってはSCが存在しない場合もあります。実装上の特徴の一つとして、LQID命令はスタックの1階層を使用します。フェッチ元のROMアドレスはPCレジスタにコピーされ、その値を一時的に保存するためにスタックが使用されます。そのため、LQID命令にはSCがSBのコピーで上書きされるという副作用があります。

I/Oレジスタとポート

COP400 I/Oデバイスにはポート番号やメモリアドレスは関連付けられていません。すべての物理I/Oレジスタとポートは、COP400アセンブリ言語によって名前で直接参照されます。

ベースライン

ほぼすべてのCOP400ファミリーデバイスは以下を実装しています。[ 6 ]

  • 4 つの汎用入力 IN 0~ IN 3が用意されています。24 ピン パッケージには IN 0~ IN 3はありません。
  • Dレジスタは4つの汎用出力を備え、Bdの4ビット内容を格納するためのレジスタです。Dレジスタは、Bレジスタが指すRAMに関連付けられた最大16個の外部デバイスを同期させるのに役立ちます。
  • G レジスタには 4 つの汎用双方向 I/O ポートが含まれています。
  • Qレジスタは、RAM(B)およびAにロードまたはRAM(B)からロードされるデータ、およびROMからの8ビットプログラムデータを保持するために使用される、ラッチされた8ビットの内部レジスタです。プログラム制御によってLドライバが有効化されると、Qレジスタの内容はLポートに出力されます。また、Lレジスタの内容をAおよびRAM(B)に直接読み出すこともできます。
  • SIOレジスタは、ENレジスタの内容に応じて、4ビットのシリアル入力/シリアル出力シフトレジスタまたはバイナリカウンタとして機能します。SIOレジスタの内容はAレジスタと交換可能であり、連続したシリアルデータストリームを入力または出力できます。
  • ENレジスタは、LEI命令によってプログラム制御下でロードされる4ビットの内部レジスタです。このレジスタの各ビットの状態によって、ENレジスタの各ビットに関連付けられた特定の機能が選択または選択解除されます。
  • ソフトウェアから直接アクセスすることはできませんが、10ビットのタイムベースカウンタは命令サイクル周波数を1,024で割ることで、オーバーフロー時にパルスを生成します。SKT命令はこのパルスの発生をテストし、プログラマがタイマールーチンを実装できるようにします。一部のローエンドCOP400ファミリ製品には、このタイムベースカウンタもSKT命令も搭載されていません。一部のハイエンドCOP400デバイスは、タイマーの上位8ビットの読み書きが可能です。

ハイエンド

COP400ファミリーには、COP440やCOP2440など、40ピンのハイエンドモデルもいくつかあります。これらには追加のレジスタとポートがあります。[ 7 ]

  • Rポートは、Qポートと同様に、追加の8ビット双方向I/Oポートです。Rポートにはラッチとドライバが含まれています。出力データはRレジスタにラッチされます。入力パスは、ピンからアキュムレータとRAMへと続きます。Rピンの入力データは、外部信号によってRレジスタにラッチされることはありません。これはプログラムによって間接的に行う必要があります。Rドライバは、Lドライバと同様に、ハイインピーダンス状態にすることができます。
  • これらのデバイスには、双方向の4ビットポートであるHポートが追加されています。Hポートは基本的にGポートの複製ですが、Hポートを直接テストすることはできません。
  • ENレジスタは8ビットに拡張されています。EN4 EN5割り込みソースを選択します。EN6Tカウンタのソースを選択します。EN7Rポートの出力ドライバを制御します。8ビットのENはCAME命令で書き込み、CEMA命令で読み出します。下位4ビットはLEI命令で書き込むことができます。

命令セット

COP400ファミリーは、非常にコンパクトなコードになるように設計されています。すべての命令は1バイトまたは2バイトです。最も頻繁に使用される命令は1バイトです。場合によっては、2バイト命令が1バイト形式になる特殊な形式もあります。オブジェクトコードをよりコンパクトにするために使用できる機能には、次のようなものがあります。

  • LBI命令は、7ビットのBレジスタに即値をロードします。この汎用形式の命令は2バイトです。1バイト形式のLBI命令では、Brレジスタは0、1、2、3、Bdレジスタは9、10、11、12、13、14、15、0(10進数)のいずれかにのみ設定できます。1バイト形式のLBI命令は、RAMの32個のアドレスにアクセスできます。
  • 複数のLBI命令を連続してスタックできます。最初のLBI命令のみが実行されます。後続のLBI命令はNOPとして実行されます。これにより、共有ルーチンにおいて、異なる開始アドレスを持つ複数のエントリポイントが可能になります。
  • 一般的なサブルーチン分岐形式のJSRは2バイトで、任意のメモリ位置に直接アクセスできます。JSRPは1バイトのサブルーチン分岐で、3番目の64バイトページ内の位置にのみアクセスできます。このページはサブルーチンページまたはページ2と呼ばれ、0から番号が付けられます。JSRPはページ2またはページ3内からコーディングすることはできません。
  • 一般的な分岐形式では、JMPは2バイトで、任意のメモリ位置に直接アクセスできます。JPは1バイトの分岐命令で、現在の64バイトページ内の任意の位置にアクセスできます。PCの上位ビットは変更されません。JP命令がページ2または3内で実行される場合、ページ2と3の128個のアドレスのいずれにもアクセスできます。これは、ページ2に1バイトのJSRPエントリポイントを作成し、そこから1バイトのJPを使用してページ3のサブルーチンに分岐する場合に便利です。
  • Bレジスタは、オーバーヘッドをほとんどかけずに最大4つのRAM文字列を指すことができます。LD、X、XIS、XDSメモリアクセス命令は、 Brの下位2ビットと2ビットの即値との排他的論理和(OR)を演算できます。これにより、Bレジスタ部分(Br)を、同じ数字(Bd)アドレスを共有する他の数字文字列のいずれかに反転することができます。
  • Bdレジスタ部分は、メモリポインタとループカウンタとして同時に使用できます。XIS命令は、Bdがインクリメント後にオーバーフローしてゼロになり、ループを抜けた場合にスキップします。同様に、XDS命令は、Bdがデクリメント後にアンダーフローして15(10進数)になった場合にスキップします。
COP400ファミリー命令セット
オペコードオペランドニモニック説明スキップ
76543210
00000000CLRAA ← 0
000b 000b 11SKMBZ bメモリビットがゼロの場合はスキップRAM(B) b = 0
00000010排他的論理和A ← A RAM(B)
00010000CASCA ← ~A + RAM(B) + C, C ← キャリー運ぶ
00010010ザブA ↔ Br、A 3 ← 0
00100000SKCC = 1
00100001SKEA = RAM(B)
00100010SCC ← 1
001000110rrrddddLDD r,dA ← RAM(r,d)
001000111rrrddddXAD r,dA ↔ RAM(r,d)
00110000ASCA ← A + RAM(B) + C, C ← キャリー運ぶ
00110001追加A ← A +RAM(B)
00110010RCC ← 0
00110011オペコード33Hプレフィックスこの接頭辞の説明については、下のを参照してください。
00r0100XIS rA ↔ RAM(B), Br ← Br r, Bd ← Bd + 1Bd = 0
00r0101LD rA ← RAM(B), Br ← Br r
00r0110X rA ↔ RAM(B), Br ← Br r
00r0111XDS rA ↔ RAM(B), Br ← Br r, Bd ← Bd - 1Bd = 15
00r1dLBI r,dBr ← r, Bd ← (d+9)∧15 (Br = 0–3, Bd = 9–15, 0)次のLBI
01000000コンプあ ← ~あ
01000001SKTタイマーオーバーフロー時にスキップタイマー
0100n人民元RAM(B) n ← 0 (0, 1, 2, 3 エンコード 0xC 0x5 0x2 0x3)
0100nSMB nRAM(B) n ← 1 (0, 1, 2, 3 エンコード 0xD 0x7 0x6 0xB)
01000100いいえ操作なし
01001000RETポップPC(PC←SA、SA←SB、SB←SC)
01001001レツクポップPCいつも
01001010ADTA ← A + 10
01001110CBAA ← Bd
01001111XASA ↔ SIO、SK ← C
01010000タクシーBd ← A
0101yAISC yA ← A + y (1 ≤ y ≤ 15、Cは変化しない)運ぶ
01100アディ追加JMP aPC[10:8] ← addhi、PC[7:0] ← addlo
01101アディ追加JSR aPCを押し、PC[10:8] ← addhi、PC[7:0] ← addlo
0111ySTII yRAM(B) ← y, Bd ← Bd + 1
1住所JP aPC[10:7] = 0001の場合: PC[6:0] ← アドレス
10住所JSRP aPC[10:7] ≠ 0001の場合: PCをプッシュ、PC[10:6] ← 00010、PC[5:0] ← アドレス
10111111LQIDQ ← ROM(PC[10:8], A, RAM(B)), SC ← SB
11住所JP aPC[10:7] ≠ 0001の場合: PC[5:0] ← アドレス
11111111JIDPC[7:0] ← ROM(PC[10:8], A, RAM(B))
76543210オペランドニモニック説明スキップ

33H で 始まる2 バイトのオペコード(サポートは CPU の種類によって異なります)
オペコードニモニック説明スキップCPUの種類
76543210
000b 000b 11SKGBZ bGb = 0全て
00001011ザーンA[1:0] ↔ N, A[2:3] ← 03
00001111CEMARAM(B) ← EN[7:4]、A ← EN[3:0]3
00011001RAM(B), A ← ROM(PC[10:8], A, RAM(B))3
00011010またはA ← A ∨ RAM(B)3
00011100SKSZSIO = 03
00011111来たEN[7:4] ← A、EN[3:0] ← RAM(B)3
00100001SKGZG = 0全て
00101000イニンA ← イン2、3
00101001INILA ← IL 3、1、0、IL 0または A ← IL 3、CKO、0、IL 02、3
00101010INGA ← G全て
00101011INHA ← H3
00101100CQMARAM(B) ← Q[7:4], A ← Q[3:0]2、3
00101101インドルピーRAM(B) ← R[7:4], A ← R[3:0]3
00101110INLRAM(B) ← L[7:4], A ← L[3:0]全て
00101111CTMARAM(B) ← T[7:4], A ← T[3:0]3
00111000停止操作を停止CMOS
00111001それタイマーがオーバーフローするまで停止CMOS
00111010ああ、神様G ← ラム(B)全て
00111011OMHH ← ラム(B)3
00111100CAMQQ[7:4] ← A, Q[3:0] ← RAM(B)全て
00111101CAMRR[7:4] ← A、R[3:0] ← RAM(B)3
00111110OBDD ← Bd全て
00111111カムトT[7:4] ← A, T[3:0] ← RAM(B)3
0101yOGI yG ← y2、3
0110yレイ・イEN ← y全て
1rdLBI r,dBr ← r、Bd ← d次のLBI2、3
76543210ニモニック説明スキップ種類

サポートされている

サポートされているタイプ:タイプ1はCOP410のような非常にローエンドです。タイプ2はCOP420のような最も一般的なタイプです。タイプ3は、パッケージ自体が40ピンでなくても、通常40ピンをサポートできるリソースを備えています。タイプ4は製造されたという証拠がないため、ここには記載されていません。CMOSには、COP424C、COP425C、COP426C、COP444C、COP445C、COP404Cが含まれます。

サンプルコード

このサンプル コードは、命令セットのスペース節約機能のいくつかを示しています。

  • シングルバイトLBI命令
  • 複数の LBI 命令を連続して実行し、複数のエントリ ポイントを作成します。
  • LDはBrをXORしてBを宛先に反転し、XISはBをソースに戻す
  • XISのスキップ機能を介してポインタとループカウンタの役割を共有するBD
  • シングルバイトジャンプ、JP
 040 09 041 19 042 2F 043 15  044 14 045 C3 046 48 
; メモリ ブロックをある場所から別の場所にコピーします。; ; エントリ ポイントは、copyA、copyB、copyC の 3 つがあります。; LBI 命令の値は、LBI Br、Bd として表されます。; copyA: LBI 0 10 ; 0.10 から 1.10 で始まる 6 ニブルをコピーします。copyB : LBI 1 10 ; 1.10 から 0.10 で始まる 6 ニブルをコピーします。copyC : LBI 2 0 ; 2.0 から 3.0 で始まる 16 ニブルをコピーします。loop: LD 1 ;src を A にロードします。Br と 1 の XOR をとって dest を取得します。XIS 1 ;A を dest に保存します。Bd をインクリメントします。Br と 1 の XOR をとって src を取得します。JP loop ; Bd が最後の桁位置を超えるまでループします。RET

割り込み

28 ピン以上の初期の COP400 デバイスは、単一の割り込みをサポートします。割り込み入力として IN 1 ラインが使用されます。割り込みは、LEI 命令で EN レジスタのビット 1 を 1 に設定することによって有効になります。IN 1 で少なくとも 2 命令サイクルの長さの低レベルパルスに応答して、JP などの制御転送命令がすべて完了し、すべての連続 LBI 命令が実行されます。次に、PC がサブルーチン スタックにプッシュされ、制御はアドレス 0xFF にある割り込み ハンドラに転送されます。ハードウェア スタックを備えたデバイスでは、割り込みサービス ルーチン内でサブルーチンを呼び出すことはできません。[ 6 ]不思議なことに、COP440 などの後期のデバイスは 4 つの割り込みソースと 2 つのサービス ルーチンをサポートしますが、一度に選択できる割り込みソースは 1 つだけです。サブルーチンは、スタック ポインタを備えたデバイス上の割り込みサービス ルーチン内でサポートされます。

建築拡張

COP400デバイスの大部分はローエンドアプリケーションを対象としていましたが、より要求の厳しいアプリケーションに対応するために、アーキテクチャにいくつかの拡張が行われました。1985年までに、一部のデバイスにはデュアルCPU、RAMのスタックの深さ、そしてより広いアドレス空間が追加されました。[ 7 ]

デュアルCPU

スタックポインタ付きCOP400
1 00 90 80 70 60 50 40 30 20 10 0(ビット位置)
アキュムレータ
Br Bd B(ポインタ)
1 0 0 0 0 0 スタックポインタ
PC(高) PC(ページ) プログラムカウンタ
ステータスフラグ
Cキャリーフラッグ
(COP440を表示)

COP400の「デュアルCPU」バージョンは、1981年にナショナル セミコンダクター社によって発表されました。これらのシングルチップ・バレル・プロセッサは、命令、メモリ、およびほとんどのIOデバイスを共有する、一見独立した2つのCPUを搭載しています。しかし実際には、これらのCPUは完全に独立しておらず、ハイパースレッディング・テクノロジ(HTT)を搭載したインテル・プロセッサと同様に、ハードウェア・リソースを共有しています。HTTと同様に、デュアルCPUバージョンは、プロセッサの特定のセクション(アーキテクチャ状態を格納するセクション)を複製することで動作しますが、 ALU 、バス、メモリなどの主要な実行リソースは複製しません。2つの仮想プロセッサそれぞれに、A(アキュムレータ)、B(ポインタ・レジスタ)、C(キャリー・フラグ)、N(スタック・ポインタ)、PC(プログラム・カウンタ)を複製することで、独立したアーキテクチャ状態が確立されます。[ 6 ]

リセットがデアサートされると、両方のプロセッサは CLRA 命令を含む位置 0 から開始し、1 つのプロセッサが位置 401 (16 進数) にジャンプし、1 命令サイクル後に 2 番目のプロセッサが位置 1 を実行します。その後、プロセッサは交互に 1 バイトずつコードを実行します。

最大クロック周波数では、各プロセッサの命令実行時間 (1 バイト命令) は 4 マイクロ秒であるため、どちらのプロセッサの命令サイクル時間もその 2 倍の 8 マイクロ秒になります。

デュアル CPU バージョンには、40 ピンの COP2440N、28 ピンの COP2441N、および 24 ピンの COP2442N などがあります。

RAM内のリターンスタック

初期のCOP400デバイスには、2レベルまたは3レベルの専用ハードウェア・リターンスタックが搭載されていました。COP440などの後期デバイスは、2ビットのスタックポインタとRAMで実装された4レベルのリターンスタックを備えています。デュアルCPUバージョンには、2つの2ビットのスタックポインタと2つの異なるRAM領域で実装された2つの独立した4レベルのリターンスタックが搭載されています。

より大きなアドレス空間

COP400の基本命令セットは、最大11ビット(2,048バイト)のROMアドレスをサポートしますが、データアドレスは最大7ビット(128ロケーション)です。いわゆるグループ4デバイスは、アドレスビット数を増やした3バイトのJMP、JSR、LBI命令を追加することでメモリ制限を拡張しました。これらの命令は、最大15ビット(32,768バイト)のROMアドレスをサポートしますが、データアドレスは最大9ビット(512ロケーション)です。これらの命令をサポートするデバイスには、COP408、COP484、COP485、COP409などがあります。これらのグループ4デバイスが実際に製造されたかどうかは不明です。

アプリケーション

DBT-03 1200ボーモデムで使用されるCOP420C
  • Apple Lisaは、キーボード、マウス、RTC、ソフトパワースイッチの制御にCOP421を使用していました。もう1つのCOP421は、ウィジェットハードディスクドライブのスピンドルモーターを制御していました。[ 8 ]
  • いくつかのメーカーは初期の電子ゲームでCOP400を使用していました。[ 9 ]
    • COP410 および COP411、512 バイト ROM、32 x 4 RAM: Mattel のFuntronics Jacks、Red Light Green Light、Tag、および Plus One。
    • COP420 および COP421、1024 バイト ROM、64 x 4 RAM: Milton Bradley Lightfight および Electronic Battleship 1982。Castle Toy Company Einstein。Coleco Head to Head Basketball。National Semiconductor Quiz Kid Racer。LJN Toys Ltd I Took a Lickin' from a Chicken。
    • COP444、2048バイトROM、128 x 4 RAM:Entex Space Invader。Mattel Dalla$、Texas Instruments My Little Computer。[ 10 ]
  • ウエスタンデジタルはWD4200(COP420)をWD2412時刻クロックのベースとして使用しました。[ 11 ]
  • Grundy Newbrainコンピュータは、COP420を使用してキーボード、テープI/O、および内蔵の16文字VF英数字ディスプレイを管理しています。[ 12 ]

知的財産

T400 μControllerは、VHDLで記述されたCOP400マイクロコントローラのオープンソース実装です。COP420/421およびCOP410L/411Lデバイスがサポートされています。T400は、レガシーシステムを再現するSOCにおいて、元のチップの代替となることを目的としています。T400は、いくつかのFPGAファミリに実装されています。T400はGNU General Public Licenseの下で利用可能です。[ 13 ]

エミュレータ

COP400ファミリーといくつかの携帯ゲームや特殊な電卓用のオープンソースのMAMEエミュレーターがあります。 [ 14 ] [ 15 ]

参照

  • ナショナルセミコンダクターCOP8

参考文献

  1. ^ 「ナショナル・セミコンダクター:COPS以前のCOP」 CPUSHACK博物館、2014年9月27日。 2021年12月23日閲覧
  2. ^ COP400マイクロコントローラファミリ COPSファミリ ユーザーズガイド. ナショナルセミコンダクター. 2025年6月23日閲覧
  3. ^ 「Western DigitalとCOP」CPUSHACK博物館2015年10月2日。 2021年12月22日閲覧
  4. ^ 「WD4200/WD4210 シングルチップ N チャネル マイクロコントローラ」 。 2021年12月23日閲覧
  5. ^ 「ソ連のマイクロプロセッサ、マイクロコントローラ、FPUチップとその西側諸国の類似品」 www.cpu-world.com . 2022年11月15日閲覧
  6. ^ a b c d「COPSマイクロコントローラデータブック」ナショナルセミコンダクター。 2022年1月19日閲覧
  7. ^ a b「COPSプログラミングマニュアル(1985)」(PDF) . Vintage Technology Digital Archive . National Semiconductor . 2021年12月23日閲覧
  8. ^ “Apple Lisa 341-0064A (COP421)” . Visual6502 . 2021年12月24日閲覧
  9. ^ 「ナショナル・セミコンダクターCOP400」。ショーン・リドル。 2021年12月24日閲覧
  10. ^ Woerner, Joerg. 「Texas Instruments My Little Computer」 . Datamath Calculator Museum . 2024年6月19日閲覧
  11. ^ 「1983年コンポーネントカタログ」(PDF) . Western Digital. p. 621 . 2021年12月24日閲覧
  12. ^ 「COP420 4ビットプロセッサ - Newbrain」 。 2021年12月30日閲覧
  13. ^ 「T400 μController - Nationalの4ビットCOP400マイクロコントローラの実装」 All About Circuits . 2024年6月21日閲覧
  14. ^ 「COP400 libmame リポジトリ」 . Github . 2022年4月23日閲覧
  15. ^ 「Funjacks(エミュレートされたゲームの例)」アーケードデータベース2022年4月23日閲覧