CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

統合環境組込み

 

アセンブルコマンドプロンプトでできるようになりモニタにもロード、実行コマンドが備わっていて、統合環境CMPLDRVへの必要条件がそろったので早速組み込んでみました。ターゲットデバイス1bitで検索しますがこのカテゴリでは後にも先にもMC14500だけでしょうけど。

f:id:O3I:20210908151112j:plain

 

ここまでで一応、ハードソフトとも完成になりますが、今後やってみるとしたらこんな感じです

 

(1)データラインの安定化

 システムのデータバス・・1本しかありませんが・・プログラムローディング後、実行前のアイドル中などどのデバイスもデータバスをドライブしていないときハイインピーダンス状態のためバスの状態を示すインジケータが不安定に点灯してしまいます。動作には全く支障はありませんがプルダウン抵抗を追加してもいいかもしれません

 

(2)USB給電

このボードの動作中電流は250mA程度で、USBコネクタを通してホストに断りなくもらっても大丈夫そうです。そのためのパタンと逆流防止ダイオードのランドも用意してあるのでいずれバスパワー動作もやってみようと思います

f:id:O3I:20210908151136j:plain

(3)USB接続

  今回は現行のI/Fと互換性があるようにUSB-シリアル変換で接続していますが、コントローラPIC18F4550はUSBI/Fも持っているため直のUSB-Bコネクタも用意しています。ネイティブのUSBでつながればメモリ編集・参照がストレスなくできるかもしれません。PICのプログラムエリアも現状20%程度しか使っていないのでUSBフレームワークを導入するのは大丈夫そうです。

 

(4)サービスコール

現状はコントローラがMC14500に制御を渡してしまうとプログラムを強制的にブレークするまではMC14500は自分か制御できる資源だけを使った動作しかできません。そこでたとえばNOP0コマンドを実行すると(同時にFLG0出力が出る)コントローラに割込みがかかりシリアルから1文字出力する、というようなコントローラ側のI/Fを使えるような仕組みができるかもしれません。(ちょうどソフト割込みでOSのサービスコールを利用するような)一応結線はしておきました。