RCA CDP1802 COSMACを動かしてみた(2) 動作確認編

前回、ブレッドボードに組み上げたCOSMACの回路を動かしてみます。

メモリへのプログラムの書き込みは

  • データ入力用の8回路DIPスイッチ
  • CPUモード選択用の2つのスライドスイッチ
  • 書き込み用のプッシュスイッチ

を使って行います。

CPUモード選択がややこしいのでブレッドボードの横に紙を張り付けました。

cosmac_switch1.jpg

メモリへの書き込みは以下の手順で行います。

  1. RESETモードにします。これでCPUがリセット状態になります。
  2. LOADモードにします。リセットした直後なので0番地からの書き込みになります。
  3. DIPスイッチでRAMに書き込むデータの値を設定します。LEDが書き込むデータの値になります。
  4. 書き込みスイッチを押してメモリに書き込みます。LEDが書き込んだデータの値になります。
  5. 3.4.を繰り返してプログラムを書き込んでいきます。
  6. RESETモードにします。
  7. RUNモードにするとプログラムが実行されます。

これをブレッドボードの実機で試したところ、左から5つめのLEDが書き込んだ値になりません。0を書き込んでも、点灯したままになったり、その逆のこともあります。オシロスコープでBUS4を確認すると、プルダウンしているにも関わらず、電圧が不定でおかしい動きをしています。またメモリの不良ではと疑いましたが、他のCPUボードで動いていたものなので、もしかしてとCPUを交換してみたところ、この症状がなくなりました。

まずは、動作確認のためにシンプルなプログラムを動かします。CDP1802にはQという端子があり簡単な命令で0/1を出力することができます。

プログラムは以下のようになります。4バイトのコードを先ほどの手順でメモリに書き込みます。

アドレス 命令コード コメント
00    7B     1→Q
01    7A     0→Q
02    30 00    00→R(P).0 プログラムカウンタに0を設定する。

CPUモードをRUNモードにして、Q端子にオシロスコープを接続したところパルス出力を確認しました。

cosmac_osc1.jpg

正常に動作しているようですので、次回は他のプログラムも試してみます。

コメントする