RCA 1802
CDP1802ベースの初期のマイクロコンピュータでは、コンパニオングラフィックビデオディスプレイコントローラとしてCDP1861(これはNTSC用であり、PAL用としてはCDP1864がある。以下は1861で代表して説明する)を用い、1802に内蔵されたDMAコントローラと組み合わせて標準テレビスクリーンに白黒のビットマップグラフィックを表示した。1861は、また、ドットグラフィクス・システム/チップ/ビデオジェネレータとしても知られ、特にCOSMAC ELFマイクロコンピュータではそう呼ばれる。他にTA10171, TA10171V1やTA10171Xのマーキングがされた1861がある。これらは初期の設計の「量産前エンジニアリングサンプル」や「暫定パーツナンバー」で、RCA Studio IIやNetronics Elf マイクロコンピュータに使用されているのが確認された。
1861は1802の制御ソフトウェアと割り込みサービスルーチンを使用してDMAレジスタであるR0に格納したビデオフレームバッファのアドレスを参照して、水平方向に64ドット、垂直方向に128ドットの表示を行える。使用するメモリを減らすために解像度は64×64や64×32に減らすことができる。
この例のコードはALU (算術論理ユニット) の動作を診断するルーチンである。
注釈:上記のルーチンではCDP1802マイクロプロセッサが初期リセット状態、あるいは同等な状態にあることを前提に動作する。ここで、プログラムカウンタ (PC) とインデックスレジスタは両方とも16ビットレジスタR0に割り当てられている。それゆえ、PCとXが両方R0であるので、例の中の OUT 4,00 で即値を出力できる。即ち、PCはメモリから OUT 4 命令を読み取った後にインクリメントされるため、命令を実行する時点では PC であり且つインデックスレジスタである R0 は次のバイト、即ち00を指している。この状態でOUT命令が実行されるので00が出力される。OUT命令はまたXレジスタ、即ちR0をインクリメントするが、これはまたPCでもあるので、即値の次のアドレスにある命令から実行が続けられる。これが、このルーチンでXレジスタを必要に応じてSEX命令でR6やR0に設定する理由である。また、OUT命令が逐次RXレジスタをインクリメントするので連続したメモリの内容を容易に出力できるのに対して、INP命令はそうしないことにも注意。これは値をRXが指すメモリとDレジスタに入れるが、RXを変更しない。 このルーチンでは、また、OUT 4でCPUシステム内の値が8ビットのLEDか2桁の16進ディスプレイに表示され、IN 4で8個のトグルスイッチの値(または16進キーボード)を読み取ると仮定している。
CDP1802は入力要求と出力要求の2本の要求線を持つDMAコントローラを内蔵し、R0がDMA処理を行う対象アドレスを示すアドレスポインタとなる。
DMAコントローラには、プロセッサのCLEARとWAIT入力が同時にアクティブである間にメモリにロードできる特別な「ロードモード」がある。これを使うとROMベースのブートストラップなしでプログラムをロードできる。COSMAC Elfマイクロコンピュータやその後継機では、ソフトウェアや最小限のハードウェアを必要とせずトグルスイッチや16進キーボードからプログラムをロードするのに使われる。
2016年12月11日閲覧。
↑ “1802 CPU coded in VHDL”. Scott Baker (2016年). 2016年12月11日閲覧。
↑ “Elf Clone”. Ted Rossin (2011年). 2016年12月11日閲覧。
↑ “COSMAC Elf-ish CDP1802 Simulator in JavaScript”. William Donnelly (2011年). 2016年12月11日閲覧。
↑ “RCA 1802 (CDP1802) microprocessor family”. Gennadiy Shvets (2016年10月2日). 2016年12月11日閲覧。
↑ “What does SEX mean?”. 2013年12月26日閲覧。
↑ User Manual for the CDP1802 COSMAC Microprocessor
↑ SEPはSet Program Counter の略で、16本のレジスタのうちどれを今実行するルーチンのプログラムカウンタとして使用するかを指定する。
↑ 例えばR1の内容をR2に写すなら GHI R1; PHI R2; GLO R1; PLO R2; の4命令となる。
1 2 上位バイトの定数をDレジスタにロードするLDI命令、それをレジスタの上位バイトに置くPHI命令、続けて下位バイトのLDI命令と、それを置くPLO命令の4命令が必要である。
↑ “Build the PIXIE Graphic Display”. Popular Electronics. 2016年6月13日閲覧。